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