Mesa (master): 22 new commits

Francisco Jerez currojerez at kemper.freedesktop.org
Thu Aug 20 10:57:06 UTC 2015


URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f6c622f58432b0c3cb80bc2ed41e314abf876e03
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Thu Aug 20 13:46:53 2015 +0300

    docs: Mark GLES 3.1 image load/store as done on i965.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f5070c801c4885521df17a65c297f24ae628d414
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Wed Aug 19 14:42:50 2015 +0300

    mesa: Add ES31 API tag for the extension table.
    
    I'll mark the OES_shader_image_atomic extension entry with this tag to
    make sure that we don't expose it on earlier GLES API versions
    accidentally, because according to the extension:
    
     "OpenGL ES 3.1 and GLSL ES 3.10 are required."
    
    Reviewed-by: Tapani Pälli <tapani.palli at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6379f5cb2ab7c5ae3f3769204f95088e35c53217
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Mon Aug 17 01:47:50 2015 +0300

    glsl: Parse the allowed image format qualifiers in GLSL ES 3.1.
    
    This includes the minimum required desktop/ES GLSL version in the
    format qualifier table in anticipation of new GLSL versions extending
    the set of supported image formats.  According to section 4.4.7 of the
    GLSL ES 3.1 spec:
    
    "The format layout qualifier identifiers for image variable
     declarations are:
     [...]
     rgba32f
     rgba16f
     r32f
     rgba8
     rgba8_snorm
     [...]
     rgba32i
     rgba16i
     rgba8i
     r32i
     [...]
     rgba32ui
     rgba16ui
     rgba8ui
     r32ui"
    
    Reviewed-by: Tapani Pälli <tapani.palli at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e3fb2e1f0e160573c3d164818f556c7f6725835e
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Mon Aug 17 19:12:00 2015 +0300

    glsl: Recognise image memory qualifiers in GLSL ES 3.1.
    
    Reviewed-by: Tapani Pälli <tapani.palli at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=307c382c1b514629c342587d2f320f5491de9b65
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Mon Aug 17 17:42:30 2015 +0300

    glsl: Define image-related built-in constants required by GLSL ES 3.1.
    
    Reviewed-by: Tapani Pälli <tapani.palli at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a976b7255b2c84e6cccefb447029add02ddf86ae
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Mon Aug 17 01:39:38 2015 +0300

    glsl: Remove duplicate definition of gl_MaxTess*ImageUniforms built-in constants.
    
    These seem to have been re-added at some point during the
    ARB_tessellation_shader implementation work.  AFAICT the second
    (correct) definition of each constant would have had no effect because
    the symbols were already defined.
    
    Reviewed-by: Tapani Pälli <tapani.palli at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9d0bb6be097080e2568b7b6cc18f2bf800fed1b1
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Mon Aug 17 01:38:00 2015 +0300

    glsl: Accept atomic_uint type in GLSL ES 3.1.
    
    Reviewed-by: Tapani Pälli <tapani.palli at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d589df94013bd04b23ef88cdac6debe04e3075a1
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Mon Aug 17 01:37:12 2015 +0300

    glsl: Accept supported image types in GLSL ES 3.1.
    
    These are a subset of the image types supported by desktop GL,
    excluding 1D, 1D array, rectangle, buffer, cube array, 2D MS and 2D
    MS array texture targets.
    
    Reviewed-by: Tapani Pälli <tapani.palli at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6da187f80560b44b59551757c1322e921d8ca025
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Mon Aug 17 01:34:41 2015 +0300

    glsl: Expose image load and store built-ins in GLSL ES 3.1.
    
    Reviewed-by: Tapani Pälli <tapani.palli at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=76a09c87c14f65d8ad8bd805ef03101f4455a24f
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Mon Aug 17 01:34:13 2015 +0300

    glsl: Use a separate availability class for image atomic built-ins.
    
    These are not part of unextended GLSL ES 3.1.
    
    Reviewed-by: Timothy Arceri <t_arceri at yahoo.com.au>
    Reviewed-by: Tapani Pälli <tapani.palli at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=26b1141a78cfec0e2eface4b399009ee5eb421df
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Mon Aug 17 01:28:57 2015 +0300

    glsl: Allow precision qualifiers on general opaque types.
    
    From the GLSL ES 3.1 spec, section 4.7.3:
     "Any floating point, integer, opaque type declaration can have the
      type preceded by one of these precision qualifiers: [...] highp
      [...], mediump [...], lowp [...]."
    
    Reviewed-by: Timothy Arceri <t_arceri at yahoo.com.au>
    Reviewed-by: Tapani Pälli <tapani.palli at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ee7bf349d865b18ca2827508fb947b7e549c7fc6
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Mon Aug 17 01:27:43 2015 +0300

    glsl: Implement GLSL ES restriction on images being either readonly or writeonly.
    
    Reviewed-by: Tapani Pälli <tapani.palli at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=527ae5d4286e76fc2ec3d70f4b6cea3798539372
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Mon Aug 17 01:26:40 2015 +0300

    glsl: Require that all image uniforms have a format qualifier in GLSL ES.
    
    Note that this is slightly more permissive than the spec language
    requires: "Any image variable must specify a format layout qualifier."
    
    The GLSL ES spec seems really sketchy regarding format layout
    qualifiers on function formal parameters -- On the one hand they are
    required, but on the other hand it doesn't provide any syntax to
    specify them (see section 6.1.1), they don't participate in parameter
    type matching for overload resolution, and are in fact explictly
    forbidden ("Layout qualifiers cannot be used on formal function
    parameters").  Of course none of the image built-in functions defined
    by the spec specify format layout qualifiers (and they probably
    couldn't sensibly), to contradict its own requirement.
    
    This probably qualifies for a spec bug, but in the meantime do the
    sensible thing and require layout qualifiers on uniforms *only*.
    
    Reviewed-by: Timothy Arceri <t_arceri at yahoo.com.au>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=241774aa03d6dda5fe4cd86c1988f1678d4c0e5f
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Mon Aug 17 01:25:11 2015 +0300

    glsl: Add support for image binding qualifiers.
    
    Support for binding an image to an image unit explicitly in the shader
    source is required by both GLSL 4.2 and GLSL ES 3.1, but not by the
    original ARB_shader_image_load_store extension.
    
    Reviewed-by: Timothy Arceri <t_arceri at yahoo.com.au>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ebf1196d82eeed2f7863984ec33d26538a97b531
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Mon Aug 17 01:21:01 2015 +0300

    glsl: Forbid non-constant image array indexing in GLSL ES 3.1.
    
    Reviewed-by: Timothy Arceri <t_arceri at yahoo.com.au>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6c161405dc191f3d4083a48dfc033d4401b8055a
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Mon Aug 17 02:05:43 2015 +0300

    mesa: Refuse to bind image uniforms using glUniform in GLES.
    
    The GLES 3.1 spec removed support for updating the image unit bound to
    an image uniform using glUniform1i() calls.
    
    Reviewed-by: Tapani Pälli <tapani.palli at intel.com>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=86a64dfccfd3e98befa1e58f1a252cf993e5b680
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Mon Aug 17 02:02:17 2015 +0300

    mesa: Refuse to bind a mutable texture object to an image unit in GLES.
    
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
    Reviewed-by: Timothy Arceri <t_arceri at yahoo.com.au>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d70edfcfd53b50da0c4bb7aad909302dca6d4722
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Mon Aug 17 02:01:40 2015 +0300

    mesa: Initialize image unit state to different defaults in GLES.
    
    There is no GL_R8 image format in GLES, according to the state table
    20.32 of the GLES 3.1 spec the default value should be GL_R32UI.  The
    ES31-CTS.shader_image_load_store.basic-api-bind Khronos conformance
    test checks that this is the case.
    
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3b70f7900ba14e83081d8ebcd1b827ba605a8e8b
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Mon Aug 17 02:00:48 2015 +0300

    mesa: Reset image unit state to the default values when a bound image is deleted.
    
    The ES31-CTS.shader_image_load_store.basic-api-bind conformance test
    expects the whole image unit state to be reset when the bound texture
    object is deleted.  The ARB_shader_image_load_store extension is
    rather vague regarding what should happen with image unit state other
    than the texture object in that case, but the GL 4.2 and GLES 3.1
    specifications (section "Automatic Unbinding of Deleted Objects")
    explicitly require it to be reset to the default values.
    
    Reviewed-by: Tapani Pälli <tapani.palli at intel.com>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=10b7cf1a01cf0467f5c8d1cea08d8f93e401a454
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Mon Aug 17 01:58:53 2015 +0300

    mesa: Reject image formats not supported by GLES.
    
    Reviewed-by: Timothy Arceri <t_arceri at yahoo.com.au>
    Reviewed-by: Tapani Pälli <tapani.palli at intel.com>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b97d8c95a91773dc002e3ba42bd02e84a00eada3
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Mon Aug 17 01:53:48 2015 +0300

    mesa: Don't lose track of the shader image layer originally specified by the user.
    
    The spec requires that all layers of the image starting from the 0-th
    are bound to the image unit regardless of the Layer parameter when
    Layered is true, so I was setting gl_image_unit::Layer to zero in that
    case for the convenience of the driver back-end.  However the
    ES31-CTS.shader_image_load_store.basic-api-bind conformance test
    checks that the layer value returned by glGetInteger is the same that
    was originally specified, regardless of the value of layered.  Rename
    Layer to _Layer as is usual for other derived state and keep track of
    the original layer value as gl_image_unit::Layer.
    
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=47e0d5b9b28b0753adda70cbfb3ad111ba6169a8
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Mon Aug 17 19:10:46 2015 +0300

    mesa: Rename MaxCombinedImageUnitsAndFragmentOutputs to MaxCombinedShaderOutputResources.
    
    The name of both the GLSL built-in variable and the glGetInteger param
    with the same value changed in GLSL ES 3.1 and GL 4.5.  Its semantics
    also changed slightly, since the limit now also takes into account the
    number of SSBs in use.  Switch our internal data structures to the
    up-to-date name.
    
    Reviewed-by: Timothy Arceri <t_arceri at yahoo.com.au>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>




More information about the mesa-commit mailing list