Displaying 19 results from an estimated 19 matches for "isindirect".
Did you mean:
indirect
2016 Mar 16
0
[PATCH mesa 2/6] nouveau: codegen: Slightly refactor Source::scanInstruction() dst handling
...info->numBarriers = 1;
if (insn.dstCount()) {
- if (insn.getDst(0).getFile() == TGSI_FILE_OUTPUT) {
- Instruction::DstRegister dst = insn.getDst(0);
+ Instruction::DstRegister dst = insn.getDst(0);
+ if (dst.getFile() == TGSI_FILE_OUTPUT) {
if (dst.isIndirect(0))
for (unsigned i = 0; i < info->numOutputs; ++i)
info->out[i].mask = 0xf;
@@ -1280,11 +1280,11 @@ bool Source::scanInstruction(const struct tgsi_full_instruction *inst)
if (isEdgeFlagPassthrough(insn))
info->io.edgeFlagIn = insn.get...
2016 Mar 16
2
[PATCH mesa 5/6] nouveau: codegen: Add support for OpenCL global memory buffers
...Id(i->src(1), 2);
> srcId(i->src(0).getIndirect(0), 10);
> - if (i->src(0).getFile() == FILE_MEMORY_BUFFER &&
> + if ((i->src(0).getFile() == FILE_MEMORY_BUFFER ||
> + i->src(0).getFile() == FILE_MEMORY_GLOBAL) &&
> i->src(0).isIndirect(0) &&
> i->getIndirect(0, 0)->reg.size == 8)
> code[1] |= 1 << 23;
> @@ -1690,8 +1698,15 @@ CodeEmitterGK110::emitLOAD(const Instruction *i)
> int32_t offset = SDATA(i->src(0)).offset;
>
> switch (i->src(0).getFile()) {
> -...
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 Jan 14
0
[PATCH] nv50/ir: only use FILE_LOCAL_MEMORY for temp arrays that use indirection
...749d 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
@@ -96,6 +96,13 @@ public:
return tgsi_util_get_src_register_swizzle(®, chan);
}
+ int getArrayId() const
+ {
+ if (isIndirect(0))
+ return fsr->Indirect.ArrayID;
+ return 0;
+ }
+
nv50_ir::Modifier getMod(int chan) const;
SrcRegister getIndirect(int dim) const
@@ -155,6 +162,13 @@ public:
return SrcRegister(fdr->Indirect);
}
+ int getArrayId() const
+...
2016 Mar 16
0
[PATCH mesa 5/6] nouveau: codegen: Add support for OpenCL global memory buffers
...t Instruction *i)
srcId(i->src(1), 2);
srcId(i->src(0).getIndirect(0), 10);
- if (i->src(0).getFile() == FILE_MEMORY_BUFFER &&
+ if ((i->src(0).getFile() == FILE_MEMORY_BUFFER ||
+ i->src(0).getFile() == FILE_MEMORY_GLOBAL) &&
i->src(0).isIndirect(0) &&
i->getIndirect(0, 0)->reg.size == 8)
code[1] |= 1 << 23;
@@ -1690,8 +1698,15 @@ CodeEmitterGK110::emitLOAD(const Instruction *i)
int32_t offset = SDATA(i->src(0)).offset;
switch (i->src(0).getFile()) {
- case FILE_MEMORY_BUFFER: code[1] = 0...
2016 Mar 16
0
[PATCH mesa 5/6] nouveau: codegen: Add support for OpenCL global memory buffers
...>> srcId(i->src(0).getIndirect(0), 10);
>> - if (i->src(0).getFile() == FILE_MEMORY_BUFFER &&
>> + if ((i->src(0).getFile() == FILE_MEMORY_BUFFER ||
>> + i->src(0).getFile() == FILE_MEMORY_GLOBAL) &&
>> i->src(0).isIndirect(0) &&
>> i->getIndirect(0, 0)->reg.size == 8)
>> code[1] |= 1 << 23;
>> @@ -1690,8 +1698,15 @@ CodeEmitterGK110::emitLOAD(const Instruction *i)
>> int32_t offset = SDATA(i->src(0)).offset;
>>
>> switch (i->src(...
2016 Mar 16
2
[PATCH mesa 6/6] nouveau: codegen: Disable more old resource handling code
...itch (tgsi.getSrc(0).getFile()) {
> + case TGSI_FILE_BUFFER:
> + case TGSI_FILE_MEMORY:
> for (c = 0; c < 4; ++c) {
> if (!dst0[c])
> continue;
> @@ -2295,9 +2300,12 @@ Converter::handleLOAD(Value *dst0[4])
> if (tgsi.getSrc(0).isIndirect(0))
> ld->setIndirect(0, 1, fetchSrc(tgsi.getSrc(0).getIndirect(0), 0, 0));
> }
> - return;
> + break;
> + default:
> + assert(!"Unsupported srcFile for LOAD");
> }
>
> +/* Keep this around for now as reference when...
2014 Jan 13
20
[PATCH 00/19] nv50: add sampler2DMS/GP support to get OpenGL 3.2
OK, so there's a bunch of stuff in here. The geometry stuff is based on the
work started by Bryan Cain and Christoph Bumiller.
Patches 01-12: Add support for geometry shaders and fix related issues
Patches 13-14: Make it possible for fb clears to operate on texture attachments
with an explicit layer set (as is allowed in gl 3.2).
Patches 15-17: Make ARB_texture_multisample work
2016 Mar 16
0
[PATCH mesa 6/6] nouveau: codegen: Disable more old resource handling code
...getFile() == TGSI_FILE_MEMORY) {
+ switch (tgsi.getSrc(0).getFile()) {
+ case TGSI_FILE_BUFFER:
+ case TGSI_FILE_MEMORY:
for (c = 0; c < 4; ++c) {
if (!dst0[c])
continue;
@@ -2295,9 +2300,12 @@ Converter::handleLOAD(Value *dst0[4])
if (tgsi.getSrc(0).isIndirect(0))
ld->setIndirect(0, 1, fetchSrc(tgsi.getSrc(0).getIndirect(0), 0, 0));
}
- return;
+ break;
+ default:
+ assert(!"Unsupported srcFile for LOAD");
}
+/* Keep this around for now as reference when adding img support
getResourceCoords(off,...
2016 Mar 16
2
[PATCH mesa 4/6] nouveau: codegen: s/FILE_MEMORY_GLOBAL/FILE_MEMORY_BUFFER/
...odeEmitterGK110::emitSTORE(const Instruction *i)
>
> srcId(i->src(1), 2);
> srcId(i->src(0).getIndirect(0), 10);
> - if (i->src(0).getFile() == FILE_MEMORY_GLOBAL &&
> + if (i->src(0).getFile() == FILE_MEMORY_BUFFER &&
> i->src(0).isIndirect(0) &&
> i->getIndirect(0, 0)->reg.size == 8)
> code[1] |= 1 << 23;
> @@ -1690,7 +1690,7 @@ CodeEmitterGK110::emitLOAD(const Instruction *i)
> int32_t offset = SDATA(i->src(0)).offset;
>
> switch (i->src(0).getFile()) {
> - case...
2016 Mar 16
0
[PATCH mesa 6/6] nouveau: codegen: Disable more old resource handling code
...()) {
>> + case TGSI_FILE_BUFFER:
>> + case TGSI_FILE_MEMORY:
>> for (c = 0; c < 4; ++c) {
>> if (!dst0[c])
>> continue;
>> @@ -2295,9 +2300,12 @@ Converter::handleLOAD(Value *dst0[4])
>> if (tgsi.getSrc(0).isIndirect(0))
>> ld->setIndirect(0, 1, fetchSrc(tgsi.getSrc(0).getIndirect(0), 0, 0));
>> }
>> - return;
>> + break;
>> + default:
>> + assert(!"Unsupported srcFile for LOAD");
>> }
>>
>> +/* Keep t...
2016 Mar 16
0
[PATCH mesa 4/6] nouveau: codegen: s/FILE_MEMORY_GLOBAL/FILE_MEMORY_BUFFER/
...002;
@@ -1678,7 +1678,7 @@ CodeEmitterGK110::emitSTORE(const Instruction *i)
srcId(i->src(1), 2);
srcId(i->src(0).getIndirect(0), 10);
- if (i->src(0).getFile() == FILE_MEMORY_GLOBAL &&
+ if (i->src(0).getFile() == FILE_MEMORY_BUFFER &&
i->src(0).isIndirect(0) &&
i->getIndirect(0, 0)->reg.size == 8)
code[1] |= 1 << 23;
@@ -1690,7 +1690,7 @@ CodeEmitterGK110::emitLOAD(const Instruction *i)
int32_t offset = SDATA(i->src(0)).offset;
switch (i->src(0).getFile()) {
- case FILE_MEMORY_GLOBAL: code[1] = 0x...
2016 Mar 16
0
[PATCH mesa 4/6] nouveau: codegen: s/FILE_MEMORY_GLOBAL/FILE_MEMORY_BUFFER/
...const Instruction *i)
>>
>> srcId(i->src(1), 2);
>> srcId(i->src(0).getIndirect(0), 10);
>> - if (i->src(0).getFile() == FILE_MEMORY_GLOBAL &&
>> + if (i->src(0).getFile() == FILE_MEMORY_BUFFER &&
>> i->src(0).isIndirect(0) &&
>> i->getIndirect(0, 0)->reg.size == 8)
>> code[1] |= 1 << 23;
>> @@ -1690,7 +1690,7 @@ CodeEmitterGK110::emitLOAD(const Instruction *i)
>> int32_t offset = SDATA(i->src(0)).offset;
>>
>> switch (i->src(0...
2016 Mar 17
4
[PATCH mesa v2 1/3] nouveau: codegen: Disable more old resource handling code
Commit c3083c7082 ("nv50/ir: add support for BUFFER accesses") disabled /
commented out some of the old resource handling code, but not all of it.
Effectively all of it is dead already, if we ever enter the old code
paths in handeLOAD / handleSTORE / handleATOM we will get an exception
due to trying to access the now always zero-sized resources vector.
Disable all the dead code.
2017 Sep 07
2
RFC: Introduce DW_OP_LLVM_memory to describe variables in memory with dbg.value
...don't know if an
expression describes an address or a value. We have code like this in
buildDbgValueForSpill:
// If the DBG_VALUE already was a memory location, add an extra
// DW_OP_deref. Otherwise just turning this from a register into a
// memory/indirect location is sufficient.
if (IsIndirect)
Expr = DIExpression::prepend(Expr, DIExpression::WithDeref);
We modify DBG_VALUEs for spills in several other places in codegen and they
don't all correctly insert DW_OP_deref. The load chain representation
should make it easy to just modify the offset on the front or add a new
load depen...
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
2017 Sep 07
2
RFC: Introduce DW_OP_LLVM_memory to describe variables in memory with dbg.value
...address or a value. We have code like this in
>> buildDbgValueForSpill:
>> // If the DBG_VALUE already was a memory location, add an extra
>> // DW_OP_deref. Otherwise just turning this from a register into a
>> // memory/indirect location is sufficient.
>> if (IsIndirect)
>> Expr = DIExpression::prepend(Expr, DIExpression::WithDeref);
>>
>
> Sure - this goes back to my adding the "indirect" flag to support C++
> non-trivial pass by value in C++, before we had all the more general
> expression support, etc. (hilariously, what wa...
2015 May 17
14
[PATCH 00/12] Tessellation support for nvc0
This is enough to enable tessellation support on nvc0. It seems to
work a lot better on my GF108 than GK208. I suspect that there's some
sort of scheduling shenanigans that need to be adjusted for
kepler+. Or perhaps some shader header things.
Even with the GF108, I still get occasional blue triangles in Heaven,
but I get a *ton* of them on the GK208 -- seemingly the same issue,
but it's
2017 Sep 06
4
RFC: Introduce DW_OP_LLVM_memory to describe variables in memory with dbg.value
On Wed, Sep 6, 2017 at 10:01 AM, David Blaikie <dblaikie at gmail.com> wrote:
> On Tue, Sep 5, 2017 at 1:00 PM Reid Kleckner via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>> LLVM SSA values obviously do not have an address that we can take and
>> they don’t live in registers, so neither the default memory location model
>> nor DW_OP_regN make sense