[PATCH 4/4] wined3d: Set WINED3D_LOCATION_CLEARED for full-subresource clears to black.

Henri Verbeet hverbeet at gmail.com
Mon Apr 25 11:22:47 CDT 2022


On Sun, 24 Apr 2022 at 18:25, Stefan Dösinger <stefan at codeweavers.com> wrote:
> diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
> index eaa7cdf3ea5..0fffb8fc4f2 100644
> --- a/dlls/wined3d/texture.c
> +++ b/dlls/wined3d/texture.c
> @@ -805,6 +805,9 @@ BOOL wined3d_texture_load_location(struct wined3d_texture *texture,
>
>          /* FIXME: Clear textures on the GPU if possible. */
>
> +        if (location != WINED3D_LOCATION_SYSMEM)
> +            WARN_(d3d_perf)("Clearing texture %p in CPU.\n", texture);
> +
>          if (!wined3d_texture_prepare_location(texture, sub_resource_idx, context, WINED3D_LOCATION_SYSMEM))
>              return FALSE;
>          wined3d_texture_get_bo_address(texture, sub_resource_idx, &addr, WINED3D_LOCATION_SYSMEM);

That conflicts with the series by Zeb.

> @@ -6472,31 +6490,60 @@ static void vk_blitter_clear_rendertargets(struct wined3d_context_vk *context_vk
[...]
> +    TRACE("Doing an immediate clear of %u attachments.\n", attachment_count);
> +    if (delay_count)
> +        WARN_(d3d_perf)("Partial clear: %u immediate, %u delayed.\n", attachment_count, delay_count);

I suppose using +d3d_perf for this is fine, but this seems more like a
TRACE than a WARN.

> @@ -6650,6 +6697,7 @@ static void vk_blitter_clear(struct wined3d_blitter *blitter, struct wined3d_dev
>          }
>          else
>          {
> +            ERR("subrect clear\n");
>              for (i = 0; i < rt_count; ++i)
>              {
>                  if (!(view = fb->render_targets[i]))
> @@ -6681,7 +6729,7 @@ static void vk_blitter_clear(struct wined3d_blitter *blitter, struct wined3d_dev
>          return;
>      }
>
> -    TRACE("Forwarding to blitter %p.\n", next);
> +    ERR("Forwarding to blitter %p.\n", next);

Is that leftover debug code?



More information about the wine-devel mailing list