radv: Add workaround to allow sparse binding on gfx queues.

For working around improper usage of sparse in DOOM Eternal.

When fully explicit sync sparse binding is implemented, this path will
remain implicit sync to also deal with the improper semaphore usage.
radv_queue_submit_bind_sparse_memory will likely get a bool parameter to
control explicit / implicit sync in that case.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26464>
This commit is contained in:
Tatsuyuki Ishi
2023-12-02 14:17:27 +09:00
committed by Marge Bot
parent c1229db1a8
commit b2e8095d6d
6 changed files with 28 additions and 2 deletions

View File

@@ -152,6 +152,7 @@ static const driOptionDescription radv_dri_options[] = {
DRI_CONF_RADV_TEX_NON_UNIFORM(false)
DRI_CONF_RADV_FLUSH_BEFORE_TIMESTAMP_WRITE(false)
DRI_CONF_RADV_RT_WAVE64(false)
DRI_CONF_RADV_LEGACY_SPARSE_BINDING(false)
DRI_CONF_DUAL_COLOR_BLEND_BY_LOCATION(false)
DRI_CONF_RADV_OVERRIDE_GRAPHICS_SHADER_VERSION(0)
DRI_CONF_RADV_OVERRIDE_COMPUTE_SHADER_VERSION(0)
@@ -215,6 +216,8 @@ radv_init_dri_options(struct radv_instance *instance)
instance->dual_color_blend_by_location = driQueryOptionb(&instance->dri_options, "dual_color_blend_by_location");
instance->legacy_sparse_binding = driQueryOptionb(&instance->dri_options, "radv_legacy_sparse_binding");
instance->override_graphics_shader_version =
driQueryOptioni(&instance->dri_options, "radv_override_graphics_shader_version");
instance->override_compute_shader_version =