Mesa (gles3): 86 new commits

Jordan Justen jljusten at kemper.freedesktop.org
Mon Dec 17 00:27:52 UTC 2012


URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0780817ae43fa8767a78e1bc04152c24f34af644
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=45685a54e9a8150d29b186bb8a070192f94e46d5
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=5b9ade5cede4520d2ec687f8ec8bc4d172b0196f
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=24cceaab117e31fb1330d1d675cb6f0555aee9fd
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=f20343f0b79c95873a17a51014ac95735bc06c39
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=fe04ad4042a1524aab8b880518afe2bf798292a8
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=74fe697166b34d30947af85fe3c9750e8265d4a0
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=110a59bcca6bda1e073a75406c0dba5e0696a1b3
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=af9fa61280660febd7b2e8ba141f1bd1cbbb4bf5
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=1732ba6092b813c9015984c0958f9e9f48191467
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=48087e4ee1f23ad3b472753f7522c29ff89f9385
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=1875f9a4e2bcccb917ce9097a4134e1906d47a64
Author: Matt Turner <mattst88 at gmail.com>
Date:   Tue Nov 27 12:18:02 2012 -0800

    glcpp: Reject token pasting operator in GLES
    
    The GLSL ES 3.0 spec (Section 12.17) says:
    "GLSL ES 1.00 removed token pasting and other functionality."
    
    NOTE: This is a candidate for the stable branches.
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
    Reviewed-by: Carl Worth <cworth at cworth.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=91ae2d69a3acbe0dc33934f703dc16e840f9c051
Author: Carl Worth <cworth at cworth.org>
Date:   Mon Nov 26 15:00:05 2012 -0800

    glcpp: Make undefined macros illegal in #if and #elif for GLES3
    
    Simply emitting a nicely-formatted error message if any undefined macro is
    encountered in a parser context expecting an expression.
    
    With this commit, the following piglit test now passes:
    
    	spec/glsl-es-3.00/compiler/undefined-macro.vert
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e4782d299bbbafdaa7cf2d8b89d146802570a12b
Author: Carl Worth <cworth at cworth.org>
Date:   Mon Nov 26 14:53:54 2012 -0800

    glcpp: Add a flag to the parser state to indicate GLES.
    
    This can be triggered either by creation of a GLES context (with
    api == API_OPENGLES2) or else by a #version directive with version
    value 100 or with a string of "es" following the version value.
    
    There's no behavioral change with this commit—just preparation for ES-specific
    behavior in the preprocessor in the future.
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7b5d742f1372efd3d493ddf5aa51acc29dcfac4d
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=4e096f03c54ec04ffa23ea9c57d2e26ed23a9423
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=11c87e16499192e3fa6d5ef4f902ea20fba9339b
Author: Matt Turner <mattst88 at gmail.com>
Date:   Fri Nov 30 11:10:20 2012 -0800

    mesa: Use _mesa_lookup_enum_by_nr in tex*_error_check
    
    Reviewed-by: Brian Paul <brianp at vmware.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b579b1b9ecf0b9f31def255ef841c2904b613e38
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=258ada8b43eb0f7cfdfd7d8f4ae2f4dbb12b9b4f
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.
    
    Fixes es3conform's color_buffer_unsupported_format test.
    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=af1a2fcb9d0f426048ad45ce66ff3d9372a208e6
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=14dba7da0c68aeec50b81307ba7f97e5169e11c1
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.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=21db28518c9d774498226a58be0576c22e6c8fb3
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=0bd345a6f2e165dbffa25614d8355cfca094da9c
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=043897db7c6d89a59c054e5810b2f82523f2e0d9
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=2e6f11fba90102d3ec4e75cc0c36dc43ccace9dc
Author: Matt Turner <mattst88 at gmail.com>
Date:   Tue Nov 20 13:01:04 2012 -0800

    mesa: Rename and wire-up GetInteger64i_v
    
    The function was named badly and wasn't in the dispatch table,
    making it hard to find.
    
    Fixes transform_feedback2_states and gets a few other transform
    feedback tests closer to working in es3conform.
    
    Reviewed-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=d3cb7c1c264ba22f2c7349a6d459cde06bedfb18
