glsl: Add a lowering pass for packing varyings.
This lowering pass generates GLSL code that manually packs varyings into vec4 slots, for the benefit of back-ends that don't support packed varyings natively. No functional change--the lowering pass is not yet used. Reviewed-by: Eric Anholt <eric@anholt.net> v2: Don't use ir_hierarchical_visitor--just loop over instructions directly. Also, make the names of the packed varyings include the names of the original varyings that were packed into them.
This commit is contained in:
@@ -75,6 +75,9 @@ bool lower_quadop_vector(exec_list *instructions, bool dont_lower_swz);
|
||||
bool lower_clip_distance(gl_shader *shader);
|
||||
void lower_output_reads(exec_list *instructions);
|
||||
void lower_ubo_reference(struct gl_shader *shader, exec_list *instructions);
|
||||
void lower_packed_varyings(void *mem_ctx, unsigned location_base,
|
||||
unsigned locations_used, ir_variable_mode mode,
|
||||
gl_shader *shader);
|
||||
bool optimize_redundant_jumps(exec_list *instructions);
|
||||
bool optimize_split_arrays(exec_list *instructions, bool linked);
|
||||
|
||||
|
Reference in New Issue
Block a user