[Mesa-dev] Anybody still need clear_depth_stencil() or clear_render_target()?
Erik Faye-Lund
kusmabite at gmail.com
Mon Dec 2 14:54:26 PST 2013
On Mon, Dec 2, 2013 at 11:08 PM, Andreas Hartmetz <ahartmetz at 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).
More information about the mesa-dev
mailing list