turnip: Add "unaligned_store" debug option to better test gmem stores

Unaligned store is incredibly rare in CTS, we have to force it to
actually test it.

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15532>
This commit is contained in:
Danylo Piliaiev 2022-03-24 15:37:56 +02:00 committed by Marge Bot
parent e255305e84
commit 6c18602164
3 changed files with 6 additions and 0 deletions

View File

@ -2947,6 +2947,10 @@ tu_store_gmem_attachment(struct tu_cmd_buffer *cmd,
(x2 % phys_dev->info->gmem_align_w && x2 != iview->view.width) ||
y1 % phys_dev->info->gmem_align_h || (y2 % phys_dev->info->gmem_align_h && need_y2_align);
/* Unaligned store is incredibly rare in CTS, we have to force it to test. */
if (unlikely(cmd->device->physical_device->instance->debug_flags & TU_DEBUG_UNALIGNED_STORE))
unaligned = true;
/* D32_SFLOAT_S8_UINT is quite special format: it has two planes,
* one for depth and other for stencil. When resolving a MSAA
* D32_SFLOAT_S8_UINT to S8_UINT, we need to take that into account.

View File

@ -337,6 +337,7 @@ static const struct debug_control tu_debug_options[] = {
{ "syncdraw", TU_DEBUG_SYNCDRAW },
{ "dontcare_as_load", TU_DEBUG_DONT_CARE_AS_LOAD },
{ "rast_order", TU_DEBUG_RAST_ORDER },
{ "unaligned_store", TU_DEBUG_UNALIGNED_STORE },
{ NULL, 0 }
};

View File

@ -267,6 +267,7 @@ enum tu_debug_flags
TU_DEBUG_DONT_CARE_AS_LOAD = 1 << 12,
TU_DEBUG_GMEM = 1 << 13,
TU_DEBUG_RAST_ORDER = 1 << 14,
TU_DEBUG_UNALIGNED_STORE = 1 << 15,
};
struct tu_instance