Bug 83515 - [SNB+]Piglit spec_EXT_shader_integer_mix_execution_fs-mix-if-bool crash
Summary: [SNB+]Piglit spec_EXT_shader_integer_mix_execution_fs-mix-if-bool crash
Status: VERIFIED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/i965 (show other bugs)
Version: unspecified
Hardware: All Linux (All)
: medium normal
Assignee: Ian Romanick
QA Contact: Intel 3D Bugs Mailing List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-09-05 03:11 UTC by lu hua
Modified: 2014-09-22 01:52 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Description lu hua 2014-09-05 03:11:10 UTC
System Environment:
--------------------------
Platform: SNB
Libdrm:	(master)libdrm-2.4.56-21-g8c2ae1695913990cbe6c6a8aa294f354eba33bd0
Mesa:	(master)504f5f9d1a4fb5a0ddc8a5d0bf73fd6eba96b1d0
Xserver:(master)xorg-server-1.16.0-152-g3a51418b2db353519a1779cf3cebbcc9afba2520
Xf86_video_intel:(master)2.99.914-89-gaa10f480c566b8523cdd49b3e23f64b7b9625987
Libva:	(master)c356638098e55453d2fac8bbb92eafc8cc32d6f4
Libva_intel_driver:(master)865f288d6821dfea5a9dc2a0525eba69ef786b23
Kernel:   (drm-intel-nightly)4144c90b76dfe6eaa2205ac947090786b5091cff

Bug detailed description:
---------------------------
It crash on SNB+ platforms with mesa 10.3 branch and SNB with mesa master branch.
It works well on IVB+ with mesa master branch.

It's a new case.
spec_EXT_shader_integer_mix_execution_vs-mix-if-bool also has this issue.

output:
Segmentation fault (core dumped)

(gdb) bt
#0  exec_list_push_tail (n=0x810957c, list=0xbfffe4f8) at ../../../../../src/glsl/list.h:439
#1  push_tail (n=0x810957c, this=0xbfffe4f8) at ../../../../../src/glsl/list.h:567
#2  emit (inst=0x810957c, this=0xbfffe4d8) at brw_fs_visitor.cpp:2759
#3  fs_visitor::resolve_ud_negate (this=this@entry=0xbfffe4d8, reg=reg@entry=0xbfffe520) at brw_fs_visitor.cpp:3230
#4  0xb79af119 in resolve_ud_negate (reg=0xbfffe520, this=0xbfffe4d8) at brw_fs_visitor.cpp:2262
#5  fs_visitor::emit_bool_to_cond_code (this=0x10001, ir=0x0) at brw_fs_visitor.cpp:2259
#6  0xb79afa01 in exec_list_get_tail (list=0x20) at ../../../../../src/glsl/list.h:407
#7  get_tail (this=0x20) at ../../../../../src/glsl/list.h:552
#8  fs_visitor::visit (this=0x70001, ir=0x0) at brw_fs_visitor.cpp:1109
#9  0xb79afe01 in fs_visitor::visit (this=0x0, ir=0x0) at brw_fs_visitor.cpp:2534
#10 0x00000000 in ?? ()


Reproduce steps:
-------------------------
1. xinit
2. bin/shader_runner tests/spec/ext_shader_integer_mix/execution/fs-mix-if-bool.shader_test -auto
Comment 1 Matt Turner 2014-09-05 04:17:15 UTC
I think Ken just hasn't committed the corresponding Mesa code.
Comment 2 Kenneth Graunke 2014-09-19 07:53:31 UTC
should be fixed by:

commit 6272e60ca394a8da178d3352831a48f4c429a3bc
Author: Kenneth Graunke <kenneth@whitecape.org>
Date:   Thu Sep 4 00:18:43 2014 -0700

    i965: Handle ir_triop_csel in emit_if_gen6().
    
    ir_triop_csel can return a boolean expression, so we need to handle it
    here; we simply forgot when we added ir_triop_csel, and forgot again
    when adding it to emit_bool_to_cond_code.
    
    Fixes Piglit's EXT_shader_integer_mix/{vs,fs}-mix-if-bool on Sandybridge.
    
    Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
    Reviewed-by: Matt Turner <mattst88@gmail.com>
    Cc: mesa-stable@lists.freedesktop.org
Comment 3 lu hua 2014-09-22 01:52:52 UTC
Verified.Fixed.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.