...and enable it for Hellblade: Senua's Sacrifice.
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23585>
DRI_CONF_RADV_TEX_NON_UNIFORM(false)
DRI_CONF_RADV_RT(false)
DRI_CONF_RADV_FLUSH_BEFORE_TIMESTAMP_WRITE(false)
+ DRI_CONF_RADV_RT_WAVE64(false)
DRI_CONF_RADV_APP_LAYER()
DRI_CONF_SECTION_END
};
instance->flush_before_timestamp_write =
driQueryOptionb(&instance->dri_options, "radv_flush_before_timestamp_write");
+
+ instance->force_rt_wave64 = driQueryOptionb(&instance->dri_options, "radv_rt_wave64");
}
static const struct vk_instance_extension_table radv_instance_extensions_supported = {
* problematic)
*/
if (!(device->instance->perftest_flags & RADV_PERFTEST_RT_WAVE_64) &&
- device->rad_info.gfx_level < GFX11)
+ !(device->instance->force_rt_wave64) && device->rad_info.gfx_level < GFX11)
device->rt_wave_size = 32;
}
bool enable_unified_heap_on_apu;
bool tex_non_uniform;
bool flush_before_timestamp_write;
+ bool force_rt_wave64;
char *app_layer;
};
<option name="radv_app_layer" value="metroexodus" />
</application>
+ <application name="Hellblade: Senua's Sacrifice" application_name_match="HellbladeGame-Win64-Shipping.exe">
+ <!-- RT shaders in Hellblade: Senua's Sacrifice cause misrenders because they assume full subgroups.
+ This is only guaranteed with wave64, so force wave64 on for this game. -->
+ <option name="radv_rt_wave64" value="true" />
+ </application>
+
<!-- OpenGL Game workarounds (zink) -->
<application name="Black Geyser: Couriers of Darkness" executable="BlackGeyser.x86_64">
<option name="radv_zero_vram" value="true" />
DRI_CONF_OPT_B(radv_flush_before_timestamp_write, def, \
"Wait for previous commands to finish before writing timestamps")
+#define DRI_CONF_RADV_RT_WAVE64(def) \
+ DRI_CONF_OPT_B(radv_rt_wave64, def, \
+ "Force wave64 in RT shaders")
+
#define DRI_CONF_RADV_APP_LAYER() DRI_CONF_OPT_S_NODEF(radv_app_layer, "Select an application layer.")
/**