X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fcompiler%2Fshader_info.h;h=2e22614b75bdc82ab1f5112ca7883c73a03f8ad0;hb=5d904d27491aab489d54746bc6650b27c5927c39;hp=d13e51a47a6bbf6f82ce7eaeea5ccbfcb18bc887;hpb=531a26d5aa03d8f4499f901f040132c5f712219a;p=mesa.git diff --git a/src/compiler/shader_info.h b/src/compiler/shader_info.h index d13e51a47a6..2e22614b75b 100644 --- a/src/compiler/shader_info.h +++ b/src/compiler/shader_info.h @@ -134,12 +134,24 @@ typedef struct shader_info { /* Which patch outputs are read */ uint32_t patch_outputs_read; + /* Which inputs are read indirectly (subset of inputs_read) */ + uint64_t inputs_read_indirectly; + /* Which outputs are read or written indirectly */ + uint64_t outputs_accessed_indirectly; + /* Which patch inputs are read indirectly (subset of patch_inputs_read) */ + uint64_t patch_inputs_read_indirectly; + /* Which patch outputs are read or written indirectly */ + uint64_t patch_outputs_accessed_indirectly; + /** Bitfield of which textures are used */ uint32_t textures_used; /** Bitfield of which textures are used by texelFetch() */ uint32_t textures_used_by_txf; + /** Bitfield of which images are used */ + uint32_t images_used; + /* SPV_KHR_float_controls: execution mode for floating point ops */ uint16_t float_controls_execution_mode; @@ -176,6 +188,12 @@ typedef struct shader_info { /* Whether flrp has been lowered. */ bool flrp_lowered:1; + /* Whether the shader writes memory, including transform feedback. */ + bool writes_memory:1; + + /* Whether gl_Layer is viewport-relative */ + bool layer_viewport_relative:1; + union { struct { /* Which inputs are doubles */ @@ -217,6 +235,7 @@ typedef struct shader_info { struct { bool uses_discard:1; + bool uses_demote:1; /** * True if this fragment shader requires helper invocations. This @@ -282,6 +301,7 @@ typedef struct shader_info { struct { uint16_t local_size[3]; + uint16_t max_variable_local_size; bool local_size_variable:1; uint8_t user_data_components_amd:3; @@ -317,6 +337,16 @@ typedef struct shader_info { /** Is the vertex order counterclockwise? */ bool ccw:1; bool point_mode:1; + + /* Bit mask of TCS per-vertex inputs (VS outputs) that are used + * with a vertex index that is NOT the invocation id + */ + uint64_t tcs_cross_invocation_inputs_read; + + /* Bit mask of TCS per-vertex outputs that are used + * with a vertex index that is NOT the invocation id + */ + uint64_t tcs_cross_invocation_outputs_read; } tess; }; } shader_info;