[Mesa-dev] [PATCH] glsl: fix ldexp lowering if bitfield insert lowering is also requested

Michel Dänzer michel at daenzer.net
Tue Dec 6 07:51:17 UTC 2016


On 04/12/16 01:09 AM, sroland at vmware.com wrote:
> From: Roland Scheidegger <sroland at vmware.com>
> 
> Trivial, this just resurrects the code which was there once upon a time
> (the code can't lower instructions generated in the lowering pass there,
> and even if it could it would probably be suboptimal).
> This fixes piglit mesa_shader_integer_functions fs-ldexp.shader_test and
> vs-ldexp.shader_test with llvmpipe.

... and in exchange broke the same tests with radeonsi. :}

shader_runner: ../../../src/compiler/glsl/ir_validate.cpp:662: virtual ir_visitor_status {anonymous}::ir_validate::visit_leave(ir_expression*): Assertion `ir->operands[3]->type == ir->type' failed.

Thread 1 "shader_runner" received signal SIGABRT, Aborted.
__GI_raise (sig=sig at entry=6) at ../sysdeps/unix/sysv/linux/raise.c:58
58	../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  __GI_raise (sig=sig at entry=6) at ../sysdeps/unix/sysv/linux/raise.c:58
#1  0x00007ffff4b9940a in __GI_abort () at abort.c:89
#2  0x00007ffff4b90e47 in __assert_fail_base (fmt=<optimized out>, assertion=assertion at entry=0x7ffff0fe7208 "ir->operands[3]->type == ir->type", file=file at entry=0x7ffff0fe6618 "../../../src/compiler/glsl/ir_validate.cpp", line=line at entry=662, 
    function=function at entry=0x7ffff0fe7e00 <(anonymous namespace)::ir_validate::visit_leave(ir_expression*)::__PRETTY_FUNCTION__> "virtual ir_visitor_status {anonymous}::ir_validate::visit_leave(ir_expression*)") at assert.c:92
#3  0x00007ffff4b90ef2 in __GI___assert_fail (assertion=assertion at entry=0x7ffff0fe7208 "ir->operands[3]->type == ir->type", file=file at entry=0x7ffff0fe6618 "../../../src/compiler/glsl/ir_validate.cpp", line=line at entry=662, 
    function=function at entry=0x7ffff0fe7e00 <(anonymous namespace)::ir_validate::visit_leave(ir_expression*)::__PRETTY_FUNCTION__> "virtual ir_visitor_status {anonymous}::ir_validate::visit_leave(ir_expression*)") at assert.c:101
#4  0x00007ffff0a42e21 in (anonymous namespace)::ir_validate::visit_leave (this=<optimized out>, ir=<optimized out>) at ../../../src/compiler/glsl/ir_validate.cpp:662
#5  0x00007ffff0a3e2bb in ir_expression::accept (this=0x555555958340, v=0x7fffffffd120) at ../../../src/compiler/glsl/ir_hv_accept.cpp:141
#6  0x00007ffff0a3e2bb in ir_expression::accept (this=0x5555559583d0, v=0x7fffffffd120) at ../../../src/compiler/glsl/ir_hv_accept.cpp:141
#7  0x00007ffff0a3e2bb in ir_expression::accept (this=0x5555559585c0, v=0x7fffffffd120) at ../../../src/compiler/glsl/ir_hv_accept.cpp:141
#8  0x00007ffff0a3e5ef in ir_assignment::accept (this=0x55555594b9f0, v=0x7fffffffd120) at ../../../src/compiler/glsl/ir_hv_accept.cpp:309
#9  0x00007ffff0a3e11d in visit_list_elements (statement_list=true, l=0x555555951410, v=0x7fffffffd120) at ../../../src/compiler/glsl/ir_hv_accept.cpp:55
#10 ir_function_signature::accept (this=0x5555559513c0, v=0x7fffffffd120) at ../../../src/compiler/glsl/ir_hv_accept.cpp:115
#11 0x00007ffff0a3e209 in visit_list_elements (statement_list=false, l=0x555555951348, v=0x7fffffffd120) at ../../../src/compiler/glsl/ir_hv_accept.cpp:55
#12 ir_function::accept (this=0x555555951320, v=0x7fffffffd120) at ../../../src/compiler/glsl/ir_hv_accept.cpp:127
#13 0x00007ffff0a3dede in visit_list_elements (v=v at entry=0x7fffffffd120, l=l at entry=0x555555953180, statement_list=statement_list at entry=true) at ../../../src/compiler/glsl/ir_hv_accept.cpp:55
#14 0x00007ffff0a3dd1f in ir_hierarchical_visitor::run (this=this at entry=0x7fffffffd120, instructions=instructions at entry=0x555555953180) at ../../../src/compiler/glsl/ir_hierarchical_visitor.cpp:364
#15 0x00007ffff0a45c7a in validate_ir_tree (instructions=instructions at entry=0x555555953180) at ../../../src/compiler/glsl/ir_validate.cpp:932
#16 0x00007ffff0960da9 in st_link_shader (ctx=0x5555559014c0, prog=0x555555953920) at ../../../src/mesa/state_tracker/st_glsl_to_tgsi.cpp:6879
#17 0x00007ffff098cb15 in _mesa_glsl_link_shader (ctx=ctx at entry=0x5555559014c0, prog=prog at entry=0x555555953920) at ../../../src/mesa/program/ir_to_mesa.cpp:3066
#18 0x00007ffff082c60d in _mesa_link_program (ctx=0x5555559014c0, shProg=0x555555953920) at ../../../src/mesa/main/shaderapi.c:1089
#19 0x00007ffff7ac8795 in stub_glLinkProgram (program=3) at /home/daenzer/src/piglit-git/piglit/tests/util/piglit-dispatch-gen.c:33005
#20 0x000055555555ce9c in link_and_use_shaders () at /home/daenzer/src/piglit-git/piglit/tests/shaders/shader_runner.c:1040
#21 0x00005555555656fb in init_test (file=0x7fffffffe9ec "/home/daenzer/src/piglit-git/piglit/tests/spec/mesa_shader_integer_functions/execution/built-in-functions/fs-ldexp.shader_test") at /home/daenzer/src/piglit-git/piglit/tests/shaders/shader_runner.c:3686
#22 0x0000555555566341 in piglit_init (argc=2, argv=0x7fffffffe6b8) at /home/daenzer/src/piglit-git/piglit/tests/shaders/shader_runner.c:4012
#23 0x00007ffff7b39361 in run_test (gl_fw=0x555555780c20, argc=2, argv=0x7fffffffe6b8) at /home/daenzer/src/piglit-git/piglit/tests/util/piglit-framework-gl/piglit_winsys_framework.c:73
#24 0x00007ffff7b1de9c in piglit_gl_test_run (argc=2, argv=0x7fffffffe6b8, config=0x7fffffffe580) at /home/daenzer/src/piglit-git/piglit/tests/util/piglit-framework-gl.c:203
#25 0x000055555555b04c in main (argc=2, argv=0x7fffffffe6b8) at /home/daenzer/src/piglit-git/piglit/tests/shaders/shader_runner.c:60


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer


More information about the mesa-dev mailing list