bool vk_memory_model;
bool vk_memory_model_device_scope;
bool float16;
+ bool amd_fragment_mask;
bool amd_gcn_shader;
bool amd_shader_ballot;
bool amd_trinary_minmax;
bool amd_image_read_write_lod;
+ bool amd_shader_explicit_vertex_parameter;
};
typedef struct shader_info {
/** 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;
/* Whether flrp has been lowered. */
bool flrp_lowered:1;
+ /* Whether the shader writes memory, including transform feedback. */
+ bool writes_memory:1;
+
union {
struct {
/* Which inputs are doubles */
struct {
bool uses_discard:1;
+ bool uses_demote:1;
/**
* True if this fragment shader requires helper invocations. This