Mesa (master): 22 new commits

Eric Anholt anholt at kemper.freedesktop.org
Tue Aug 7 21:02:39 UTC 2012


URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4a078516b6e9dd6876aaa2c95f0a98b7f5e08d19
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Jun 27 13:46:26 2012 -0700

    i965: Enable uniform buffer objects on gen6+.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=04871058eb01c5b51a0180055e7dbdc967f56604
Author: Eric Anholt <eric at anholt.net>
Date:   Mon Jun 25 14:55:01 2012 -0700

    i965/vs: Add support for loading uniform buffer variables as pull constants.
    
    Unlike the FS side in the previous commit, this does variable indexing just
    fine, using the same code as we used for other variable-indexed pull
    constants.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=90de96ff0d6d54ba0f9a337a6a107acf4134682d
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Jun 20 15:55:13 2012 -0700

    i965/fs: Add support for loading uniform buffer variables as pull constants.
    
    Variable array indexing isn't finished, because the lowering pass
    turns it all into conditional moves of constant index accesses so I
    can't test it.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bb020d09c382285210a5aebe412ddabfad19e4a0
Author: Eric Anholt <eric at anholt.net>
Date:   Mon Jun 25 14:36:28 2012 -0700

    i965/vs: Add a surface index to VS_OPCODE_PULL_CONSTANT instructions.
    
    Similar to the previous commit for the fragment shader, now we have a buffer
    index and an offset.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=454dc83f66643e66ea7ee9117368211f0cfe84d7
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Jun 20 15:41:14 2012 -0700

    i965/fs: Communicate the pull constant block read parameters through fs_regs.
    
    I wanted to add the surface index as a variable value for UBO support,
    and a reg seemed like the obvious way to go.  This exposes more of the
    information to CSE, which we'll probably want to apply to pull
    constant loads for UBOs eventually (you might access 4 floats in a
    row, each of which would produce an oword block read of the same
    block).
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=25d2bf3845e9a6faaef8d808c1255ec57dc71dba
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Jun 20 12:29:29 2012 -0700

    i965: Bind UBOs as surfaces like we do for pull constants.
    
    v2: Comment fix, drop extraneous parens (review by Kenneth)
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5bffbd7ba2ba2ff21469b2a69a0ed67f0802fec7
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Jun 20 13:03:04 2012 -0700

    i965: Add an offset argument to constant buffer setup.
    
    We'll use this for UBO surfaces.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5fc5b29a543a7a229bf03f8f9f37ed4c592a67e7
Author: Eric Anholt <eric at anholt.net>
Date:   Tue Jul 31 14:28:05 2012 -0700

    mesa: Add support for glUniformBlockBinding() in display lists.
    
    Fixes piglit GL_ARB_uniform_buffer_object/dlist.
    
    v2: Use the .ui fields instead of .i for type consistency (review by Brian
        Paul)
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bfa046b5f2e50a0297ecb7e325395367362c4c39
Author: Eric Anholt <eric at anholt.net>
Date:   Tue Jul 31 12:46:25 2012 -0700

    mesa: Unbind uniform buffer bindings on glDeleteBuffers().
    
    Fixes piglit GL_ARB_uniform_buffer_object/deletebuffers.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1eb3c06ae82cc962c5d867238acd089f833c2337
Author: Eric Anholt <eric at anholt.net>
Date:   Thu Jul 26 16:56:49 2012 -0700

    mesa: Default to GL 3.1's limits on uniform blocks.
    
    The ARB spec lets you get away with the default block counting against the
    blocks for combined size limits.  The core spec says you need to be able to
    support the maximum size of default block *and* the maximum size of each
    uniform block.  I see no reason that any driver would have a problem with
    that.
    
    Fixes gl 3.1/minmax (with an associated fix to the test)
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=803262a5f55ca5b94a09dfe8f35e64a579778209
Author: Eric Anholt <eric at anholt.net>
Date:   Thu Jul 26 13:11:05 2012 -0700

    glsl: Refuse to parse uniform block declarations when UBOs aren't available.
    
    Fixes piglit
    GL_ARB_uniform_buffer_object/compiler/extension-disabled-block.frag
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e45f1b11c081a7b965bf58539d2dbcc231d543f4
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Jul 25 12:45:13 2012 -0700

    glsl: Align GL_UNIFORM_BLOCK_DATA_SIZE according to std140 rules.
    
    Fixes piglit GL_ARB_uniform_buffer_object/data-size test.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=86e0045578cd8d8be7736a8f56e2b51d61bda32a
Author: Eric Anholt <eric at anholt.net>
Date:   Mon Jul 23 14:31:42 2012 -0700

    glsl: Only flag RowMajor on matrix-type variables.
    
    We were only propagating it to the API when the variable was a matrix type,
    but we were still tripping over it in lower_ubo_reference when it was set on a
    vector.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ffb2d430596258aaeaf3b7ae7f295036ea4094d5
Author: Eric Anholt <eric at anholt.net>
Date:   Mon Jul 23 14:11:38 2012 -0700

    glsl: Fix calculation of std140 offset alignment for mat2s.
    
    We were getting the base offset of a vec2, not of a vec2[2] like the quoted
    spec text says we should.
    
    v2: Fix swapped then/else cases.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=300315fe69ba275dda8a4786783c2bdd007d0758
