search for: nv50_ir_prog_info

Displaying 20 results from an estimated 24 matches for "nv50_ir_prog_info".

2017 Nov 14
2
[RFC PATCH] nouveau/compiler: Allow to omit line numbers when printing instructions
...-git a/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp index e9363101bf..4bf6c73837 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp @@ -1249,7 +1249,7 @@ nv50_ir_generate_code(struct nv50_ir_prog_info *info) if (ret < 0) goto out; if (prog->dbgFlags & NV50_IR_DEBUG_VERBOSE) - prog->print(); + prog->print(info->omitLineNum); targ->parseDriverInfo(info); prog->getTarget()->runLegalizePass(prog, nv50_ir::CG_STAGE_PRE_SSA); @@ -1257,13 +...
2017 Nov 17
2
[PATCH v2] nouveau/compiler: Allow to omit line numbers when printing instructions
...-git a/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp index e9363101bf..4bf6c73837 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp @@ -1249,7 +1249,7 @@ nv50_ir_generate_code(struct nv50_ir_prog_info *info) if (ret < 0) goto out; if (prog->dbgFlags & NV50_IR_DEBUG_VERBOSE) - prog->print(); + prog->print(info->omitLineNum); targ->parseDriverInfo(info); prog->getTarget()->runLegalizePass(prog, nv50_ir::CG_STAGE_PRE_SSA); @@ -1257,13 +...
2017 Nov 14
0
[RFC PATCH] nouveau/compiler: Allow to omit line numbers when printing instructions
...rivers/nouveau/codegen/nv50_ir.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp > index e9363101bf..4bf6c73837 100644 > --- a/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp > +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp > @@ -1249,7 +1249,7 @@ nv50_ir_generate_code(struct nv50_ir_prog_info *info) > if (ret < 0) > goto out; > if (prog->dbgFlags & NV50_IR_DEBUG_VERBOSE) > - prog->print(); > + prog->print(info->omitLineNum); > > targ->parseDriverInfo(info); > prog->getTarget()->runLegalizePass(prog, nv5...
2017 Nov 20
0
[PATCH v2] nouveau/compiler: Allow to omit line numbers when printing instructions
The “Program” class keeps a pointer to the “nv50_ir_prog_info” structure, so you could just use that in the “Program::print()” function, rather than passing the flag as an argument to “print”. Pierre On 2017-11-17 — 17:21, Tobias Klausmann wrote: > This comes in handy when checking "NV50_PROG_DEBUG=1" outputs with diff! > > V2: > - U...
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 Nov 14
3
[PATCH] nouveau/codegen: dump tgsi floats as hex values
...u/codegen/nv50_ir_from_tgsi.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp index 34351dab51..898031811d 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp @@ -1095,7 +1095,7 @@ Source::Source(struct nv50_ir_prog_info *prog) : info(prog) tokens = (const struct tgsi_token *)info->bin.source; if (prog->dbgFlags & NV50_IR_DEBUG_BASIC) - tgsi_dump(tokens, 0); + tgsi_dump(tokens, TGSI_DUMP_FLOAT_AS_HEX); } Source::~Source() -- 2.15.0
2017 Nov 24
1
[PATCH v3] nouveau/compiler: Allow to omit line numbers when printing instructions
This comes in handy when checking "NV50_PROG_DEBUG=1" outputs with diff! V2: - Use environmental variable (Karol Herbst) V3: - Use the already populated nv50_ir_prog_info to forward information to the print pass (Pierre Moreau) Signed-off-by: Tobias Klausmann <tobias.johannes.klausmann at mni.thm.de> --- src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h | 1 + src/gallium/drivers/nouveau/codegen/nv50_ir_print.cpp | 12 +++++++++--- src/gallium/driver...
2015 Aug 24
4
[PATCH] nv50: avoid using inline vertex data submit when gl_VertexID is used
...iff --git a/src/gallium/drivers/nouveau/nv50/nv50_program.c b/src/gallium/drivers/nouveau/nv50/nv50_program.c index 02dc367..eff4477 100644 --- a/src/gallium/drivers/nouveau/nv50/nv50_program.c +++ b/src/gallium/drivers/nouveau/nv50/nv50_program.c @@ -66,6 +66,7 @@ nv50_vertprog_assign_slots(struct nv50_ir_prog_info *info) case TGSI_SEMANTIC_VERTEXID: prog->vp.attrs[2] |= NV50_3D_VP_GP_BUILTIN_ATTR_EN_VERTEX_ID; prog->vp.attrs[2] |= NV50_3D_VP_GP_BUILTIN_ATTR_EN_VERTEX_ID_DRAW_ARRAYS_ADD_START; + prog->vp.vertexid = 1; continue; default: br...
2012 May 06
1
[mesa PATCH] nv50: handle VP without inputs
...nsertions(+), 0 deletions(-) diff --git a/src/gallium/drivers/nv50/nv50_program.c b/src/gallium/drivers/nv50/nv50_program.c index 48e8db3..c44f537 100644 --- a/src/gallium/drivers/nv50/nv50_program.c +++ b/src/gallium/drivers/nv50/nv50_program.c @@ -53,6 +53,13 @@ nv50_vertprog_assign_slots(struct nv50_ir_prog_info *info) if (info->in[i].mask & (1 << c)) info->in[i].slot[c] = n++; } + + // Corner case: VP has no inputs, but we will still need to submit data to + // draw it. HW will shout at us and won't draw anything if we don't enable + // any input, s...
2017 Nov 15
2
[PATCH] nouveau/codegen: dump tgsi floats as hex values
...c/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp >> index 34351dab51..898031811d 100644 >> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp >> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp >> @@ -1095,7 +1095,7 @@ Source::Source(struct nv50_ir_prog_info *prog) : info(prog) >> tokens = (const struct tgsi_token *)info->bin.source; >> >> if (prog->dbgFlags & NV50_IR_DEBUG_BASIC) >> - tgsi_dump(tokens, 0); >> + tgsi_dump(tokens, TGSI_DUMP_FLOAT_AS_HEX); >> } >> >>...
2014 Feb 21
0
[PATCH] nouveau: add a nouveau_compiler binary to compile TGSI into shader ISA
...FTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#include <errno.h> + +#include "tgsi/tgsi_text.h" +#include "util/u_debug.h" + +#include "codegen/nv50_ir_driver.h" +#include "nv50/nv50_context.h" + +static int +dummy_assign_slots(struct nv50_ir_prog_info *info) +{ + return 0; +} + +int +main(int argc, char *argv[]) +{ + struct tgsi_token tokens[1024]; + struct nv50_ir_prog_info info = {0}; + int i, chipset = 0, type = -1; + const char *filename = NULL; + FILE *f; + char text[65536] = {0}; + + for (i = 1; i < argc; i++) { + i...
2014 Jun 23
1
[PATCH] nv50/ir: make ARB_viewport_array behave like it does with other drivers
...-) diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h b/src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h index c885c8c..a8cc97c 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h @@ -189,6 +189,7 @@ struct nv50_ir_prog_info uint16_t sampleInfoBase; /* base address for sample positions */ uint8_t msInfoCBSlot; /* cX[] used for multisample info */ uint16_t msInfoBase; /* base address for multisample info */ + int32_t viewportID; } io; /* driver callback to assign input/ou...
2014 Jul 18
5
[PATCH 0/5] nvc0: fp64 preparation
Most of codegen is already FP64-ready. There are a few edge-cases that I ran into, many of which can apply even to non-fp64-enabled programs (although the double-wide registers are not very common without fp64). I've yet to give this a full piglit run, but wanted to send these out in case someone wanted to comment. They do not depend on the preliminary core fp64 work. Ilia Mirkin (5):
2014 Jun 23
1
[PATCH v3] nv50/ir: make ARB_viewport_array behave like it does with other drivers
...-) diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h b/src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h index c885c8c..002ac8f 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h @@ -177,6 +177,7 @@ struct nv50_ir_prog_info uint8_t vertexId; /* system value index of VertexID */ uint8_t edgeFlagIn; uint8_t edgeFlagOut; + int8_t viewportId; /* output index of ViewportId */ uint8_t fragDepth; /* output index of FragDepth */ uint8_t sampleMask; /* out...
2014 Jun 23
1
[PATCH v2] nv50/ir: make ARB_viewport_array behave like it does with other drivers
...-) diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h b/src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h index c885c8c..b4086f7 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h @@ -177,6 +177,7 @@ struct nv50_ir_prog_info uint8_t vertexId; /* system value index of VertexID */ uint8_t edgeFlagIn; uint8_t edgeFlagOut; + int8_t viewportId; /* output index of ViewportId */ uint8_t fragDepth; /* output index of FragDepth */ uint8_t sampleMask; /* outp...
2014 Feb 04
2
[PATCH 1/3] nv50: rework primid logic
...--git a/src/gallium/drivers/nouveau/nv50/nv50_program.c b/src/gallium/drivers/nouveau/nv50/nv50_program.c index 636ef87..f14d3ef 100644 --- a/src/gallium/drivers/nouveau/nv50/nv50_program.c +++ b/src/gallium/drivers/nouveau/nv50/nv50_program.c @@ -170,10 +170,8 @@ nv50_fragprog_assign_slots(struct nv50_ir_prog_info *info) if (info->in[i].sn == TGSI_SEMANTIC_COLOR) prog->vp.bfc[info->in[i].si] = j; - else if (info->in[i].sn == TGSI_SEMANTIC_PRIMID) { + else if (info->in[i].sn == TGSI_SEMANTIC_PRIMID) prog->vp.attrs[2] |= NV50_3D_VP_GP_BUIL...
2017 Nov 15
0
[PATCH] nouveau/codegen: dump tgsi floats as hex values
...om_tgsi.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp > index 34351dab51..898031811d 100644 > --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp > +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp > @@ -1095,7 +1095,7 @@ Source::Source(struct nv50_ir_prog_info *prog) : info(prog) > tokens = (const struct tgsi_token *)info->bin.source; > > if (prog->dbgFlags & NV50_IR_DEBUG_BASIC) > - tgsi_dump(tokens, 0); > + tgsi_dump(tokens, TGSI_DUMP_FLOAT_AS_HEX); > } > > Source::~Source() > -- > 2.15.0...
2014 May 27
0
[PATCH v2 2/2] nvc0: use SM35 ISA with GK20A
...egen/nv50_ir_driver.h @@ -91,7 +91,7 @@ struct nv50_ir_prog_symbol #define NVISA_GF100_CHIPSET_C0 0xc0 #define NVISA_GF100_CHIPSET_D0 0xd0 #define NVISA_GK104_CHIPSET 0xe0 -#define NVISA_GK110_CHIPSET 0xf0 +#define NVISA_GK20A_CHIPSET 0xea #define NVISA_GM107_CHIPSET 0x110 struct nv50_ir_prog_info diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp index b1f76cf80432..f69e6a183e19 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp...
2017 Nov 16
0
[PATCH] nouveau/codegen: dump tgsi floats as hex values
...s/nouveau/codegen/nv50_ir_from_tgsi.cpp >>> index 34351dab51..898031811d 100644 >>> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp >>> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp >>> @@ -1095,7 +1095,7 @@ Source::Source(struct nv50_ir_prog_info *prog) : >>> info(prog) >>> tokens = (const struct tgsi_token *)info->bin.source; >>> if (prog->dbgFlags & NV50_IR_DEBUG_BASIC) >>> - tgsi_dump(tokens, 0); >>> + tgsi_dump(tokens, TGSI_DUMP_FLOAT_AS_HEX); >>> }...
2014 May 27
8
[PATCH 0/2] nvc0: support for GK20A (Tegra K1)
The following 2 patches make it possible to run Mesa programs on GK20A (Tegra K1). GK20A is very similar to GK104, but uses a new (backward-compatible) 3D class as well as the same ISA as GK110 (SM35). Taking these differences into account is sufficient to successfully render simple off-screen buffers. Alexandre Courbot (2): nvc0: add GK20A 3D class nvc0: use SM35 ISA with GK20A