diff --git a/.pick_status.json b/.pick_status.json index 919653d026d..4a44fed47b5 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -604,7 +604,7 @@ "description": "anv: set missing protected bit for protected depth/stencil surfaces", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "794b0496e9467d27211d11fe7f783db3ce6a349a", "notes": null diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index ef42275642b..75524290efb 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -5265,8 +5265,12 @@ cmd_buffer_emit_depth_stencil(struct anv_cmd_buffer *cmd_buffer) info.depth_surf = &depth_surface->isl; info.depth_address = anv_address_physical(depth_address); + + isl_surf_usage_flags_t isl_usage = ISL_SURF_USAGE_DEPTH_BIT; + if (anv_image_is_protected(image)) + isl_usage |= ISL_SURF_USAGE_PROTECTED_BIT; info.mocs = - anv_mocs(device, depth_address.bo, ISL_SURF_USAGE_DEPTH_BIT); + anv_mocs(device, depth_address.bo, isl_usage); info.hiz_usage = gfx->depth_att.aux_usage; if (info.hiz_usage != ISL_AUX_USAGE_NONE) { @@ -5303,8 +5307,12 @@ cmd_buffer_emit_depth_stencil(struct anv_cmd_buffer *cmd_buffer) info.stencil_aux_usage = image->planes[stencil_plane].aux_usage; info.stencil_address = anv_address_physical(stencil_address); + + isl_surf_usage_flags_t isl_usage = ISL_SURF_USAGE_STENCIL_BIT; + if (anv_image_is_protected(image)) + isl_usage |= ISL_SURF_USAGE_PROTECTED_BIT; info.mocs = - anv_mocs(device, stencil_address.bo, ISL_SURF_USAGE_STENCIL_BIT); + anv_mocs(device, stencil_address.bo, isl_usage); } isl_emit_depth_stencil_hiz_s(&device->isl_dev, dw, &info);