Mesa (9.1): radeonsi: support constants as TEX coordinates

Michel Dänzer daenzer at kemper.freedesktop.org
Fri Feb 15 18:01:35 UTC 2013


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

Author: Christian König <christian.koenig at amd.com>
Date:   Mon Feb  4 17:46:42 2013 +0100

radeonsi: support constants as TEX coordinates

Signed-off-by: Christian König <christian.koenig at amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>
(cherry picked from commit 8514f5ac01cb769b16dab0a307f9b0313556a495)

---

 src/gallium/drivers/radeonsi/radeonsi_shader.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/radeonsi_shader.c b/src/gallium/drivers/radeonsi/radeonsi_shader.c
index 36711be..1556a07 100644
--- a/src/gallium/drivers/radeonsi/radeonsi_shader.c
+++ b/src/gallium/drivers/radeonsi/radeonsi_shader.c
@@ -433,6 +433,15 @@ static LLVMValueRef fetch_constant(
 	LLVMValueRef offset;
 	LLVMValueRef load;
 
+	if (swizzle == LP_CHAN_ALL) {
+		unsigned chan;
+		LLVMValueRef values[4];
+		for (chan = 0; chan < TGSI_NUM_CHANNELS; ++chan)
+			values[chan] = fetch_constant(bld_base, reg, type, chan);
+
+		return lp_build_gather_values(bld_base->base.gallivm, values, 4);
+	}
+
 	/* currently not supported */
 	if (reg->Register.Indirect) {
 		assert(0);




More information about the mesa-commit mailing list