diff --git a/renderdoc/driver/vulkan/vk_layer.cpp b/renderdoc/driver/vulkan/vk_layer.cpp index 442111d33..e8374098a 100644 --- a/renderdoc/driver/vulkan/vk_layer.cpp +++ b/renderdoc/driver/vulkan/vk_layer.cpp @@ -108,6 +108,11 @@ class VulkanHook : LibraryHook Process::RegisterEnvironmentModification( EnvironmentModification(EnvMod::Set, EnvSep::NoSep, "DISABLE_RTSS_LAYER", "1")); + // mesa device select layer crashes when it calls GPDP2 inside vkCreateInstance, which fails on + // the current loader. + Process::RegisterEnvironmentModification( + EnvironmentModification(EnvMod::Set, EnvSep::NoSep, "NODEVICE_SELECT", "1")); + #if ENABLED(RDOC_WIN32) // on windows support self-hosted capture by checking our filename and tweaking the env var we // set diff --git a/renderdoc/driver/vulkan/vk_replay.cpp b/renderdoc/driver/vulkan/vk_replay.cpp index 8254b43c7..9222a8453 100644 --- a/renderdoc/driver/vulkan/vk_replay.cpp +++ b/renderdoc/driver/vulkan/vk_replay.cpp @@ -4144,6 +4144,11 @@ ReplayStatus Vulkan_CreateReplayDevice(RDCFile *rdc, const ReplayOptions &opts, Process::RegisterEnvironmentModification( EnvironmentModification(EnvMod::Set, EnvSep::NoSep, "DISABLE_VULKAN_OBS_CAPTURE", "1")); + // mesa device select layer crashes when it calls GPDP2 inside vkCreateInstance, which fails on + // the current loader. + Process::RegisterEnvironmentModification( + EnvironmentModification(EnvMod::Set, EnvSep::NoSep, "NODEVICE_SELECT", "1")); + Process::ApplyEnvironmentModification(); void *module = LoadVulkanLibrary();