spirv: s/uint/unsigned/ to fix MSVC build
[mesa.git] / src / compiler / spirv / nir_spirv.h
index f129a205764a683ae897ed0669f9fd0e4ace5221..d2766abb7f974cf4075df108f3b3d0e7a62f062c 100644 (file)
@@ -28,7 +28,8 @@
 #ifndef _NIR_SPIRV_H_
 #define _NIR_SPIRV_H_
 
-#include "nir/nir.h"
+#include "compiler/nir/nir.h"
+#include "compiler/shader_info.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -40,6 +41,7 @@ struct nir_spirv_specialization {
       uint32_t data32;
       uint64_t data64;
    };
+   bool defined_on_module;
 };
 
 enum nir_spirv_debug_level {
@@ -49,17 +51,15 @@ enum nir_spirv_debug_level {
 };
 
 struct spirv_to_nir_options {
-   struct {
-      bool float64;
-      bool image_ms_array;
-      bool tessellation;
-      bool draw_parameters;
-      bool image_read_without_format;
-      bool image_write_without_format;
-      bool int64;
-      bool multiview;
-      bool variable_pointers;
-   } caps;
+   /* Whether or not to lower all workgroup variable access to offsets
+    * up-front.  This means you will _shared intrinsics instead of _var
+    * for workgroup data access.
+    *
+    * This is currently required for full variable pointers support.
+    */
+   bool lower_workgroup_access_to_offsets;
+
+   struct spirv_supported_capabilities caps;
 
    struct {
       void (*func)(void *private_data,
@@ -70,6 +70,10 @@ struct spirv_to_nir_options {
    } debug;
 };
 
+bool gl_spirv_validation(const uint32_t *words, size_t word_count,
+                         struct nir_spirv_specialization *spec, unsigned num_spec,
+                         gl_shader_stage stage, const char *entry_point_name);
+
 nir_function *spirv_to_nir(const uint32_t *words, size_t word_count,
                            struct nir_spirv_specialization *specializations,
                            unsigned num_specializations,