radv: Enable EXT_mesh_shader by default on GFX10.3.

Only enable mesh+task shaders when IBs and gang submit are enabled.
We won't support gang submit with noibs.

Also remove the RADV_PERFTEST=ext_ms option.
Side note, GFX11 task/mesh support is still a TODO.

Don't skip the CTS tests which require GFX->ACE synchronization.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20010>
This commit is contained in:
Timur Kristóf 2022-09-21 10:51:16 -07:00 committed by Marge Bot
parent b8e4cc73bf
commit aace38c2d8
4 changed files with 7 additions and 14 deletions

View file

@ -265,7 +265,7 @@ radeonsi-raven-va:amd64:
- .deqp-test-valve
variables:
DEQP_VER: vk
RADV_PERFTEST: nv_ms,ext_ms
RADV_PERFTEST: nv_ms
# VKCTS never finishes on gfx7 due to all the GPU resets and hangs.
# Hence, disable it for now.

View file

@ -50,10 +50,3 @@ dEQP-VK.graphicsfuzz.while-inside-switch
dEQP-VK.graphicsfuzz.spv-stable-maze-O-dead-code
dEQP-VK.graphicsfuzz.spv-stable-maze-O-memory-accesses
dEQP-VK.spirv_assembly.instruction.graphics.16bit_storage.uniform_32struct_to_16struct.uniform_buffer_block_geom
# These tests create an ACE cmdbuf which waits for GFX, thus can cause
# a deadlock when executed in parallel without gang submit.
dEQP-VK.mesh_shader.nv.synchronization.*
dEQP-VK.mesh_shader.ext.synchronization.*
dEQP-VK.mesh_shader.nv.misc.many_task*
dEQP-VK.mesh_shader.ext.misc.many_task*

View file

@ -85,8 +85,7 @@ enum {
RADV_PERFTEST_NV_MS = 1u << 11,
RADV_PERFTEST_RT_WAVE_64 = 1u << 12,
RADV_PERFTEST_GPL = 1u << 13,
RADV_PERFTEST_EXT_MS = 1u << 14,
RADV_PERFTEST_NGG_STREAMOUT = 1u << 15,
RADV_PERFTEST_NGG_STREAMOUT = 1u << 14,
};
bool radv_init_trace(struct radv_device *device);

View file

@ -413,7 +413,10 @@ radv_vrs_attachment_enabled(const struct radv_physical_device *pdevice)
static bool
radv_taskmesh_enabled(const struct radv_physical_device *pdevice)
{
return false;
/* TODO: implement task/mesh on GFX11 */
return pdevice->use_ngg && !pdevice->use_llvm && pdevice->rad_info.gfx_level == GFX10_3 &&
!(pdevice->instance->debug_flags & (RADV_DEBUG_NO_COMPUTE_QUEUE | RADV_DEBUG_NO_IBS)) &&
pdevice->rad_info.has_gang_submit;
}
static bool
@ -600,8 +603,7 @@ radv_physical_device_get_supported_extensions(const struct radv_physical_device
.EXT_load_store_op_none = true,
.EXT_memory_budget = true,
.EXT_memory_priority = true,
.EXT_mesh_shader =
radv_taskmesh_enabled(device) && device->instance->perftest_flags & RADV_PERFTEST_EXT_MS,
.EXT_mesh_shader = radv_taskmesh_enabled(device),
.EXT_multi_draw = true,
.EXT_mutable_descriptor_type = true, /* Trivial promotion from VALVE. */
.EXT_non_seamless_cube_map = true,
@ -1099,7 +1101,6 @@ static const struct debug_control radv_perftest_options[] = {{"localbos", RADV_P
{"nv_ms", RADV_PERFTEST_NV_MS},
{"rtwave64", RADV_PERFTEST_RT_WAVE_64},
{"gpl", RADV_PERFTEST_GPL},
{"ext_ms", RADV_PERFTEST_EXT_MS},
{"ngg_streamout", RADV_PERFTEST_NGG_STREAMOUT},
{NULL, 0}};