diff options
| author | Matt Turner <mattst88@gmail.com> | 2015-11-06 18:48:26 -0800 |
|---|---|---|
| committer | Matt Turner <mattst88@gmail.com> | 2015-11-12 11:08:04 -0800 |
| commit | 309d4d8f8339248ebdf31b7ef802aae90df44f44 (patch) | |
| tree | 58c8707f42e43379b422d25721e5e89d046295d1 | |
| parent | 10c54f3655183008c8b61d1fd04f67a141b92243 (diff) | |
| -rw-r--r-- | src/mesa/drivers/dri/i965/brw_eu_validate.c | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_eu_validate.c b/src/mesa/drivers/dri/i965/brw_eu_validate.c index 8236d8defdb..fe9b6a62e26 100644 --- a/src/mesa/drivers/dri/i965/brw_eu_validate.c +++ b/src/mesa/drivers/dri/i965/brw_eu_validate.c @@ -402,7 +402,7 @@ static const struct inst_info inst_info[128] = { }, [BRW_OPCODE_PLN] = { .gen = GEN_GE(GEN45), - .acc = ACC_NO_EXPLICIT_SOURCE, + .acc = ACC_GEN_DEPENDENT, }, [BRW_OPCODE_MAD] = { .gen = GEN_GE(GEN6), @@ -431,41 +431,52 @@ accumulator_restrictions(const struct brw_device_info *devinfo, switch (opcode) { case BRW_OPCODE_SEL: - if (devinfo->gen < 7) + if (devinfo->gen < 7) { acc = ACC_NO_ACCESS; - else + } else { acc = ACC_NO_RESTRICTIONS; + } break; case BRW_OPCODE_CMP: case BRW_OPCODE_CMPN: acc = ACC_NO_RESTRICTIONS; - if (devinfo->gen < 8) + if (devinfo->gen < 8) { acc |= ACC_NO_DESTINATION; - if (devinfo->gen < 7) + } + if (devinfo->gen < 7) { acc |= ACC_NO_SOURCE_MODIFIER | ACC_NO_INTEGER_SOURCE; + } break; case BRW_OPCODE_MUL: - if (devinfo->gen < 8) + if (devinfo->gen < 8) { acc = ACC_NO_SOURCE_MODIFIER; - else + } else { acc = ACC_NO_RESTRICTIONS; + } break; case BRW_OPCODE_RNDU: case BRW_OPCODE_RNDD: case BRW_OPCODE_RNDE: case BRW_OPCODE_RNDZ: - if (devinfo->gen < 8) + if (devinfo->gen < 8) { acc = ACC_NO_ACCESS; - else + } else { acc = ACC_NO_RESTRICTIONS; + } break; case BRW_OPCODE_LZD: - if (devinfo->gen < 8) + if (devinfo->gen < 8) { acc = ACC_NO_EXPLICIT_DESTINATION; - else + } else { acc = ACC_NO_RESTRICTIONS; + } break; + case BRW_OPCODE_PLN: + if (devinfo->gen < 9) { + acc = ACC_NO_ACCESS; + else { + } default: unreachable("not reached"); } |
