[Mesa-dev] Anybody still need clear_depth_stencil() or clear_render_target()?

Andreas Hartmetz ahartmetz at gmail.com
Mon Dec 2 14:08:02 PST 2013


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...).

Cheers,
Andreas


More information about the mesa-dev mailing list