projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
v3d: Use ldunif instructions for uniforms.
[mesa.git]
/
src
/
broadcom
/
compiler
/
vir_to_qpu.c
diff --git
a/src/broadcom/compiler/vir_to_qpu.c
b/src/broadcom/compiler/vir_to_qpu.c
index cc499d8ba09fc66bd95b71ee868f6c00e614fdf4..bbc2950432693fc448db953064a7d7e833e6f0d3 100644
(file)
--- a/
src/broadcom/compiler/vir_to_qpu.c
+++ b/
src/broadcom/compiler/vir_to_qpu.c
@@
-92,16
+92,6
@@
new_qpu_nop_before(struct qinst *inst)
return q;
}
return q;
}
-static void
-new_ldunif_instr(struct qinst *inst, int i)
-{
- struct qinst *ldunif = new_qpu_nop_before(inst);
-
- ldunif->qpu.sig.ldunif = true;
- assert(inst->src[i].file == QFILE_UNIF);
- ldunif->uniform = inst->src[i].index;
-}
-
/**
* Allocates the src register (accumulator or register file) into the RADDR
* fields of the instruction.
/**
* Allocates the src register (accumulator or register file) into the RADDR
* fields of the instruction.
@@
-219,7
+209,6
@@
v3d_generate_code_block(struct v3d_compile *c,
int nsrc = vir_get_nsrc(qinst);
struct qpu_reg src[ARRAY_SIZE(qinst->src)];
int nsrc = vir_get_nsrc(qinst);
struct qpu_reg src[ARRAY_SIZE(qinst->src)];
- bool emitted_ldunif = false;
for (int i = 0; i < nsrc; i++) {
int index = qinst->src[i].index;
switch (qinst->src[i].file) {
for (int i = 0; i < nsrc; i++) {
int index = qinst->src[i].index;
switch (qinst->src[i].file) {
@@
-236,19
+225,6
@@
v3d_generate_code_block(struct v3d_compile *c,
case QFILE_TEMP:
src[i] = temp_registers[index];
break;
case QFILE_TEMP:
src[i] = temp_registers[index];
break;
- case QFILE_UNIF:
- /* XXX perf: If the last ldunif we emitted was
- * the same uniform value, skip it. Common
- * for multop/umul24 sequences.
- */
- if (!emitted_ldunif) {
- new_ldunif_instr(qinst, i);
- c->num_uniforms++;
- emitted_ldunif = true;
- }
-
- src[i] = qpu_acc(5);
- break;
case QFILE_SMALL_IMM:
src[i].smimm = true;
break;
case QFILE_SMALL_IMM:
src[i].smimm = true;
break;
@@
-301,7
+277,6
@@
v3d_generate_code_block(struct v3d_compile *c,
dst = qpu_magic(V3D_QPU_WADDR_TLBU);
break;
dst = qpu_magic(V3D_QPU_WADDR_TLBU);
break;
- case QFILE_UNIF:
case QFILE_SMALL_IMM:
case QFILE_LOAD_IMM:
assert(!"not reached");
case QFILE_SMALL_IMM:
case QFILE_LOAD_IMM:
assert(!"not reached");