Mesa (master): i965: Don't try to decode types for non-existent src1.

Kenneth Graunke kwg at kemper.freedesktop.org
Tue Oct 10 22:11:41 UTC 2017


Module: Mesa
Branch: master
Commit: 03087686ffb8c638831256fd17c124d250d7238b
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=03087686ffb8c638831256fd17c124d250d7238b

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Sat Oct  7 00:14:34 2017 -0700

i965: Don't try to decode types for non-existent src1.

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 <apinheiro at igalia.com>

---

 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 8568f712d7..9f72c650dd 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);
 




More information about the mesa-commit mailing list