Author: Matt Turner <mattst88 at gmail.com>
Date:   Tue Nov 20 12:56:52 2012 -0800

    mesa: Correct glGet{Boolean,Integer}i_v names
    
    Reviewed-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=cdcf6fce2238613f0e075f5a90bcfbc657f5f944
Author: Matt Turner <mattst88 at gmail.com>
Date:   Thu Nov 15 22:13:48 2012 -0800

    mesa: Allow GL_DEPTH_STENCIL_ATTACHMENT in ES 3
    
    Fixes framebuffer_srgb_default_encoding_fbo and 5 packed_depth_stencil
    tests from es3conform.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=64636337fc3130843a44bf69856a14b5ba3ed933
Author: Chad Versace <chad.versace at linux.intel.com>
Date:   Tue Nov 20 17:04:45 2012 -0800

    mesa: Support more glGet enums for ES3
    
    For glGetIntegerv, add support for the following in an OpenGL ES 3.0
    context:
        GL_MAJOR_VERSION
        GL_MINOR_VERSION
        GL_NUM_EXTENSIONS
    
    See Table 6.29 of the OpenGL ES 3.0 spec.
    
    Fixes error GL_INVALID_ENUM in piglit egl-create-context-verify-gl-flavor,
    testcase for OpenGL ES 3.0.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org> (v1)
    Reviewed-by: Matt Turner <mattst88 at gmail.com>
    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=5b09361f550186a6160a556e89db0acce18b8d3f
