[Mesa-dev] Mesa (master): mesa: correctly calculate the storage offset for i915

Michel Dänzer michel at daenzer.net
Tue Aug 15 07:04:53 UTC 2017


On 15/08/17 07:22 AM, Timothy Arceri wrote:
> Module: Mesa
> Branch: master
> Commit: 365d34540f331df57780dddf8da87235be0a6bcb
> URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=365d34540f331df57780dddf8da87235be0a6bcb
> 
> Author: Timothy Arceri <tarceri at itsqueeze.com>
> Date:   Tue Aug  1 17:35:06 2017 +1000
> 
> mesa: correctly calculate the storage offset for i915
> 
> When generating the storage offset for struct members we need
> to skip opaque types as they no longer have backing storage.
> 
> Fixes: fcbb93e86024 ("mesa: stop assigning unused storage for non-bindless opaque types")
> 
> V2: simplify since bindless will never be supported in this code

Ironically, this broke a bunch of bindless piglits with radeonsi, e.g.
spec at arb_bindless_texture@conversions:

arb_bindless_texture-conversions: ../../src/mesa/program/prog_parameter.c:240: _mesa_add_parameter: Assertion `size > 0' failed.

Thread 1 "arb_bindless_te" received signal SIGABRT, Aborted.
__GI_raise (sig=sig at entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51	../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:51
#1  0x00007fb7cdba242a in __GI_abort () at abort.c:89
#2  0x00007fb7cdb99e67 in __assert_fail_base (fmt=<optimized out>, assertion=assertion at entry=0x7fb7c9bb1877 "size > 0", file=file at entry=0x7fb7c9b30350 "../../src/mesa/program/prog_parameter.c", line=line at entry=240, 
    function=function at entry=0x7fb7c9b303b0 <__PRETTY_FUNCTION__.36870> "_mesa_add_parameter") at assert.c:92
#3  0x00007fb7cdb99f12 in __GI___assert_fail (assertion=assertion at entry=0x7fb7c9bb1877 "size > 0", file=file at entry=0x7fb7c9b30350 "../../src/mesa/program/prog_parameter.c", line=line at entry=240, 
    function=function at entry=0x7fb7c9b303b0 <__PRETTY_FUNCTION__.36870> "_mesa_add_parameter") at assert.c:101
#4  0x00007fb7c95f11e1 in _mesa_add_parameter (paramList=paramList at entry=0x10040fb00, type=type at entry=PROGRAM_UNIFORM, name=name at entry=0x100414c30 "given_tex", size=<optimized out>, datatype=35678, values=values at entry=0x0, state=0x0)
    at ../../src/mesa/program/prog_parameter.c:240
#5  0x00007fb7c95e18ec in (anonymous namespace)::add_uniform_to_shader::visit_field (this=0x7fffffffe130, type=0x7fb7c9f57aa0 <glsl_type::_sampler2D_type>, name=0x100414c30 "given_tex") at ../../../src/mesa/program/ir_to_mesa.cpp:2458
#6  0x00007fb7c96a140c in program_resource_visitor::process (this=this at entry=0x7fffffffe130, var=var at entry=0x100414c00) at ../../../src/compiler/glsl/link_uniforms.cpp:96
#7  0x00007fb7c95e776e in (anonymous namespace)::add_uniform_to_shader::process (var=0x100414c00, this=0x7fffffffe130) at ../../../src/mesa/program/ir_to_mesa.cpp:2422
#8  _mesa_generate_parameters_list_for_uniforms (shader_program=shader_program at entry=0x10041f170, sh=sh at entry=0x10040fab0, params=<optimized out>) at ../../../src/mesa/program/ir_to_mesa.cpp:2491
#9  0x00007fb7c95c887b in get_mesa_program_tgsi (shader=<optimized out>, shader_program=0x10041f170, ctx=0x1003b2e20) at ../../../src/mesa/state_tracker/st_glsl_to_tgsi.cpp:6835
#10 st_link_shader (ctx=<optimized out>, prog=<optimized out>) at ../../../src/mesa/state_tracker/st_glsl_to_tgsi.cpp:7190
#11 0x00007fb7c95e9018 in _mesa_glsl_link_shader (ctx=ctx at entry=0x1003b2e20, prog=prog at entry=0x10041f170) at ../../../src/mesa/program/ir_to_mesa.cpp:3106
#12 0x00007fb7c94eadd2 in link_program (no_error=<optimized out>, shProg=<optimized out>, ctx=<optimized out>) at ../../../src/mesa/main/shaderapi.c:1163
#13 link_program_error (ctx=0x1003b2e20, shProg=0x10041f170) at ../../../src/mesa/main/shaderapi.c:1241
#14 0x00007fb7d0ac892b in stub_glLinkProgram (program=3) at tests/util/piglit-dispatch-gen.c:33822
#15 0x00007fb7d0b20d05 in piglit_link_simple_program (vs=1, fs=2) at tests/util/piglit-shader.c:262
#16 0x0000000100001ab8 in convert_sampler_to_uvec2 (data=0x0) at tests/spec/arb_bindless_texture/conversions.c:162
#17 0x00007fb7d05872a1 in piglit_run_selected_subtests (all_subtests=0x100203c00 <subtests>, selected_subtests=0x0, num_selected_subtests=0, previous_result=PIGLIT_SKIP) at tests/util/piglit-util.c:779
#18 0x0000000100002041 in piglit_init (argc=1, argv=0x7fffffffe658) at tests/spec/arb_bindless_texture/conversions.c:367
#19 0x00007fb7d0b3a076 in run_test (gl_fw=0x100216c20, argc=1, argv=0x7fffffffe658) at tests/util/piglit-framework-gl/piglit_fbo_framework.c:50
#20 0x00007fb7d0b201bf in piglit_gl_test_run (argc=1, argv=0x7fffffffe658, config=0x7fffffffe510) at tests/util/piglit-framework-gl.c:223
#21 0x0000000100001a1c in main (argc=1, argv=0x7fffffffe658) at tests/spec/arb_bindless_texture/conversions.c:41


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


More information about the mesa-dev mailing list