Mesa (gles3): 50 new commits

Ian Romanick idr at kemper.freedesktop.org
Wed Jan 16 07:47:05 UTC 2013


URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=401271956d41f2d50ee262e91f601e22697fbb55
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=cbf1ab2cf22813a0b464ebb5057a08a51022e857
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=58598e2e6656c843208a26bb9f9fa00f18e5293c
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=d1f05ff362691b48227967652a523818543a2711
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=bfb8041ca2f863ccf06383c12ca4d87303218492
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=e3b02469cd508a7bd10ec97dee30b749fc301bb4
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=35c8ce95ec765bb9b9c43075e8de8ef9abb8996e
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=3f7e1a440c054ca9a366340ae503916475c1f927
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=292c12b8e9f589878ef85f8a1aedf0e7dd175df5
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=d9db91626d2bffda898794b330061554eaf65085
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=40b655e9a60c508b5a5ef08da039b240c84bbde2
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=277f4b68295a64ef80d5371240a172be12584ec1
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
    
    v2: Add ARB_internalformat_query to the list of required extensions.
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1cedf7819b605cd78ae4762c2abc20988577d852
Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Tue Jan 15 23:20:02 2013 -0800

    glapi: Remove duplicate ARB_base_instance from gl_API.xml
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3c00a52f7e02007f40fa53a06fad517bed0328ff
Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Sat Dec 1 11:06:31 2012 -0800

    intel: Enable GL_ARB_internalformat_query
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
    Reviewed-by: Eric Anholt <eric at anholt.net>
    Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f5e7f12e4a1d2ee98ced36c232842d60181fc01e
Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Sat Dec 1 11:05:00 2012 -0800

    mesa: Add driver method to determine the possible sample counts
    
    Use this method in _mesa_GetInternalformativ for both GL_SAMPLES and
    GL_NUM_SAMPLE_COUNTS.
    
    v2: internalFormat may not be color renderable by the driver, so zero
    can be returned as a sample count.  Require that drivers supporting the
    extension provide a QuerySamplesForFormat function.  The later was
    suggested by Eric Anholt.
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
    Reviewed-by: Eric Anholt <eric at anholt.net>
    Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bda540d2357f69a63dcf16550e178f803682d6ce
Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Fri Nov 30 12:43:58 2012 -0800

    mesa: Add dispatch and extension XML for GL_ARB_internalformat_query
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
    Reviewed-by: Eric Anholt <eric at anholt.net>
    Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>

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

    mesa: Add extension tracking bit for GL_ARB_internalformat_query
    
    Though, I'm tempted to always expose this extension when
    GL_ARB_framebuffer_object is exposed.  In that case, it would share the same
    enable bit.
    
    v2: Correctly sort extension names.  Suggested by Eric Anholt.
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
    Reviewed-by: Eric Anholt <eric at anholt.net>
    Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1b468d043e538a6302ad77a408ad123c58dc0e83
Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Fri Nov 30 12:41:50 2012 -0800

    mesa: Add skeleton implementation of glGetInternalformativ
    
    This is for the GL_ARB_internalformat_query extension and GLES 3.0.
    
    v2: Generate GL_INVALID_OPERATION if the extension is not supported.
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
    Reviewed-by: Eric Anholt <eric at anholt.net>
    Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=780c2cb42bc7bff9f89a998effb732bdcd72630b
Author: Vinson Lee <vlee at freedesktop.org>
Date:   Tue Jan 15 18:03:25 2013 -0800

    meta: Move loop variable declaration outside for loop.
    
    Fixes build with MSVC.
    
    Signed-off-by: Vinson Lee <vlee at freedesktop.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7ecbbc338668d745daae7b3a6d17f3af0adf12d7
