Mesa (gles3): 34 new commits

Ian Romanick idr at kemper.freedesktop.org
Wed Jan 16 05:44:33 UTC 2013


URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=152fa005ded2dbaf17cc7488d15b9a99e6a051f8
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
    
    NOTE: This is a candidate for the 9.0 branch.
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0a7125ec12073992151aeb170b0b316cd3169d46
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
    
    NOTE: This is a candidate for the 9.0 branch.
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ba6a5474aa5bab4acdcc0da27e634329e23c7f64
Author: Jordan Justen <jordan.l.justen at intel.com>
Date:   Thu Dec 27 13:34:44 2012 -0800

    fbobject: add additional fbo completeness checks for GLES
    
    Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5aa61a13d291e394ecb27cfce193702d9910b4ed
Author: Jordan Justen <jordan.l.justen at intel.com>
Date:   Sat Jan 12 01:11:21 2013 -0800

    framebuffer: update allowed implementation format/type
    
    Allow additional format/type combinations based on the
    color render buffer to fix failures with gles3-gtf.
    
    Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=769b7790b05f1b9b59fcb094c0f164ce6b615caf
Author: Jordan Justen <jordan.l.justen at intel.com>
Date:   Sat Jan 12 01:05:44 2013 -0800

    readpix: allow implementation format/type
    
    For GLES2/3 allow reading of pixels with format/type based on:
     * GL_IMPLEMENTATION_COLOR_READ_FORMAT
     * GL_IMPLEMENTATION_COLOR_READ_TYPE
    
    Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c9e61f56223673aa14eea6afa23d4294892b706c
Author: Jordan Justen <jordan.l.justen at intel.com>
Date:   Thu Jan 10 17:29:27 2013 -0800

    extensions: enable EXT_color_buffer_float for ES2/ES3
    
    Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=07930a90d858f65ba9c17ecc919f602326ad4c09
Author: Jordan Justen <jordan.l.justen at intel.com>
Date:   Fri Dec 28 11:27:04 2012 -0800

    readpix: check FBO completeness before trying to access the read-buffer
    
    Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=aea4466337a936c07c4f0310cb7fa9933fd2e8e8
Author: Jordan Justen <jordan.l.justen at intel.com>
Date:   Fri Dec 28 11:24:37 2012 -0800

    readpix: add error checking for GLES3
    
    Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d0b1a188eaec74a566425ac86954fc61ec9a7d2e
Author: Jordan Justen <jordan.l.justen at intel.com>
Date:   Fri Dec 28 11:07:01 2012 -0800

    copyteximage: update error checking for GLES3
    
    Changes based on GTF/gles3 conformance test suite.
    
    Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c94c75073acfdca319294998d649d6eef0a4dc84
