[Mesa-dev] [PATCH 0/3] gallium: add ARB_clear_texture infrastructure

Roland Scheidegger sroland at vmware.com
Mon Nov 9 12:29:39 PST 2015


Am 09.11.2015 um 21:12 schrieb Ilia Mirkin:
> On Mon, Nov 9, 2015 at 3:07 PM, Roland Scheidegger <sroland at 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(-)
>>>
>>



More information about the mesa-dev mailing list