On 15.01.2016 15:12, Samuel Iglesias =?UNKNOWN?Q?Gons=C3=A1lvez?= wrote:
> Module: Mesa
> Branch: master
> Commit: 781d2787bc1cf975757a95d0d9324f734fa61c09
> URL:
> http://cgit.freedesktop.org/mesa/mesa/commit/?id=781d2787bc1cf975757a95d0d9324f734fa61c09
>
> Author: Samuel Iglesias Gonsálvez <[email protected]>
> Date: Tue Jan 12 15:36:56 2016 +0100
>
> glsl: restrict consumer stage condition to modify interpolation type
>
> Only modify interpolation type for integer-based varyings or when the
> consumer is known and different than fragment shader.
>
> If we are linking separate shader programs and the consumer is unknown,
> the consumer could be added later and be a fragment shader. If we
> modify the interpolation type in this case, we could read wrong
> values in the fragment shader inputs, as shown in bug 93320.
This change broke 4 GL_ARB_gpu_shader_fp64 piglit tests for me with
radeonsi. Here's the assertion failure and backtrace for one of them:
arb_gpu_shader_fp64-tf-separate:
../../../src/glsl/lower_packed_varyings.cpp:314: void
{anonymous}::lower_packed_varyings_visitor::bitwise_assign_pack(ir_rvalue*,
ir_rvalue*): Assertion `lhs->type->base_type == GLSL_TYPE_INT' failed.
Program received signal SIGABRT, Aborted.
0x00007ffff55f8107 in __GI_raise (sig=sig@entry=6)
at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0 0x00007ffff55f8107 in __GI_raise (sig=sig@entry=6)
at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x00007ffff55f94e8 in __GI_abort () at abort.c:89
#2 0x00007ffff55f1226 in __assert_fail_base (
fmt=0x7ffff5727d08 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n",
assertion=assertion@entry=0x7ffff0f68e88 "lhs->type->base_type ==
GLSL_TYPE_INT",
file=file@entry=0x7ffff0f68e28
"../../../src/glsl/lower_packed_varyings.cpp", line=line@entry=314,
function=function@entry=0x7ffff0f69080 <(anonymous
namespace)::lower_packed_varyings_visitor::bitwise_assign_pack(ir_rvalue*,
ir_rvalue*)::__PRETTY_FUNCTION__> "void
{anonymous}::lower_packed_varyings_visitor::bitwise_assign_pack(ir_rvalue*,
ir_rvalue*)") at assert.c:92
#3 0x00007ffff55f12d2 in __GI___assert_fail (
assertion=assertion@entry=0x7ffff0f68e88 "lhs->type->base_type ==
GLSL_TYPE_INT",
file=file@entry=0x7ffff0f68e28
"../../../src/glsl/lower_packed_varyings.cpp", line=line@entry=314,
function=function@entry=0x7ffff0f69080 <(anonymous
namespace)::lower_packed_varyings_visitor::bitwise_assign_pack(ir_rvalue*,
ir_rvalue*)::__PRETTY_FUNCTION__> "void
{anonymous}::lower_packed_varyings_visitor::bitwise_assign_pack(ir_rvalue*,
ir_rvalue*)") at assert.c:101
#4 0x00007ffff0aa8d62 in (anonymous
namespace)::lower_packed_varyings_visitor::bitwise_assign_pack (rhs=0x829740,
lhs=0x837aa0, this=0x7fffffffdd60)
at ../../../src/glsl/lower_packed_varyings.cpp:314
#5 (anonymous namespace)::lower_packed_varyings_visitor::lower_rvalue (
this=this@entry=0x7fffffffdd60, rvalue=rvalue@entry=0x829740,
fine_location=108, unpacked_var=unpacked_var@entry=0x82ac70,
name=<optimized out>, gs_input_toplevel=<optimized out>, vertex_index=0)
at ../../../src/glsl/lower_packed_varyings.cpp:523
#6 0x00007ffff0aa9083 in (anonymous
namespace)::lower_packed_varyings_visitor::run (shader=0x83e180,
this=0x7fffffffdd60)
at ../../../src/glsl/lower_packed_varyings.cpp:293
#7 lower_packed_varyings (mem_ctx=mem_ctx@entry=0x821980,
locations_used=locations_used@entry=6, mode=mode@entry=ir_var_shader_out,
gs_input_vertices=gs_input_vertices@entry=0, shader=shader@entry=0x83e180)
at ../../../src/glsl/lower_packed_varyings.cpp:724
#8 0x00007ffff0a91087 in assign_varying_locations (ctx=ctx@entry=0x79ba60,
mem_ctx=mem_ctx@entry=0x821980, prog=prog@entry=0x831070,
producer=producer@entry=0x83e180, consumer=consumer@entry=0x0,
num_tfeedback_decls=num_tfeedback_decls@entry=4, tfeedback_decls=0x82a290)
at ../../../src/glsl/link_varyings.cpp:1798
#9 0x00007ffff0a98366 in link_shaders (ctx=ctx@entry=0x79ba60,
prog=prog@entry=0x831070) at ../../../src/glsl/linker.cpp:4496
#10 0x00007ffff09c198b in _mesa_glsl_link_shader (ctx=ctx@entry=0x79ba60,
prog=prog@entry=0x831070) at ../../../src/mesa/program/ir_to_mesa.cpp:2958
#11 0x00007ffff089d8ee in link_program (program=<optimized out>, ctx=0x79ba60)
at ../../../src/mesa/main/shaderapi.c:1048
#12 _mesa_LinkProgram (programObj=<optimized out>)
at ../../../src/mesa/main/shaderapi.c:1520
#13 0x00007ffff7acf24e in stub_glLinkProgram (program=2)
at tests/util/piglit-dispatch-gen.c:32599
#14 0x0000000000401841 in piglit_init (argc=1, argv=0x7fffffffe748)
at tests/spec/arb_gpu_shader_fp64/execution/tf-separate.c:96
#15 0x00007ffff7b3cfc8 in run_test (gl_fw=0x614c20, argc=1,
argv=0x7fffffffe748)
at tests/util/piglit-framework-gl/piglit_fbo_framework.c:50
#16 0x00007ffff7b23557 in piglit_gl_test_run (argc=1, argv=0x7fffffffe748,
config=0x7fffffffe610) at tests/util/piglit-framework-gl.c:199
#17 0x0000000000401710 in main (argc=1, argv=0x7fffffffe748)
at tests/spec/arb_gpu_shader_fp64/execution/tf-separate.c:42
--
Earthling Michel Dänzer | http://www.amd.com
Libre software enthusiast | Mesa and X developer
_______________________________________________
mesa-dev mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-dev