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@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9569>
This commit is contained in:
Danylo Piliaiev 2021-03-12 20:30:31 +02:00 committed by Marge Bot
parent 1d658c8598
commit 914e7a7f73

View file

@ -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;