i965: Actually check whether the opcode is supported.
[mesa.git] / src / mesa / drivers / dri / i965 / brw_eu.c
index 102e4ca608859129201b1226342c40210a42af5b..14b2da4c2c6910b3ea42e6892ad375b01c501302 100644 (file)
@@ -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;