diff options
Diffstat (limited to 'src/gallium/auxiliary')
-rw-r--r-- | src/gallium/auxiliary/tgsi/tgsi_exec.c | 55 | ||||
-rw-r--r-- | src/gallium/auxiliary/tgsi/tgsi_exec.h | 4 |
2 files changed, 0 insertions, 59 deletions
diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.c b/src/gallium/auxiliary/tgsi/tgsi_exec.c index 8baf93fbcf0..972b0a9ded2 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_exec.c +++ b/src/gallium/auxiliary/tgsi/tgsi_exec.c @@ -1066,61 +1066,6 @@ tgsi_exec_set_constant_buffers(struct tgsi_exec_machine *mach, } } - -/** - * Check if there's a potential src/dst register data dependency when - * using SOA execution. - * Example: - * MOV T, T.yxwz; - * This would expand into: - * MOV t0, t1; - * MOV t1, t0; - * MOV t2, t3; - * MOV t3, t2; - * The second instruction will have the wrong value for t0 if executed as-is. - */ -boolean -tgsi_check_soa_dependencies(const struct tgsi_full_instruction *inst) -{ - uint i, chan; - - uint writemask = inst->Dst[0].Register.WriteMask; - if (writemask == TGSI_WRITEMASK_X || - writemask == TGSI_WRITEMASK_Y || - writemask == TGSI_WRITEMASK_Z || - writemask == TGSI_WRITEMASK_W || - writemask == TGSI_WRITEMASK_NONE) { - /* no chance of data dependency */ - return FALSE; - } - - /* loop over src regs */ - for (i = 0; i < inst->Instruction.NumSrcRegs; i++) { - if ((inst->Src[i].Register.File == - inst->Dst[0].Register.File) && - ((inst->Src[i].Register.Index == - inst->Dst[0].Register.Index) || - inst->Src[i].Register.Indirect || - inst->Dst[0].Register.Indirect)) { - /* loop over dest channels */ - uint channelsWritten = 0x0; - for (chan = 0; chan < TGSI_NUM_CHANNELS; chan++) { - if (inst->Dst[0].Register.WriteMask & (1 << chan)) { - /* check if we're reading a channel that's been written */ - uint swizzle = tgsi_util_get_full_src_register_swizzle(&inst->Src[i], chan); - if (channelsWritten & (1 << swizzle)) { - return TRUE; - } - - channelsWritten |= (1 << chan); - } - } - } - } - return FALSE; -} - - /** * Initialize machine state by expanding tokens to full instructions, * allocating temporary storage, setting up constants, etc. diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.h b/src/gallium/auxiliary/tgsi/tgsi_exec.h index d1d4d3ac816..abc422daf5e 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_exec.h +++ b/src/gallium/auxiliary/tgsi/tgsi_exec.h @@ -467,10 +467,6 @@ void tgsi_exec_machine_free_data(struct tgsi_exec_machine *mach); -boolean -tgsi_check_soa_dependencies(const struct tgsi_full_instruction *inst); - - extern void tgsi_exec_set_constant_buffers(struct tgsi_exec_machine *mach, unsigned num_bufs, |