<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_ASSIGNED "
title="ASSIGNED - [swrast] piglit shader_runner fast_color_clear/all-colors regression"
href="https://bugs.freedesktop.org/show_bug.cgi?id=94295#c2">Comment # 2</a>
on <a class="bz_bug_link
bz_status_ASSIGNED "
title="ASSIGNED - [swrast] piglit shader_runner fast_color_clear/all-colors regression"
href="https://bugs.freedesktop.org/show_bug.cgi?id=94295">bug 94295</a>
from <span class="vcard"><a class="email" href="mailto:plamena.manolova@intel.com" title="Plamena Manolova <plamena.manolova@intel.com>"> <span class="fn">Plamena Manolova</span></a>
</span></b>
<pre>(In reply to Vinson Lee from <a href="show_bug.cgi?id=94295#c0">comment #0</a>)
<span class="quote">> mesa: d1509a5848dee57b933139ad2610e99ae09cb5ec (master 11.3.0-devel)
>
> $ ./bin/shader_runner tests/fast_color_clear/all-colors.shader_test -auto
> Segmentation fault (core dumped)
>
>
> (gdb) bt
> #0 find_empty_block (prog=0xf2ae10, uniform=0xf2f030) at
> glsl/link_uniforms.cpp:1051
> #1 link_assign_uniform_locations (prog=prog@entry=0xf2ae10,
> boolean_true=1065353216,
> num_explicit_uniform_locs=num_explicit_uniform_locs@entry=4294967295,
> max_uniform_locs=98304) at glsl/link_uniforms.cpp:1238
> #2 0x00007fd99ef73db9 in link_shaders (ctx=ctx@entry=0x7fd9a4a99010,
> prog=prog@entry=0xf2ae10) at glsl/linker.cpp:4566
> #3 0x00007fd99eecb3fb in _mesa_glsl_link_shader
> (ctx=ctx@entry=0x7fd9a4a99010, prog=prog@entry=0xf2ae10) at
> program/ir_to_mesa.cpp:3036
> #4 0x00007fd99edd1b8a in link_program (ctx=0x7fd9a4a99010,
> program=<optimized out>) at main/shaderapi.c:1048
> #5 0x00007fd9a45dafec in stub_glLinkProgram (program=3) at
> piglit/tests/util/piglit-dispatch-gen.c:32599
> #6 0x000000000040776a in link_and_use_shaders () at
> piglit/tests/shaders/shader_runner.c:1042
> #7 0x000000000040e02c in piglit_init (argc=2, argv=0x7ffd6815d008) at
> piglit/tests/shaders/shader_runner.c:3292
> #8 0x00007fd9a464b7fb in run_test (gl_fw=0xd34c20, argc=2,
> argv=0x7ffd6815d008)
> at piglit/tests/util/piglit-framework-gl/piglit_winsys_framework.c:73
> #9 0x00007fd9a462ff6a in piglit_gl_test_run (argc=2, argv=0x7ffd6815d008,
> config=0x7ffd6815cec0)
> at piglit/tests/util/piglit-framework-gl.c:199
> #10 0x0000000000405b50 in main (argc=2, argv=0x7ffd6815d008) at
> piglit/tests/shaders/shader_runner.c:54
> (gdb) l
> 1046 find_empty_block(struct gl_shader_program *prog,
> 1047 struct gl_uniform_storage *uniform)
> 1048 {
> 1049 const unsigned entries = MAX2(1, uniform->array_elements);
> 1050
> 1051 foreach_list_typed(struct empty_uniform_block, block, link,
> 1052 &prog->EmptyUniformLocations) {
> 1053 /* Found a block with enough slots to fit the uniform */
> 1054 if (block->slots == entries) {
> 1055 unsigned start = block->start;
> (gdb) print block
> $1 = (empty_uniform_block *) 0x0
> (gdb) print prog->EmptyUniformLocations
> $2 = {head = 0x0, tail = 0x0, tail_pred = 0x0}
>
>
> 65dfb3048e8291675ca33581aeff8921f7ea509d is the first bad commit
> commit 65dfb3048e8291675ca33581aeff8921f7ea509d
> Author: Plamena Manolova <<a href="mailto:plamena.manolova@intel.com">plamena.manolova@intel.com</a>>
> Date: Thu Feb 11 15:00:02 2016 +0200
>
> compiler/glsl: Fix uniform location counting.
>
> This patch moves the calculation of current uniforms to
> link_uniforms, which makes use of UniformRemapTable which
> stores all the reserved uniform locations.
>
> Location assignment for implicit uniforms now tries to use
> any gaps left in the table after the location assignment
> for explicit uniforms. This gives us more space to store more
> uniforms.
>
> Patch is based on earlier patch with following changes/additions:
>
> 1: Move the counting of explicit locations to
> check_explicit_uniform_locations and then pass
> the number to link_assign_uniform_locations.
> 2: Count the number of empty slots in UniformRemapTable
> and store them in a list_head.
> 3: Try to find an empty slot for implicit locations from
> the list, if that fails resize UniformRemapTable.
>
> Fixes following CTS tests:
> ES31-CTS.explicit_uniform_location.uniform-loc-mix-with-implicit-max
>
> ES31-CTS.explicit_uniform_location.uniform-loc-mix-with-implicit-max-array
>
> Signed-off-by: Tapani Pälli <<a href="mailto:tapani.palli@intel.com">tapani.palli@intel.com</a>>
> Signed-off-by: Plamena Manolova <<a href="mailto:plamena.manolova@intel.com">plamena.manolova@intel.com</a>>
> Reviewed-by: Ilia Mirkin <<a href="mailto:imirkin@alum.mit.edu">imirkin@alum.mit.edu</a>>
> Bugzilla: <a class="bz_bug_link
bz_status_RESOLVED bz_closed"
title="RESOLVED FIXED - [HSW,BDW;SKL][GLES 3.1 CTS]ES31-CTS.explicit_uniform_location.uniform-loc-mix-with-implicit-max-* fail"
href="show_bug.cgi?id=93696">https://bugs.freedesktop.org/show_bug.cgi?id=93696</a>
>
> :040000 040000 5848c556c369c2c798c1c1e036c70c740b56a97a
> 25915fac71a54954aafd0139a55045ba394969e6 M src
> bisect run success</span >
Hi Vinson,
Could you verify whether this patch fixes this issue for you?</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
</ul>
</body>
</html>