[PATCH v2 2/6] wined3d: Pass format id for typeless resolve through wined3d_blt_fx.

Henri Verbeet hverbeet at gmail.com
Wed Mar 10 09:03:46 CST 2021


On Tue, 9 Mar 2021 at 10:26, Jan Sikorski <jsikorski at codeweavers.com> wrote:
> ---
>  dlls/wined3d/device.c  | 5 ++++-
>  dlls/wined3d/surface.c | 3 +++
>  include/wine/wined3d.h | 1 +
>  3 files changed, 8 insertions(+), 1 deletion(-)
>
This is largely fine, but you should adjust existing usage of
wined3d_blt_fx as well. In particular, after this change,
ddraw_surface1_Blt() leaves the "resolve_format_id" field
uninitialised. That kind of works as long as wined3d doesn't access
the field, but note that we trace it's value in texture2d_blt().

> @@ -1479,6 +1479,7 @@ HRESULT texture2d_blt(struct wined3d_texture *dst_texture, unsigned int dst_sub_
>          enum wined3d_texture_filter_type filter)
>  {
>      struct wined3d_texture_sub_resource *src_sub_resource, *dst_sub_resource;
> +    enum wined3d_format_id resolve_format_id = WINED3DFMT_UNKNOWN;
>      struct wined3d_device *device = dst_texture->resource.device;
>      struct wined3d_swapchain *src_swapchain, *dst_swapchain;
>      const struct wined3d_color_key *colour_key = NULL;
> @@ -1509,6 +1510,8 @@ HRESULT texture2d_blt(struct wined3d_texture *dst_texture, unsigned int dst_sub_
>          TRACE("src_color_key {0x%08x, 0x%08x}.\n",
>                  fx->src_color_key.color_space_low_value,
>                  fx->src_color_key.color_space_high_value);
> +        TRACE("resolve_format_id %s.\n", debug_d3dformat(fx->resolve_format_id));
> +        resolve_format_id = fx->resolve_format_id;
>      }
"resolve_format_id" is set, but not used.



More information about the wine-devel mailing list