intel/fs: grab fail_msg from v32 instead of v16 when v32->run_cs fails
authorPaulo Zanoni <paulo.r.zanoni@intel.com>
Wed, 14 Aug 2019 00:02:13 +0000 (17:02 -0700)
committerPaulo Zanoni <paulo.r.zanoni@intel.com>
Mon, 26 Aug 2019 21:54:16 +0000 (14:54 -0700)
Looks like a copy/paste error. This patch prevents a segfault when
running the following on BDW:

    INTEL_DEBUG=no8,no16,do32 ./deqp-vk -n \
        dEQP-VK.subgroups.arithmetic.compute.subgroupmin_dvec4

For the curious, the message we're getting is:

    CS compile failed: Failure to register allocate.  Reduce number
    of live scalar values to avoid this.

Fixes: 864737ce6cd5 ("i965/fs: Build 32-wide compute shader when needed.")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
src/intel/compiler/brw_fs.cpp

index a234450887f7ff3cf82e60b7503f17202bb0d67a..8fbb118ea41c486143ddb09a9b151d076d576d67 100644 (file)
@@ -8429,7 +8429,7 @@ brw_compile_cs(const struct brw_compiler *compiler, void *log_data,
       if (!v32->run_cs(min_dispatch_width)) {
          compiler->shader_perf_log(log_data,
                                    "SIMD32 shader failed to compile: %s",
-                                   v16->fail_msg);
+                                   v32->fail_msg);
          if (!v) {
             fail_msg =
                "Couldn't generate SIMD32 program and not "