Author: Matt Turner <mattst88 at gmail.com>
Date:   Sat Dec 8 17:24:19 2012 -0800

    mesa: Support querying GL_MAX_ELEMENT_INDEX in ES 3
    
    The ES 3 spec says that the minumum allowable value is 2^24-1, but the
    GL 4.3 and ARB_ES3_compatibility specs require 2^32-1, so return 2^32-1.
    
    Fixes es3conform's element_index_uint_constants test.
    
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=fa300978ae2731601fba0333dc42791bddbdbc77
Author: Matt Turner <mattst88 at gmail.com>
Date:   Sat Dec 8 17:17:19 2012 -0800

    mesa: De-duplicate ES2 queries
    
    From GL/GLES/GL_CORE and GLES2 -> GL/GL_CORE/GLES2.
    
    Yes, we really were exposing ES2_compatibility queries on ES 1.
    
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d53965fa9d7e2f17a146905faaa7745c34207a28
Author: Matt Turner <mattst88 at gmail.com>
Date:   Sat Dec 8 17:10:50 2012 -0800

    mesa: Allow glGet* queries on EXT_texture_lod_bias data in ES 3
    
    Fixes the remaining 4 texture_lod_bias failures in es3conform.
    
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=12928e40c8971b19ccfa34adf2cc47d783b34433
Author: Matt Turner <mattst88 at gmail.com>
Date:   Sat Dec 8 17:04:42 2012 -0800

    mesa: Allow glGet* queries on EXT_framebuffer_blit data in ES 3
    
    Fixes 2 framebuffer_blit es3conform tests.
    
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1e7ef244f214b0a13c1b9ca7026af0824bf44734
Author: Matt Turner <mattst88 at gmail.com>
Date:   Sat Dec 8 17:03:44 2012 -0800

    mesa: Allow glGet* queries on ARB_fragment/vertex_shader data in ES 3
    
    Fixes uniform_buffer_object_implementation_dependent_limits in
    es3conform.
    
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=84b21fd0c8fbd6f128e05e4df144c9a2b03125ef
Author: Matt Turner <mattst88 at gmail.com>
Date:   Sat Dec 8 17:02:26 2012 -0800

    mesa: Allow glGet* queries on ARB_framebuffer_object data in ES 3
    
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=37e7f3b042605ccb6ee99d2ed3324bfdfc97eb16
Author: Matt Turner <mattst88 at gmail.com>
Date:   Sat Dec 8 17:01:42 2012 -0800

    mesa: Allow glGet* queries on ARB_transform_feedback2 data in ES 3
    
    Fixes the transform_feedback2_init_defaults test from es3conform.
    
    The ES 3 spec lists these as TRANSFORM_FEEDBACK_PAUSED and
    TRANSFORM_FEEDBACK_ACTIVE.
    
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=99c570d8b863df017334a4bcf1a1de1159880249
Author: Matt Turner <mattst88 at gmail.com>
Date:   Sat Dec 8 17:00:57 2012 -0800

    mesa: Allow glGet* queries on EXT_transform_feedback data in ES 3
    
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=22f14f860a94bc2cab571f863307dd3f32a7fc8b
Author: Matt Turner <mattst88 at gmail.com>
Date:   Sat Dec 8 17:00:17 2012 -0800

    mesa: Allow glGet* queries on ARB_sync data in ES 3
    
    Fixes the sync_coverage_max_server_wait_timeout test in es3conform.
    
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5848895d0076f36a204252466b06e7d7ffeb5361
Author: Matt Turner <mattst88 at gmail.com>
Date:   Sat Dec 8 16:59:37 2012 -0800

    mesa: Allow glGet* queries of EXT_pbo data in ES 3
    
    Fixes pixel_buffer_object_default_binding and gets other tests in
    es3conform closer to passing.
    
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f3d1ee994a93c8896c80f0a2ad9c6b9a297b94b8
Author: Matt Turner <mattst88 at gmail.com>
Date:   Sat Dec 8 16:43:54 2012 -0800

    mesa: Allow glGet* queries of select ARB_ubo data in ES 3
    
    Fixes 5 uniform_buffer_object tests in es3conform.
    
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=968e4f3fe75098f3f8bb4e780cab9b11b7d58d1f
Author: Matt Turner <mattst88 at gmail.com>
Date:   Fri Dec 14 14:22:28 2012 -0800

    Add ES 3 handling to get.c and get_hash_generator.py
    
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6ec292750d2ba9c82072882636a1d97ad2bbdbba
Author: Matt Turner <mattst88 at gmail.com>
Date:   Wed Nov 28 12:03:26 2012 -0800

    glapi: Move ARB_base_instance to the correct location
    
    It's #107, it shouldn't be added after the #116 comment.
    
    Reviewed-by: Fredrik Höglund <fredrik at kde.org>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=cc4c453bcffb7cbadc571181c1d6996020c06dad
Author: Matt Turner <mattst88 at gmail.com>
Date:   Thu Nov 29 12:43:39 2012 -0800

    mesa/tests: Add ARB_ES3_compatibility enums
    
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7f1eca55bcbf87e13a54a8748afff9e2af4af20d
Author: Matt Turner <mattst88 at gmail.com>
Date:   Wed Nov 28 12:12:09 2012 -0800

    glapi: Add enums for ARB_ES3_compatibility
    
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1358f3a905448f6fb546aba951e317f743a83c76
Author: Jordan Justen <jordan.l.justen at intel.com>
Date:   Fri Nov 16 13:40:59 2012 -0800

    mesa: assert if driver did not compute the version
    
    Make sure drivers initialize the version before:
     * _mesa_initialize_exec_table is called
     * _mesa_initialize_exec_table_vbo is called
     * A context is made current
    
    Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=075f8722ab78df32878e9b6b721a1263cea53b27
Author: Jordan Justen <jordan.l.justen at intel.com>
Date:   Mon Nov 19 11:21:05 2012 -0800

    mesa: don't initialize VBO vtxfmt in _vbo_CreateContext
    
    The driver should call _mesa_initialize_vbo_vtxfmt after
    computing the context version.
    
    Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=53ee3959f2d695ae442dcadcbce2971a9e26e99c
Author: Jordan Justen <jordan.l.justen at intel.com>
Date:   Fri Nov 16 10:42:02 2012 -0800

    mesa: don't initialize exec dispatch tables in _mesa_initialize_context
    
    Drivers must compute the context version, and then call
    _mesa_initialize_exec_table themselves.
    
    Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d5d1f10955f46207aabd011d43e863920abe3b00
