[Mesa-dev] [PATCH] Implement the ARB_clear_texture extension

Ian Romanick idr at freedesktop.org
Wed Jun 4 18:26:22 PDT 2014


On 06/04/2014 04:15 PM, Ilia Mirkin wrote:
> On Wed, Jun 4, 2014 at 6:42 PM, Ian Romanick <idr at freedesktop.org> wrote:
>> On 06/04/2014 11:12 AM, Neil Roberts wrote:
>>> +
>>> +   ctx->Driver.ClearTexSubImage(ctx,
>>> +                                texImage,
>>> +                                xoffset, yoffset, zoffset,
>>> +                                width, height, depth,
>>> +                                data ? clearValue : NULL);
>>
>> Gallium drivers don't use meta at all, so ctx->Driver.ClearTexSubImage
>> will be NULL in all Gallium drivers.  Until there is a Gallium
>> implementation (Ilia may have done one already...), I don't think we can
>> enable this extension by default.
> 
> Well, the patches I had made just add a pipe->clear_texture callback
> (and implementation for nv50). After discussions spawned by my
> (semi-related) ->clear_buffer addition (for ARB_clear_buffer_object
> acceleration), it seems like it'll take a little more than this --
> I'll also need to unify the existing ->clear_render_target and
> ->clear_depth_stencil functions into one big happy do-everything API
> call.
> 
> However my understanding (I'm a newbie at this, so take with a grain
> of salt) was that a generic implementation was impossible due to the
> need to handle MS textures, and there being no "spec" for how they're
> laid out. e.g. is 4x MS just 4x wider? 4x higher? 2x on both? [And
> non-renderable texture formats present issues as well.]

Yeah... those each present difficulties, but I think they're orthogonal
difficulties.  I don't think there any MS texture formats that are not
renderable.  If that's true, then all the renderable formats can use a
rendering path, and all the non-renderable formats can use a
clear_buffer-like path.  Right?

>   -ilia



More information about the mesa-dev mailing list