Mesa (gles3): 61 new commits

Kenneth Graunke kwg at kemper.freedesktop.org
Sun Nov 18 00:21:58 UTC 2012


URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bd07fa9212afd2981fc22f6e5ff783747e7c35dd
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Fri Nov 16 14:52:01 2012 -0800

    mesa: Rework crazy error code rules in glDrawBuffers().
    
    Perhaps most importantly, this patch adds comments quoting the relevant
    spec paragraphs above each error condition.
    
    It also makes three changes:
    - For FBOs, GL_COLOR_ATTACHMENTm where m >= MaxDrawBuffers is supposed
      to generate INVALID_OPERATION (not INVALID_ENUM).
    - Constants that refer to multiple buffers (such as FRONT, BACK, LEFT,
      RIGHT, and FRONT_AND_BACK) are supposed to generate INVALID_OPERATION,
      not INVALID_ENUM.
    - In ES 3.0, for FBOs, buffers[i] must be NONE or GL_COLOR_ATTACHMENTi
      or else INVALID_OPERATION occurs.  (This is a new restriction.)
    
    Fixes es3conform's draw-buffers-api test.
    
    Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9038d33100c9863e1d3742cb819e6b3fc53f7bdb
Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Fri Nov 9 12:26:42 2012 -0800

    glsl: Allow layout qualifiers in GLSL 3.00 ES
    
    Note that while 'packed' is a reserved word in GLSL ES, row_major is not.
    This means that we have to use the string-based matching for that.
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3915a49870ef07894a2035bf783118880d7eb4db
Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Fri Nov 9 10:23:30 2012 -0800

    i965: Add support for GL_ANY_SAMPLES_PASSED_CONSERVATIVE
    
    We just treat this as an alias for GL_ANY_SAMPLES_PASSED.
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
    Reviewed-by: Eric Anholt <eric at anholt.net>
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c662bd26e32c47dee6fe7761c21e01f47705feed
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date:   Mon Sep 17 14:52:10 2012 -0700

    intel: Enable ETC2 support on intel hardware
    
    This patch enables support for ETC2 compressed textures on
    all intel hardware. At present, ETC2 texture decoding is not
    available on intel hardware. So, compressed ETC2 texture data
    is decoded in software and stored in a suitable uncompressed
    MESA_FORMAT at the time of glCompressedTexImage2D. Currently,
    ETC2 formats are only exposed in OpenGL ES 3.0.
    
    V2: Use single etc_wraps variable for both etc1 and etc2.
    V3: Remove redundant code and use just one intel_miptree_map_etc()
    and intel_miptree_unmap_etc() function.
    
    Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
    Reviewed-by: Eric Anholt <eric at anholt.net>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1357a231d4c3b04f4d7d945a91a32a492b2c38cb
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date:   Tue Oct 23 12:22:20 2012 -0700

    mesa: Add decoding functions for GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
    
    Data in GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 format is decoded and stored
    in MESA_FORMAT_SARGB.
    
    Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
    Reviewed-by: Brian Paul <brianp at vmware.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9ca013e755b65b5fe9e85fc35f78c42e59c90c98
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date:   Mon Oct 22 13:34:30 2012 -0700

    mesa: Add decoding functions for GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
    
    Data in GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 format is decoded and stored
    in MESA_FORMAT_RGBA8888_REV.
    
    Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
    Reviewed-by: Brian Paul <brianp at vmware.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b4e22a50a3799222dc92ec6576d552654434b454
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date:   Wed Oct 10 13:46:20 2012 -0700

    mesa: Add decoding functions for GL_COMPRESSED_SIGNED_RG11_EAC
    
    Data in GL_COMPRESSED_SIGNED_RG11_EAC format is decoded and stored in
    MESA_FORMAT_RG1616.
    
    v2: 16 bit signed data is converted to 16 bit unsigned data by adding
    2 ^ 15 and stored in an unsigned texture format.
    
    Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
    Reviewed-by: Brian Paul <brianp at vmware.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=abd8dca33f7af472091143f5e3a198d882b98bef
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date:   Tue Oct 9 17:02:37 2012 -0700

    mesa: Add decoding functions for GL_COMPRESSED_SIGNED_R11_EAC
    
    Data in GL_COMPRESSED_SIGNED_R11_EAC format is decoded and stored in
    MESA_FORMAT_R16.
    
    v2: 16 bit signed data is converted to 16 bit unsigned data by
    adding 2 ^ 15 and stored in an unsigned texture format.
    
    Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
    Reviewed-by: Brian Paul <brianp at vmware.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c3c6c105c86230eab18d89293a014b77070d7ef6
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date:   Mon Nov 12 16:32:08 2012 -0800

    mesa: Add decoding functions for GL_COMPRESSED_RG11_EAC
    
    Data in GL_COMPRESSED_RG11_EAC format is decoded and stored in
    MESA_FORMAT_RG1616.
    
    Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
    Reviewed-by: Brian Paul <brianp at vmware.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f351b428448ac67de6a1378c8ff76351bc487e41
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date:   Mon Nov 12 16:28:07 2012 -0800

    mesa: Add decoding functions for GL_COMPRESSED_R11_EAC
    
    Data in GL_COMPRESSED_R11_EAC format is decoded and stored in
    MESA_FORMAT_R16.
    
    Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
    Reviewed-by: Brian Paul <brianp at vmware.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b5b6cbe79e3f3480927b1b027179a35d970c3085
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date:   Mon Nov 12 16:13:25 2012 -0800

    mesa: Add decoding functions for GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
    
    Data in GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC format is decoded and stored
    in MESA_FORMAT_SARGB8.
    
    Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
    Reviewed-by: Brian Paul <brianp at vmware.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7398b321da332a013acdc4c5dc86b663904d549c
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date:   Mon Nov 12 15:58:25 2012 -0800

    mesa: Add decoding functions for GL_COMPRESSED_RGBA8_ETC2_EAC
    
    Data in GL_COMPRESSED_RGBA8_ETC2_EAC format is decoded and stored
    in MESA_FORMAT_RGBA8888_REV.
    
    Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
    Reviewed-by: Brian Paul <brianp at vmware.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4dcb80b3617b51aa05764903d27208922ca8db56
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date:   Thu Sep 27 17:05:24 2012 -0700

    mesa: Add decoding functions for GL_COMPRESSED_SRGB8_ETC2
    
    Data in GL_COMPRESSED_SRGB8_ETC2 format is decoded and stored
    in MESA_FORMAT_SARGB8.
    
    Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
    Reviewed-by: Brian Paul <brianp at vmware.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7c55aadded5e1494012013d4f2d1236cfa0043a7
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date:   Mon Sep 17 14:47:56 2012 -0700

    mesa: Add decoding functions for GL_COMPRESSED_RGB8_ETC2
    
    Data in GL_COMPRESSED_RGB8_ETC2 format is decoded and stored in
    MESA_FORMAT_RGBX8888_REV.
    
    v2: Use CLAMP macro and stdbool.h
    Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
    Reviewed-by: Brian Paul <brianp at vmware.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4c92307a6326d15305a48c39bd1d863965d1a9ad
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date:   Mon Nov 12 17:58:46 2012 -0800

    mesa: Make nonlinear_to_linear() function available outside file
    
    This patch changes nonlinear_to_linear() function to non static inline
    and makes it available outside format_unpack.c. Also, removes the
    duplicate copies in other files.
    
    Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
    Reviewed-by: Brian Paul <brianp at vmware.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d666cf8e40cbed257318acaedb1ba1669287ba5f
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date:   Mon Nov 5 17:45:18 2012 -0800

    mesa: Add new MESA_FORMATs for ETC2 compressed textures
    
    It is required by OpenGL ES 3.0 to support ETC2 textures.
    This patch adds new MESA_FORMATs for following etc2 texture
    formats:
     GL_COMPRESSED_RGB8_ETC2
     GL_COMPRESSED_SRGB8_ETC2
     GL_COMPRESSED_RGBA8_ETC2_EAC
     GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
     GL_COMPRESSED_R11_EAC
     GL_COMPRESSED_RG11_EAC
     GL_COMPRESSED_SIGNED_R11_EAC
     GL_COMPRESSED_SIGNED_RG11_EAC
     MESA_FORMAT_ETC2_RGB8_PUNCHTHROUGH_ALPHA1
     MESA_FORMAT_ETC2_SRGB8_PUNCHTHROUGH_ALPHA1
    
    Above formats are currently available in only gles 3.0.
    
    v2: Add entries in texfetch_funcs[] array.
    
    Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
    Reviewed-by: Brian Paul <brianp at vmware.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a454fb2e625ba7f12467bbfbd94556a2d23eff4c
Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Fri Aug 17 18:09:23 2012 -0700

    glsl: Remove deprecated GLSL 1.30 language features in core context
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1fd99864c721bb6c4473ea265cb6692430c2610d
Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Fri Aug 17 18:09:09 2012 -0700

    i965: Don't maintain programs for ff state when there is no ff
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d3e2e66fb0385ecd9c6097e153892d8f3461a6ff
Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Fri Aug 17 18:08:39 2012 -0700

    mesa: Don't muck about with ff state when there is no ff
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=76f670695095059bc0535051cbe96f89b6139840
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Tue Aug 7 12:39:30 2012 -0700

    i965/Gen6+: Enable ARB_ES3_compatibility extension
    
    IMPORTANT: this patch should not be pushed to master until ES3 support
    is fully implemented on i965/Gen6+.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ed7aee87136f7f5b84330213c0eba9b76e45dba2
Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Wed Aug 8 15:25:00 2012 -0700

    mesa/es3: Enable ES 3.0 API and shading language version
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0d0f323f566e2b2ad1c15c5f1b45092c89141265
Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Fri Aug 10 22:28:27 2012 -0700

    mesa/es3: Add support for GL_PRIMITIVE_RESTART_FIXED_INDEX
    
    This requires some derived state.  The cut vertex used is either the
    value specified by glPrimitiveRestartIndex or it's hard-coded to ~0.
    The derived state gl_array_attrib::_RestartIndex captures this value.
    In addition, the derived state gl_array_attrib::_PrimitiveRestart is set
    whenever either gl_array_attrib::PrimitiveRestart or
    gl_array_attrib::PrimitiveRestartFixedIndex is set.
    
    v2: Use _mesa_is_gles3.
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4b116bc03c34386ecc6bb42dde5e22e2b1b9f5fb
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Wed Aug 8 11:30:42 2012 -0700

    Set es_version to false when using FF fragment shading in meta ops

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=07559b5b4fb3fa3f09731cb6f20891004f9cb482
Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Fri Aug 10 21:38:21 2012 -0700

    mesa/es3: Add support for GL_ANY_SAMPLES_PASSED_CONSERVATIVE query target
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=98c4b4461be9774e3ae3479bc484e3b404e14938
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Sat Aug 4 15:42:33 2012 -0700

    glsl: Create builtin function profiles for GLSL 3.00 ES.
    
    Nearly all of the builtin functions in GLSL 3.00 ES are already
    implemented in Mesa; this patch enables them.
    
    A few functions are not implemented yet; those have been commented
    out, with a FIXME comment to act as a reminder of what still needs to
    be implemented.  Here is the complete list: packSnorm2x16,
    unpackSnorm2x16, packUnorm2x16, unpackUnorm2x16, packHalf2x16,
    unpackHalf2x16.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7bc17ba719b077b49505f95926f3920e5fc9f194
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Mon Aug 6 14:36:31 2012 -0700

    glsl: add determinant() functions.
    
    These functions are defined in GLSL 1.50 and GLES 3.00 ES.
    
    The formulas have been extracted from the existing implementation of
    inverse().

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7a75736d55f732c8a31edfc9ac75111427d7756f
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Sat Aug 4 10:43:53 2012 -0700

    glsl: Make builtin function profiles for GLSL ES use "es" in the filename.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=dfdf7451d1b8c19d0c071bb603a7064402722f28
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Sat Aug 4 10:29:49 2012 -0700

    glsl: Add builtin variables for GLSL 3.00 ES.
    
    This patch also adds assertions so that when we add new GLSL versions,
    we'll notice that we need to update the builtin variables.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=320a46fcc55eba2250654bba8e62a2d6db09e576
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Thu Aug 2 13:38:57 2012 -0700

    glsl: Populate built-in types correctly for GLSL 3.00 ES.
    
    This patch implements all of the built-in types for GLSL 3.00 ES.
    This is almost exactly the same as the set of built-in types for GLSL
    1.30, except ate 1D samplers are skipped, and samplerCubeShadow is
    added.
    
    This patch also addes an assertion so that when we add new GLSL
    versions, we'll notice that we need to update the types.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b4e21819ec14ee14688aa9dfe9af58461558d190
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Sat Aug 4 10:00:20 2012 -0700

    glsl: Make {Min,Max}ProgramTexelOffset available to compiler.
    
    These constants need to be made available to shaders in GLSL 3.00 ES.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6c73d53c4ab7fa1bfa3460cf1cae90b8ed82eff7
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Thu Aug 2 17:51:02 2012 -0700

    glsl: Fix linker checks for GLSL ES 3.00.
    
    This patch updates the following linker checks to do the right thing
    in GLSL 3.00 ES:
    
    - Failing to write to gl_Position is allowed in GLSL 1.40+ as well as
      GLSL 3.00 ES.
    
    - It is an error to write to both gl_ClipVertex and gl_ClipDistance in
      GLSL 1.30+.  This does not apply to GLSL 3.00 ES.
    
    - GLSL 3.00 ES uses the same varying counting rules as GLSL 1.00 ES.
    
    - In GLSL 1.30 and GLSL 3.00 ES, "discard" terminates the shader.
    
    - In GLSL 1.00 ES and GLSL 3.00 ES, both a fragment and a vertex
      shader must be present.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=33e882bdbccff736f0c65e2d0b6c84bf9ed995cf
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Thu Aug 2 17:50:43 2012 -0700

    glsl: Record in gl_shader_program whether the program uses GLSL ES.
    
    Previously we recorded just the GLSL version (or the max version, if
    GLSL 1.10 and GLSL 1.20 programs were linked together).

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6b4dc0a862cabbba9358bc947bb0bda1bd1feac1
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Thu Aug 2 17:49:44 2012 -0700

    glsl: Clean up shading language mixing check for GLSL 3.00 ES.
    
    Previously, we prohibited mixing of shading language versions if
    min_version == 100 or max_version >= 130.  This was technically
    correct (since desktop GLSL 1.30 and beyond prohibit mixing of shading
    language versions, as does GLSL 1.00 ES), but it was confusing.  Also,
    we asserted that all shading language versions were between 1.00 and
    1.40, which was unnecessary (since the parser already checks shading
    language versions) and doesn't work for GLSL 3.00 ES.
    
    This patch changes the code to explicitly check that (a) ES shaders
    aren't mixed with desktop shaders, (b) shaders aren't mixed between ES
    versions, and (c) shaders aren't mixed between desktop GLSL versions
    when at least one shader is GLSL 1.30 or greater.  Also, it removes
    the unnecessary assertion.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=31117df1e0cedb73cee8c2a65a539fe7ad020fa6
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Thu Aug 2 17:47:49 2012 -0700

    glsl: Record in gl_shader whether the shader uses GLSL ES.
    
    Previously we recorded just the GLSL version, with the knowledge that
    100 means GLSL 1.00 ES.  With the advent of GLSL 3.00 ES, this is
    going to get more complex, and eventually will probably become
    ambiguous (GLSL 4.00 already exists, and GLSL 4.00 ES is likely to be
    created some day).
    
    To reduce confusion, this patch simply records whether the shader is
    GLSL ES as an explicit boolean.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=cfd145ca0d4f3a0a93ee8b5c7cae948bd82c9916
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Thu Aug 2 11:17:30 2012 -0700

    glsl/parser: Handle "#version 300 es" directive.
    
    Note that GLSL 1.00 is selected using "#version 100", so "#version 100
    es" is prohibited.
    
    v2: Check for GLES3 before allowing '#version 300 es'
    
    Signed-off-by: Paul Berry <stereotype441 at gmail.com>
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7d36563a59a9d1316efe16fbf05b76a74abb8310
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Thu Aug 2 11:02:55 2012 -0700

    glsl/parser: Extract version directive processing into a function.
    
    Version directive handling is going to have to be used within two
    parser rules, one for desktop-style version directives (e.g. "#version
    130") and one for the new ES-style version directive (e.g. "#version
    300 es"), so this patch moves it to a function that can be called from
    both rules.
    
    No functional change.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=41be0a065cfa52fbf4093ef5e43b02046d01c14a
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Thu Aug 2 13:21:54 2012 -0700

    glsl/preprocessor: Handle "#version 300 es" directive.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c18d2fe85b822249f78d47bb32839f8a932fc9e2
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Thu Aug 2 13:06:45 2012 -0700

    glsl/preprocessor: Extract version directive processing into a function.
    
    Version directive handling is going to have to be used within two
    parser rules, one for desktop-style version directives (e.g. "#version
    130") and one for the new ES-style version directive (e.g. "#version
    300 es"), so this patch moves it to a function that can be called from
    both rules.
    
    No functional change.
    
    [mattst88] v2: Use intmax_t instead of int for version argument. Would
    otherwise write garbage after #version since PRIiMAX was reading 64-bits
    instead of 32.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a10c625fc04760ce0be442cc9acfaceedfd49bbf
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Thu Aug 2 08:18:12 2012 -0700

    glsl: Enable GLSL ES 3.00 features inherited from desktop GLSL.
    
    This patch turns on the following features for GLSL ES 3.00:
    
    - Array constructors, whole array assignment, and array comparisons.
    - Second and third operands of ?: may be arrays.
    - Use of "in" and "out" qualifiers on globals.
    - Bitwise and modulus operators.
    - Integral vertex shader inputs.
    - Range-checking of literal integers.
    - array.length method.
    - Function calls may be constant expressions.
    - Integral varyings must be qualified with "flat".
    - Interpolation and centroid qualifiers may not be applied to vertex
      shader inputs.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=00c29f3a9ecfb87f445fdc3de920954398719cbb
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Thu Aug 2 08:17:55 2012 -0700

    glsl: parse GLSL ES 3.00 keywords correctly.
    
    GLSL ES 3.00 adds the following keywords over GLSL 1.00: uint,
    uvec[2-4], matNxM, centroid, flat, smooth, various samplers, layout,
    switch, default, and case.
    
    Additionally, it reserves a large number of keywords, some of which
    were already reserved in versions of desktop GL that Mesa supports,
    some of which are new to Mesa.
    
    A few of the reserved keywords in GLSL ES 3.00 are keywords that are
    supported in all other versions of GLSL: attribute, varying,
    sampler1D, sampler1DShador, sampler2DRect, and sampler2DRectShadow.
    
    This patch updates the lexer to handle all of the new keywords
    correctly when the language being parsed is GLSL 3.00 ES.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=352b823a1bcc7ee87e4771595ad7e0fcbae81772
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Wed Aug 1 19:04:59 2012 -0700

    glsl: Rework lexer keyword handling in preparation for GLSL 3.00 ES.
    
    This patch expands the lexer KEYWORD macro to take two additional
    arguments: the GLSL ES versions in which the given keyword was first
    reserved, and supported, respectively.  This will allow us to
    trivially add support for GLSL 3.00 ES keywords, even though the set
    of GLSL 3.00 ES keywords is neither a subset or a superset of the
    keywords corresponding to any desktop GLSL version.
    
    The new KEYWORD macro makes use of the
    _mesa_glsl_parse_state::is_version() function, so it accepts 0 as
    meaning "unsupported" (rather than 999, which we used previously).
    
    Note that a few keywords ("packed" and "row_major") are supported
    *either* when GLSL 1.40 is in use or when ARB_uniform_buffer_obj
    support is enabled.  Previously, we handled these by cleverly taking
    advantage of the fact that the KEYWORD macro didn't parenthesize its
    arguments in the usual way.  Now they are handled more
    straightforwardly, with a new macro, KEYWORD_WITH_ALT.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=667eeddb90bd50e92ab8f88f37874c6e9b2c0be8
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Sun Aug 5 09:57:01 2012 -0700

    glsl: Make use of new _mesa_glsl_parse_state::check_version() function.
    
    Previous to this patch, we were not very consistent about the errors
    we generate when a shader tried to use a feature that is prohibited in
    the current GLSL version.  Some error messages failed to mention the
    GLSL version currently in use (or did so inaccurately), and some error
    messages failed to mention the first GLSL version in which the given
    feature is allowed.
    
    This patch reworks all of the error checks to use the check_version()
    function, which produces error messages in a standard form
    (approximately "$FEATURE forbidden in $CURRENT_GLSL_VERSION
    ($REQUIRED_GLSL_VERSION required).").

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=938bc2c2251c6f1dff7703e4739912035a35bd87
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Wed Aug 1 14:50:05 2012 -0700

    glsl: Make use of new _mesa_glsl_parse_state::is_version() function.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=97fff30b123ad5002c84458cfea6db42ed7f7e87
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Wed Aug 1 19:09:24 2012 -0700

    glsl: Add GLSL version query functions.
    
    With the advent of GLSL 3.00 ES, the version checks we perform in the
    GLSL compiler (to determine which language features are present) will
    become more complicated.  To reduce the complexity, this patch adds
    functions check_version() and is_version() to _mesa_glsl_parse_state.
    These functions take two version numbers: a desktop GLSL version and a
    GLSL ES version, and return a boolean indicating whether the GLSL
    version being compiled is at least the required version.  So, for
    example, is_version(130, 300) returns true if the GLSL version being
    compiled is at least desktop GLSL 1.30 or GLSL 3.00.
    
    The check_version() function additionally produces an error message if
    the version check fails, informing the user of which GLSL version(s)
    support the given feature.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2eb906e217a6caad11e4e9f0a903b5ba1ee977fa
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Thu Aug 2 06:45:30 2012 -0700

    glsl: Compute version_string on the fly.
    
    Fixes a bug where version_string would be left uninitialized if no
    GLSL "#version" directive was used.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=91a6c9d9256d9a671a297270cd76dea947418386
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Wed Aug 1 18:36:57 2012 -0700

    glsl: Make a function to express a GLSL version ir human-readable form.
    
    This will be useful in generating more helpful error messages,
    especially with the addition of GLSL 3.00 ES support.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=342ee35ea1219a49abd2bf352a94f70e938dcb69
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Wed Aug 1 17:44:02 2012 -0700

    glsl: Simplify symbol table version checking.
    
    Previously, we stored the GLSL language version in the
    glsl_symbol_table struct.  But this was unnecessary--all
    glsl_symbol_table needs to know is whether functions and variables
    have separate namespaces (they do in GLSL 1.10 only).

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=986087fc80e1230ec6332c5fc0de4759ab9d3f9e
Author: Paul Berry <stereotype441 at gmail.com>
Date:   Mon Aug 6 10:22:44 2012 -0700

    mesa: Add ARB_ES3_compatibility flag.
    
    This extension was approved by the ARB on 2012/06/12.  Supporting it
    immediately will make it easier to develop and test GLES3 features,
    since we can do initial development and testing using desktop GL.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e475d998fa0b92dad43b137433f8a5b9509b358e
Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Wed Aug 8 13:11:32 2012 -0700

    mesa/es3: Allow transpose matrix uniforms in GLES3
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5cea0273414bd5897c318b4d632b08ce8080a2fe
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Wed Nov 14 20:50:05 2012 -0800

    i965/fs: Properly patch special values during VGRF compaction.
    
    In addition to registers used by instructions, fs_visitor maintains
    direct references to certain "special" values used for inputs/outputs.
    
    When I added VGRF compaction, I overlooked these, believing that these
    direct references weren't used once instructions were generated.  That
    was wrong.  For example, pixel_x/y are used in virtual_grf_interferes(),
    which is called by optimization passes and register allocation.
    
    This patch treats all of them as used and patches them after compacting.
    While it's not strictly necessary to patch all of them (as some aren't
    used after emitting code), it seems safer to simply fix them all.
    
    Fixes oglconform's textureswizzle/advanced.shader.targets, piglit's
    glsl-fs-lots-of-tex, and glean's texCombine on pre-Gen6 hardware.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=56790
    Reviewed-by: Eric Anholt <eric at anholt.net>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3c368bb307544a51f8b8d13f0d496a742086c9e2
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Nov 14 14:37:00 2012 -0800

    i965/gen4: Respect the VERTEX_PROGRAM_TWO_SIDE vertex program/shader flag.
    
    Fixes piglit "vertex-program-two-side enabled front back" and 4 others.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=94e82b2e6cabd7ad26ff35067f6b6675168649d3
Author: Eric Anholt <eric at anholt.net>
Date:   Tue Nov 13 14:40:22 2012 -0800

    mesa: Fix linker-assigned varying component counting since 8fb1e4a462
    
    The goal of that change was to skip counting things that aren't actually
    outputs from the VS to the FS.  However, explicit_location isn't set in
    the case of linker-assigned locations (the common case), so basically
    varying component counting got disabled.  At this stage of the linker,
    we've already ensured that var->location is set, so we can just look at
    it without worrying.
    
    Fixes i965 assertion failure with the new
    piglit glsl-max-varyings --exceed-limits.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=51545
    Reviewed-by: Brian Paul <brianp at vmware.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5c99697f74c68f7e170564d791b95d986a18774a
Author: Eric Anholt <eric at anholt.net>
Date:   Tue Nov 13 13:39:37 2012 -0800

    mesa: Fix segfault on reading from a missing color read buffer.
    
    The diff looks funny, but it's moving the integer vs non-integer check
    below the _mesa_source_buffer_exists() check that ensures
    _ColorReadBuffer is non-null, so we get a GL_INVALID_OPERATION instead
    of a segfault.  This looks like it had regressed in the
    _mesa_error_check_format_and_type() changes, which removed the first of
    the two duplicated checks for the source buffer.  Fixes segfault in the
    new piglit ARB_framebuffer_object/negative-readpixels-no-rb.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=45877
    NOTE: This is a candidate for the stable branches.
    Reviewed-by: Brian Paul <brianp at vmware.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=df3361df01e35aae9f379f0687490ba409841cfb
Author: Eric Anholt <eric at anholt.net>
Date:   Tue Nov 13 12:45:35 2012 -0800

    intel: Use core mesa support for determining lastLevel.
    
    We had similar issues with using depth in determining the lastLevel of array
    textures.
    
    Reviewed-by: Chad Versace <chad.versace at linux.intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=02652eaa25f1114b16762cac7a49f210a8c41c19
Author: Eric Anholt <eric at anholt.net>
Date:   Tue Nov 13 12:45:19 2012 -0800

    mesa: Also handle GL_TEXTURE_EXTENRAL_OES in max num levels.
    
    Reviewed-by: Chad Versace <chad.versace at linux.intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a43b107403ab5f812d68172f799e8cb490e97b95
Author: Eric Anholt <eric at anholt.net>
Date:   Thu Nov 8 14:02:22 2012 -0800

    i965/fs: Unify the param pointer allocation for FP/non-FP.
    
    Now that we're using the new backend, we may actually put things into push
    constants if you have too many uniform values uploaded.  Also, correctly
    account for texture rectangle params and drop the old special case for the
    0.0/1.0 params from the old backend.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c64adedc5f85f46276f4a1ccd81a82304b7e341d
Author: Maarten Lankhorst <maarten.lankhorst at canonical.com>
Date:   Sat Nov 17 13:22:39 2012 +0100

    st/vdpau: Fix vlVdpVideoSurfaceSize for interlaced buffers
    
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst at canonical.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a204e2649545a063b288badd57fd94a286971a1e
Author: Andreas Boll <andreas.boll.dev at gmail.com>
Date:   Sat Nov 17 08:57:00 2012 +0100

    docs: import release notes for 9.0.1, add news item

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=acc1e59013f07e15275943dd95ad96fa2698a95a
Author: Vinson Lee <vlee at freedesktop.org>
Date:   Wed Nov 14 22:25:05 2012 -0800

    util: Only use open coded snprintf for MSVC.
    
    MinGW has snprintf.
    
    The patch fixes these warnings with the MinGW SCons build.
    
    src/gallium/auxiliary/util/u_snprintf.c:459:1: warning: no previous prototype for ‘util_vsnprintf’ [-Wmissing-prototypes]
    src/gallium/auxiliary/util/u_snprintf.c:1436:1: warning: no previous prototype for ‘util_snprintf’ [-Wmissing-prototypes]
    
    Signed-off-by: Vinson Lee <vlee at freedesktop.org>
    Tested-by: Brian Paul <brianp at vmware.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b36b6fdb32f58757175d2e727e7a98a63b0e2b76
Author: Tom Stellard <thomas.stellard at amd.com>
Date:   Mon Nov 12 16:04:03 2012 +0000

    clover: Fix build with clang 3.2

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=71877143b62ce3f10ef4716d19361fa95a53ff42
Author: Tom Stellard <thomas.stellard at amd.com>
Date:   Sat Sep 15 23:25:34 2012 -0400

    r300/compiler: Avoid generating MOV instructions for invalid IMM swizzles v2
    
    If an instruction reads from a constant register that contains
    immediates using an invalid swizzle, we can avoid generating MOV
    instructions to fix up the swizzle by loading the immediates into a
    different constant register that can be read using a valid swizzle.
    
    This only affects r300 and r400 cards.
    
    For example:
    
    CONST[1] = {    -3.5000     3.5000     2.5000     1.5000 }
    
    MAD temp[4].xy, const[0].xy__, const[1].xz__, input[0].xy__;
    
    ========== Before this change would be lowered to: =========
    
    CONST[1] = {    -3.5000     3.5000     2.5000     1.5000 }
    
    MOV temp[0].x, const[1].x___;
    MOV temp[0].y, const[1]._z__;
    MAD temp[4].xy, const[0].xy__, temp[0].xy__, input[0].xy__;
    
    ========== After this change is lowered to:  ===============
    
    CONST[1] = {    -3.5000     3.5000     2.5000     1.5000 }
    CONST[2] = {     0.0000    -3.5000     2.5000     0.0000 }
    
    MAD temp[4].xy, const[0].xy__, const[2].yz__, input[0].xy__;
    
    ============================================================
    
    This change reduces one of the Lightsmark shaders from 133 to 91
    instructions.
    
    v2:
      - Fix crash caused by swizzles with only inline constants.




More information about the mesa-commit mailing list