Author: Jordan Justen <jordan.l.justen at intel.com>
Date:   Fri Nov 16 18:25:35 2012 -0800

    mesa dispatch_sanity: call new functions to initialize exec table
    
    In a future patch the exec functions will no longer set up
    by _mesa_initialize_context and _vbo_CreateContext.
    
    Therefore we must call _mesa_initialize_exec_table and
    _mesa_initialize_exec_table_vbo.
    
    Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4bea4cb9fd55cdb267003a6e6e16f7e903e00940
Author: Jordan Justen <jordan.l.justen at intel.com>
Date:   Fri Nov 16 10:30:19 2012 -0800

    drivers: compute version and then initialize exec table
    
    This change forces the context version to be computed before
    initilizing the exec dispatch tables.
    
    Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0924f4e90c47d9e4d7255cd1375c651523c9b1c5
Author: Jordan Justen <jordan.l.justen at intel.com>
Date:   Mon Nov 19 11:17:39 2012 -0800

    vbo: add _mesa_initialize_vbo_vtxfmt
    
    This function initializes the exec/save dispatch tables
    for VBO vtxfmt.
    
    Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d44014953835e9180eeb54a7969470396d7f3fd0
Author: Jordan Justen <jordan.l.justen at intel.com>
Date:   Fri Nov 16 10:27:13 2012 -0800

    mesa: separate exec allocation from initialization
    
    In glapi/gl_genexec.py:
    * Remove _mesa_alloc_dispatch_table call
    
    In glapi/gl_genexec.py and api_exec.h:
    * Rename _mesa_create_exec_table to _mesa_initialize_exec_table
    
    In context.c:
    * Call _mesa_alloc_dispatch_table instead of _mesa_create_exec_table
    * Call _mesa_initialize_exec_table (this is temporary)
    
    Once all drivers have been modified to call
    _mesa_initialize_exec_table, then the call to
    _mesa_initialize_context can be removed from context.c.
    
    Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=fa5078c255b5b57514ae854ecd6264379641c924
Author: Dave Airlie <airlied at redhat.com>
Date:   Sun Dec 16 10:16:09 2012 +0000

    r600g: fixup offset types for printing
    
    This allows the debug code to at least show the sign properly.
    
    Signed-off-by: Dave Airlie <airlied at redhat.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=cf358a2b42b4c1c0a672f57d5962a5d70a22df33
Author: Henri Verbeet <hverbeet at gmail.com>
Date:   Fri Dec 14 04:14:14 2012 +0100

    gallium/u_blitter: Remove the overlapped blit assert from util_blitter_blit_generic().
    
    This is used by st_BlitFramebuffer() / r600_blit(), and ARB_fbo allows
    overlapped blits, even though the result is undefined. No piglit regressions
    on r600g / CYPRESS.
    
    Signed-off-by: Henri Verbeet <hverbeet at gmail.com>
    Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>
    Reviewed-by: Marek Olšák <maraeo at gmail.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a9abaaafd8ecdaebdf8b1b7ef2ac1177aa51efca
Author: Dave Airlie <airlied at gmail.com>
Date:   Sun Dec 16 11:47:01 2012 +1000

    glsl_parser_extras.cpp: fixup gl vs mem contexts again.
    
    This should fix:
    https://bugs.freedesktop.org/show_bug.cgi?id=58039
    
    Tested-by: Darxus on bug 58039
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
    Signed-off-by: Dave Airlie <airlied at redhat.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4f91f8dd6057b73d05454fc626985183d00e5236
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Fri Nov 9 21:20:05 2012 -0800

    i965: Move BRW_MAX_GRF and similar defines to brw_reg.h.
    
    These don't really belong in brw_structs.h.
    
    Reviewed-by: Eric Anholt <eric at anholt.net>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1db1283563468d9aa04fb2d343a38a5f6fbc3540
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Fri Nov 9 14:00:15 2012 -0800

    i965: Split struct brw_reg out from brw_eu.h into its own header.
    
    struct brw_instruction and the related instruction emitting code won't
    be useful on Gen8+, as the instruction encoding changed.  However, the
    struct brw_reg code is still extremely valuable.
    
    While we're at it, fix up some style points:
    - s/GLuint/unsigned/g
    - s/GLint/int/g
    - s/GLshort/int16_t/g
    - s/GLushort/uint16_t/g
    - s/INLINE/inline/g
    - Replace tabs with spaces
    - Put return types on a separate line from the function name/parameters
    - Remove trailing whitespace
    - Remove extraneous whitespace around function parameters
    
    Reviewed-by: Eric Anholt <eric at anholt.net>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e1ca88f098b74a6253db714ffc63d73341e60cb2
