Mesa (master): i965: Actually check whether the opcode is supported.

Matt Turner mattst88 at kemper.freedesktop.org
Wed May 4 05:59:50 UTC 2016


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

Author: Matt Turner <mattst88 at gmail.com>
Date:   Fri Apr 29 16:54:55 2016 -0700

i965: Actually check whether the opcode is supported.

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

---

 src/mesa/drivers/dri/i965/brw_eu.c          | 4 ++--
 src/mesa/drivers/dri/i965/brw_eu_validate.c | 3 +--
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_eu.c b/src/mesa/drivers/dri/i965/brw_eu.c
index 102e4ca..14b2da4 100644
--- a/src/mesa/drivers/dri/i965/brw_eu.c
+++ b/src/mesa/drivers/dri/i965/brw_eu.c
@@ -583,7 +583,6 @@ gen_from_devinfo(const struct brw_device_info *devinfo)
 
 /* Return the matching opcode_desc for the specified opcode number and
  * hardware generation, or NULL if the opcode is not supported by the device.
- * XXX -- Actually check whether the opcode is supported.
  */
 const struct opcode_desc *
 brw_opcode_desc(const struct brw_device_info *devinfo, enum opcode opcode)
@@ -591,7 +590,8 @@ brw_opcode_desc(const struct brw_device_info *devinfo, enum opcode opcode)
    if (opcode >= ARRAY_SIZE(opcode_descs))
       return NULL;
 
-   if (opcode_descs[opcode].name)
+   enum gen gen = gen_from_devinfo(devinfo);
+   if ((opcode_descs[opcode].gens & gen) != 0)
       return &opcode_descs[opcode];
    else
       return NULL;
diff --git a/src/mesa/drivers/dri/i965/brw_eu_validate.c b/src/mesa/drivers/dri/i965/brw_eu_validate.c
index 6f55df9..dbf75e4 100644
--- a/src/mesa/drivers/dri/i965/brw_eu_validate.c
+++ b/src/mesa/drivers/dri/i965/brw_eu_validate.c
@@ -121,8 +121,7 @@ static bool
 is_unsupported_inst(const struct brw_device_info *devinfo,
                     const brw_inst *inst)
 {
-   int gen = gen_from_devinfo(devinfo);
-   return (opcode_descs[brw_inst_opcode(devinfo, inst)].gens & gen) == 0;
+   return brw_opcode_desc(devinfo, brw_inst_opcode(devinfo, inst)) == NULL;
 }
 
 bool




More information about the mesa-commit mailing list