|Summary:||32-bit failures for spec.arb_compute_shader.execution.atomic-counter|
|Product:||Mesa||Reporter:||Mark Janes <mark.a.janes>|
|Component:||Drivers/DRI/i965||Assignee:||Jordan Justen <jljusten>|
|Status:||RESOLVED DUPLICATE||QA Contact:||Intel 3D Bugs Mailing List <intel-3d-bugs>|
|i915 platform:||i915 features:|
Description Mark Janes 2016-05-31 21:39:36 UTC
with mesa 357495b94dad4101a5491ed30782574162de58db, this test was enabled, and found to be failing *only* on 32 bit platforms. This could indicate a bug in mesa or a bug in the test. /tmp/build_root/m32/lib/piglit/bin/shader_runner /tmp/build_root/m32/lib/piglit/tests/spec/arb_compute_shader/execution/atomic-counter.shader_test -auto piglit: debug: Requested an OpenGL 3.2 Core Context, and received a matching 4.2 context Atomic counter 1 test failed: Reference == Observed Reference: 2147483647 Observed: 4294966784 It is notable that the reference value is 7FFFFFFF, which may indicate an 32-bit overflow error. Jordan, can you verify that the test is correct for 32 bit platforms?
Comment 1 Jordan Justen 2016-05-31 22:13:59 UTC
tests/spec/arb_compute_shader/execution/atomic-counter.shader_test uses atomic_uint, which should be a 32-bit value on 64-bit processes as well. The test has a uint atomic counter that starts at 0, and gets decremented 512 times. Does this test have a similar failure? tests/spec/arb_shader_atomic_counters/execution/atomic-counter.shader_test https://www.opengl.org/registry/specs/ARB/shader_atomic_counters.txt says "Increments and decrements at the limit of the range will wrap to [0, 2^32-1]", so I think the test is valid. The shader_runner code looks valid for treating the buffer as a uint32_t pointer.
Comment 2 Mark Janes 2016-05-31 22:41:33 UTC
I don't see any failures from that shader test.
Comment 3 Jordan Justen 2016-05-31 23:12:36 UTC
Sorry. I guess that was a test that I made when adding shader_runner atomic counter support, but I didn't send it to piglit. I added it in my freedesktop.org piglit repo atomic-fs branch.