Author: Jordan Justen <jordan.l.justen at intel.com>
Date:   Fri Dec 28 11:00:50 2012 -0800

    copyteximage: make sure is_srgb(src) == is_srgb(dst)
    
    v2:
     * Remove _EXT on enums
     * Remove compressed forms of sRGB from is_srgb_format
     * Add comment referencing GL Core spec
    
    Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f817e67d6ac1d70d4641a53b7cbdecfd9dbe638c
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date:   Mon Jan 7 10:30:11 2013 +0530

    mesa: Round float param in glTexparameterf() to nearest integer
    
    OpenGL 4.2 specification suggests rounding the float data to nearest
    integer when the type of internal state is integer. Out of range floats
    should be clamped to {INT_MIN, INT_MAX}. This is not specified anywhere
    in gl/gles spec but below test expects this behavior.
    This patch makes gles3 conformance sgis_texture_lod_basic_getter.test pass.
    
    A GL spec bug will be raised to include clamping of out of range floats.
    
    V2: Round float to nearest integer for all cases where _mesa_Texparameterf()
    converts float param to int. Use the same block of float to int conversion
    code for GL_TEXTURE_SWIZZLE_{R,G,B,A}_EXT cases as well.
    
    Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2a715afb5d4af3b23bec82773461bd73199f4f87
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date:   Tue Dec 11 20:17:47 2012 -0800

    mesa: Add support to allow blitting to multiple color draw buffers
    
    This patch fixes a blitting case when drawAttachment->Texture ==
    readAttachment->Texture. It was causing an assertion failure in
    intel_miptree_attach_map() with gles3 conformance test case:
    framebuffer_blit_functionality_minifying_blit
    
    Number of changes in this file look scary. But most of them are caused by
    introducing a big for loop to support rendering to multiple color draw buffers.
    
    V2: Fixed a case when number of draw buffer attachments are zero.
    V3: Put a for loop in blit_nearest() and blit_linear() functions in to support
        blitting to multiple color draw buffers.
    V4: Remove variable declaration in for loop to avoid MSVC compilation issues.
    
    Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a1fa8e0b6ba92d58282e649a71c0254981557ef0
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date:   Tue Dec 11 20:17:47 2012 -0800

    mesa: Add error checking in _mesa_BlitFramebuffer() for MRTs
    
    This patch adds required error checking in _mesa_BlitFramebuffer() when
    blitting to multiple color render targets. It also fixes a case when
    blitting to a framebuffer with renderbuffer/texture attached to
    GL_COLOR_ATTACHMENT{i} (where i!=0). Earlier it skips color blitting if
    nothing is found attached to GL_COLOR_ATTACHMENT0.
    
    V2: Fixed a case when number of draw buffer attachments are zero.
    V3: Do compatible_color_datatypes() and compatible_resolve_formats()
        check for all the  draw renderbuffers in fbobject.c. Fix debug
        code at bottom of _mesa_BlitFramebuffer() to handle MRTs. Combine
        error checking code for linear blits with other color blit error
        checking.
    
    Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bbcf78ed659a18a8918988f3b2954fefc8366fd8
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date:   Tue Dec 11 20:08:13 2012 -0800

    mesa: Fix GL error generation in _mesa_GetFramebufferAttachmentParameteriv()
    
    This allows query on default framebuffer in glGetFramebufferAttachmentParameteriv()
    for gles3. Fixes unexpected GL errors in gles3 conformance test case:
    framebuffer_blit_functionality_multisampled_to_singlesampled_blit
    
    V2: Use _mesa_is_gles3() check to restrict allowed attachment types to
    specific APIs.
    Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=047ff967d6e1068dd205ed0b603f7664b5be8fd0
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date:   Tue Dec 11 19:36:05 2012 -0800

    intel: Support blitting to multiple color draw buffers
    
    This patch enables blitting to multiple color attachments of a framebuffer.
    It also fixes a case when blitting to a framebuffer with renderbuffer/texture
    attached to non-zero attachment point i.e. GL_COLOR_ATTACHMENT{1, 2, ...}.
    Earlier we were incorrectly blitting to GL_COLOR_ATTACHMENT0 by default.
    
    V2: Use intel_copy_texsubimage() for blitting only if all the color attachments
    can blit using it.
    Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=833d88643ce8250bbc43030b51280f3b24f94cc1
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date:   Wed Nov 28 12:55:55 2012 -0800

    meta: Add functionality to do _mesa_meta_BlitFrameBuffer() using glsl
    
    This patch rewrites _mesa_meta_BlitFrameBuffer() function to add support
    for blitting with GLSL/GLSL ES shaders. These changes were required to
    support glBlitFrameBuffer() in gles3. This patch, along with other patches
    in this series, make 16 failing framebuffer_blit test cases in gles3
    conformance pass.
    
    V2: Properly handle flipped blits for source and destination
        renderbuffer / textures. Add support for GL_TEXTURE_RECTANGLE
        in _mesa_meta_BlitFrameBuffer. Create a temp depth texture to
        support depth buffer blitting.
    V3: Remove unsupported / redundant shader code. Add an assertion to
        make sure that we don't use rectangle texture in ES. Put API
        guard on glTexEnvi().
    V4: For gles3: Don't use ReadPixels or CopyTexImage2D to blit depth buffer.
        gles3 spec says for CopyTexImage2D that "color buffer components can be
        dropped during the conversion to internalformat, but new components
        cannot be added." So, use the internal format of read renderbuffer to
        create texture for color buffer blitting.
    
    Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
    Reviewed-by: Ian Romanick <idr at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6ef4b894997d261ed6d4e0af45f6081a0eaf235c
