radv: Mitigate GPU hang on Hawaii in Dota 2 and RotTR
Mitigate a GPU hang in Dota 2 and Rise of the Tomb Raider by reducing the primitive rate for triangle lists. This workaround is not documented by AMD and may not be correct. The problem isn't well understood and needs further investigation to narrow down what the root cause is. Until then, it's better to give users something that works, even if not optimal. Cc: mesa-stable Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37885>
This commit is contained in:
@@ -6868,8 +6868,19 @@ radv_get_ia_multi_vgt_param(struct radv_cmd_buffer *cmd_buffer, bool instanced_d
|
||||
/* Hawaii hangs if instancing is enabled and WD_SWITCH_ON_EOP is 0.
|
||||
* We don't know that for indirect drawing, so treat it as
|
||||
* always problematic. */
|
||||
if (gpu_info->family == CHIP_HAWAII && (instanced_draw || indirect_draw))
|
||||
wd_switch_on_eop = true;
|
||||
if (gpu_info->family == CHIP_HAWAII) {
|
||||
if (instanced_draw || indirect_draw)
|
||||
wd_switch_on_eop = true;
|
||||
|
||||
/* Mitigate a GPU hang in Dota 2 and Rise of the Tomb Raider.
|
||||
* This workaround is not documented by AMD and may not be correct.
|
||||
* Further investigation is necessary to understand it better.
|
||||
*/
|
||||
if (topology == V_008958_DI_PT_TRILIST) {
|
||||
ia_switch_on_eop = true;
|
||||
wd_switch_on_eop = true;
|
||||
}
|
||||
}
|
||||
|
||||
/* Performance recommendation for 4 SE Gfx7-8 parts if
|
||||
* instances are smaller than a primgroup.
|
||||
|
||||
Reference in New Issue
Block a user