diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/glsl/glsl_parser_extras.cpp | 3 | ||||
-rw-r--r-- | src/compiler/glsl/linker.cpp | 21 | ||||
-rw-r--r-- | src/mesa/main/mtypes.h | 3 |
3 files changed, 11 insertions, 16 deletions
diff --git a/src/compiler/glsl/glsl_parser_extras.cpp b/src/compiler/glsl/glsl_parser_extras.cpp index d84a3f8f5f7..99bdfcc3408 100644 --- a/src/compiler/glsl/glsl_parser_extras.cpp +++ b/src/compiler/glsl/glsl_parser_extras.cpp @@ -1808,8 +1808,7 @@ set_shader_inout_layout(struct gl_shader *shader, break; case MESA_SHADER_FRAGMENT: - shader->info.redeclares_gl_fragcoord = - state->fs_redeclares_gl_fragcoord; + shader->redeclares_gl_fragcoord = state->fs_redeclares_gl_fragcoord; shader->info.uses_gl_fragcoord = state->fs_uses_gl_fragcoord; shader->info.pixel_center_integer = state->fs_pixel_center_integer; shader->info.origin_upper_left = state->fs_origin_upper_left; diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp index 3846679c260..68761518290 100644 --- a/src/compiler/glsl/linker.cpp +++ b/src/compiler/glsl/linker.cpp @@ -1826,7 +1826,7 @@ link_fs_inout_layout_qualifiers(struct gl_shader_program *prog, struct gl_shader **shader_list, unsigned num_shaders) { - linked_shader->info.redeclares_gl_fragcoord = false; + bool redeclares_gl_fragcoord = false; linked_shader->info.uses_gl_fragcoord = false; linked_shader->info.origin_upper_left = false; linked_shader->info.pixel_center_integer = false; @@ -1844,12 +1844,10 @@ link_fs_inout_layout_qualifiers(struct gl_shader_program *prog, * it must be redeclared in all the fragment shaders in that program * that have a static use gl_FragCoord." */ - if ((linked_shader->info.redeclares_gl_fragcoord - && !shader->info.redeclares_gl_fragcoord - && shader->info.uses_gl_fragcoord) - || (shader->info.redeclares_gl_fragcoord - && !linked_shader->info.redeclares_gl_fragcoord - && linked_shader->info.uses_gl_fragcoord)) { + if ((redeclares_gl_fragcoord && !shader->redeclares_gl_fragcoord && + shader->info.uses_gl_fragcoord) + || (shader->redeclares_gl_fragcoord && !redeclares_gl_fragcoord && + linked_shader->info.uses_gl_fragcoord)) { linker_error(prog, "fragment shader defined with conflicting " "layout qualifiers for gl_FragCoord\n"); } @@ -1859,8 +1857,7 @@ link_fs_inout_layout_qualifiers(struct gl_shader_program *prog, * "All redeclarations of gl_FragCoord in all fragment shaders in a * single program must have the same set of qualifiers." */ - if (linked_shader->info.redeclares_gl_fragcoord && - shader->info.redeclares_gl_fragcoord && + if (redeclares_gl_fragcoord && shader->redeclares_gl_fragcoord && (shader->info.origin_upper_left != linked_shader->info.origin_upper_left || shader->info.pixel_center_integer != @@ -1874,10 +1871,8 @@ link_fs_inout_layout_qualifiers(struct gl_shader_program *prog, * are multiple redeclarations, all the fields except uses_gl_fragcoord * are already known to be the same. */ - if (shader->info.redeclares_gl_fragcoord || - shader->info.uses_gl_fragcoord) { - linked_shader->info.redeclares_gl_fragcoord = - shader->info.redeclares_gl_fragcoord; + if (shader->redeclares_gl_fragcoord || shader->info.uses_gl_fragcoord) { + redeclares_gl_fragcoord = shader->redeclares_gl_fragcoord; linked_shader->info.uses_gl_fragcoord = linked_shader->info.uses_gl_fragcoord || shader->info.uses_gl_fragcoord; diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index cb35aa1c95c..cbf2e958113 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -2243,7 +2243,6 @@ struct gl_subroutine_function struct gl_shader_info { bool uses_gl_fragcoord; - bool redeclares_gl_fragcoord; bool PostDepthCoverage; bool InnerCoverage; @@ -2435,6 +2434,8 @@ struct gl_shader bool ARB_fragment_coord_conventions_enable; + bool redeclares_gl_fragcoord; + struct gl_shader_info info; }; |