glsl: enable early_fragment_tests implicitly with post_depth_coverage
From ARB_post_depth_coverage: "This extension allows the fragment shader to control whether values in gl_SampleMaskIn[] reflect the coverage after application of the early depth and stencil tests. This feature can be enabled with the following layout qualifier in the fragment shader: layout(post_depth_coverage) in; Use of this feature implicitly enables early fragment tests." And a bit later it also adds: "early_fragment_tests" requests that fragment tests be performed before fragment shader execution, as described in section 15.2.4 "Early Fragment Tests" of the OpenGL Specification. If neither this nor post_depth_coverage are declared, per-fragment tests will be performed after fragment shader execution." Fixes: GL45-CTS.post_depth_coverage_tests.PostDepthSampleMask Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
@@ -1881,7 +1881,7 @@ link_fs_inout_layout_qualifiers(struct gl_shader_program *prog,
|
||||
}
|
||||
|
||||
linked_shader->Program->info.fs.early_fragment_tests |=
|
||||
shader->EarlyFragmentTests;
|
||||
shader->EarlyFragmentTests || shader->PostDepthCoverage;
|
||||
linked_shader->Program->info.fs.inner_coverage |= shader->InnerCoverage;
|
||||
linked_shader->Program->info.fs.post_depth_coverage |=
|
||||
shader->PostDepthCoverage;
|
||||
|
Reference in New Issue
Block a user