diff --git a/src/microsoft/vulkan/dzn_device.c b/src/microsoft/vulkan/dzn_device.c index e037703f626..130298cb61b 100644 --- a/src/microsoft/vulkan/dzn_device.c +++ b/src/microsoft/vulkan/dzn_device.c @@ -186,6 +186,7 @@ static const struct debug_control dzn_debug_options[] = { { "redirects", DZN_DEBUG_REDIRECTS }, { "bindless", DZN_DEBUG_BINDLESS }, { "nobindless", DZN_DEBUG_NO_BINDLESS }, + { "experimental", DZN_DEBUG_EXPERIMENTAL }, { NULL, 0 } }; @@ -1806,8 +1807,10 @@ dzn_instance_create(const VkInstanceCreateInfo *pCreateInfo, bool missing_validator = false; #ifdef _WIN32 - instance->dxil_validator = dxil_create_validator(NULL); - missing_validator = !instance->dxil_validator; + if ((instance->debug_flags & DZN_DEBUG_EXPERIMENTAL) == 0) { + instance->dxil_validator = dxil_create_validator(NULL); + missing_validator = !instance->dxil_validator; + } #endif if (missing_validator) { diff --git a/src/microsoft/vulkan/dzn_meta.c b/src/microsoft/vulkan/dzn_meta.c index d6736fe9304..0114e545182 100644 --- a/src/microsoft/vulkan/dzn_meta.c +++ b/src/microsoft/vulkan/dzn_meta.c @@ -79,7 +79,7 @@ dzn_meta_compile_shader(struct dzn_device *device, nir_shader *nir, if ((instance->debug_flags & DZN_DEBUG_DXIL) && (instance->debug_flags & DZN_DEBUG_INTERNAL) && - !res) { + !res && !(instance->debug_flags & DZN_DEBUG_EXPERIMENTAL)) { fprintf(stderr, "== VALIDATION ERROR =============================================\n" "%s\n" @@ -87,7 +87,7 @@ dzn_meta_compile_shader(struct dzn_device *device, nir_shader *nir, err ? err : "unknown"); ralloc_free(err); } - assert(res); + assert(res || (instance->debug_flags & DZN_DEBUG_EXPERIMENTAL)); #endif void *data; diff --git a/src/microsoft/vulkan/dzn_pipeline.c b/src/microsoft/vulkan/dzn_pipeline.c index a117dc0795e..d39758ed53f 100644 --- a/src/microsoft/vulkan/dzn_pipeline.c +++ b/src/microsoft/vulkan/dzn_pipeline.c @@ -450,7 +450,7 @@ dzn_pipeline_compile_shader(struct dzn_device *device, } } - if (!res) { + if (!res && !(instance->debug_flags & DZN_DEBUG_EXPERIMENTAL)) { if (err) { mesa_loge( "== VALIDATION ERROR =============================================\n" diff --git a/src/microsoft/vulkan/dzn_private.h b/src/microsoft/vulkan/dzn_private.h index 893851ce556..4577d08bbd7 100644 --- a/src/microsoft/vulkan/dzn_private.h +++ b/src/microsoft/vulkan/dzn_private.h @@ -1246,6 +1246,7 @@ enum dzn_debug_flags { DZN_DEBUG_REDIRECTS = 1 << 9, DZN_DEBUG_BINDLESS = 1 << 10, DZN_DEBUG_NO_BINDLESS = 1 << 11, + DZN_DEBUG_EXPERIMENTAL = 1 << 12, }; struct dzn_instance {