[Mesa-dev] [PATCH v2 06/12] gallium/tgsi: Fix tgsi_build_full_immediate() for non-float data types.
Francisco Jerez
currojerez at riseup.net
Sat Mar 24 06:39:59 PDT 2012
---
src/gallium/auxiliary/tgsi/tgsi_build.c | 30 ++++++++----------------------
1 file changed, 8 insertions(+), 22 deletions(-)
diff --git a/src/gallium/auxiliary/tgsi/tgsi_build.c b/src/gallium/auxiliary/tgsi/tgsi_build.c
index a607f9f..841618a 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_build.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_build.c
@@ -456,11 +456,13 @@ tgsi_default_immediate( void )
static struct tgsi_immediate
tgsi_build_immediate(
- struct tgsi_header *header )
+ struct tgsi_header *header,
+ unsigned type )
{
struct tgsi_immediate immediate;
immediate = tgsi_default_immediate();
+ immediate.DataType = type;
header_bodysize_grow( header );
@@ -493,21 +495,6 @@ immediate_grow(
header_bodysize_grow( header );
}
-static union tgsi_immediate_data
-tgsi_build_immediate_float32(
- float value,
- struct tgsi_immediate *immediate,
- struct tgsi_header *header )
-{
- union tgsi_immediate_data immediate_data;
-
- immediate_data.Float = value;
-
- immediate_grow( immediate, header );
-
- return immediate_data;
-}
-
unsigned
tgsi_build_full_immediate(
const struct tgsi_full_immediate *full_imm,
@@ -523,7 +510,7 @@ tgsi_build_full_immediate(
immediate = (struct tgsi_immediate *) &tokens[size];
size++;
- *immediate = tgsi_build_immediate( header );
+ *immediate = tgsi_build_immediate( header, full_imm->Immediate.DataType );
assert( full_imm->Immediate.NrTokens <= 4 + 1 );
@@ -532,13 +519,12 @@ tgsi_build_full_immediate(
if( maxsize <= size )
return 0;
+
data = (union tgsi_immediate_data *) &tokens[size];
- size++;
+ *data = full_imm->u[i];
- *data = tgsi_build_immediate_float32(
- full_imm->u[i].Float,
- immediate,
- header );
+ immediate_grow( immediate, header );
+ size++;
}
return size;
--
1.7.9.2
More information about the mesa-dev
mailing list