Author: Anuj Phogat <anuj.phogat at gmail.com>
Date:   Mon Jan 7 15:55:31 2013 -0800

    mesa: Fix GL error generation in glBlitFramebuffer()
    
    V2:
    If mask has GL_STENCIL_BUFFER_BIT set, the depth formats for readRenderBuffer
    and drawRenderBuffer must match unless one of the two buffers doesn't have
    depth, in which case it's not blitted, so the format check should be ignored.
    Same comment goes for stencil formats in depth renderbuffers if mask has
    GL_DEPTH_BUFFER_BIT set.
    
    v3 (Kayden): Refactor code to be a bit more readable.
    
    Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
    Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b8c9ee5c4ff6b170c8e89511597953ac44834049
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Tue Dec 18 13:26:04 2012 -0800

    mesa: Make ES3 glDrawBuffers() only accept BACK/NONE for the winsys fbo.
    
    Nothing was explicitly checking this.
    
    Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>
    Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6d962a1ff3ab5634bedacdd070b092275e7a576d
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Tue Dec 18 13:26:03 2012 -0800

    mesa: Handle GL_BACK correctly for ES 3.0 in glDrawBuffers().
    
    In ES 3.0, when calling glDrawBuffers() on the window system
    framebuffer, the only valid targets are GL_NONE or GL_BACK.  Since there
    is no stereo rendering in ES 3.0, this is a single buffer, unlike
    desktop where it may be two (and thus isn't allowed).
    
    For single-buffered configs, GL_BACK ironically means the front (and
    only) buffer.  I'm not sure that it matters, however, as ES shouldn't
    have front buffer rendering in the first place.
    
    Fixes es3conform framebuffer_blit_coverage_default_draw_buffer_binding.
    
    Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>
    Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=71dff333b2ea301daa9d7628c8e1486d20b1f40b
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Tue Jan 8 11:23:10 2013 -0800

    mesa: Use GL_RED for DEPTH_TEXTURE_MODE for everything but legacy GL.
    
    According to page 163 of the ES 3.0 spec:
    
    "Texture lookups involving textures with depth component data generate
     a texture base color C_b either using depth data directly or by
     performing a comparison with the D_ref value used to perform the
     lookup, as described in section 3.8.15.  The resulting value R_t is
     then expanded to a color C_b = (R_t,0,0,1), ..."
    
    In other words, depth textures are supposed to be treated as GL_RED.
    
    A discussion about this text can be found in Khronos bugzilla:
    https://cvs.khronos.org/bugzilla/show_bug.cgi?id=7962
    
    It's unclear what the behavior of desktop GL should be.  The GL 3.x
    specifications indicate that it should be (r, r, r, 1), which is
    GL_LUMINANCE (the old default).  However, page 112 of the 4.2 core
    specification contains the text quoted above, explicitly declaring it
    to be (R_t, 0, 0, 1), which is GL_RED.
    
    So it hinges on whether the 4.2 text is a change or a clarification.
    Personally I think that using GL_RED in core contexts and GL_INTENSITY
    in legacy contexts seems reasonable.
    
    Fixes 4 es3conform tests:
    - depth_texture_fbo
    - depth_texture_fbo_clear
    - depth_texture_teximage
    - depth_texture_texsubimage
    
    Cc: Ian Romanick <idr at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=59cfd53ce11bd4c1daa96692790f873b4e509264
Author: Chad Versace <chad.versace at linux.intel.com>
Date:   Tue Nov 20 13:43:11 2012 -0800

    egl/dri2: Add plumbing for EGL_OPENGL_ES3_BIT_KHR
    
    Fixes error EGL_BAD_ATTRIBUTE in the tests below on Intel Sandybridge:
        * piglit egl-create-context-verify-gl-flavor, testcase OpenGL ES 3.0
        * gles3conform, revision 19700, when runnning GL3Tests with -fbo
    
    This plumbing is added in order to comply with the EGL_KHR_create_context
    spec. According to the EGL_KHR_create_context spec, it is illegal to call
    eglCreateContext(EGL_CONTEXT_MAJOR_VERSION_KHR=3) with a config whose
    EGL_RENDERABLE_TYPE does not contain the EGL_OPENGL_ES3_BIT_KHR. The
    pertinent
    portion of the spec is quoted below; the key word is "respectively".
    
      * If <config> is not a valid EGLConfig, or does not support the
        requested client API, then an EGL_BAD_CONFIG error is generated
        (this includes requesting creation of an OpenGL ES 1.x, 2.0, or
        3.0 context when the EGL_RENDERABLE_TYPE attribute of <config>
        does not contain EGL_OPENGL_ES_BIT, EGL_OPENGL_ES2_BIT, or
        EGL_OPENGL_ES3_BIT_KHR respectively).
    
    To create this patch, I searched for all the ES2 bit plumbing by calling
    `git grep "ES2_BIT\|DRI_API_GLES2" src/egl`, and then at each location
    added a case for ES3.
    
    Signed-off-by: Chad Versace <chad.versace at linux.intel.com>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b1daaa37faa055f8d2092cf2ca33804b330be893
Author: Chad Versace <chad.versace at linux.intel.com>
Date:   Wed Nov 21 16:55:43 2012 -0800

    intel: Expose support for DRI_API_GLES3
    
    If the hardware/driver combo supports GLES3, then set the GLES3 bit in
    intel_screen's bitmask of supported DRI API's.  Neither the EGL nor GLX
    layer uses the bit yet.
    
    Signed-off-by: Chad Versace <chad.versace at linux.intel.com>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=09422440e2637d94d19d11d7ccb73a764c4e0756
Author: Chad Versace <chad.versace at linux.intel.com>
Date:   Tue Nov 20 13:27:14 2012 -0800

    dri: Define enum __DRI_API_GLES3
    
    This enum corresponds to EGL_OPENGL_ES3_BIT_KHR.
    Neither the GLX nor EGL layer use the enum yet.
    
    I don't like the GLES bits. I'd prefer that all GLES APIs be exposed
    through a single API bit, as is done in GLX_EXT_create_context_es_profile.
    But, we need this GLES3 enum in order to do the plumbing necessary to
    correctly support EGL_OPENGL_ES3_BIT_KHR as required by the
    EGL_KHR_create_context spec.
    
    Signed-off-by: Chad Versace <chad.versace at linux.intel.com>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4ff652277be2ef5331b9f7e3dc65764a07a25be6
Author: Chad Versace <chad.versace at linux.intel.com>
Date:   Wed Nov 21 16:22:19 2012 -0800

    intel: Move validation of context version into intelInitContext
    
    Each driver (i830, i915, i965) used independent but similar code to
    validate the requested context version. With the rececnt arrival of GLES3,
    that logic has needed an update. Rather than apply identical updates to
    each drivers validation code, let's just move the validation into the
    shared routine intelInitContext.
    
    This refactor required some incidental changes to functions
    i830CreateContext and intelInitContext. For each function, this patch:
        - Adds context version parameters to the signature.
        - Adds a DRI_CTX_ERROR out param to the signature.
        - Sets the DRI_CTX_ERROR at each early return.
    
    Tested against gen6 with piglit egl-create-context-verify-gl-flavor.
    Verified that this patch does not change the set of exposed EGL context
    flavors.
    
    Signed-off-by: Chad Versace <chad.versace at linux.intel.com>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a4f1bf3d13106cf89ee6a15a4b1d416359231507
Author: Chad Versace <chad.versace at linux.intel.com>
Date:   Wed Nov 21 15:08:27 2012 -0800

    intel: Set screen's api mask according to hw capabilities (v3)
    
    Before this patch, intelInitScreen2 set DRIScreen::api_mask with the hacky
    heuristic below:
    
        if (gen >= 3)
            api_mask = GL | GLES1 | GLES2;
        else
            api_mask = 0;
    
    This hack was likely broken on gen2 (i830), but I don't care enough to
    properly investigate. It appears that every EGLConfig on i830 has
    EGL_RENDERABLE_TYPE=0, and thus eglCreateContext will never succeed.
    Anyway, moving on to living drivers...
    
    With the arrival of EGL_OPENGL_ES3_BIT_KHR, this heuristic is now
    insufficient. We must enable the GLES3 bit if and only if the driver is
    capable of creating a GLES3 context. This requires us to determine the
    maximum supported context version supported by the hardware/driver for
    each api *during initialization of intel_screen*.
    
    Therefore, this patch adds four new fields to intel_screen which indicate
    the maximum supported context version for each api:
      max_gl_core_version
      max_gl_compat_version
      max_gl_es1_version
      max_gl_es2_version
    
    The api mask is now correctly set as:
    
        api_mask = GL;
        if (max_gl_es1_version > 0)
            api_mask |= GLES1;
        if (max_gl_es2_version > 0)
            api_mask |= GLES2;
    
    Tested against gen6 with piglit egl-create-context-verify-gl-flavor.
    Verified that this patch does not change the set of exposed EGL context
    flavors.
    
    v2:
      - Replace the if-tree on gen with a switch, for Ian.
      - Unconditionally enable the DRI_API_OPENGL bit, for Ian.
    
    v3:
      - Drop max gl version to 1.4 on gen3 if !has_occlusion_query,
        because occlusion queries entered core in 1.5. For Ian.
    
    Signed-off-by: Chad Versace <chad.versace at linux.intel.com>
    Reviewed-by: Ian Romanick <ian.d.romanick.intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3ae56fbcd528cefc6020c7531c73d254503b8b31
Author: Chad Versace <chad.versace at linux.intel.com>
Date:   Wed Nov 21 09:28:36 2012 -0800

    i965: Bump maximum supported ES2 context version to 3.0
    
    Since patch "i965: Validate requested GLES context version in
    brwCreateContext", we have been able to create ES 3.0 contexts due to the
    max version check.  So...bump the max version.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
    Signed-off-by: Chad Versace <chad.versace at linux.intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e1417e82cf4eb6e78f6ba7d46574d79b267821a3
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=1422eccba9d023a8362fb60ba0239bf6aae359b7
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=5bd8d3309a57d290136e69d112403e7851704d86
Author: Matt Turner <mattst88 at gmail.com>
Date:   Fri Nov 30 15:07:54 2012 -0800

    mesa: Return INVALID_ENUM for glReadPixels(..., GL_DEPTH_*, ...) on ES 3
    
    I'm not sure if this is the correct fix. The
    _mesa_es_error_check_format_and_type function (used above in the ES 1
    and 2 cases) was originally added for glTexImage checking and allows
    GL_DEPTH_STENCIL/GL_UNSIGNED_INT_24_8 combinations. Using it in ES 3
    causes other tests to regress.
    
    Fixes es3conform's packed_depth_stencil_error test.
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org> (v1)
    Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ed5577e9783f1ba4db51a62977f74a3455d332fe
Author: Matt Turner <mattst88 at gmail.com>
Date:   Fri Nov 30 15:07:18 2012 -0800

    mesa: Return INVALID_OPERATION when type is known but not allowed
    
    INVALID_ENUM is for when the type is simply not known.
    
    Fixes part of es3conform's packed_depth_stencil_error test.
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ae0e15186cd0c69bfa04354b7d5f68cd2783a629
Author: Matt Turner <mattst88 at gmail.com>
Date:   Wed Nov 28 21:45:19 2012 -0800

    mesa: Allow HALF_FLOAT in glVertexAttribPointer
    
    Fixes es3conform's half_float_max_vertex_dimensions and
    half_float_textures tests.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8729186b54e3fef8027c877152b2e5a39a34b1dc
Author: Matt Turner <mattst88 at gmail.com>
Date:   Tue Nov 20 13:45:03 2012 -0800

    mesa: Reject texture-only formats as renderbuffer formats in ES 3
    
    ES 3 specifies some formats as texture-only (i.e., not available for
    renderbuffers).
    
    See the "Required Texture Formats" section (pg 126) of the ES 3 spec.
    
    v2: Allow RED and RG float rendering in core profiles The check used to
    be (version > 30) || (compat profile w/extensions).  Just deleting
    <version > 30) broke 3.0+ core profiles.
    
    Fixes es3conform's color_buffer_unsupported_format test.
    
    Signed-off-by: Matt Turner <mattst88 at gmail.com>
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
    Acked-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4888f42d39d6b6b4bafe98b63d23b44afff1f455
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Sat Nov 17 21:23:28 2012 -0800

    mesa: Fix default value of BUFFER_ACCESS_FLAGS.
    
    According to both the GL 3.0 and ES 3.0 specifications (table 2.7 for GL
    and table 2.8 for ES), the default value of BUFFER_ACCESS_FLAGS is
    supposed to be zero.
    
    Note that there are two related quantities: the obsolete BUFFER_ACCESS
    enum and the new BUFFER_ACCESS_FLAGS bitfield.
    
    BUFFER_ACCESS can only be GL_READ_ONLY, GL_WRITE_ONLY, or GL_READ_WRITE;
    BUFFER_ACCESS_FLAGS can easily represent all three via GL_MAP_WRITE_BIT,
    GL_MAP_READ_BIT, and their logical or.  It also supports more flags.
    
    Thus, Mesa only stores the bitfield, and simply computes the old enum
    when queried, via simplified_access_mode(bufObj->AccessFlags).
    
    The tricky part is that, while BUFFER_ACCESS_FLAGS defaults to 0,
    BUFFER_ACCESS defaults to GL_READ_WRITE for desktop [GL 3.0, table 2.8]
    and GL_WRITE_ONLY_OES for ES [the GL_EXT_map_buffer_range extension].
    
    Mesa tried to implement this by setting the default AccessFlags to
    GL_MAP_READ_BIT | GL_MAP_WRITE_BIT on desktop, and GL_MAP_WRITE_BIT on
    ES.  But in all specifications, it needs to be 0.
    
    This patch moves that logic into simplified_access_mode(): when
    AccessFlags == 0, it now returns GL_READ_WRITE for desktop and
    GL_WRITE_ONLY for ES 1/2.  (BUFFER_ACCESS doesn't exist on ES 3.0,
    so it's irrelevant there.)
    
    With that in place, it changes the AccessFlags default to 0.
    
    Fixes three es3conform tsets:
    - copy_buffer_defaults
    - map_buffer_range_modify_indices
    - pixel_buffer_object_default_parameters

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9657b8089b8713e8f5c7c8fb2714cd0a21402d03
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.
    
    v2: The error path was missing a "return" like all the other error
    paths.  Also, we may as well call it glDrawBuffers in the error message
    since the ARB suffix doesn't exist in ES 3.




More information about the mesa-commit mailing list