glsl: Keep track of the early_fragment_tests flag in gl_shader.
And rename _mesa_glsl_parse_state::early_fragment_tests to fs_early_fragment_tests for consistency with other FS-specific flags in the same struct. Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
@@ -342,7 +342,7 @@ ast_type_qualifier::merge_in_qualifier(YYLTYPE *loc,
|
||||
}
|
||||
|
||||
if (q.flags.q.early_fragment_tests) {
|
||||
state->early_fragment_tests = true;
|
||||
state->fs_early_fragment_tests = true;
|
||||
}
|
||||
|
||||
if (create_gs_ast) {
|
||||
|
||||
@@ -212,7 +212,7 @@ _mesa_glsl_parse_state::_mesa_glsl_parse_state(struct gl_context *_ctx,
|
||||
this->gs_input_size = 0;
|
||||
this->in_qualifier = new(this) ast_type_qualifier();
|
||||
this->out_qualifier = new(this) ast_type_qualifier();
|
||||
this->early_fragment_tests = false;
|
||||
this->fs_early_fragment_tests = false;
|
||||
memset(this->atomic_counter_offsets, 0,
|
||||
sizeof(this->atomic_counter_offsets));
|
||||
this->allow_extension_directive_midshader =
|
||||
@@ -1418,6 +1418,7 @@ set_shader_inout_layout(struct gl_shader *shader,
|
||||
assert(!state->fs_redeclares_gl_fragcoord);
|
||||
assert(!state->fs_pixel_center_integer);
|
||||
assert(!state->fs_origin_upper_left);
|
||||
assert(!state->fs_early_fragment_tests);
|
||||
}
|
||||
|
||||
switch (shader->Stage) {
|
||||
@@ -1460,6 +1461,7 @@ set_shader_inout_layout(struct gl_shader *shader,
|
||||
shader->origin_upper_left = state->fs_origin_upper_left;
|
||||
shader->ARB_fragment_coord_conventions_enable =
|
||||
state->ARB_fragment_coord_conventions_enable;
|
||||
shader->EarlyFragmentTests = state->fs_early_fragment_tests;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
@@ -510,7 +510,7 @@ struct _mesa_glsl_parse_state {
|
||||
*/
|
||||
unsigned gs_input_size;
|
||||
|
||||
bool early_fragment_tests;
|
||||
bool fs_early_fragment_tests;
|
||||
|
||||
/** Atomic counter offsets by binding */
|
||||
unsigned atomic_counter_offsets[MAX_COMBINED_ATOMIC_BUFFERS];
|
||||
|
||||
@@ -1413,6 +1413,8 @@ link_fs_input_layout_qualifiers(struct gl_shader_program *prog,
|
||||
linked_shader->origin_upper_left = shader->origin_upper_left;
|
||||
linked_shader->pixel_center_integer = shader->pixel_center_integer;
|
||||
}
|
||||
|
||||
linked_shader->EarlyFragmentTests |= shader->EarlyFragmentTests;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2498,6 +2498,12 @@ struct gl_shader
|
||||
*/
|
||||
GLuint NumImages;
|
||||
|
||||
/**
|
||||
* Whether early fragment tests are enabled as defined by
|
||||
* ARB_shader_image_load_store.
|
||||
*/
|
||||
bool EarlyFragmentTests;
|
||||
|
||||
/**
|
||||
* Compute shader state from ARB_compute_shader layout qualifiers.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user