Author: Dave Airlie <airlied at gmail.com>
Date:   Sun Dec 16 07:06:54 2012 +1000

    docs: add ARB_texture_buffer_object_rgb32
    
    Signed-off-by: Dave Airlie <airlied at redhat.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=39fa4c0a58e9103ec564c26e50382aa0e0af081b
Author: Dave Airlie <airlied at gmail.com>
Date:   Sat Dec 15 13:03:54 2012 +1000

    st/mesa: add texture buffer object rgb32 support.
    
    This checks if the pipe driver can support RGB32 formats.
    
    Reviewed-by: Marek Olšák <maraeo at gmail.com>
    Signed-off-by: Dave Airlie <airlied at redhat.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1b62c326ea36dcfe66e84a75d11b4bbbc4231c69
Author: Dave Airlie <airlied at gmail.com>
Date:   Sat Dec 15 13:03:40 2012 +1000

    mesa: add support for ARB_texture_buffer_object_rgb32
    
    This adds the extensions + the tex buffer support for checking
    the formats.
    
    There is a piglit test enhancement sent to that list.
    
    Reviewed-by: Marek Olšák <maraeo at gmail.com>
    Signed-off-by: Dave Airlie <airlied at redhat.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7d7a549fa03293ede1d1627be5bdb47c11677f87
Author: Dave Airlie <airlied at gmail.com>
Date:   Sat Dec 15 13:24:52 2012 +1000

    glsl: avoid using gl context as a memory context
    
    Not sure what was going on here, but running piglit with debug builds
    might be a good plan :-)
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
    Signed-off-by: Dave Airlie <airlied at redhat.com>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b23e92dbe7682b2aad30c75c75370a4cc2634cb0
Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Fri Dec 14 17:22:29 2012 -0800

    i965: Add missing autoconf bits so test_vec4_register_coalesce will build
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
    Tested-by: Eric Anholt <eric at anholt.net>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c9e48e5b083b6cf97ecdb2d17c874ea631203b06
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Aug 1 19:35:18 2012 -0700

    i965: Generalize VS compute-to-MRF for compute-to-another-GRF, too.
    
    No statistically significant performance difference on glbenchmark 2.7
    (n=60).  It reduces cycles spent in the vertex shader by 3.3% +/- 0.8%
    (n=5), but that's only about .3% of all cycles spent according to the
    fixed shader_time.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=471af25fc57dc43a8277b4b17ec82547287621d0
Author: Eric Anholt <eric at anholt.net>
Date:   Fri Nov 30 22:29:26 2012 -0800

    i965/vs: Extend opt_compute_to_mrf to handle limited "reswizzling"
    
    The way our visitor works, scalar expression/swizzle results that get
    stored in channels other than .x will have an intermediate MOV from
    their result in the .x channel to the real .y (or whatever) channel, and
    similarly for vec2/vec3 results.
    
    By knowing how to adjust DP4-type instructions for optimizing out a
    swizzled MOV, we can reduce instructions in common matrix multiplication
    cases.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a76a03f437df3c6458da5b0e9e70fd4d986fbdae
