Mesa (main): dzn: Skip dxil validator and some Windows-only debug flags for Linux
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Jul 6 12:34:28 UTC 2022
Module: Mesa
Branch: main
Commit: 17c0888cfe325e6b620cc77dcef12ae169e2a1c7
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=17c0888cfe325e6b620cc77dcef12ae169e2a1c7
Author: Jesse Natalie <jenatali at microsoft.com>
Date: Fri Jul 1 09:06:55 2022 -0700
dzn: Skip dxil validator and some Windows-only debug flags for Linux
Reviewed-by: Boris Brezillon <boris.brezillon at collabora.com>
Reviewed-by: Bill Kristiansen <billkris at microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17340>
---
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 <stdio.h>
#include <stdlib.h>
+#ifdef _WIN32
#include <windows.h>
#include <shlobj.h>
+#endif
#include <directx/d3d12sdklayers.h>
@@ -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;
}
More information about the mesa-commit
mailing list