tu/lrz: Check for TU_DEBUG(nolrz) late

Currently the `nolrz` TU_DEBUG options are only checked during
device creation and image creation, respectively. This means that if
the options are enabled after the device/image is created, LRZ
will still be used. Similarly, if the options are disabled after the
device/image is created, LRZ will still be disabled.

This change moves the checks to the point where the LRZ is actually
used, allowing for runtime toggling of LRZ.

Signed-off-by: Mark Collins <mark@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32906>
This commit is contained in:
Mark Collins 2025-01-06 18:09:48 +00:00 committed by Marge Bot
parent 18ac78e5b4
commit a177788f6a
3 changed files with 3 additions and 3 deletions

View file

@ -2742,7 +2742,7 @@ tu_CreateDevice(VkPhysicalDevice physicalDevice,
physical_device->info->a6xx.has_z24uint_s8uint &&
(!border_color_without_format ||
physical_device->instance->disable_d24s8_border_color_workaround);
device->use_lrz = !TU_DEBUG(NOLRZ);
device->use_lrz = !TU_DEBUG_ENV(NOLRZ);
tu_gpu_tracepoint_config_variable();

View file

@ -309,7 +309,7 @@ tu_lrz_begin_renderpass(struct tu_cmd_buffer *cmd)
/* Track LRZ valid state */
tu_lrz_begin_resumed_renderpass<CHIP>(cmd);
if (!cmd->state.lrz.valid) {
if (!cmd->state.lrz.valid || TU_DEBUG(NOLRZ)) {
tu6_write_lrz_cntl<CHIP>(cmd, &cmd->cs, {});
tu6_emit_lrz_buffer<CHIP>(&cmd->cs, NULL);
}

View file

@ -57,7 +57,7 @@ static const struct debug_control tu_debug_options[] = {
*/
const uint32_t tu_runtime_debug_flags =
TU_DEBUG_NIR | TU_DEBUG_NOBIN | TU_DEBUG_SYSMEM | TU_DEBUG_GMEM |
TU_DEBUG_FORCEBIN | TU_DEBUG_LAYOUT | TU_DEBUG_NOLRZFC |
TU_DEBUG_FORCEBIN | TU_DEBUG_LAYOUT | TU_DEBUG_NOLRZ | TU_DEBUG_NOLRZFC |
TU_DEBUG_PERF | TU_DEBUG_FLUSHALL | TU_DEBUG_SYNCDRAW |
TU_DEBUG_RAST_ORDER | TU_DEBUG_UNALIGNED_STORE |
TU_DEBUG_LOG_SKIP_GMEM_OPS | TU_DEBUG_3D_LOAD | TU_DEBUG_FDM |