From a6a6146aa91154fd31fb218bc60345bdda0d4f5d Mon Sep 17 00:00:00 2001 From: Bas Nieuwenhuizen Date: Mon, 7 Aug 2017 23:34:00 +0200 Subject: [PATCH] radv: Don't allow fmask swizzling for shareable images. 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." Reviewed-by: Dave Airlie --- 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