[Mesa-dev] [PATCH] glsl: fix ldexp lowering if bitfield insert lowering is also requested
Roland Scheidegger
sroland at vmware.com
Tue Dec 6 16:50:53 UTC 2016
Oops sorry for that. Looks like I changed the type of a constant
accidentally - I probably copied that bit from the original code
instead, which might have had it wrong at that time without
consequences... Should hopefully be fixed now.
Roland
Am 06.12.2016 um 08:51 schrieb Michel Dänzer:
> 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
>
>
More information about the mesa-dev
mailing list