[Mesa-dev] [PATCH] r600g/sb: Don't fold integer value into float CND

Glenn Kennard glenn.kennard at gmail.com
Thu Feb 12 05:23:38 PST 2015


Don't try to do float comparisons on signed integer values,
some of them look like NaNs.

Fixes fs-temp-array-mat3-index-col-row-rd.shader_test regression
caused by 0d4272cd8e7c45157140dc8e283707714a8238d5.

Signed-off-by: Glenn Kennard <glenn.kennard at gmail.com>
---
 src/gallium/drivers/r600/sb/sb_peephole.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/drivers/r600/sb/sb_peephole.cpp b/src/gallium/drivers/r600/sb/sb_peephole.cpp
index d4b9755..4161d59 100644
--- a/src/gallium/drivers/r600/sb/sb_peephole.cpp
+++ b/src/gallium/drivers/r600/sb/sb_peephole.cpp
@@ -250,7 +250,7 @@ void peephole::optimize_CNDcc_op(alu_node* a) {
 		return;
 
 	// TODO we can handle some cases for uint comparison
-	if (dcmp_type == AF_UINT_CMP)
+	if (dcmp_type == AF_UINT_CMP || dcmp_type == AF_INT_CMP)
 		return;
 
 	if (dcc == AF_CC_NE) {
-- 
1.9.1



More information about the mesa-dev mailing list