tu: Treat partially-bound depth/stencil attachments as passthrough

Make sure to preserve the depth or stencil components of D24S8 using the
fixed codepath just added. While we're here, fix the detection of
whether an attachment is bound.

Fixes: cb0f414b ("tu: Add support for suspending and resuming renderpasses")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26154>
This commit is contained in:
Connor Abbott 2023-11-14 16:22:48 +01:00 committed by Marge Bot
parent 5377219ca0
commit 812c8f6abe
4 changed files with 8 additions and 17 deletions

View file

@ -318,6 +318,3 @@ spec@arb_gpu_shader_fp64@execution@arb_gpu_shader_fp64-gs-getuniformdv,Crash
# We can't support VK_EXT_sample_locations on pre-A650 GPUs
# See https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4665#note_473653
dEQP-VK.info.device_mandatory_features,Fail
# Can be fixed by https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26154
dEQP-VK.dynamic_rendering.primary_cmd_buff.basic.partial_binding_depth_stencil,Fail

View file

@ -315,6 +315,3 @@ dynamic-dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2.d32_s
# We can't support VK_EXT_sample_locations on pre-A650 GPUs
# See https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4665#note_473653
dEQP-VK.info.device_mandatory_features,Fail
# Can be fixed by https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26154
dEQP-VK.dynamic_rendering.primary_cmd_buff.basic.partial_binding_depth_stencil,Fail

View file

@ -1,6 +1,3 @@
# Can be fixed by https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26154
dEQP-VK.dynamic_rendering.primary_cmd_buff.basic.partial_binding_depth_stencil,Fail
gmem-dEQP-VK.clipping.user_defined.clip_cull_distance_dynamic_index.vert_geom.6_2,Fail
gmem-dEQP-VK.clipping.user_defined.clip_cull_distance_dynamic_index.vert_geom.6_2_fragmentshader_read,Fail
gmem-dEQP-VK.draw.dynamic_rendering.complete_secondary_cmd_buff.scissor.dynamic_scissor_out_of_order_updates,Fail

View file

@ -1153,14 +1153,14 @@ tu_setup_dynamic_render_pass(struct tu_cmd_buffer *cmd_buffer,
attachment_set_ops(
device, att,
info->pDepthAttachment ? info->pDepthAttachment->loadOp
: VK_ATTACHMENT_LOAD_OP_DONT_CARE,
info->pStencilAttachment ? info->pStencilAttachment->loadOp
: VK_ATTACHMENT_LOAD_OP_DONT_CARE,
info->pDepthAttachment ? info->pDepthAttachment->storeOp
: VK_ATTACHMENT_STORE_OP_DONT_CARE,
info->pStencilAttachment ? info->pStencilAttachment->storeOp
: VK_ATTACHMENT_STORE_OP_DONT_CARE);
(info->pDepthAttachment && info->pDepthAttachment->imageView) ?
info->pDepthAttachment->loadOp : VK_ATTACHMENT_LOAD_OP_NONE_EXT,
(info->pStencilAttachment && info->pStencilAttachment->imageView) ?
info->pStencilAttachment->loadOp : VK_ATTACHMENT_LOAD_OP_NONE_EXT,
(info->pDepthAttachment && info->pDepthAttachment->imageView) ?
info->pDepthAttachment->storeOp : VK_ATTACHMENT_STORE_OP_NONE_EXT,
(info->pStencilAttachment && info->pStencilAttachment->imageView) ?
info->pStencilAttachment->storeOp : VK_ATTACHMENT_STORE_OP_NONE_EXT);
subpass->samples = (VkSampleCountFlagBits) view->image->layout->nr_samples;