This will allow the validator to run on shader programs we find in the GPU hang error state. --- src/intel/compiler/brw_eu_validate.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
diff --git a/src/intel/compiler/brw_eu_validate.c b/src/intel/compiler/brw_eu_validate.c index 39363e4..38564a4 100644 --- a/src/intel/compiler/brw_eu_validate.c +++ b/src/intel/compiler/brw_eu_validate.c @@ -1051,6 +1051,14 @@ brw_validate_instructions(const struct gen_device_info *devinfo, for (int src_offset = start_offset; src_offset < end_offset;) { struct string error_msg = { .str = NULL, .len = 0 }; const brw_inst *inst = assembly + src_offset; + bool is_compact = brw_inst_cmpt_control(devinfo, inst); + brw_inst uncompacted; + + if (is_compact) { + brw_compact_inst *compacted = (void *)inst; + brw_uncompact_instruction(devinfo, &uncompacted, compacted); + inst = &uncompacted; + } if (is_unsupported_inst(devinfo, inst)) { ERROR("Instruction not supported on this Gen"); @@ -1067,6 +1075,12 @@ brw_validate_instructions(const struct gen_device_info *devinfo, } valid = valid && error_msg.len == 0; free(error_msg.str); + + if (is_compact) { + src_offset += sizeof(brw_compact_inst); + } else { + src_offset += sizeof(brw_inst); + } } return valid; -- 2.10.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev