X-Git-Url: https://git.libre-soc.org/?p=mesa.git;a=blobdiff_plain;f=src%2Fcompiler%2Fshader_info.h;h=760bc5556cbee826e257bfbbb78e84b868665c20;hp=2ad86fe0493ee4d0d13e229d6d2c8f590b44d83d;hb=7980f3e519f91508787b9dab3bc1e79169a77c48;hpb=46b428074f427ddff37d2f92a3ac0f0468d253be diff --git a/src/compiler/shader_info.h b/src/compiler/shader_info.h index 2ad86fe0493..760bc5556cb 100644 --- a/src/compiler/shader_info.h +++ b/src/compiler/shader_info.h @@ -42,7 +42,9 @@ struct spirv_supported_capabilities { bool descriptor_indexing; bool device_group; bool draw_parameters; + bool float32_atomic_add; bool float64; + bool float64_atomic_add; bool fragment_shader_sample_interlock; bool fragment_shader_pixel_interlock; bool geometry_streams; @@ -116,8 +118,6 @@ typedef struct shader_info { uint8_t num_ssbos; /* Number of images used by this shader */ uint8_t num_images; - /* Index of the last MSAA image. */ - int8_t last_msaa_image; /* Which inputs are actually read */ uint64_t inputs_read; @@ -152,6 +152,10 @@ typedef struct shader_info { /** Bitfield of which images are used */ uint32_t images_used; + /** Bitfield of which images are buffers. */ + uint32_t image_buffers; + /** Bitfield of which images are MSAA. */ + uint32_t msaa_images; /* SPV_KHR_float_controls: execution mode for floating point ops */ uint16_t float_controls_execution_mode; @@ -189,6 +193,11 @@ typedef struct shader_info { /* Whether flrp has been lowered. */ bool flrp_lowered:1; + /* Whether nir_lower_io has been called to lower derefs. + * nir_variables for inputs and outputs might not be present in the IR. + */ + bool io_lowered:1; + /* Whether the shader writes memory, including transform feedback. */ bool writes_memory:1; @@ -230,8 +239,8 @@ typedef struct shader_info { /** Whether or not this shader uses EndPrimitive */ bool uses_end_primitive:1; - /** Whether or not this shader uses non-zero streams */ - bool uses_streams:1; + /** The streams used in this shaders (max. 4) */ + uint8_t active_stream_mask:4; } gs; struct { @@ -298,6 +307,17 @@ typedef struct shader_info { /** gl_FragDepth layout for ARB_conservative_depth. */ enum gl_frag_depth_layout depth_layout:3; + + /** + * Interpolation qualifiers for drivers that lowers color inputs + * to system values. + */ + unsigned color0_interp:3; /* glsl_interp_mode */ + bool color0_sample:1; + bool color0_centroid:1; + unsigned color1_interp:3; /* glsl_interp_mode */ + bool color1_sample:1; + bool color1_centroid:1; } fs; struct {