Author: Eric Anholt <eric at anholt.net>
Date:   Fri Nov 30 23:52:38 2012 -0800

    i965/vs: Add a unit test for opt_compute_to_mrf().
    
    The compute-to-mrf code is really twitchy, and it's hard to construct
    GLSL testcases for it.  This unit test is also really hard to work with
    (for example, if your instruction is removed by dead code elimination,
    you end up inspecting something irrelevant), but I did use it for
    debugging some of the commits to follow.
    
    I called it test_vec4_register_coalesce because the compute-to-mrf code
    is about to morph into that.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7171c45d3a6392b947d96c10362ce0459b741669
Author: Eric Anholt <eric at anholt.net>
Date:   Fri Nov 30 21:15:35 2012 -0800

    i965/fs: Drop an unnecessary _safe on a list walk.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=78ce522932e8c356880c7ca10dace4b6fe6cf313
Author: Eric Anholt <eric at anholt.net>
Date:   Fri Nov 30 15:54:19 2012 -0800

    i965/fs: Add a note explaining a detail of register_coalesce_2().
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7baf9198b201666fc0f20fe407d7b46ee0ca7ef5
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Dec 12 12:47:50 2012 -0800

    i965: Also consider HALTs a potential block end.
    
    The final halt of the fragment shader turns off the remaining channels,
    then jumps such that everything is turned back on.  So, we can have our
    last ENDIF of the shader point at that directly.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2702202290b55a9c8b61f02f7ae0af8f4a53f0e2
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Wed Dec 12 02:20:05 2012 -0800

    i965: Jump to the end of the next outer conditional block on ENDIFs.
    
    From the Ivybridge PRM, Volume 4, Part 3, section 6.24 (page 172):
    
    "The endif instruction is also used to hop out of nested conditionals by
     jumping to the end of the next outer conditional block when all
     channels are disabled."
    
    Also:
    "Pseudocode:
     Evaluate(WrEn);
     if ( WrEn == 0 ) {  // all channels false
       Jump(IP + JIP);
     }"
    
    First, ENDIF re-enables any channels that were disabled because they
    didn't match the conditional.  If any channels are active, it proceeds
    to the next instruction (IP + 16).  However, if they're all disabled,
    there's no point in walking through all of the instructions that have no
    effect---it can jump to the next instruction that might re-enable some
    channels (an ELSE, ENDIF, or WHILE).
    
    Previously, we always set JIP on ENDIF instructions to 2 (which is
    measured in 8-byte units).  This made it do Jump(IP + 16), which just
    meant it would go to the next instruction even if all channels were off.
    
    It turns out that walking over instructions while all the channels are
    disabled like this is worse than just instruction dispatch overhead: if
    there are texturing messages, it still costs a couple hundred cycles to
    not-actually-read from the texture results.
    
    This patch finds the next instruction that could re-enable channels and
    sets JIP accordingly.
    
    Reviewed-by: Eric Anholt <eric at anholt.net>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2f7f095a801311bf62aa1204b5a9940509753cff
Author: Chris Forbes <chrisf at ijw.co.nz>
Date:   Thu Nov 22 19:24:22 2012 +1300

    i965: expose ARB_texture_cube_map_array
    
    V3: Put enable in an existing block rather than making a new
    one for no good reason.
    
    Signed-off-by: Chris Forbes <chrisf at ijw.co.nz>
    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=380fc562b35c57b0f97ea4325c578ed94efae220
Author: Eric Anholt <eric at anholt.net>
Date:   Fri Dec 14 12:24:55 2012 -0800

    i965/fs: Fix setup for textureGrad(samplerCubeArray, coord, dPdx, dPdy)
    
    Caught by tex_grad-01.frag.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3c560633548f4b0298a372903de32639706f8c40
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Dec 5 14:56:32 2012 -0800

    i965/fs: Move the failure for gen7 16-wide intdiv to emit_math().
    
    The cube map array code adds another caller of emit_math(), which
    needs this check.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d2dbba87554d9490b49884185a29ca2b46e4a616
