search for: indirecttemparray

Displaying 8 results from an estimated 8 matches for "indirecttemparray".

Did you mean: indirecttemparrays
2016 Jan 14
0
[PATCH] nv50/ir: rebase indirect temp arrays to 0, so that we use less lmem space
...ium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp index 0e1c332..2085978 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp @@ -841,6 +841,11 @@ public: std::set<Location> locals; std::set<int> indirectTempArrays; + struct TempBase { + int oldBase, newBase; + }; + std::map<int, TempBase> indirectTempBases; + std::map<int, std::pair<int, int> > tempArrayInfo; std::vector<int> tempArrayId; int clipVertexOutput; @@ -949,9 +954,19 @@ bool Source::scanSource()...
2016 Jan 14
0
[PATCH] nv50/ir: only use FILE_LOCAL_MEMORY for temp arrays that use indirection
...private: const struct tgsi_dst_register reg; const struct tgsi_full_dst_register *fdr; @@ -826,7 +840,8 @@ public: // these registers are per-subroutine, cannot be used for parameter passing std::set<Location> locals; - bool mainTempsInLMem; + std::set<int> indirectTempArrays; + std::vector<int> tempArrayId; int clipVertexOutput; @@ -859,8 +874,6 @@ Source::Source(struct nv50_ir_prog_info *prog) : info(prog) if (prog->dbgFlags & NV50_IR_DEBUG_BASIC) tgsi_dump(tokens, 0); - - mainTempsInLMem = false; } Source::~Source() @@ -890,...
2016 Mar 16
0
[PATCH mesa 2/6] nouveau: codegen: Slightly refactor Source::scanInstruction() dst handling
...scanInstruction(const struct tgsi_full_instruction *inst) if (isEdgeFlagPassthrough(insn)) info->io.edgeFlagIn = insn.getSrc(0).getIndex(0); } else - if (insn.getDst(0).getFile() == TGSI_FILE_TEMPORARY) { - if (insn.getDst(0).isIndirect(0)) - indirectTempArrays.insert(insn.getDst(0).getArrayId()); + if (dst.getFile() == TGSI_FILE_TEMPORARY) { + if (dst.isIndirect(0)) + indirectTempArrays.insert(dst.getArrayId()); } else - if (insn.getDst(0).getFile() == TGSI_FILE_BUFFER) { + if (dst.getFile() == TGSI_FILE_BUFFER)...
2016 Mar 16
2
[PATCH mesa 5/6] nouveau: codegen: Add support for OpenCL global memory buffers
...I_FILE_MEMORY: return nv50_ir::FILE_MEMORY_GLOBAL; > case TGSI_FILE_SAMPLER: > case TGSI_FILE_NULL: > default: > @@ -1284,7 +1284,9 @@ bool Source::scanInstruction(const struct tgsi_full_instruction *inst) > if (dst.isIndirect(0)) > indirectTempArrays.insert(dst.getArrayId()); > } else > - if (dst.getFile() == TGSI_FILE_BUFFER) { > + if (dst.getFile() == TGSI_FILE_BUFFER || > + (dst.getFile() == TGSI_FILE_MEMORY && > + memoryFiles[dst.getIndex(0)].mem_type == TGSI_MEMORY_TYPE_GLOBAL))...
2016 Mar 16
0
[PATCH mesa 5/6] nouveau: codegen: Add support for OpenCL global memory buffers
...r::FILE_MEMORY_BUFFER; + case TGSI_FILE_MEMORY: return nv50_ir::FILE_MEMORY_GLOBAL; case TGSI_FILE_SAMPLER: case TGSI_FILE_NULL: default: @@ -1284,7 +1284,9 @@ bool Source::scanInstruction(const struct tgsi_full_instruction *inst) if (dst.isIndirect(0)) indirectTempArrays.insert(dst.getArrayId()); } else - if (dst.getFile() == TGSI_FILE_BUFFER) { + if (dst.getFile() == TGSI_FILE_BUFFER || + (dst.getFile() == TGSI_FILE_MEMORY && + memoryFiles[dst.getIndex(0)].mem_type == TGSI_MEMORY_TYPE_GLOBAL)) { info->io.gl...
2016 Mar 16
0
[PATCH mesa 5/6] nouveau: codegen: Add support for OpenCL global memory buffers
...return nv50_ir::FILE_MEMORY_GLOBAL; >> case TGSI_FILE_SAMPLER: >> case TGSI_FILE_NULL: >> default: >> @@ -1284,7 +1284,9 @@ bool Source::scanInstruction(const struct tgsi_full_instruction *inst) >> if (dst.isIndirect(0)) >> indirectTempArrays.insert(dst.getArrayId()); >> } else >> - if (dst.getFile() == TGSI_FILE_BUFFER) { >> + if (dst.getFile() == TGSI_FILE_BUFFER || >> + (dst.getFile() == TGSI_FILE_MEMORY && >> + memoryFiles[dst.getIndex(0)].mem_type == TGSI_M...
2016 Mar 16
13
[PATCH mesa 1/6] tgsi_build: Fix return of uninitialized memory in tgsi_*_instruction_memory
tgsi_default_instruction_memory / tgsi_build_instruction_memory were returning uninitialized memory for tgsi_instruction_memory.Texture and tgsi_instruction_memory.Format. Note 0 means not set, and thus is a correct default initializer for these. Fixes: 3243b6fc97 ("tgsi: add Texture and Format to tgsi_instruction_memory") Cc: Nicolai Hähnle <nicolai.haehnle at amd.com>
2016 Mar 17
4
[PATCH mesa v2 1/2] nouveau: codegen: Use FILE_MEMORY_BUFFER for buffers
Some of the lowering steps we currently do for FILE_MEMORY_GLOBAL only apply to buffers, making it impossible to use FILE_MEMORY_GLOBAL for OpenCL global buffers. This commits changes the buffer code to use FILE_MEMORY_BUFFER at the ir_from_tgsi and lowering steps, freeing use of FILE_MEMORY_GLOBAL for use with OpenCL global buffers. Note that after lowering buffer accesses use the