[Bug 34495] Selecting objects in Blender 2.56 slow with gallium r600 driver

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu Jun 30 10:58:55 PDT 2011


https://bugs.freedesktop.org/show_bug.cgi?id=34495

--- Comment #19 from Pierre-Eric Pelloux-Prayer <pelloux at gmail.com> 2011-06-30 10:58:55 PDT ---

> @Pierre: It's a pitty if it doesn get hardware accelerated. Many CAD apps use
> GL_SELECT. Can you please give me a hint on how one would go about implementing
> HW acceleration for it? I'm not sure I'm able to do it, but would be interested
> in playing with it.

I've been toying with this idea for a few hours, and the next attachement will
be my current patch bringing sort of HW acceleration for GL_SELECT. 
(it should work for any Gallium driver, not only r600g)
** WARNING ** it's experimental AND rough AND buggy but it works well for the
specific test case above (Blender + 1 cube + multiresolution modifier level 8)
: it reduces selection time from +30 secs to ~1sec.

I'm posting it here even if it's not finished, to get some comments on how it's
done and if Mesa/gallium developpers think it's worth the effort.

(please note that left click on 3D view in Blender will crash...)

It's done using :
- an offscreen surface where objects are drawn when in GL_SELECT mode
- a custom pixel shader which outputs object's name + depth in color buffer
- glQueries
- glReadBack of offscreen surface when glQuery is >0 to read back name & z
values to feed the selection buffer

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the dri-devel mailing list