Author: Chris Forbes <chrisf at ijw.co.nz>
Date:   Thu Nov 22 22:13:46 2012 +1300

    i965: fs: Add fixup for textureSize on Gen6/7
    
    V2: Moved up into emit(ir_texture *) to avoid duplication and fix
    ordering for Gen7; Gen6 math quirks moved into previous patches.
    
    Tested on Gen6 only; passes all the cube_map_array piglits.
    
    V3: Fixed weird whitespace
    V4: Use sampler->type; otherwise broken on arrays of samplers.
    v5: Minor style fixes (by anholt)
    
    Signed-off-by: Chris Forbes <chrisf at ijw.co.nz>
    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=6e34723ac9fa2d5c34cb2a38118ecf5b856c4992
Author: Chris Forbes <chrisf at ijw.co.nz>
Date:   Thu Nov 29 08:39:08 2012 +1300

    i965: fs: fix gen6+ math operands in one place
    
    V4: Fix various style nits as pointed out by Eric, and expand IMM
        operands on both Gen6 and Gen7.
    v5: minor style nits (by anholt)
    
    Signed-off-by: Chris Forbes <chrisf at ijw.co.nz>
    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=f6a3fda25d2d9cf825c38e3e46f7cf44bd7c99e1
Author: Chris Forbes <chrisf at ijw.co.nz>
Date:   Thu Nov 22 21:32:08 2012 +1300

    i965: vs: Add fixup for textureSize with cube array samplers
    
    V3: Fixed weird whitespace
    V4: Use sampler's type rather than variable's type; otherwise broken
        with arrays of samplers. (Thanks Eric)
    v5: Fix a couple more style nits (by anholt)
    
    Signed-off-by: Chris Forbes <chrisf at ijw.co.nz>
    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=1cb57ea493d892bf5065e5fb0c5dd745744cc71c
Author: Chris Forbes <chrisf at ijw.co.nz>
Date:   Sun Dec 9 22:03:49 2012 +1300

    i965/vs: Fix gen6+ math operand quirks in one place
    
    This causes immediate values to get moved to a temp on gen7, which is needed
    for an upcoming change but hadn't happened in the visitor until then.
    
    v2: Drop gen > 7 checks (doesn't exist), and style-fix comments (changes by
        anholt).
    
    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=0cda3382a6a150d42877711f14964b44fe8c6db5
Author: Chris Forbes <chrisf at ijw.co.nz>
Date:   Thu Nov 22 17:55:08 2012 +1300

    i965: Add various plumbing for cubemap arrays
    
    V4: Fixed style nits
    
    Signed-off-by: Chris Forbes <chrisf at ijw.co.nz>
    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=2cae9f2d4a57dc9cca934b489df43f0ec4eb98bc
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Dec 5 16:19:43 2012 -0800

    i965/fs: Add empirically-determined instruction latencies for gen7.
    
    v2: Actually switch on the other math instructions mentioned in the
        comment.
    v3: Add timing data for textureSize(), and clean up some long comment
        lines.
    
    Testing shader_time of fs16 shaders on a few frames of various apps:
    nexuiz improved by 2.9% +/- 1.5% (n=10)
    no difference on GLB2.5 (n=36, outliers removed)
    no difference on GLB2.7 (n=25)
    etqw improved by 2.6% +/- 2.2% (n=25)
    no difference on lightsmark (n=25)
    
    Acked-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4df1e18864dc6b7830bb3c7998889883fe8dae2b
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Dec 5 16:17:58 2012 -0800

    i965/fs: Fix the clock increment in scheduling.
    
    I've tested this to be true with various ALU ops on gen7 (with the
    exception of MADs, which go at either 3 or 4 cycles per dispatch).
    
    Acked-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6255fc7426ce51b3bd1b28af45f4977fdcc37a55
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Dec 5 15:24:07 2012 -0800

    i965/fs: Move the old gen4 bspec-based scheduling info to a helper func.
    
    For gen7 everything changes, and we have actual information on latency.
    
    Acked-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=461a29783a28e579a9a5a236e5f47ffb6d18a328
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Dec 5 00:06:30 2012 -0800

    i965/fs: Set up gen7 UBO loads as sends from GRFs.
    
    This gives the instruction scheduler a chance to schedule between the
    loads, whereas before it was restricted due to the dependencies between
    the MRFs for setting them up.
    
    For one shader in gles3conform, it goes from getting stuck in register
    allocation for as long as anybody's bothered to leave it running down
    to 23 seconds, thanks to the LIFO scheduling.
    
    Acked-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=456dbcc3377ee23dbeffa4da02a4d80a8519bb62
