Mesa (master): turnip: set zmode to A6XX_EARLY_Z if FS forces early fragment test
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Fri Mar 12 20:34:52 UTC 2021
Module: Mesa
Branch: master
Commit: 914e7a7f73d1ff74054a2bf30277fef08a7a7d7f
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=914e7a7f73d1ff74054a2bf30277fef08a7a7d7f
Author: Danylo Piliaiev <dpiliaiev at igalia.com>
Date: Fri Mar 12 20:30:31 2021 +0200
turnip: set zmode to A6XX_EARLY_Z if FS forces early fragment test
Specifying "early_fragment_tests" in fragment shader takes precedence
over our internal conditions.
Fixes test:
dEQP-VK.fragment_operations.early_fragment.early_fragment_tests_stencil
Signed-off-by: Danylo Piliaiev <dpiliaiev at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9569>
---
src/freedreno/vulkan/tu_pipeline.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/freedreno/vulkan/tu_pipeline.c b/src/freedreno/vulkan/tu_pipeline.c
index 5ffc1f7aa6f..29ff0102950 100644
--- a/src/freedreno/vulkan/tu_pipeline.c
+++ b/src/freedreno/vulkan/tu_pipeline.c
@@ -1414,7 +1414,8 @@ tu6_emit_fs_outputs(struct tu_cs *cs,
enum a6xx_ztest_mode zmode;
- if (fs->no_earlyz || fs->has_kill || fs->writes_pos || fs->writes_stencilref || no_earlyz) {
+ if ((fs->shader && !fs->shader->nir->info.fs.early_fragment_tests) &&
+ (fs->no_earlyz || fs->has_kill || fs->writes_pos || fs->writes_stencilref || no_earlyz)) {
zmode = A6XX_LATE_Z;
} else {
zmode = A6XX_EARLY_Z;
More information about the mesa-commit
mailing list