[PATCH 0/4] wined3d: Better integrate clears with Vulkan renderpasses
Stefan Dösinger
stefan at codeweavers.com
Sun Apr 24 11:24:45 CDT 2022
This patches allow us to use VK_ATTACHMENT_LOAD_OP_CLEAR and
VK_ATTACHMENT_LOAD_OP_DONT_CARE for cleared and discarded textures in some
conditions. I wrote them in an attempt to improve improve Rocket League
performance, but in their current state they don't produce a measurable
gain yet. They still seem like the right thing to do.
To matter in Rocket League, support for non-zero clear values needs to be
added. This needs a bit more work on the fallback path (something along the
lines of calling surface_cpu_blt_colour_fill and extending it to support
floats). Rocket League also clears the depth component of a Depth-Stencil
surface without clearing the Stencil part. Vulkan supports that, but it is
not easy to integrate it with our location management.
Stefan Dösinger (4):
wined3d: Invalidate framebuffer locations after setting up the
renderpass.
wined3d: Tell Vulkan about discarded and cleared framebuffer
attachments.
wined3d: Don't explicitly clear the draw location before starting a
renderpass.
wined3d: Set WINED3D_LOCATION_CLEARED for full-subresource clears to
black.
dlls/wined3d/context_vk.c | 94 ++++++++++++++++++++++++++++------
dlls/wined3d/texture.c | 86 ++++++++++++++++++++++++-------
dlls/wined3d/view.c | 23 +++++++++
dlls/wined3d/wined3d_private.h | 9 +++-
4 files changed, 177 insertions(+), 35 deletions(-)
--
2.35.1
More information about the wine-devel
mailing list