This currently causes severe performance problems in Remnant 2 and
Alan Wake 2.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Fixes: 28ebe62af2cb ("radv: enable mesh shader gs_fast_launch=2 and multi-row export")
Gitlab: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10071
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26090>
(cherry picked from commit
2011b678c538b451eef5a1986adee7e25d6ee04f)
"description": "radv: disable gs_fast_launch=2 by default",
"nominated": true,
"nomination_type": 1,
- "resolution": 0,
+ "resolution": 1,
"main_sha": null,
"because_sha": "28ebe62af2cb38f73790f31dce4b0448268eb2e1",
"notes": null
enable wave64 for ray tracing shaders (GFX10+)
``video_decode``
enable experimental video decoding support
+ ``gsfastlaunch2``
+ use GS_FAST_LAUNCH=2 for Mesh shaders (GFX11+)
.. envvar:: RADV_TEX_ANISO
RADV_PERFTEST_NGG_STREAMOUT = 1u << 11,
RADV_PERFTEST_VIDEO_DECODE = 1u << 12,
RADV_PERFTEST_DMA_SHADERS = 1u << 13,
+ RADV_PERFTEST_GS_FAST_LAUNCH_2 = 1u << 14,
};
bool radv_init_trace(struct radv_device *device);
device->pbb_allowed =
device->physical_device->rad_info.gfx_level >= GFX9 && !(device->instance->debug_flags & RADV_DEBUG_NOBINNING);
- device->mesh_fast_launch_2 = device->physical_device->rad_info.gfx_level >= GFX11;
+ device->mesh_fast_launch_2 = (device->instance->perftest_flags & RADV_PERFTEST_GS_FAST_LAUNCH_2) &&
+ device->physical_device->rad_info.gfx_level >= GFX11;
/* The maximum number of scratch waves. Scratch space isn't divided
* evenly between CUs. The number is only a function of the number of CUs.
{"ngg_streamout", RADV_PERFTEST_NGG_STREAMOUT},
{"video_decode", RADV_PERFTEST_VIDEO_DECODE},
{"dmashaders", RADV_PERFTEST_DMA_SHADERS},
+ {"gsfastlaunch2", RADV_PERFTEST_GS_FAST_LAUNCH_2},
{NULL, 0}};
const char *
key.vertex_robustness1 = 1u;
}
+ for (uint32_t i = 0; i < num_stages; i++) {
+ if (stages[i].stage == VK_SHADER_STAGE_MESH_BIT_EXT && device->mesh_fast_launch_2)
+ key.mesh_fast_launch_2 = 1u;
+ }
+
return key;
}
uint32_t mesh_shader_queries : 1;
uint32_t vertex_robustness1 : 1;
+ uint32_t mesh_fast_launch_2 : 1;
struct radv_shader_stage_key stage_info[MESA_VULKAN_SHADER_STAGES];