Mesa (master): vc4: Add a QIR value for the QPU element register.
Eric Anholt
anholt at kemper.freedesktop.org
Fri Aug 26 00:24:58 UTC 2016
Module: Mesa
Branch: master
Commit: 31da39ddc92e780dc539bf34d2de7f82fc65fa86
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=31da39ddc92e780dc539bf34d2de7f82fc65fa86
Author: Eric Anholt <eric at anholt.net>
Date: Thu Aug 25 13:48:21 2016 -0700
vc4: Add a QIR value for the QPU element register.
This will be used in the ddx/ddy support for "Am I the top half?" or "Am I
the left half?" checks.
---
src/gallium/drivers/vc4/vc4_qir.c | 1 +
src/gallium/drivers/vc4/vc4_qir.h | 1 +
src/gallium/drivers/vc4/vc4_qir_validate.c | 2 ++
src/gallium/drivers/vc4/vc4_qpu_emit.c | 4 ++++
4 files changed, 8 insertions(+)
diff --git a/src/gallium/drivers/vc4/vc4_qir.c b/src/gallium/drivers/vc4/vc4_qir.c
index 9ff1561..0919d32 100644
--- a/src/gallium/drivers/vc4/vc4_qir.c
+++ b/src/gallium/drivers/vc4/vc4_qir.c
@@ -292,6 +292,7 @@ qir_print_reg(struct vc4_compile *c, struct qreg reg, bool write)
[QFILE_FRAG_X] = "frag_x",
[QFILE_FRAG_Y] = "frag_y",
[QFILE_FRAG_REV_FLAG] = "frag_rev_flag",
+ [QFILE_QPU_ELEMENT] = "elem",
};
switch (reg.file) {
diff --git a/src/gallium/drivers/vc4/vc4_qir.h b/src/gallium/drivers/vc4/vc4_qir.h
index 6b48959..9e61200 100644
--- a/src/gallium/drivers/vc4/vc4_qir.h
+++ b/src/gallium/drivers/vc4/vc4_qir.h
@@ -61,6 +61,7 @@ enum qfile {
QFILE_FRAG_X,
QFILE_FRAG_Y,
QFILE_FRAG_REV_FLAG,
+ QFILE_QPU_ELEMENT,
/**
* Stores an immediate value in the index field that will be used
diff --git a/src/gallium/drivers/vc4/vc4_qir_validate.c b/src/gallium/drivers/vc4/vc4_qir_validate.c
index e8d4372..e7cfe5a 100644
--- a/src/gallium/drivers/vc4/vc4_qir_validate.c
+++ b/src/gallium/drivers/vc4/vc4_qir_validate.c
@@ -79,6 +79,7 @@ void qir_validate(struct vc4_compile *c)
case QFILE_FRAG_X:
case QFILE_FRAG_Y:
case QFILE_FRAG_REV_FLAG:
+ case QFILE_QPU_ELEMENT:
case QFILE_SMALL_IMM:
case QFILE_LOAD_IMM:
fail_instr(c, inst, "Bad dest file");
@@ -98,6 +99,7 @@ void qir_validate(struct vc4_compile *c)
case QFILE_UNIF:
case QFILE_VPM:
case QFILE_LOAD_IMM:
+ case QFILE_QPU_ELEMENT:
break;
case QFILE_SMALL_IMM:
diff --git a/src/gallium/drivers/vc4/vc4_qpu_emit.c b/src/gallium/drivers/vc4/vc4_qpu_emit.c
index 8249929..77aa4f6 100644
--- a/src/gallium/drivers/vc4/vc4_qpu_emit.c
+++ b/src/gallium/drivers/vc4/vc4_qpu_emit.c
@@ -339,6 +339,9 @@ vc4_generate_code_block(struct vc4_compile *c,
case QFILE_FRAG_REV_FLAG:
src[i] = qpu_rb(QPU_R_MS_REV_FLAGS);
break;
+ case QFILE_QPU_ELEMENT:
+ src[i] = qpu_ra(QPU_R_ELEM_QPU);
+ break;
case QFILE_TLB_COLOR_WRITE:
case QFILE_TLB_COLOR_WRITE_MS:
@@ -383,6 +386,7 @@ vc4_generate_code_block(struct vc4_compile *c,
case QFILE_FRAG_X:
case QFILE_FRAG_Y:
case QFILE_FRAG_REV_FLAG:
+ case QFILE_QPU_ELEMENT:
assert(!"not reached");
break;
}
More information about the mesa-commit
mailing list