Author: Brian Paul <brianp at vmware.com>
Date:   Tue Jan 15 17:02:30 2013 -0700

    mesa: move declarations before code to fix MSVC build

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d0ce8d6ceb5f597e9cb132e6395bce8fbd51b58e
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>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bed997dabaada5e7c8081db08f93a6f1b5932e8b
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>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ab36ca061412c49143a5f2af53bee862fbd40351
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>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2f2801f876a4c637273bd3ddefb8a5b7a840e604
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>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b77243b9c245fd5957aa6d615a3d83d061f51cc1
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>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0c535ae7fc703e10c1df7a108e8704263d7b75d3
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=252573ae0fe6c928885f005cf6e77200b45601fb
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>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f727fc630462c91f19a59e8b48e3a4224dd0ec52
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.
    
    v2: Update GL3 spec reference.
    
    Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
    Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com> [v2]
    Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com> [v1]

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=fd3891cbbe8f11c297edf0a6bf0580f69024722e
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.
    
    v2: Update GLES3 spec reference.
    
    Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
    Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com> [v2]
    Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com> [v1]

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d786bf2c2acbafe2ac32e7fd5b8f9a6b09f3d968
Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Tue Jan 15 14:17:46 2013 -0800

    egl/dri2: Fix typo in the previous commit
    
    I didn't notice this due to a noobed piglit run.  It wasn't previously
    noticed because the patch was only run on a driver that supported GLES3.
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=45575ff388cbb4c49480c6e5e8eea32d5c7d74a4
Author: Rob Schneider <Swizzle at t-online.de>
Date:   Tue Jan 15 11:49:12 2013 -0800

    libgl-gdi: Avoid hangs on DLL_PROCESS_DETACH.
    
    At process exit DLL_PROCESS_DETACH is signaled to DllMain(), where then
    a final cleanup is triggered.  In stw_cleanup() code is triggered that
    tries to communicate a shutdown to the spawned threads -- however at
    that time those threads have already been terminated by the OS and so
    the process hangs.
    
    v2: skip stw_cleanup_thread() too
    
    Signed-off-by: José Fonseca <jfonseca at vmware.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=eb09940e55806c36890ae8f5a35ad1b37ed74832
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=26f9faa04b4e924bc8e1fc35a5d75179063764e6
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=e90c08e6674018ac56e1134ba02295a3e7edc90c
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=a11fe62058ad9d44170be9346111e3f6630a3327
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=4945086f36d3ccec041e499f1e2861dc1cc45a44
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.
    
    v4:
      - Drop ES2 version back to 2.0 due to rebase (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=112e302481182d625e04ae1abeaa4f4f344a645e
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>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2906e2034c9d674601960a5b586b6e986e6ef04f
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>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

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

    mesa: Allow HALF_FLOAT in glVertexAttribPointer for GLES3
    
    Fixes es3conform's half_float_max_vertex_dimensions and
    half_float_textures tests.
    
    Reviewed-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=cbef5371f6cb0a03f62586f7c5b4ed66511daff4
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>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8907b6a8e4461f6064e32ff5419053e74274e770
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
    
    Reviewed-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=f3db20da1a04fd64732c62631d59aac801a1a59d
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.
    
    Reviewed-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=d9d857e24fef2ae5576523b861f46c426b94ba0d
Author: Carl Worth <cworth at cworth.org>
Date:   Thu Dec 13 15:23:10 2012 -0800

    i965: Force even an empty query to flush all previous queries.
    
    The specification requires that query results are processed in order, (when
    one query result is returned, all previous query of the same type must also be
    available). The implementation was failing this requirement in the case of
    BeginQuery and EndQuery with no intervening drawing, (the result would be made
    available immediately without flushing previous queries).
    
    This fixes the following es3conform test:
    
    	occlusion_query_query_order
    
    as well as the following piglit test:
    
    	occlusion_query_order
    
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c0b768ffee1ba84a4fcfcf41adf60e6d50cbafee
Author: Carl Worth <cworth at cworth.org>
Date:   Thu Dec 13 11:15:03 2012 -0800

    meta: Allow meta operations to pause/resume an active occlusion query
    
    This allows for avoiding the occlusion query erroneously accumulating results
    during the meta operation. This functionality is made conditional on a new
    MESA_META_OCCLUSION_QUERY bit so that meta-operations which should generate
    fragments can continue to get the current behavior.
    
    The implementation of glClear is specifically augmented to request the flag
    since glClear is specified to not generate fragments.
    
    This fixes the following es3conform tests:
    
    	occlusion_query_draw_occluded.test
     	occlusion_query_clear
    	occlusion_query_custom_framebuffer
    	occlusion_query_stencil_test
    	occlusion_query_discarded_fragments
    
    As well as the following piglit test:
    
    	occlusion_query_meta_no_fragments
    
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3dd76f7168bba6123c9ac5e2442b8c811f40399f
Author: Carl Worth <cworth at cworth.org>
Date:   Thu Dec 13 12:47:56 2012 -0800

    queryobj: Add EverBound flag, making ISQuery() return false before BeginQuery()
    
    This flag allows for the specified behavior that GenQueries reserves a name,
    but does not associate an object with it until BeginQuery. We allocate the
    object immediately with the new EverBound flag set to false, and then set the
    flag to true at the time of BeginQuery.
    
    This allows us to implement a conformant IsQuery function by checking the
    state of the new EverBound flag.
    
    This fixes the following es3conform tests:
    
    	occlusion_query_genqueries
    	occlusion_query_is_query_nonzero
    
    and the following piglit test:
    
    	occlusion_query_lifetime
    
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c7df9c0e12e000f3d2fd57ebb3072f4afbda8579
Author: Carl Worth <cworth at cworth.org>
Date:   Mon Dec 17 13:38:39 2012 -0800

    Update comment to specify actual text being referenced from the specification.
    
    The reference to "correct, see spec" was a bit too vague to be useful,
    (particularly since the language being referenced here changes between OpenGL
    3.1 and OpenGL 4.3).
    
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=133383f77a526537f2bf32705ce391370dcbc84f
Author: Brian Paul <brianp at vmware.com>
Date:   Tue Jan 15 13:00:09 2013 -0700

    docs: minor updates to VMware guest driver docs
    
    The DRM's --enable-vmwgfx-experimental-api flag isn't needed anymore.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7660529c44b3f6753e9b5636e876a3cd83c8ba51
Author: Marek Olšák <maraeo at gmail.com>
Date:   Mon Jan 14 01:38:51 2013 +0100

    r300g: fix and cleanup flushing before clearing CMASK, ZMASK, and HIZ

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ca2c28859eca83f8fbf1f43616f5ef861e95e8d6
Author: Marek Olšák <maraeo at gmail.com>
Date:   Sat Jan 12 03:29:40 2013 +0100

    r300g: implement MSAA compression and fast MSAA color clear
    
    These are optimizations which make MSAA a lot faster.
    
    The MSAA work is complete with this commit.  (except for enablement of AA
    optimizations for RGBA16F, for which a patch is ready and waiting until
    the kernel CS checker fix lands)
    
    MSAA can't be made any faster as far as hw programming is concerned.
    
    The catch is only one process and one colorbuffer can use the optimizations
    at a time.  There usually is only one MSAA colorbuffer, so it shouldn't be
    an issue.
    
    Also, there is a limit on the size of MSAA colorbuffer resolution in terms
    of megapixels.  If the limit is surpassed, the AA optimizations are disabled.
    The limit is:
    - 1 Mpix on low-end and some mid-level chipsets (1024x768 and 1280x720)
    - 2 Mpix on some mid-level chipsets (1600x1200 and 1920x1080)
    - 3 or 4 Mpix on high-end chipsets (2048x1536 or 2560x1600, respectively)
    It corresponds to the number of raster pipes (= GB pipes) available, each pipe
    can hold 1 Mpix of AA compression data.
    
    If it's enabled, the driver prints to stdout:
      radeon: Acquired access to AA optimizations.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1dfe8eead95613a7db62dd17d3da56884b5a887e
Author: Marek Olšák <maraeo at gmail.com>
Date:   Fri Jan 11 16:45:54 2013 +0100

    gallium/util: add a half float array to util_color
    
    For convenient packing into half floats.




More information about the mesa-commit mailing list