From: Matt Turner Date: Fri, 29 Apr 2016 23:54:55 +0000 (-0700) Subject: i965: Actually check whether the opcode is supported. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0ff4912cf4e3d7186bbc5ba4886d00dd4d4876d3;p=mesa.git i965: Actually check whether the opcode is supported. Reviewed-by: Kenneth Graunke --- diff --git a/src/mesa/drivers/dri/i965/brw_eu.c b/src/mesa/drivers/dri/i965/brw_eu.c index 102e4ca6088..14b2da4c2c6 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 6f55df96bde..dbf75e4ef35 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