st/mesa/glsl: set early_fragment_tests directly in shader_info

We also move EarlyFragmentTests out of the gl_shader_info struct
as it is now only used by gl_shader.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
This commit is contained in:
Timothy Arceri
2016-11-22 13:10:18 +11:00
parent 5c93d27423
commit ae28c5a60c
5 changed files with 10 additions and 11 deletions

View File

@@ -1815,7 +1815,7 @@ set_shader_inout_layout(struct gl_shader *shader,
shader->info.origin_upper_left = state->fs_origin_upper_left;
shader->info.ARB_fragment_coord_conventions_enable =
state->ARB_fragment_coord_conventions_enable;
shader->info.EarlyFragmentTests = state->fs_early_fragment_tests;
shader->EarlyFragmentTests = state->fs_early_fragment_tests;
shader->info.InnerCoverage = state->fs_inner_coverage;
shader->info.PostDepthCoverage = state->fs_post_depth_coverage;
shader->BlendSupport = state->fs_blend_support;

View File

@@ -1887,8 +1887,8 @@ link_fs_inout_layout_qualifiers(struct gl_shader_program *prog,
shader->info.pixel_center_integer;
}
linked_shader->info.EarlyFragmentTests |=
shader->info.EarlyFragmentTests;
linked_shader->Program->info.fs.early_fragment_tests |=
shader->EarlyFragmentTests;
linked_shader->info.InnerCoverage |=
shader->info.InnerCoverage;
linked_shader->Program->info.fs.post_depth_coverage |=

View File

@@ -2315,12 +2315,6 @@ struct gl_shader_info
GLenum OutputType;
} Geom;
/**
* Whether early fragment tests are enabled as defined by
* ARB_shader_image_load_store.
*/
bool EarlyFragmentTests;
/**
* Compute shader state from ARB_compute_shader and
* ARB_compute_variable_group_size layout qualifiers.
@@ -2434,6 +2428,12 @@ struct gl_shader
*/
GLbitfield BlendSupport;
/**
* Whether early fragment tests are enabled as defined by
* ARB_shader_image_load_store.
*/
bool EarlyFragmentTests;
struct gl_shader_info info;
};

View File

@@ -2232,7 +2232,6 @@ _mesa_copy_linked_program_data(const struct gl_shader_program *src,
}
case MESA_SHADER_FRAGMENT: {
dst->info.fs.depth_layout = src->FragDepthLayout;
dst->info.fs.early_fragment_tests = dst_sh->info.EarlyFragmentTests;
dst->info.fs.inner_coverage = dst_sh->info.InnerCoverage;
dst->info.fs.post_depth_coverage = dst_sh->info.PostDepthCoverage;
break;

View File

@@ -6151,7 +6151,7 @@ st_translate_program(
}
if (procType == PIPE_SHADER_FRAGMENT) {
if (program->shader->info.EarlyFragmentTests)
if (program->shader->Program->info.fs.early_fragment_tests)
ureg_property(ureg, TGSI_PROPERTY_FS_EARLY_DEPTH_STENCIL, 1);
if (proginfo->info.inputs_read & VARYING_BIT_POS) {