[PATCH 0/9] wined3d: Support non-zero colors in renderpass clears

Stefan Dösinger stefan at codeweavers.com
Sun May 1 13:39:02 CDT 2022


This patchset implements delayed clears in the Vulkan renderer with
arbitrary colors. The Vulkan side of it is fairly simple - most of the
patches extend the CPU fallback path to support those colors.

The final patch adds a d3d9 test to exercise the fallback code. The Vk
renderer is functional enough in d3d9 to run this particular test. I
don't see a way to reliably test this codepath through d3d10/11 without
quirky assumptions about CopyResource. Dynamic and staging resources
can't be written by the GPU, and default resources can't be read by the
CPU.

Stefan Dösinger (9):
  wined3d: Separate mapping from data writing in
    surface_cpu_blt_colour_fill.
  wined3d: Prepare wined3d_format_convert_from_float for > 32bpp
    formats.
  wined3d: Add support for sysmem-clearing float32 formats.
  wined3d: Support CPU clear of float16 formats.
  wined3d: Add 16 bit per channel UNORM formats to
    wined3d_format_convert_from_float.
  wined3d: Add a memory_colour_fill for clearing the entire level to
    zero.
  wined3d: Prepare sysmem LOCATION_CLEARED handling for non-zero colors.
  wined3d: Store clear colors in subresources.
  d3d9/tests: Extend color_fill_test.

 dlls/d3d9/tests/visual.c       | 132 ++++++++++++++++++++++------
 dlls/wined3d/context_vk.c      |  57 ++++++++++--
 dlls/wined3d/device.c          |   7 +-
 dlls/wined3d/resource.c        | 112 +++++++++++++++++++++++
 dlls/wined3d/surface.c         | 139 +----------------------------
 dlls/wined3d/texture.c         |  52 +++++++----
 dlls/wined3d/utils.c           | 156 +++++++++++++++++++++++++--------
 dlls/wined3d/wined3d_private.h |  91 +++++++++++++++++--
 8 files changed, 514 insertions(+), 232 deletions(-)

-- 
2.35.1




More information about the wine-devel mailing list