From 17c0888cfe325e6b620cc77dcef12ae169e2a1c7 Mon Sep 17 00:00:00 2001 From: Jesse Natalie Date: Fri, 1 Jul 2022 09:06:55 -0700 Subject: [PATCH] dzn: Skip dxil validator and some Windows-only debug flags for Linux Reviewed-by: Boris Brezillon Reviewed-by: Bill Kristiansen Part-of: --- src/microsoft/vulkan/dzn_device.c | 13 ++++++++++++- src/microsoft/vulkan/dzn_meta.c | 2 ++ src/microsoft/vulkan/dzn_pipeline.c | 2 ++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/microsoft/vulkan/dzn_device.c b/src/microsoft/vulkan/dzn_device.c index a54c0170966..f502f848a69 100644 --- a/src/microsoft/vulkan/dzn_device.c +++ b/src/microsoft/vulkan/dzn_device.c @@ -46,8 +46,10 @@ #include #include +#ifdef _WIN32 #include #include +#endif #include @@ -146,8 +148,10 @@ dzn_instance_destroy(struct dzn_instance *instance, const VkAllocationCallbacks if (!instance) return; +#ifdef _WIN32 if (instance->dxil_validator) dxil_destroy_validator(instance->dxil_validator); +#endif list_for_each_entry_safe(struct dzn_physical_device, pdev, &instance->physical_devices, link) { @@ -188,6 +192,7 @@ dzn_instance_create(const VkInstanceCreateInfo *pCreateInfo, instance->debug_flags = parse_debug_string(getenv("DZN_DEBUG"), dzn_debug_options); +#ifdef _WIN32 if (instance->debug_flags & DZN_DEBUG_DEBUGGER) { /* wait for debugger to attach... */ while (!IsDebuggerPresent()) { @@ -204,11 +209,17 @@ dzn_instance_create(const VkInstanceCreateInfo *pCreateInfo, freopen(path, "w", stdout); } } +#endif + bool missing_validator = false; +#ifdef _WIN32 instance->dxil_validator = dxil_create_validator(NULL); + missing_validator = !instance->dxil_validator; +#endif + instance->d3d12.serialize_root_sig = d3d12_get_serialize_root_sig(); - if (!instance->dxil_validator || + if (missing_validator || !instance->d3d12.serialize_root_sig) { dzn_instance_destroy(instance, pAllocator); return vk_error(NULL, VK_ERROR_INITIALIZATION_FAILED); diff --git a/src/microsoft/vulkan/dzn_meta.c b/src/microsoft/vulkan/dzn_meta.c index d04c6c23be5..0afb967737f 100644 --- a/src/microsoft/vulkan/dzn_meta.c +++ b/src/microsoft/vulkan/dzn_meta.c @@ -48,6 +48,7 @@ dzn_meta_compile_shader(struct dzn_device *device, nir_shader *nir, ASSERTED bool ret = nir_to_dxil(nir, &opts, &dxil_blob); assert(ret); +#ifdef _WIN32 char *err = NULL; bool res = dxil_validate_module(instance->dxil_validator, dxil_blob.data, @@ -79,6 +80,7 @@ dzn_meta_compile_shader(struct dzn_device *device, nir_shader *nir, ralloc_free(err); } assert(res); +#endif void *data; size_t size; diff --git a/src/microsoft/vulkan/dzn_pipeline.c b/src/microsoft/vulkan/dzn_pipeline.c index e1137c95446..24439f523f7 100644 --- a/src/microsoft/vulkan/dzn_pipeline.c +++ b/src/microsoft/vulkan/dzn_pipeline.c @@ -367,6 +367,7 @@ dzn_pipeline_compile_shader(struct dzn_device *device, if (result != VK_SUCCESS) return result; +#ifdef _WIN32 char *err; bool res = dxil_validate_module(instance->dxil_validator, (void *)slot->pShaderBytecode, @@ -397,6 +398,7 @@ dzn_pipeline_compile_shader(struct dzn_device *device, } return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY); } +#endif return VK_SUCCESS; }