[Mesa-dev] [PATCH] radv: Don't allow fmask swizzling for shareable images.

Bas Nieuwenhuizen bas at basnieuwenhuizen.nl
Mon Aug 7 21:37:34 UTC 2017


Also adds an assert because you never know how the winsys changes, and
multiprocess format differences are annoying.

Fixes: 1e696b962b7 "radv: add separate fmask tile swizzle counter."
---
 src/amd/vulkan/radv_image.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/amd/vulkan/radv_image.c b/src/amd/vulkan/radv_image.c
index 1ccd4a463f0..7e59142bf30 100644
--- a/src/amd/vulkan/radv_image.c
+++ b/src/amd/vulkan/radv_image.c
@@ -616,7 +616,8 @@ radv_image_get_fmask_info(struct radv_device *device,
 	info.samples = 1;
 	fmask.flags = image->surface.flags | RADEON_SURF_FMASK;
 
-	info.surf_index = &device->fmask_mrt_offset_counter;
+	if (!image->shareable);
+		info.surf_index = &device->fmask_mrt_offset_counter;
 
 	/* Force 2D tiling if it wasn't set. This may occur when creating
 	 * FMASK for MSAA resolve on R6xx. On R6xx, the single-sample
@@ -649,6 +650,8 @@ radv_image_get_fmask_info(struct radv_device *device,
 	out->tile_swizzle = fmask.tile_swizzle;
 	out->alignment = MAX2(256, fmask.surf_alignment);
 	out->size = fmask.surf_size;
+
+	assert(!out->tile_swizzle || !image->shareable);
 }
 
 static void
-- 
2.13.4



More information about the mesa-dev mailing list