X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fcompiler%2Fshader_info.h;h=46588c327f9e90a9626ff02a03b8d8349e509b8b;hb=7a858f274c68a93cd3e1259d292e95beec70ba53;hp=ea6f9a163759dd67369f62b8b9fe4e6d1b2f5726;hpb=f5c7df4dc95ca115b1a1c916b0b133692a7ea6d9;p=mesa.git diff --git a/src/compiler/shader_info.h b/src/compiler/shader_info.h index ea6f9a16375..46588c327f9 100644 --- a/src/compiler/shader_info.h +++ b/src/compiler/shader_info.h @@ -35,12 +35,16 @@ extern "C" { struct spirv_supported_capabilities { bool address; bool atomic_storage; + bool derivative_group; bool descriptor_array_dynamic_indexing; + bool descriptor_array_non_uniform_indexing; + bool descriptor_indexing; bool device_group; bool draw_parameters; bool float64; + bool fragment_shader_sample_interlock; + bool fragment_shader_pixel_interlock; bool geometry_streams; - bool gcn_shader; bool image_ms_array; bool image_read_without_format; bool image_write_without_format; @@ -67,8 +71,11 @@ struct spirv_supported_capabilities { bool subgroup_vote; bool tessellation; bool transform_feedback; - bool trinary_minmax; bool variable_pointers; + bool float16; + bool amd_gcn_shader; + bool amd_shader_ballot; + bool amd_trinary_minmax; }; typedef struct shader_info { @@ -149,6 +156,9 @@ typedef struct shader_info { struct { /* Which inputs are doubles */ uint64_t double_inputs; + + /* True if the shader writes position in window space coordinates pre-transform */ + bool window_space_position; } vs; struct { @@ -195,7 +205,13 @@ typedef struct shader_info { bool post_depth_coverage; + /** + * \name ARB_fragment_coord_conventions + * @{ + */ bool pixel_center_integer; + bool origin_upper_left; + /*@}*/ bool pixel_interlock_ordered; bool pixel_interlock_unordered; @@ -234,6 +250,21 @@ typedef struct shader_info { * Size of shared variables accessed by the compute shader. */ unsigned shared_size; + + + /** + * pointer size is: + * AddressingModelLogical: 0 (default) + * AddressingModelPhysical32: 32 + * AddressingModelPhysical64: 64 + */ + unsigned ptr_size; + + /* + * Arrangement of invocations used to calculate derivatives in a compute + * shader. From NV_compute_shader_derivatives. + */ + enum gl_derivative_group derivative_group; } cs; /* Applies to both TCS and TES. */