Author: Eric Anholt <eric at anholt.net>
Date:   Mon Dec 3 19:59:55 2012 -0800

    i965/fs: Before reg alloc, schedule instructions to reduce live ranges.
    
    This came from an idea by Ben Segovia.  16-wide pixel shaders are very
    important for latency hiding on i965, so we want to try really hard to
    get them.  If scheduling an instruction makes some set of instructions
    available, those are probably the ones that make the instruction's
    result dead.  By choosing those first, we'll have a tendency to reduce
    the amount of live data as opposed to creating more.
    
    Previously, we were sometimes getting this behavior out of the
    scheduler, which was what produced the scheduler's original performance
    wins on lightsmark.  Unfortunately, that was mostly an accident of the
    lame instruction latency information that I had, which made it
    impossible to fix the actual scheduling for performance.  Now that we've
    fixed the scheduling for setup for register allocation, we can safely
    update the latency parameters for the final schedule.
    
    In shader-db, we lose 37 16-wide shaders, but gain 90 new ones.  4
    shaders that were spilling change how many registers spill, for a
    reduction of 70/3899 instructions.
    
    v2: Simplify the new loop.
    
    Acked-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ba864bfcfaceac37a5f9292795dc5aba7dc2c0e2
Author: Eric Anholt <eric at anholt.net>
Date:   Tue Dec 4 13:52:19 2012 -0800

    i965/fs: Add some optional debug printfs to scheduling.
    
    Seeing when instructions become available to schedule is really useful.
    
    Acked-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7a9f940cab8e5a3bbbab3e302de2311b36159d91
Author: Eric Anholt <eric at anholt.net>
Date:   Mon Dec 3 17:58:03 2012 -0800

    i965/fs: Schedule instructions both before and after register allocation.
    
    Acked-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1315f3b4b38cb569846389fe3080ffa8ac6946d9
Author: Eric Anholt <eric at anholt.net>
Date:   Fri Dec 14 14:02:34 2012 -0800

    i965: Make sure that the shader_time report at context destroy happens.
    
    Otherwise, you end up with some report from within a second of context
    destroy, which is now what you really want for testing the impact of
    changes

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=81c247404a232d17e94ec1b435c0f2be47877778
Author: Eric Anholt <eric at anholt.net>
Date:   Mon Dec 10 10:22:41 2012 -0800

    i965: Print a total time for the different shader stages.
    
    Sometimes I've got a patch for a performance optimization that's not
    showing a statistically significant performance difference on reported
    FPS, but still seems like a good idea because it ought to reduce time
    spent in the shader.  If I can see the total number of cycles spent in
    the shader stage being optimized, it may show that the patch is still
    worthwhile (or point out that it's actually broken in some way).

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f74560f3fb516971e6a7b03a2382db2f58699f59
Author: Eric Anholt <eric at anholt.net>
Date:   Mon Dec 10 09:44:19 2012 -0800

    i965: Scale shader_time to compensate for resets.
    
    Some shaders experience resets more than others, which skews the numbers
    reported.  Attempt to correct for this by linearly scaling according to
    the number of resets that happen.
    
    Note that will not be accurate if invocations of shaders have varying
    times and longer invocations are more likely to reset.  However, this
    should at least be better than the previous situation.

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=338b5f887d462bbe7ef58a233cd00619e43415f0
Author: Eric Anholt <eric at anholt.net>
Date:   Mon Dec 10 09:21:34 2012 -0800

    i965: Adjust the split between shader_time_end() and shader_time_write().
    
    I'm about to emit other kinds of writes besides time deltas, and it
    turns out with the frequency of resets, we couldn't really use the old
    time delta write() function more than once in a shader.




More information about the mesa-commit mailing list