[Mesa-dev] [PATCH 19/45] st/nine: Clear rendertarget on creation

Ilia Mirkin imirkin at alum.mit.edu
Fri Jan 29 08:46:25 PST 2016


Pretty sure this isn't an issue for you since DX9 didn't have render
conditions (right?) but clear_render_target is documented to respect
the render condition. Assuming you never set a render condition this
is all good.

  -ilia

On Fri, Jan 29, 2016 at 11:08 AM, Axel Davy <axel.davy at ens.fr> wrote:
> From: Patrick Rudolph <siro at das-labor.org>
>
> Clear every rendertarget on creation.
> Fixes https://github.com/iXit/Mesa-3D/issues/139
>
> Signed-off-by: Patrick Rudolph <siro at das-labor.org>
> Reviewed-by: Axel Davy <axel.davy at ens.fr>
> ---
>  src/gallium/state_trackers/nine/surface9.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/src/gallium/state_trackers/nine/surface9.c b/src/gallium/state_trackers/nine/surface9.c
> index 14c1ce9..9e5f191 100644
> --- a/src/gallium/state_trackers/nine/surface9.c
> +++ b/src/gallium/state_trackers/nine/surface9.c
> @@ -56,6 +56,9 @@ NineSurface9_ctor( struct NineSurface9 *This,
>                     D3DSURFACE_DESC *pDesc )
>  {
>      HRESULT hr;
> +    union pipe_color_union rgba = {0};
> +    struct pipe_surface *surf;
> +    struct pipe_context *pipe = pParams->device->pipe;
>
>      DBG("This=%p pDevice=%p pResource=%p Level=%u Layer=%u pDesc=%p\n",
>          This, pParams->device, pResource, Level, Layer, pDesc);
> @@ -140,6 +143,12 @@ NineSurface9_ctor( struct NineSurface9 *This,
>      if (pResource && NineSurface9_IsOffscreenPlain(This))
>          pResource->flags |= NINE_RESOURCE_FLAG_LOCKABLE;
>
> +    /* TODO: investigate what else exactly needs to be cleared */
> +    if (This->base.resource && (pDesc->Usage & D3DUSAGE_RENDERTARGET)) {
> +        surf = NineSurface9_GetSurface(This, 0);
> +        pipe->clear_render_target(pipe, surf, &rgba, 0, 0, pDesc->Width, pDesc->Height);
> +    }
> +
>      NineSurface9_Dump(This);
>
>      return D3D_OK;
> --
> 2.7.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list