Author: Eric Anholt <eric at anholt.net>
Date:   Mon Jul 23 11:05:11 2012 -0700

    glsl: Fix glGetActiveUniformsiv(GL_UNIFORM_BLOCK_INDEX).
    
    Previously, we were returning the index into the UniformBlocks of one of the
    linked shaders, when it's supposed to be the program global index.
    
    Fixes piglit getactiveuniformsiv-uniform_block_index.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=af3fc6bb2836ce545c624bce2b47c3fd8cf4f9fa
Author: Eric Anholt <eric at anholt.net>
Date:   Fri Jul 20 16:49:15 2012 -0700

    ir_to_mesa: Don't whack the ->location field of uniform block variables.
    
    Fixes some failures in GL_ARB_uniform_buffer_object/maxblocks.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=56e82e30cb60368bb3605f95130732f5edbab0a0
Author: Eric Anholt <eric at anholt.net>
Date:   Tue Jun 26 13:17:08 2012 -0700

    mesa: Make glBindBufferBase/glBindBufferRange() work on just-genned names.
    
    In between glGenBuffers() and glBindBuffer(), the buffer object points to this
    dummy buffer with a name of 0, and a glBindBufferBase() would point to that.
    It seems pretty clear, given that glBindBufferBase() only cares about the
    current size of the buffer at render time, that it should bind up the buffer
    that you passed in instead of pointing it at this useless dummy buffer.
    
    However, what should glBindBufferRange() do?  As of this patch, it will
    promote the genned buffer to a proper buffer like it had been
    glBindBuffer()ed, and then detect that the size is greater than the buffer's
    current size of 0 and throw INVALID_VALUE.  It seems like the most reasonable
    answer here.
    
    Note that this also changes the behavior of these two on non-glGenBuffers() bo
    names.  We haven't yet set up the error throwing for glBindBuffers() on gl
    3.1+, and my assumption is that these two functions should inherit their
    behavior on un-genned names from glBindBuffers().
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a75f2681d26aecad185895c1c2f13dd542281ff9
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Jul 11 08:26:31 2012 -0700

    glsl: Add a lowering pass to turn complicated UBO references to vector loads.
    
    v2: Reduce the impenetrable code in emit_ubo_loads() by 23 lines by keeping
        the ir_variable as the variable part of the offset from handle_rvalue(),
        and track the constant offsets from that with a plain old integer value,
        avoiding a bunch of temporary variables in the array and struct handling.
        Also, fix file description doxygen.
    v3: Fix a row vs col typo, and fix spelling in a comment.
    
    Reviewed-by: Eric Anholt <eric at anholt.net>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8c2a9838355cfd02356bf7b22eead408d909fe25
Author: Eric Anholt <eric at anholt.net>
Date:   Fri Jul 20 14:10:44 2012 -0700

    glsl: Add a variant of the rvalue visitor for handle_rvalue() on the way down.
    
    For the UBO lowering pass, I want to see the whole dereference chain for
    replacing, not the innermost ir_dereference_variable.
    
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2ea3ab14f2182978f471674c9dfce029d37f70a7
Author: Eric Anholt <eric at anholt.net>
Date:   Mon Jul 9 15:52:53 2012 -0700

    glsl: Add a "ubo_load" expression type for fetches from UBOs.
    
    Drivers will probably want to be able to take UBO references in a
    shader like:
    
            uniform ubo1 {
                    float a;
                    float b;
                    float c;
                    float d;
            }
    
            void main() {
                 gl_FragColor = vec4(a, b, c, d);
            }
    
    and generate a single aligned vec4 load out of the UBO.  For intel,
    this involves recognizing the shared offset of the aligned loads and
    CSEing them out.  Obviously that involves breaking things down to
    loads from an offset from a particular UBO first.  Thus, the driver
    doesn't want to see
    
    	variable_ref(ir_variable("a")),
    
    and even more so does it not want to see
    
    	array_ref(record_ref(variable_ref(ir_variable("a")),
              "field1"), variable_ref(ir_variable("i"))).
    
    where a.field1[i] is a row_major matrix.
    
    Instead, we're going to make a lowering pass to break UBO references
    down to expressions that are obvious to codegen, and amenable to
    merging through CSE.
    
    v2: Fix some partial thoughts in the ir_binop comment (review by Kenneth)
    
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=71ba6de342b88dcf8ed3aa347da157b7724230e7
Author: Eric Anholt <eric at anholt.net>
Date:   Fri Jul 20 16:57:22 2012 -0700

    glsl: Fix a reference to UniformBlocks during uniform linking.
    
    When converting var->location from pointing at the program's UniformBlocks to
    pointing at the linked shader's UniformBlocks, I missed this change.  It
    usually worked out in the end because the two lists happen to be the same in
    many testcases.
    
    Fixes a valgrind complaint on
    oglconform ubo-compile.cpp advanced.std140.2stage
    
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7e42302e7188a783221d2b17a4bb07ee89cae367
Author: Eric Anholt <eric at anholt.net>
Date:   Mon Jul 9 15:47:33 2012 -0700

    glsl: Update the notes on adding a new expression type.
    
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>




More information about the mesa-commit mailing list