Mesa (master): radv: use proper maximum slice for layered view

Dave Airlie airlied at kemper.freedesktop.org
Sat Jan 28 00:52:52 UTC 2017


Module: Mesa
Branch: master
Commit: 989ec617031ac5642e7d0a8358a09c5c8ed93b53
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=989ec617031ac5642e7d0a8358a09c5c8ed93b53

Author: Dave Airlie <airlied at redhat.com>
Date:   Mon Jan  9 07:02:17 2017 +0000

radv: use proper maximum slice for layered view

this fixes deferred shadows with geom shaders enabled.

but I think this fix is fine by itself.

Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied at redhat.com>

---

 src/amd/vulkan/radv_device.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index 4aa6af2..a4b1295 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -1608,8 +1608,9 @@ radv_initialise_color_surface(struct radv_device *device,
 	va += iview->image->dcc_offset;
 	cb->cb_dcc_base = va >> 8;
 
+	uint32_t max_slice = iview->type == VK_IMAGE_VIEW_TYPE_3D ? iview->extent.depth : iview->layer_count;
 	cb->cb_color_view = S_028C6C_SLICE_START(iview->base_layer) |
-		S_028C6C_SLICE_MAX(iview->base_layer + iview->extent.depth - 1);
+		S_028C6C_SLICE_MAX(iview->base_layer + max_slice - 1);
 
 	cb->micro_tile_mode = iview->image->surface.micro_tile_mode;
 	pitch_tile_max = level_info->nblk_x / 8 - 1;
@@ -1761,8 +1762,9 @@ radv_initialise_ds_surface(struct radv_device *device,
 	z_offs += iview->image->surface.level[level].offset;
 	s_offs += iview->image->surface.stencil_level[level].offset;
 
+	uint32_t max_slice = iview->type == VK_IMAGE_VIEW_TYPE_3D ? iview->extent.depth : iview->layer_count;
 	ds->db_depth_view = S_028008_SLICE_START(iview->base_layer) |
-		S_028008_SLICE_MAX(iview->base_layer + iview->extent.depth - 1);
+		S_028008_SLICE_MAX(iview->base_layer + max_slice - 1);
 	ds->db_depth_info = S_02803C_ADDR5_SWIZZLE_MASK(1);
 	ds->db_z_info = S_028040_FORMAT(format) | S_028040_ZRANGE_PRECISION(1);
 




More information about the mesa-commit mailing list