[Mesa-dev] [PATCH 18/43] intel/decoder: Handle gen4 VF_STATISTICS and PIPELINE_SELECT

Jason Ekstrand jason at jlekstrand.net
Tue May 16 22:45:12 UTC 2017


These need special handling because they have no "DWord Length"
parameter and they have an unusual bias of 1.
---
 src/intel/common/gen_decoder.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/intel/common/gen_decoder.c b/src/intel/common/gen_decoder.c
index e1a2fcf..6bb9a7a 100644
--- a/src/intel/common/gen_decoder.c
+++ b/src/intel/common/gen_decoder.c
@@ -706,9 +706,12 @@ gen_group_get_length(struct gen_group *group, const uint32_t *p)
    case 3: /* Render */ {
       uint32_t subtype = field(h, 27, 28);
       uint32_t opcode = field(h, 24, 26);
+      uint16_t whole_opcode = field(h, 16, 31);
       switch (subtype) {
       case 0:
-         if (opcode < 2)
+         if (whole_opcode == 0x6104)
+            return 1;
+         else if (opcode < 2)
             return field(h, 0, 7) + 2;
          else
             return -1;
@@ -726,7 +729,9 @@ gen_group_get_length(struct gen_group *group, const uint32_t *p)
             return -1;
       }
       case 3:
-         if (opcode < 4)
+         if (whole_opcode == 0x780b)
+            return 1;
+         else if (opcode < 4)
             return field(h, 0, 7) + 2;
          else
             return -1;
-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list