This patch series implements support for the ARB_shader_atomic_counters extension, which is part of GL core since GL 4.2. It includes patches adding support for the new APIs and GLSL language features, and working back-end code for Intel Gen7 hardware -- Ivy Bridge should work with these patches alone, Haswell is going to need a small kernel change I'll probably submit for review during the next week.
The series depends on Ken's surface state tidying patches [1] and on patches 1-4, which are seemingly unrelated fixes. There's also a series of ~30 unit tests for this extension I will send to the piglit mailing list soon. Thanks. [1] http://lists.freedesktop.org/archives/mesa-dev/2013-September/044691.html [PATCH 01/24] mesa: Fix misplaced includes of "main/uniforms.h". [PATCH 02/24] glsl: Initialize all member variables of _mesa_glsl_parse_state on construction. [PATCH 03/24] i965: Initialize all member variables of vec4_instruction on construction. [PATCH 04/24] ralloc: Unify overloads of the new operator and guarantee object destruction. [PATCH 05/24] glapi: Add support for ARB_shader_atomic_counters. [PATCH 06/24] mesa: Add support for ARB_shader_atomic_counters. [PATCH 07/24] glsl: Add extension enables for ARB_shader_atomic_counters. [PATCH 08/24] glsl: Add new atomic_uint built-in GLSL type. [PATCH 09/24] glsl: Add IR node for atomic operations. [PATCH 10/24] glsl: Implement parser support for atomic counters. [PATCH 11/24] glsl: Add built-in functions and constants required for ARB_shader_atomic_counters. [PATCH 12/24] glsl: Add predicate to determine if an IR node has side effects. [PATCH 13/24] glsl: Linker support for ARB_shader_atomic_counters. [PATCH 14/24] i965: Define vtbl method that initializes an untyped R/W surface. [PATCH 15/24] i965: Implement ABO surface state emission. [PATCH 16/24] i965/gen7: Implement code generation for untyped atomic instructions. [PATCH 17/24] i965/gen7: Implement code generation for untyped surface read instructions. [PATCH 18/24] i965: Add a 'has_side_effects' back-end instruction predicate. [PATCH 19/24] i965: Handle the 'atomic_uint' GLSL type. [PATCH 20/24] i965: Add brw_reg constructors taking a dynamically determined vector width. [PATCH 21/24] i965/gen7: Handle atomic instructions from the FS back-end. [PATCH 22/24] i965/gen7: Handle atomic instructions from the VEC4 back-end. [PATCH 23/24] i965/gen7: Expose ARB_shader_atomic_counters. [PATCH 24/24] i965: Simplify the shader time code by using atomic counter helpers. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev