From 5a6b8a14da0852f2460b5c09571443456ec3fef9 Mon Sep 17 00:00:00 2001 From: Matt Borgerson Date: Mon, 29 Jul 2024 17:25:37 -0700 Subject: [PATCH] nv2a/vk: Only clear stencil on images with stencil aspect --- hw/xbox/nv2a/pgraph/vk/draw.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/hw/xbox/nv2a/pgraph/vk/draw.c b/hw/xbox/nv2a/pgraph/vk/draw.c index 135e7b303d..556d6cc23f 100644 --- a/hw/xbox/nv2a/pgraph/vk/draw.c +++ b/hw/xbox/nv2a/pgraph/vk/draw.c @@ -1764,10 +1764,13 @@ void pgraph_vk_clear_surface(NV2AState *d, uint32_t parameter) pgraph_get_clear_depth_stencil_value(pg, &depth_value, &stencil_value); VkImageAspectFlags aspect = 0; - if (parameter & NV097_CLEAR_SURFACE_Z) + if (parameter & NV097_CLEAR_SURFACE_Z) { aspect |= VK_IMAGE_ASPECT_DEPTH_BIT; - if (parameter & NV097_CLEAR_SURFACE_STENCIL) + } + if ((parameter & NV097_CLEAR_SURFACE_STENCIL) && + (r->zeta_binding->host_fmt.aspect & VK_IMAGE_ASPECT_STENCIL_BIT)) { aspect |= VK_IMAGE_ASPECT_STENCIL_BIT; + } attachments[num_attachments++] = (VkClearAttachment){ .aspectMask = aspect,