mirror of https://gitlab.freedesktop.org/mesa/mesa
radv: enable VK_EXT_shader_object by default
This has been a long and painful extension to implement but finally RADV has support for it on all supported generations. It's passing VKCTS and GLCTS through Zink but the number of application using ESO is currently very limited. This adds RADV_DEBUG=noeso to disable it for debugging purposes. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28374>
This commit is contained in:
parent
6bf80841a8
commit
74955dbed7
|
@ -1279,6 +1279,8 @@ RADV driver environment variables
|
|||
disable Delta Color Compression (DCC) on displayable images
|
||||
``nodynamicbounds``
|
||||
do not check OOB access for dynamic descriptors
|
||||
``noeso``
|
||||
disable VK_EXT_shader_object
|
||||
``nofastclears``
|
||||
disable fast color/depthstencil clears
|
||||
``nofmask``
|
||||
|
@ -1378,8 +1380,6 @@ RADV driver environment variables
|
|||
enable wave64 for ray tracing shaders (GFX10-10.3)
|
||||
``sam``
|
||||
enable optimizations to move more driver internal objects to VRAM.
|
||||
``shader_object``
|
||||
enable experimental implementation of VK_EXT_shader_object
|
||||
``transfer_queue``
|
||||
enable experimental transfer queue support (GFX9+, not yet spec compliant)
|
||||
``video_decode``
|
||||
|
|
|
@ -619,7 +619,7 @@ Khronos extensions that are not part of any Vulkan version:
|
|||
VK_EXT_shader_atomic_float DONE (anv, hasvk, lvp, radv)
|
||||
VK_EXT_shader_atomic_float2 DONE (anv, lvp, radv)
|
||||
VK_EXT_shader_image_atomic_int64 DONE (nvk, radv)
|
||||
VK_EXT_shader_object DONE (lvp, nvk)
|
||||
VK_EXT_shader_object DONE (lvp, nvk, radv)
|
||||
VK_EXT_shader_stencil_export DONE (anv, lvp, radv, tu, vn)
|
||||
VK_EXT_shader_subgroup_ballot DONE (anv, dzn, hasvk, lvp, nvk, radv, vn)
|
||||
VK_EXT_shader_subgroup_vote DONE (anv, dzn, hasvk, lvp, nvk, radv)
|
||||
|
|
|
@ -15,3 +15,4 @@ alphaToOne/extendedDynamicState3AlphaToOneEnable on RADV
|
|||
VK_EXT_device_address_binding_report on RADV
|
||||
VK_EXT_external_memory_dma_buf for lavapipe
|
||||
VK_EXT_queue_family_foreign for lavapipe
|
||||
VK_EXT_shader_object on RADV
|
||||
|
|
|
@ -172,7 +172,6 @@ vkcts-tahiti-valve:
|
|||
B2C_TIMEOUT_BOOT_MINUTES: 350
|
||||
B2C_TIMEOUT_OVERALL_MINUTES: 350
|
||||
B2C_TIMEOUT_BOOT_RETRIES: 0
|
||||
RADV_PERFTEST: shader_object
|
||||
|
||||
vkcts-polaris10-valve:
|
||||
extends:
|
||||
|
@ -184,7 +183,6 @@ vkcts-polaris10-valve:
|
|||
GPU_VERSION: radv-polaris10-aco
|
||||
B2C_TIMEOUT_BOOT_MINUTES: 70
|
||||
B2C_TIMEOUT_OVERALL_MINUTES: 70
|
||||
RADV_PERFTEST: shader_object
|
||||
|
||||
vkcts-vega10-valve:
|
||||
extends:
|
||||
|
@ -196,7 +194,6 @@ vkcts-vega10-valve:
|
|||
GPU_VERSION: radv-vega10-aco
|
||||
B2C_TIMEOUT_BOOT_MINUTES: 70
|
||||
B2C_TIMEOUT_OVERALL_MINUTES: 70
|
||||
RADV_PERFTEST: shader_object
|
||||
|
||||
vkcts-renoir-valve:
|
||||
extends:
|
||||
|
@ -208,7 +205,6 @@ vkcts-renoir-valve:
|
|||
GPU_VERSION: radv-renoir-aco
|
||||
B2C_TIMEOUT_BOOT_MINUTES: 130
|
||||
B2C_TIMEOUT_OVERALL_MINUTES: 130
|
||||
RADV_PERFTEST: shader_object
|
||||
|
||||
vkcts-navi10-valve:
|
||||
parallel: 2
|
||||
|
@ -218,7 +214,6 @@ vkcts-navi10-valve:
|
|||
- .radv-valve-manual-rules
|
||||
variables:
|
||||
GPU_VERSION: radv-navi10-aco
|
||||
RADV_PERFTEST: shader_object
|
||||
|
||||
vkcts-navi21-valve:
|
||||
timeout: 35m
|
||||
|
@ -231,7 +226,6 @@ vkcts-navi21-valve:
|
|||
GPU_VERSION: radv-navi21-aco
|
||||
B2C_TIMEOUT_BOOT_MINUTES: 30
|
||||
B2C_TIMEOUT_OVERALL_MINUTES: 30
|
||||
RADV_PERFTEST: shader_object
|
||||
|
||||
# Disabled due to its extremelly-broken nature
|
||||
.vkcts-navi21-llvm-valve:
|
||||
|
@ -252,7 +246,6 @@ vkcts-vangogh-valve:
|
|||
timeout: 2h 10m
|
||||
variables:
|
||||
GPU_VERSION: radv-vangogh-aco
|
||||
RADV_PERFTEST: shader_object
|
||||
|
||||
glcts-vangogh-valve:
|
||||
extends:
|
||||
|
@ -273,7 +266,6 @@ vkcts-navi31-valve:
|
|||
variables:
|
||||
GPU_VERSION: radv-navi31-aco
|
||||
RADV_DEBUG: nomeshshader # Disable mesh shaders until task shaders stop hanging
|
||||
RADV_PERFTEST: shader_object
|
||||
|
||||
############### Fossilize
|
||||
radv-fossils:
|
||||
|
|
|
@ -58,6 +58,7 @@ enum {
|
|||
RADV_DEBUG_NO_MESH_SHADER = 1ull << 42,
|
||||
RADV_DEBUG_NO_NGG_GS = 1ull << 43,
|
||||
RADV_DEBUG_NO_GS_FAST_LAUNCH_2 = 1ull << 44,
|
||||
RADV_DEBUG_NO_ESO = 1ull << 45,
|
||||
};
|
||||
|
||||
enum {
|
||||
|
@ -75,9 +76,8 @@ enum {
|
|||
RADV_PERFTEST_VIDEO_DECODE = 1u << 11,
|
||||
RADV_PERFTEST_DMA_SHADERS = 1u << 12,
|
||||
RADV_PERFTEST_TRANSFER_QUEUE = 1u << 13,
|
||||
RADV_PERFTEST_SHADER_OBJECT = 1u << 14,
|
||||
RADV_PERFTEST_NIR_CACHE = 1u << 15,
|
||||
RADV_PERFTEST_RT_WAVE_32 = 1u << 16,
|
||||
RADV_PERFTEST_NIR_CACHE = 1u << 14,
|
||||
RADV_PERFTEST_RT_WAVE_32 = 1u << 15,
|
||||
};
|
||||
|
||||
bool radv_init_trace(struct radv_device *device);
|
||||
|
|
|
@ -72,6 +72,7 @@ static const struct debug_control radv_debug_options[] = {{"nofastclears", RADV_
|
|||
{"nomeshshader", RADV_DEBUG_NO_MESH_SHADER},
|
||||
{"nongg_gs", RADV_DEBUG_NO_NGG_GS},
|
||||
{"nogsfastlaunch2", RADV_DEBUG_NO_GS_FAST_LAUNCH_2},
|
||||
{"noeso", RADV_DEBUG_NO_ESO},
|
||||
{NULL, 0}};
|
||||
|
||||
const char *
|
||||
|
@ -95,7 +96,6 @@ static const struct debug_control radv_perftest_options[] = {{"localbos", RADV_P
|
|||
{"video_decode", RADV_PERFTEST_VIDEO_DECODE},
|
||||
{"dmashaders", RADV_PERFTEST_DMA_SHADERS},
|
||||
{"transfer_queue", RADV_PERFTEST_TRANSFER_QUEUE},
|
||||
{"shader_object", RADV_PERFTEST_SHADER_OBJECT},
|
||||
{"nircache", RADV_PERFTEST_NIR_CACHE},
|
||||
{"rtwave32", RADV_PERFTEST_RT_WAVE_32},
|
||||
{NULL, 0}};
|
||||
|
|
|
@ -99,13 +99,6 @@ radv_calibrated_timestamps_enabled(const struct radv_physical_device *pdev)
|
|||
return RADV_SUPPORT_CALIBRATED_TIMESTAMPS && !(pdev->info.family == CHIP_RAVEN || pdev->info.family == CHIP_RAVEN2);
|
||||
}
|
||||
|
||||
static bool
|
||||
radv_shader_object_enabled(const struct radv_physical_device *pdev)
|
||||
{
|
||||
const struct radv_instance *instance = radv_physical_device_instance(pdev);
|
||||
return !pdev->use_llvm && instance->perftest_flags & RADV_PERFTEST_SHADER_OBJECT;
|
||||
}
|
||||
|
||||
bool
|
||||
radv_enable_rt(const struct radv_physical_device *pdev, bool rt_pipelines)
|
||||
{
|
||||
|
@ -655,7 +648,7 @@ radv_physical_device_get_supported_extensions(const struct radv_physical_device
|
|||
.EXT_shader_demote_to_helper_invocation = true,
|
||||
.EXT_shader_image_atomic_int64 = true,
|
||||
.EXT_shader_module_identifier = true,
|
||||
.EXT_shader_object = radv_shader_object_enabled(pdev),
|
||||
.EXT_shader_object = !pdev->use_llvm && !(instance->debug_flags & RADV_DEBUG_NO_ESO),
|
||||
.EXT_shader_stencil_export = true,
|
||||
.EXT_shader_subgroup_ballot = true,
|
||||
.EXT_shader_subgroup_vote = true,
|
||||
|
|
|
@ -110,7 +110,6 @@ zink-radv-polaris10-valve:
|
|||
variables:
|
||||
GPU_VERSION: zink-radv-polaris10
|
||||
ZINK_DEBUG: quiet
|
||||
RADV_PERFTEST: shader_object
|
||||
|
||||
zink-radv-navi10-valve:
|
||||
extends:
|
||||
|
@ -121,7 +120,6 @@ zink-radv-navi10-valve:
|
|||
variables:
|
||||
B2C_TIMEOUT_OVERALL_MINUTES: 30
|
||||
GPU_VERSION: zink-radv-navi10
|
||||
RADV_PERFTEST: shader_object
|
||||
|
||||
zink-radv-vangogh-valve:
|
||||
timeout: 35m
|
||||
|
@ -137,7 +135,6 @@ zink-radv-vangogh-valve:
|
|||
B2C_TIMEOUT_BOOT_MINUTES: 30
|
||||
B2C_TIMEOUT_OVERALL_MINUTES: 30
|
||||
FDO_CI_CONCURRENT: 6
|
||||
RADV_PERFTEST: shader_object
|
||||
# Override the list of tags to drop `priority:low`
|
||||
tags:
|
||||
- farm:$RUNNER_FARM_LOCATION
|
||||
|
@ -153,4 +150,3 @@ zink-radv-navi31-valve:
|
|||
GPU_VERSION: zink-radv-navi31
|
||||
B2C_TIMEOUT_BOOT_MINUTES: 75
|
||||
B2C_TIMEOUT_OVERALL_MINUTES: 75
|
||||
RADV_PERFTEST: shader_object
|
||||
|
|
Loading…
Reference in New Issue