spirv: Add initial subgroup support
[mesa.git] / src / compiler / shader_info.h
index c9140ba97520d7250afe35e520e4ac2e69c2d618..0ba32349d0329a1ab98b72d481049d629f6164e4 100644 (file)
@@ -26,6 +26,7 @@
 #define SHADER_INFO_H
 
 #include "shader_enums.h"
+#include <stdint.h>
 
 #ifdef __cplusplus
 extern "C" {
@@ -35,6 +36,7 @@ struct spirv_supported_capabilities {
    bool float64;
    bool image_ms_array;
    bool tessellation;
+   bool device_group;
    bool draw_parameters;
    bool image_read_without_format;
    bool image_write_without_format;
@@ -42,6 +44,8 @@ struct spirv_supported_capabilities {
    bool multiview;
    bool variable_pointers;
    bool storage_16bit;
+   bool shader_viewport_index_layer;
+   bool subgroup_basic;
 };
 
 typedef struct shader_info {
@@ -66,8 +70,6 @@ typedef struct shader_info {
 
    /* Which inputs are actually read */
    uint64_t inputs_read;
-   /* Which inputs are actually read and are double */
-   uint64_t double_inputs_read;
    /* Which outputs are actually written */
    uint64_t outputs_written;
    /* Which outputs are actually read */
@@ -108,6 +110,14 @@ typedef struct shader_info {
    bool has_transform_feedback_varyings;
 
    union {
+      struct {
+         /* Which inputs are doubles */
+         uint64_t double_inputs;
+
+         /* Which inputs are actually read and are double */
+         uint64_t double_inputs_read;
+      } vs;
+
       struct {
          /** The number of vertices recieves per input primitive */
          unsigned vertices_in;
@@ -152,6 +162,8 @@ typedef struct shader_info {
 
          bool post_depth_coverage;
 
+         bool pixel_center_integer;
+
          /** gl_FragDepth layout for ARB_conservative_depth. */
          enum gl_frag_depth_layout depth_layout;
       } fs;