From 03087686ffb8c638831256fd17c124d250d7238b Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Sat, 7 Oct 2017 00:14:34 -0700 Subject: [PATCH] i965: Don't try to decode types for non-existent src1. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit KHR-GL45.shader_ballot_tests.ShaderBallotBitmasks has a MOV that hits this validation path. MOVs don't have a src1 file, but calling brw_inst_src1_type() was tripping on src1.file being BRW_IMMEDIATE_VALUE and the hw_type being something invalid for immediates. To work around this, just pretend src1 is src0 if there isn't a src1. Fixes: 2572c2771d0cab0b9bc489d354ede44dfc88547b (i965: Validate "Special Requirements for Handling Double Precision Data Types") Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102680 Reviewed-by: Alejandro Piñeiro --- src/intel/compiler/brw_eu_validate.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/intel/compiler/brw_eu_validate.c b/src/intel/compiler/brw_eu_validate.c index 8568f712d77..9f72c650ddb 100644 --- a/src/intel/compiler/brw_eu_validate.c +++ b/src/intel/compiler/brw_eu_validate.c @@ -1225,7 +1225,8 @@ special_requirements_for_handling_double_precision_data_types( */ if (devinfo->gen >= 8) { enum brw_reg_type src0_type = brw_inst_src0_type(devinfo, inst); - enum brw_reg_type src1_type = brw_inst_src1_type(devinfo, inst); + enum brw_reg_type src1_type = + num_sources > 1 ? brw_inst_src1_type(devinfo, inst) : src0_type; unsigned src0_type_size = brw_reg_type_to_size(src0_type); unsigned src1_type_size = brw_reg_type_to_size(src1_type); -- 2.30.2