<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - [SKL] ES31-CTS.core.sepshaderobjs.StateInteraction fails sporadically"
href="https://bugs.freedesktop.org/show_bug.cgi?id=102177#c4">Comment # 4</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - [SKL] ES31-CTS.core.sepshaderobjs.StateInteraction fails sporadically"
href="https://bugs.freedesktop.org/show_bug.cgi?id=102177">bug 102177</a>
from <span class="vcard"><a class="email" href="mailto:t_arceri@yahoo.com.au" title="Timothy Arceri <t_arceri@yahoo.com.au>"> <span class="fn">Timothy Arceri</span></a>
</span></b>
<pre>I took a quick look at this after talking to Ken. There seems to be a bunch of
scenarios but I'm wondering if in at least some cases we are marking things as
dirty when they shouldn't be.
For example:
==30669== Invalid read of size 4
==30669== at 0x9532B94: gen6_upload_push_constants
(gen6_constant_state.c:85)
==30669== by 0x9529250: check_and_emit_atom (brw_state_upload.c:456)
==30669== by 0x9529250: brw_upload_pipeline_state (brw_state_upload.c:570)
==30669== by 0x9529250: brw_upload_render_state (brw_state_upload.c:592)
==30669== by 0x951BAAC: brw_try_draw_prims (brw_draw.c:770)
==30669== by 0x951BAAC: brw_draw_prims (brw_draw.c:862)
==30669== by 0x931F0BD: vbo_validated_drawrangeelements
(vbo_exec_array.c:925)
==30669== by 0x931F84E: vbo_exec_DrawElements (vbo_exec_array.c:1075)
==30669== by 0xFC744A: glcts::StateInteractionCase::iterate() (in
/home/timothy/data/git_mesa/build-es-cts-new/cts/glcts)
==30669== by 0xE19E75: es31cts::TestCaseWrapper::iterate(tcu::TestCase*) (in
/home/timothy/data/git_mesa/build-es-cts-new/cts/glcts)
==30669== by 0x27DD23F:
tcu::TestSessionExecutor::iterateTestCase(tcu::TestCase*) (in
/home/timothy/data/git_mesa/build-es-cts-new/cts/glcts)
==30669== by 0x27DC794: tcu::TestSessionExecutor::iterate() (in
/home/timothy/data/git_mesa/build-es-cts-new/cts/glcts)
==30669== by 0x27B1F3E: tcu::App::iterate() (in
/home/timothy/data/git_mesa/build-es-cts-new/cts/glcts)
==30669== by 0xE14313: main (in
/home/timothy/data/git_mesa/build-es-cts-new/cts/glcts)
==30669== Address 0xa744580 is 48 bytes inside a block of size 64 free'd
==30669== at 0x4C2ED4A: free (vg_replace_malloc.c:530)
==30669== by 0x944C14C: unsafe_free (ralloc.c:269)
==30669== by 0x92B8EEF: _mesa_clear_shader_program_data (shaderobj.c:334)
==30669== by 0x93A21BD: _mesa_glsl_link_shader (ir_to_mesa.cpp:3088)
==30669== by 0x92B7158: link_program (shaderapi.c:1163)
==30669== by 0x92B7158: link_program_error (shaderapi.c:1241)
Here DrawElements ends up calling gen6_upload_push_constants() (which accesses
the now freed uniform storage) but I would have presumed constants would still
be in the correct state.</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>