#define SHADER_INFO_H
#include "shader_enums.h"
+#include <stdint.h>
#ifdef __cplusplus
extern "C" {
bool float64;
bool image_ms_array;
bool tessellation;
+ bool device_group;
bool draw_parameters;
bool image_read_without_format;
bool image_write_without_format;
bool multiview;
bool variable_pointers;
bool storage_16bit;
+ bool shader_viewport_index_layer;
+ bool subgroup_basic;
};
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 */
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;
bool post_depth_coverage;
+ bool pixel_center_integer;
+
/** gl_FragDepth layout for ARB_conservative_depth. */
enum gl_frag_depth_layout depth_layout;
} fs;