summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/freedreno/ir3/ir3.h
diff options
context:
space:
mode:
authorIlia Mirkin <[email protected]>2014-09-27 10:50:40 -0400
committerRob Clark <[email protected]>2014-10-02 23:30:47 -0400
commite6acf3ac2445bbc15ab33001077343ac8b486b5b (patch)
tree308087327902bb525405baa06d100f11e7fa9050 /src/gallium/drivers/freedreno/ir3/ir3.h
parentc49107c889ca3c8c543e847a42bb174a6c3f4c6d (diff)
freedreno/ir3: add TXD support and expose ARB_shader_texture_lod
Signed-off-by: Ilia Mirkin <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno/ir3/ir3.h')
-rw-r--r--src/gallium/drivers/freedreno/ir3/ir3.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/gallium/drivers/freedreno/ir3/ir3.h b/src/gallium/drivers/freedreno/ir3/ir3.h
index d4059ad004a..c73e9cc8d7a 100644
--- a/src/gallium/drivers/freedreno/ir3/ir3.h
+++ b/src/gallium/drivers/freedreno/ir3/ir3.h
@@ -97,6 +97,8 @@ struct ir3_register {
int wrmask;
};
+#define IR3_INSTR_SRCS 10
+
struct ir3_instruction {
struct ir3_block *block;
int category;
@@ -156,7 +158,7 @@ struct ir3_instruction {
} flags;
int repeat;
unsigned regs_count;
- struct ir3_register *regs[5];
+ struct ir3_register *regs[1 + IR3_INSTR_SRCS];
union {
struct {
char inv;
@@ -444,7 +446,7 @@ static inline void regmask_set(regmask_t *regmask, struct ir3_register *reg)
{
unsigned idx = regmask_idx(reg);
unsigned i;
- for (i = 0; i < 4; i++, idx++)
+ for (i = 0; i < IR3_INSTR_SRCS; i++, idx++)
if (reg->wrmask & (1 << i))
(*regmask)[idx / 8] |= 1 << (idx % 8);
}
@@ -457,7 +459,7 @@ static inline void regmask_set_if_not(regmask_t *a,
{
unsigned idx = regmask_idx(reg);
unsigned i;
- for (i = 0; i < 4; i++, idx++)
+ for (i = 0; i < IR3_INSTR_SRCS; i++, idx++)
if (reg->wrmask & (1 << i))
if (!((*b)[idx / 8] & (1 << (idx % 8))))
(*a)[idx / 8] |= 1 << (idx % 8);
@@ -468,7 +470,7 @@ static inline unsigned regmask_get(regmask_t *regmask,
{
unsigned idx = regmask_idx(reg);
unsigned i;
- for (i = 0; i < 4; i++, idx++)
+ for (i = 0; i < IR3_INSTR_SRCS; i++, idx++)
if (reg->wrmask & (1 << i))
if ((*regmask)[idx / 8] & (1 << (idx % 8)))
return true;