Mesa (master): radeonsi/nir: add depth layout to scan pass

Timothy Arceri tarceri at kemper.freedesktop.org
Fri Feb 9 23:49:05 UTC 2018


Module: Mesa
Branch: master
Commit: ce836487b80e94fd91932c0a4bfadf1d61f74ded
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ce836487b80e94fd91932c0a4bfadf1d61f74ded

Author: Timothy Arceri <tarceri at itsqueeze.com>
Date:   Fri Feb  9 21:09:35 2018 +1100

radeonsi/nir: add depth layout to scan pass

Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>

---

 src/gallium/drivers/radeonsi/si_shader_nir.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/src/gallium/drivers/radeonsi/si_shader_nir.c b/src/gallium/drivers/radeonsi/si_shader_nir.c
index 04d07381f5..f467ce282a 100644
--- a/src/gallium/drivers/radeonsi/si_shader_nir.c
+++ b/src/gallium/drivers/radeonsi/si_shader_nir.c
@@ -279,6 +279,25 @@ void si_nir_scan_shader(const struct nir_shader *nir,
 	if (nir->info.stage == MESA_SHADER_FRAGMENT) {
 		info->properties[TGSI_PROPERTY_FS_EARLY_DEPTH_STENCIL] = nir->info.fs.early_fragment_tests;
 		info->properties[TGSI_PROPERTY_FS_POST_DEPTH_COVERAGE] = nir->info.fs.post_depth_coverage;
+
+		if (nir->info.fs.depth_layout != FRAG_DEPTH_LAYOUT_NONE) {
+			switch (nir->info.fs.depth_layout) {
+			case FRAG_DEPTH_LAYOUT_ANY:
+				info->properties[TGSI_PROPERTY_FS_DEPTH_LAYOUT] = TGSI_FS_DEPTH_LAYOUT_ANY;
+				break;
+			case FRAG_DEPTH_LAYOUT_GREATER:
+				info->properties[TGSI_PROPERTY_FS_DEPTH_LAYOUT] = TGSI_FS_DEPTH_LAYOUT_GREATER;
+				break;
+			case FRAG_DEPTH_LAYOUT_LESS:
+				info->properties[TGSI_PROPERTY_FS_DEPTH_LAYOUT] = TGSI_FS_DEPTH_LAYOUT_LESS;
+				break;
+			case FRAG_DEPTH_LAYOUT_UNCHANGED:
+				info->properties[TGSI_PROPERTY_FS_DEPTH_LAYOUT] = TGSI_FS_DEPTH_LAYOUT_UNCHANGED;
+				break;
+			default:
+				unreachable("Unknow depth layout");
+			}
+		}
 	}
 
 	if (nir->info.stage == MESA_SHADER_COMPUTE) {




More information about the mesa-commit mailing list