URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4a078516b6e9dd6876aaa2c95f0a98b7f5e08d19
Author: Eric Anholt <[email protected]>
Date: Wed Jun 27 13:46:26 2012 -0700
i965: Enable uniform buffer objects on gen6+.
Reviewed-by: Kenneth Graunke <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=04871058eb01c5b51a0180055e7dbdc967f56604
Author: Eric Anholt <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=90de96ff0d6d54ba0f9a337a6a107acf4134682d
Author: Eric Anholt <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=bb020d09c382285210a5aebe412ddabfad19e4a0
Author: Eric Anholt <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=454dc83f66643e66ea7ee9117368211f0cfe84d7
Author: Eric Anholt <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=25d2bf3845e9a6faaef8d808c1255ec57dc71dba
Author: Eric Anholt <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5bffbd7ba2ba2ff21469b2a69a0ed67f0802fec7
Author: Eric Anholt <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5fc5b29a543a7a229bf03f8f9f37ed4c592a67e7
Author: Eric Anholt <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=bfa046b5f2e50a0297ecb7e325395367362c4c39
Author: Eric Anholt <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=1eb3c06ae82cc962c5d867238acd089f833c2337
Author: Eric Anholt <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=803262a5f55ca5b94a09dfe8f35e64a579778209
Author: Eric Anholt <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e45f1b11c081a7b965bf58539d2dbcc231d543f4
Author: Eric Anholt <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=86e0045578cd8d8be7736a8f56e2b51d61bda32a
Author: Eric Anholt <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ffb2d430596258aaeaf3b7ae7f295036ea4094d5
Author: Eric Anholt <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=300315fe69ba275dda8a4786783c2bdd007d0758
Author: Eric Anholt <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=af3fc6bb2836ce545c624bce2b47c3fd8cf4f9fa
Author: Eric Anholt <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=56e82e30cb60368bb3605f95130732f5edbab0a0
Author: Eric Anholt <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a75f2681d26aecad185895c1c2f13dd542281ff9
Author: Eric Anholt <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8c2a9838355cfd02356bf7b22eead408d909fe25
Author: Eric Anholt <[email protected]>
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 <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=2ea3ab14f2182978f471674c9dfce029d37f70a7
Author: Eric Anholt <[email protected]>
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 <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=71ba6de342b88dcf8ed3aa347da157b7724230e7
Author: Eric Anholt <[email protected]>
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 <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=7e42302e7188a783221d2b17a4bb07ee89cae367
Author: Eric Anholt <[email protected]>
Date: Mon Jul 9 15:47:33 2012 -0700
glsl: Update the notes on adding a new expression type.
Reviewed-by: Ian Romanick <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit