glsl: Specify framebuffer fetch coherency mode in lower_blend_equation_advanced().
This requires passing an extra argument to the lowering pass because the KHR_blend_equation_advanced specification doesn't seem to define any mechanism for the implementation to determine at compile-time whether coherent blending can ever be used (not even an "#extension KHR_blend_equation_advanced_coherent" directive seems to be required in the shader source AFAICT). In the long run we'll probably want to do state-dependent recompiles based on the value of ctx->Color.BlendCoherent, but right now there would be no benefit from that because the only driver that supports coherent framebuffer fetch is i965 on SKL+ hardware, which are unable to support the non-coherent path for the moment because of texture layout issues, so framebuffer fetch coherency is always enabled for them. Reviewed-by: Plamena Manolova <plamena.manolova@intel.com>
This commit is contained in:
@@ -166,7 +166,7 @@ bool lower_tess_level(gl_linked_shader *shader);
|
||||
|
||||
bool lower_vertex_id(gl_linked_shader *shader);
|
||||
bool lower_cs_derived(gl_linked_shader *shader);
|
||||
bool lower_blend_equation_advanced(gl_linked_shader *shader);
|
||||
bool lower_blend_equation_advanced(gl_linked_shader *shader, bool coherent);
|
||||
|
||||
bool lower_subroutine(exec_list *instructions, struct _mesa_glsl_parse_state *state);
|
||||
void propagate_invariance(exec_list *instructions);
|
||||
|
Reference in New Issue
Block a user