<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - [BDW] piglit@spec@arb_shader_atomic_counters@unused-result intermittent failures"
href="https://bugs.freedesktop.org/show_bug.cgi?id=91298#c1">Comment # 1</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - [BDW] piglit@spec@arb_shader_atomic_counters@unused-result intermittent failures"
href="https://bugs.freedesktop.org/show_bug.cgi?id=91298">bug 91298</a>
from <span class="vcard"><a class="email" href="mailto:chris@chris-wilson.co.uk" title="Chris Wilson <chris@chris-wilson.co.uk>"> <span class="fn">Chris Wilson</span></a>
</span></b>
<pre>It's bad synchronisation of the read buffer:
diff --git a/tests/spec/arb_shader_atomic_counters/common.c
b/tests/spec/arb_shader_atomic_counters/common.c
index 95d809e..bf8309d 100644
--- a/tests/spec/arb_shader_atomic_counters/common.c
+++ b/tests/spec/arb_shader_atomic_counters/common.c
@@ -35,6 +35,7 @@ atomic_counters_probe_buffer(unsigned base, unsigned count,
uint32_t *p = glMapBufferRange(
GL_ATOMIC_COUNTER_BUFFER, base * sizeof(uint32_t),
count * sizeof(uint32_t), GL_MAP_READ_BIT);
+ bool pass = true;
unsigned i;
if (!p) {
@@ -43,17 +44,18 @@ atomic_counters_probe_buffer(unsigned base, unsigned count,
}
for (i = 0; i < count; ++i) {
- if (p[i] != expected[i]) {
+ uint32_t *found = p[i];
+ if (found != expected[i]) {
printf("Probe value at (%i)\n", i);
printf(" Expected: 0x%08x\n", expected[i]);
- printf(" Observed: 0x%08x\n", p[i]);
- glUnmapBuffer(GL_ATOMIC_COUNTER_BUFFER);
- return false;
+ printf(" Observed: 0x%08x\n", found);
+ pass = false;
+ break;
}
}
glUnmapBuffer(GL_ATOMIC_COUNTER_BUFFER);
- return true;
+ return pass;
}
bool
should fix up the error message.</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>