[Mesa-dev] [PATCH 4/4] radeonsi: set CB_COLORn_INFO.ROUND_MODE

Marek Olšák maraeo at gmail.com
Tue Aug 9 23:35:01 UTC 2016


From: Marek Olšák <marek.olsak at amd.com>

just do what the register spec says
---
 src/gallium/drivers/radeonsi/si_state.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c
index ebd2b7d..94dbe4c 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -2060,20 +2060,25 @@ static void si_initialize_color_surface(struct si_context *sctx,
 	    (format == V_028C70_COLOR_8 ||
 	     format == V_028C70_COLOR_8_8 ||
 	     format == V_028C70_COLOR_8_8_8_8))
 		surf->color_is_int8 = true;
 
 	color_info = S_028C70_FORMAT(format) |
 		S_028C70_COMP_SWAP(swap) |
 		S_028C70_BLEND_CLAMP(blend_clamp) |
 		S_028C70_BLEND_BYPASS(blend_bypass) |
 		S_028C70_SIMPLE_FLOAT(1) |
+		S_028C70_ROUND_MODE(ntype != V_028C70_NUMBER_UNORM &&
+				    ntype != V_028C70_NUMBER_SNORM &&
+				    ntype != V_028C70_NUMBER_SRGB &&
+				    format != V_028C70_COLOR_8_24 &&
+				    format != V_028C70_COLOR_24_8) |
 		S_028C70_NUMBER_TYPE(ntype) |
 		S_028C70_ENDIAN(endian);
 
 	/* Intensity is implemented as Red, so treat it that way. */
 	color_attrib = S_028C74_FORCE_DST_ALPHA_1(desc->swizzle[3] == PIPE_SWIZZLE_1 ||
 						  util_format_is_intensity(surf->base.format));
 
 	if (rtex->resource.b.b.nr_samples > 1) {
 		unsigned log_samples = util_logbase2(rtex->resource.b.b.nr_samples);
 
-- 
2.7.4



More information about the mesa-dev mailing list