From: Iago Toral Quiroga Date: Wed, 1 Jul 2020 09:05:28 +0000 (+0200) Subject: v3dv: fix blit_shader() to honor the region's aspect mask X-Git-Tag: upstream/21.0.0~3886 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0385da9e089ae94a67a916a028a7a9e892fe5bb7;p=platform%2Fupstream%2Fmesa.git v3dv: fix blit_shader() to honor the region's aspect mask When translating combined depth/stencil blits to compatible color blits we should look at the requested region aspects to decide the color mask to apply. Fixes: dEQP-VK.api.copy_and_blit.*.buffer_to_depthstencil.buffer_offset_d24_unorm_s8_uint_D dEQP-VK.api.copy_and_blit.*.buffer_to_depthstencil.buffer_offset_d24_unorm_s8_uint_SD dEQP-VK.api.copy_and_blit.*.buffer_to_depthstencil.buffer_offset_d24_unorm_s8_uint_S_D Part-of: --- diff --git a/src/broadcom/vulkan/v3dv_meta_copy.c b/src/broadcom/vulkan/v3dv_meta_copy.c index 95be84d..82b9ac7 100644 --- a/src/broadcom/vulkan/v3dv_meta_copy.c +++ b/src/broadcom/vulkan/v3dv_meta_copy.c @@ -3566,12 +3566,12 @@ blit_shader(struct v3dv_cmd_buffer *cmd_buffer, break; case VK_FORMAT_X8_D24_UNORM_PACK32: case VK_FORMAT_D24_UNORM_S8_UINT: - if (dst->aspects & VK_IMAGE_ASPECT_DEPTH_BIT) { + if (region.srcSubresource.aspectMask & VK_IMAGE_ASPECT_DEPTH_BIT) { cmask |= VK_COLOR_COMPONENT_G_BIT | VK_COLOR_COMPONENT_B_BIT | VK_COLOR_COMPONENT_A_BIT; } - if (dst->aspects & VK_IMAGE_ASPECT_STENCIL_BIT) { + if (region.srcSubresource.aspectMask & VK_IMAGE_ASPECT_STENCIL_BIT) { assert(dst_format == VK_FORMAT_D24_UNORM_S8_UINT); cmask |= VK_COLOR_COMPONENT_R_BIT; }