summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/tgsi/tgsi_ureg.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/auxiliary/tgsi/tgsi_ureg.h')
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_ureg.h38
1 files changed, 27 insertions, 11 deletions
diff --git a/src/gallium/auxiliary/tgsi/tgsi_ureg.h b/src/gallium/auxiliary/tgsi/tgsi_ureg.h
index e6304697938..e20f96d5674 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_ureg.h
+++ b/src/gallium/auxiliary/tgsi/tgsi_ureg.h
@@ -222,15 +222,24 @@ ureg_DECL_system_value(struct ureg_program *,
unsigned semantic_index);
struct ureg_dst
-ureg_DECL_output_masked( struct ureg_program *,
- unsigned semantic_name,
- unsigned semantic_index,
- unsigned usage_mask );
+ureg_DECL_output_masked(struct ureg_program *,
+ unsigned semantic_name,
+ unsigned semantic_index,
+ unsigned usage_mask,
+ unsigned array_id,
+ unsigned array_size);
struct ureg_dst
-ureg_DECL_output( struct ureg_program *,
- unsigned semantic_name,
- unsigned semantic_index );
+ureg_DECL_output(struct ureg_program *,
+ unsigned semantic_name,
+ unsigned semantic_index);
+
+struct ureg_dst
+ureg_DECL_output_array(struct ureg_program *ureg,
+ unsigned semantic_name,
+ unsigned semantic_index,
+ unsigned array_id,
+ unsigned array_size);
struct ureg_src
ureg_DECL_immediate( struct ureg_program *,
@@ -1175,14 +1184,14 @@ ureg_src_array_offset(struct ureg_src reg, int offset)
static INLINE struct ureg_dst
ureg_dst_array_offset( struct ureg_dst reg, int offset )
{
- assert(reg.File == TGSI_FILE_TEMPORARY);
reg.Index += offset;
return reg;
}
static INLINE struct ureg_dst
-ureg_dst_register( unsigned file,
- unsigned index )
+ureg_dst_array_register(unsigned file,
+ unsigned index,
+ unsigned array_id)
{
struct ureg_dst dst;
@@ -1206,12 +1215,19 @@ ureg_dst_register( unsigned file,
dst.DimIndFile = TGSI_FILE_NULL;
dst.DimIndIndex = 0;
dst.DimIndSwizzle = 0;
- dst.ArrayID = 0;
+ dst.ArrayID = array_id;
return dst;
}
static INLINE struct ureg_dst
+ureg_dst_register(unsigned file,
+ unsigned index)
+{
+ return ureg_dst_array_register(file, index, 0);
+}
+
+static INLINE struct ureg_dst
ureg_dst( struct ureg_src src )
{
struct ureg_dst dst;