* Vertex shader variant parameters:
*/
unsigned binning_pass : 1;
+ unsigned vclamp_color : 1;
/*
* Fragment shader variant parameters:
* for front/back color inputs to frag shader:
*/
unsigned rasterflat : 1;
+ unsigned fclamp_color : 1;
};
uint32_t global;
};
*/
uint16_t fsaturate_s, fsaturate_t, fsaturate_r;
- /* bitmask of samplers which need srgb->linear lowering: */
- uint16_t vlower_srgb, flower_srgb;
+ /* bitmask of samplers which need astc srgb workaround: */
+ uint16_t vastc_srgb, fastc_srgb;
};
static inline bool
uint32_t val[4];
} immediates[64];
+ /* for astc srgb workaround, the number/base of additional
+ * alpha tex states we need, and index of original tex states
+ */
+ struct {
+ unsigned base, count;
+ unsigned orig_idx[16];
+ } astc_srgb;
+
/* shader variants form a linked list: */
struct ir3_shader_variant *next;
void * ir3_shader_assemble(struct ir3_shader_variant *v, uint32_t gpu_id);
struct ir3_shader * ir3_shader_create(struct ir3_compiler *compiler,
- const struct pipe_shader_state *cso, enum shader_t type);
+ const struct pipe_shader_state *cso, enum shader_t type,
+ struct pipe_debug_callback *debug);
void ir3_shader_destroy(struct ir3_shader *shader);
struct ir3_shader_variant * ir3_shader_variant(struct ir3_shader *shader,
- struct ir3_shader_key key);
+ struct ir3_shader_key key, struct pipe_debug_callback *debug);
void ir3_shader_disasm(struct ir3_shader_variant *so, uint32_t *bin);
struct fd_ringbuffer;