mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 07:28:11 +02:00
nvk: Take depth image layer counts from the VkRenderingInfo
Otherwise OOB layers may render to the wrong layer in the depth image. While we're here, add the same layer count asserts for color images. Fixes:9345b95346("nvk: Bind 3D depth/stencil images as 2D arrays") Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31033> (cherry picked from commite533484d06)
This commit is contained in:
parent
41f579fb85
commit
4bf6575129
2 changed files with 6 additions and 3 deletions
|
|
@ -74,7 +74,7 @@
|
|||
"description": "nvk: Take depth image layer counts from the VkRenderingInfo",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "9345b95346dd3eac280ad152d07357526010b5d0",
|
||||
"notes": null
|
||||
|
|
|
|||
|
|
@ -818,9 +818,11 @@ nvk_CmdBeginRendering(VkCommandBuffer commandBuffer,
|
|||
addr += nil_image_level_z_offset_B(nil_image,
|
||||
iview->vk.base_mip_level,
|
||||
iview->vk.base_array_layer);
|
||||
assert(layer_count <= iview->vk.extent.depth);
|
||||
} else {
|
||||
addr += iview->vk.base_array_layer *
|
||||
(uint64_t)nil_image->array_stride_B;
|
||||
assert(layer_count <= iview->vk.layer_count);
|
||||
}
|
||||
|
||||
P_MTHD(p, NV9097, SET_COLOR_TARGET_A(i));
|
||||
|
|
@ -931,7 +933,6 @@ nvk_CmdBeginRendering(VkCommandBuffer commandBuffer,
|
|||
uint64_t addr = nvk_image_base_address(image, ip);
|
||||
uint32_t mip_level = iview->vk.base_mip_level;
|
||||
uint32_t base_array_layer = iview->vk.base_array_layer;
|
||||
uint32_t layer_count = iview->vk.layer_count;
|
||||
|
||||
if (nil_image.dim == NIL_IMAGE_DIM_3D) {
|
||||
uint64_t level_offset_B;
|
||||
|
|
@ -940,7 +941,9 @@ nvk_CmdBeginRendering(VkCommandBuffer commandBuffer,
|
|||
addr += level_offset_B;
|
||||
mip_level = 0;
|
||||
base_array_layer = 0;
|
||||
layer_count = iview->vk.extent.depth;
|
||||
assert(layer_count <= iview->vk.extent.depth);
|
||||
} else {
|
||||
assert(layer_count <= iview->vk.layer_count);
|
||||
}
|
||||
|
||||
const struct nil_image_level *level = &nil_image.levels[mip_level];
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue