This series implements a number of differences I've found while
comparing the GLES 3.1 and desktop GL shader image APIs.  Most of it
is about taking into account additional restrictions for the GLES API,
but there's also some new functionality (see PATCH 09 and 23).

Together with Igalia's SSBO branch this gets us to pass most of the
ES31 shader image conformance tests from Khronos (excluding the ones
that depend on compute shaders, and barring some minor bugs I had to
work-around locally not related to shader images).

Patches 01-07 implement the required core mesa changes, patches 08-20
are GLSL front-end fixes for the unextended GLES 3.1 shader image API,
and patches 21-25 implement OES_shader_image_atomic and expose it for
the i965 driver.

For a branch in testable form see:

http://cgit.freedesktop.org/~currojerez/mesa/log/?h=image-load-store-es31

[PATCH 01/25] mesa: Rename MaxCombinedImageUnitsAndFragmentOutputs to 
MaxCombinedShaderOutputResources.
[PATCH 02/25] mesa: Don't lose track of the shader image layer originally 
specified by the user.
[PATCH 03/25] mesa: Reject image formats not supported by GLES.
[PATCH 04/25] mesa: Reset image unit state to the default values when a bound 
image is deleted.
[PATCH 05/25] mesa: Initialize image unit state to different defaults in GLES.
[PATCH 06/25] mesa: Refuse to bind a mutable texture object to an image unit in 
GLES.
[PATCH 07/25] mesa: Refuse to bind image uniforms using glUniform in GLES.
[PATCH 08/25] glsl: Forbid non-constant image array indexing in GLSL ES 3.1.
[PATCH 09/25] glsl: Add support for image binding qualifiers.
[PATCH 10/25] glsl: Require that all image uniforms have a format qualifier in 
GLSL ES.
[PATCH 11/25] glsl: Implement GLSL ES restriction on images being either 
readonly or writeonly.
[PATCH 12/25] glsl: Allow precision qualifiers on general opaque types.
[PATCH 13/25] glsl: Use a separate availability class for image atomic 
built-ins.
[PATCH 14/25] glsl: Expose image load and store built-ins in GLSL ES 3.1.
[PATCH 15/25] glsl: Accept supported image types in GLSL ES 3.1.
[PATCH 16/25] glsl: Accept atomic_uint type in GLSL ES 3.1.
[PATCH 17/25] glsl: Remove duplicate definition of gl_MaxTess*ImageUniforms 
built-in constants.
[PATCH 18/25] glsl: Define image-related built-in constants required by GLSL ES 
3.1.
[PATCH 19/25] glsl: Recognise image memory qualifiers in GLSL ES 3.1.
[PATCH 20/25] glsl: Parse the allowed image format qualifiers in GLSL ES 3.1.
[PATCH 21/25] mesa: Add extension enable and table entry for 
OES_shader_image_atomic.
[PATCH 22/25] glsl: Add usual extension boilerplate for OES_shader_image_atomic.
[PATCH 23/25] glsl: Implement the required built-in functions when 
OES_shader_image_atomic is enabled.
[PATCH 24/25] i965/fs: Return result of image atomic in a register of the 
expected type.
[PATCH 25/25] i965: Expose OES_shader_image_atomic.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to