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