Bug 103214

Summary: GLES CTS functional.state_query.indexed.atomic_counter regression
Product: Mesa Reporter: Mark Janes <mark.a.janes>
Component: Drivers/DRI/i965Assignee: Dave Airlie <airlied>
Status: RESOLVED FIXED QA Contact: Intel 3D Bugs Mailing List <intel-3d-bugs>
Severity: critical    
Priority: medium    
Version: git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Mark Janes 2017-10-11 09:28:01 UTC
Beginning with the series ending in:
9926af0e7195c245d6b9d11b0fee6ba146987dbf
Author:     Dave Airlie <airlied@redhat.com>
mesa/st: fix atomic buffer sizing to align with ssbo.

This respects the size from the range setting like ssbo.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>

The following tests regressed on IVB+:
ES31-CTS.core.shader_atomic_counters.basic-buffer-bind
ES31-CTS.functional.state_query.indexed.atomic_counter_buffer_size_getbooleani_v
ES31-CTS.functional.state_query.indexed.atomic_counter_buffer_size_getinteger64i_v
ES31-CTS.functional.state_query.indexed.atomic_counter_buffer_size_getintegeri_v
ES31-CTS.functional.state_query.indexed.atomic_counter_buffer_start_getbooleani_v
ES31-CTS.functional.state_query.indexed.atomic_counter_buffer_start_getinteger64i_v
ES31-CTS.functional.state_query.indexed.atomic_counter_buffer_start_getintegeri_v

Also, ES32 variants regressed with the same errors.

Sample output:
-----------------------------------------------------------------------
ES31-CTS.core.shader_atomic_counters.basic-buffer-bind

Atomic Counter Buffer - binding
Verify that binding buffer objects to ATOMIC_COUNTER_BUFFER (indexed) target
works as expected. In particualr make sure that binding with BindBufferBase and BindBufferRange
also bind to generic binding point and deleting buffer that is currently bound unbinds it. Tested
commands: BindBuffer, BindBufferBase and BindBufferRange.
glGetIntegerv(GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS, 0x00007ffe4f950128);
// data = { 90 }
MAX_ATOMIC_COUNTER_BUFFER_BINDINGS: 90
glGetIntegerv(GL_ATOMIC_COUNTER_BUFFER_BINDING, 0x00007ffe4f9500e8);
// data = { 0 }
glGetInteger64v(GL_ATOMIC_COUNTER_BUFFER_BINDING, 0x00007ffe4f9500e0);
// data = { 0 }
glGetFloatv(GL_ATOMIC_COUNTER_BUFFER_BINDING, 0x00007ffe4f9500dc);
// data = { 0 }
glGetBooleanv(GL_ATOMIC_COUNTER_BUFFER_BINDING, 0x00007ffe4f9500db);
// data = { GL_FALSE }
glGetIntegeri_v(GL_ATOMIC_COUNTER_BUFFER_BINDING, 0, 0x00007ffe4f9500f8);
// data = { 0 }
glGetInteger64i_v(GL_ATOMIC_COUNTER_BUFFER_BINDING, 0, 0x00007ffe4f9500f0);
// data = { 0 }
glGetInteger64i_v(GL_ATOMIC_COUNTER_BUFFER_START, 0, 0x00007ffe4f9500f0);
// data = { -1 }
GL_ATOMIC_COUNTER_BUFFER_START state is incorrect (GetInteger64i_v, is: -1, expected: 0, index: 0)
glGetInteger64i_v(GL_ATOMIC_COUNTER_BUFFER_SIZE, 0, 0x00007ffe4f9500f0);
// data = { -1 }
GL_ATOMIC_COUNTER_BUFFER_SIZE state is incorrect (GetInteger64i_v, is: -1, expected: (0 or 0), index: 0)
Test Run() failed
glDeleteBuffers(1, { 0 });
-----------------------------------------------------------------------
Comment 1 Mark Janes 2017-10-11 11:05:17 UTC
the specific bisect is to:
65d3ef7cd4f3debbd51b8a8bc95b88fc32f18ded
Author:     Dave Airlie <airlied@redhat.com>
mesa: align atomic buffer handling code with ubo/ssbo (v1.1)
Comment 2 Mark Janes 2017-10-12 13:19:49 UTC
Patch on the list to fix this bug:
https://patchwork.freedesktop.org/patch/181934/
Comment 3 Tapani Pälli 2017-10-25 12:28:18 UTC
commit 26f1ba94a384718e0e5974c10d4f758459ef0b10
Author: Dave Airlie <airlied@redhat.com>
Date:   Thu Oct 12 09:32:14 2017 +1000

    mesa/bufferobj: fix atomic offset/size get
    
    When I realigned the bufferobj code, I didn't see the getters
    were different, realign the getters to work the same as ssbo.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103214
    Fixes: 65d3ef7cd (mesa: align atomic buffer handling code with ubo/ssbo (v1.1))
    Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
    Tested-by: Mark Janes <mark.a.janes@intel.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.