Module: Mesa
Branch: master
Commit: 77b4f30bae4100b2a80e961b89359e1fd1beed9d
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=77b4f30bae4100b2a80e961b89359e1fd1beed9d

Author: Eric Anholt <e...@anholt.net>
Date:   Wed Apr 25 16:24:15 2018 -0700

broadcom/vc5: Add validation that we don't violate GFXH-1633 requirements.

We don't use ldunifa yet, but we will eventually for UBOs.

---

 src/broadcom/compiler/qpu_validate.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/src/broadcom/compiler/qpu_validate.c 
b/src/broadcom/compiler/qpu_validate.c
index b459d81b44..fb2ed123ab 100644
--- a/src/broadcom/compiler/qpu_validate.c
+++ b/src/broadcom/compiler/qpu_validate.c
@@ -124,6 +124,19 @@ qpu_validate_inst(struct v3d_qpu_validate_state *state, 
struct qinst *qinst)
                 fail_instr(state, "LDUNIF after a LDVARY");
         }
 
+        /* GFXH-1633 */
+        bool last_reads_ldunif = (state->last && (state->last->sig.ldunif ||
+                                                  state->last->sig.ldunifrf));
+        bool last_reads_ldunifa = (state->last && (state->last->sig.ldunifa ||
+                                                   
state->last->sig.ldunifarf));
+        bool reads_ldunif = inst->sig.ldunif || inst->sig.ldunifrf;
+        bool reads_ldunifa = inst->sig.ldunifa || inst->sig.ldunifarf;
+        if ((last_reads_ldunif && reads_ldunifa) ||
+            (last_reads_ldunifa && reads_ldunif)) {
+                fail_instr(state,
+                           "LDUNIF and LDUNIFA can't be next to each other");
+        }
+
         int tmu_writes = 0;
         int sfu_writes = 0;
         int vpm_writes = 0;

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to