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