On Mon, Dec 2, 2013 at 11:08 PM, Andreas Hartmetz <ahartm...@gmail.com> wrote: > Hello, > > I've been lurking for a while, this seems to be my first post. > > While trying to make some "easy" (ha) improvements in radeonsi I looked > around in all the surrounding code to get a good picture of how things > work. So I noticed something: > All the Gallium drivers need to implement clear_depth_stencil() and > clear_render_target() from pipe_context. Those implementations are > generally using little to no acceleration, just making sure that > there's any implementation at all. Still, it's quite a few lines over > all the drivers. The two methods in question were introduced for > Direct3D, which has no in-tree state tracker anymore, and for scissored > clearing in OpenGL. But scissored clearing is already implemented as a > fallback using quad drawing in the OpenGL state tracker (st_cb_clear.c, > clear_with_quad()) in pretty much the same way as the unoptimized paths > in drivers. > > So, the question arises: Does anybody still use those functions, maybe > VMware in some out-of-tree code? > If not I suggest removing them and I'd send patches to do that. > Alternatively, they could be reduced to do just scissored clearing, > and the OpenGL state tracker could call that in the hope that some GPU > will have an optimized way to do it (how realistic is that? I have not > looked at all the GPU drivers...).
I looked at doing scissored clears for OpenGL using these functions (see https://github.com/grate-driver/mesa/commit/2cd9c115a64e98c8f3dbd0699023f89ccbc28b38), but when asking on IRC it seemed people wasn't too keen on going down that path. So my next alternative (which I haven't finished) is to simply roll this into the normal clear-methods, (see https://github.com/grate-driver/mesa/tree/scissor-clear-v2 for the first patch, but I'd also want masked clears in there as well). _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev