Am 09.11.2015 um 21:12 schrieb Ilia Mirkin: > On Mon, Nov 9, 2015 at 3:07 PM, Roland Scheidegger <srol...@vmware.com> wrote: >> Am 09.11.2015 um 19:40 schrieb Ilia Mirkin: >>> This is basically a resend of a series I wrote over a year ago. I >>> don't remember what we hated about it last time, but I'm tempted not >>> to look. This seems pretty reasonably to me now. >> I guess I wasn't entirely happy with yet another clear method... Still, >> looks reasonable... > > Yeah, I'm not madly in love with it either, but the various > functionality just isn't accessible otherwise. Internally the nvc0 and > nv50 impls reuse the clear_render_target/clear_depth_stencil > functions, but that's not generically possible since we have to be > able to clear non-renderable formats. > > I guess an alternative here is to say that we can redefine the format > of a surface to basically what I do in the nvc0 patch, I can move that > logic from nvc0 to st/mesa. I think if you don't have the rt, there's really not much point to redefine the surface format for clearing.
Roland > > I can redo it if that assumption is OK with everyone (potentially > conditioned on PIPE_CAP_SAMPLER_VIEW_TARGET aka ARB_texture_view...) > >> >>> >>> A refactoring opportunity exists to remove ->clear_render_target and >>> ->clear_depth_stencil, but... that can be done later. >> You could remove clear_render_target but not clear_depth_stencil, as the >> latter allows clearing only depth or stencil. >> >> Roland >> >> >>> >>> Note that for nvc0 I still have to keep separate paths for >>> color/stencil, which is a bit unfortunate, but the hardware complains >>> otherwise. >>> >>> Ilia Mirkin (3): >>> gallium: add PIPE_CAP_CLEAR_TEXTURE and clear_texture prototype >>> st/mesa: implement ARB_clear_texture >>> nvc0: add ARB_clear_texture support >>> >>> docs/GL3.txt | 2 +- >>> docs/relnotes/11.1.0.html | 1 + >>> src/gallium/docs/source/context.rst | 4 ++ >>> src/gallium/docs/source/screen.rst | 2 + >>> src/gallium/drivers/freedreno/freedreno_screen.c | 1 + >>> src/gallium/drivers/i915/i915_screen.c | 1 + >>> src/gallium/drivers/ilo/ilo_screen.c | 1 + >>> src/gallium/drivers/llvmpipe/lp_screen.c | 1 + >>> src/gallium/drivers/nouveau/nv30/nv30_screen.c | 1 + >>> src/gallium/drivers/nouveau/nv50/nv50_screen.c | 1 + >>> src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 1 + >>> src/gallium/drivers/nouveau/nvc0/nvc0_surface.c | 82 >>> ++++++++++++++++++++++++ >>> src/gallium/drivers/r300/r300_screen.c | 1 + >>> src/gallium/drivers/r600/r600_pipe.c | 1 + >>> src/gallium/drivers/radeonsi/si_pipe.c | 1 + >>> src/gallium/drivers/softpipe/sp_screen.c | 1 + >>> src/gallium/drivers/svga/svga_screen.c | 1 + >>> src/gallium/drivers/vc4/vc4_screen.c | 1 + >>> src/gallium/drivers/virgl/virgl_screen.c | 1 + >>> src/gallium/include/pipe/p_context.h | 10 +++ >>> src/gallium/include/pipe/p_defines.h | 1 + >>> src/mesa/state_tracker/st_cb_texture.c | 29 +++++++++ >>> src/mesa/state_tracker/st_extensions.c | 1 + >>> 23 files changed, 145 insertions(+), 1 deletion(-) >>> >> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev