Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Aparently, we were doing this all along
|
|
|
|
|
|
|
|
|
|
Tested by Piglit
tests/spec/arb_texture_rectangle/texture-base-level-error.c.
|
|
Piglit test: spec/arb_sync/WaitSync-errors.c
|
|
Piglit test: spec/arb_instanced_arrays/vertex-attrib-divisor-index-error.c
|
|
Tests in piglit/tests/spec/arb_vertex_type_2_10_10_10_rev:
- vertex-attrib-p-types.c
- vertex-attrib-pointer-type-size-match.c
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
commit 79e835a71202f1a6e112266b199e833d952da606
Author: Paul Berry <stereotype441@gmail.com>
Date: Tue Oct 15 17:25:44 2013 -0700
glsl: Treat layout-qualifier-id's as case-insensitive in desktop GLSL.
In desktop GLSL, location qualifiers are case-insensitive. In GLSL
ES, they are case-sensitive. This patch handles the difference by
using a new function to match layout qualifiers,
match_layout_qualifier(), which calls either strcmp() or strcasecmp()
as appropriate.
Fixes piglit tests:
- layout-not-case-sensitive-in.geom
- layout-not-case-sensitive-max-vert.geom
- layout-not-case-sensitive-out.geom
- layout-not-case-sensitive.frag
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
|
|
commit 467e3aa3de0e1f5b357975d35c1312f7566af577
Author: Bryan Cain <bryancain3@gmail.com>
Date: Tue Apr 16 15:56:28 2013 -0500
mesa: fix transform feedback when a geometry shader is active.
When a geometry shader is active, the transform feedback primitive
type ("mode") needs to be validated against the geometry shader output
primitive type, not the primitive type passed to the glDraw*()
function.
Fixes the following piglit tests:
- glsl-1.50-geometry-primitive-types GL_LINES
- glsl-1.50-geometry-primitive-types GL_LINES_ADJACENCY
- glsl-1.50-geometry-primitive-types GL_LINE_STRIP
- glsl-1.50-geometry-primitive-types GL_LINE_STRIP_ADJACENCY
- glsl-1.50-geometry-primitive-types GL_TRIANGLES
- glsl-1.50-geometry-primitive-types GL_TRIANGLES_ADJACENCY
- glsl-1.50-geometry-primitive-types GL_TRIANGLE_FAN
Exposes previously hidden failures in the following piglit tests:
- glsl-1.50-geometry-primitive-id-restart GL_LINES other
- glsl-1.50-geometry-primitive-id-restart GL_LINES_ADJACENCY other
- glsl-1.50-geometry-primitive-id-restart GL_LINE_LOOP ffs
- glsl-1.50-geometry-primitive-id-restart GL_LINE_LOOP other
- glsl-1.50-geometry-primitive-id-restart GL_LINE_STRIP other
- glsl-1.50-geometry-primitive-id-restart GL_LINE_STRIP_ADJACENCY other
- glsl-1.50-geometry-primitive-id-restart GL_TRIANGLES other
- glsl-1.50-geometry-primitive-id-restart GL_TRIANGLES_ADJACENCY other
- glsl-1.50-geometry-primitive-id-restart GL_TRIANGLE_FAN ffs
- glsl-1.50-geometry-primitive-id-restart GL_TRIANGLE_FAN other
- glsl-1.50-geometry-primitive-id-restart GL_TRIANGLE_STRIP other
- glsl-1.50-geometry-primitive-id-restart GL_TRIANGLE_STRIP_ADJACENCY other
(These failures were previously hidden due to a flaw in the test: it
doesn't check for GL errors. I'll fix the test shortly).
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
commit afccf3d8e706d01f72f2631c72e3a41cf9d7b100
Author: Paul Berry <stereotype441@gmail.com>
Date: Wed Aug 28 14:25:31 2013 -0700
i965/gs: Set the REORDER bit in 3DSTATE_GS.
Ivy Bridge's "reorder enable" bit gives us a binary choice for the
order in which vertices from triangle strips are delivered to the
geometry shader. Neither choice follows the OpenGL spec, but setting
the bit is better, because it gets triangle orientation correct.
Haswell replaces the "reorder enable" bit with a new "reorder mode"
bit (which occupies the same location in the command packet). This
bit gives us a different binary choice, which affects both triangle
strips and triangle strips with adjacency. Setting the bit ("reorder
trailing") gives the proper order according to the OpenGL spec.
So in either case we want to set the bit.
On Ivy Bridge, fixes piglit test "triangle-strip-orientation".
On Haswell, fixes piglit tests "glsl-1.50-geometry-primitive-types
{GL_TRIANGLE_STRIP,GL_TRIANGLE_STRIP_ADJACENCY}" and
"glsl-1.50-geometry-tri-strip-ordering-with-prim-restart *".
v2: Rename the bit to "REORDER_TRAILING" for consistency with Haswell
docs.
Reviewed-by: Matt Turner <mattst88@gmail.com>
commit caf9cef7eee77f736ff76a65f385bf718efd1dc1
Author: Paul Berry <stereotype441@gmail.com>
Date: Sun Sep 1 05:49:17 2013 -0700
i965/fs: Remove bogus field prog_data->dispatch_width.
Despite the name, this field wasn't being set to the dispatch width at
all; it was always 8. The only place it was used was that the
constant buffer read length was aligned to it, and as far as I can
tell from the docs, there is no need to align this value to the
dispatch width; aligning it to a multiple of 8 is sufficient. So I've
just replaced it with a hardcoded 8.
v2: In gen6_wm_state, use brw->wm.base.push_const_size for consistency
with VS and GS state upload.
Reviewed-by: Eric Anholt <eric@anholt.net>
commit 2910a82eb43bafc73d542336c21f415f5f4a3bed
Author: Paul Berry <stereotype441@gmail.com>
Date: Fri Jul 26 11:55:52 2013 -0700
glsl: Add new GLSL 1.50 constants.
This patch populates the following built-in GLSL 1.50 variables based
on constants stored in ctx->Const:
- gl_MaxVertexOutputComponents
- gl_MaxGeometryInputComponents
- gl_MaxGeometryOutputComponents
- gl_MaxFragmentInputComponents
- gl_MaxGeometryTextureImageUnits
- gl_MaxGeometryOutputVertices
- gl_MaxGeometryTotalOutputComponents
- gl_MaxGeometryUniformComponents
- gl_MaxGeometryVaryingComponents
On i965/gen7, fixes all Piglit tests in "spec/glsl-1.50/built-in
constants/*" except for gl_MaxCombinedTextureImageUnits and
gl_MaxGeometryUniformComponents.
Reviewed-by: Matt Turner <mattst88@gmail.com>
|
|
|
|
|
|
commit d14fcd7db7501cc5dbbcefac166238d9a49ccd84
Author: Paul Berry <stereotype441@gmail.com>
Date: Fri Jul 12 20:17:13 2013 -0700
i965/gs: Fixup gl_PointSize on entry to geometry shaders.
gl_PointSize is stored in the w component of VARYING_SLOT_PSIZ, but
the geometry shader infrastructure assumes that it should look for all
geometry shader inputs of type float in the x component. So when
compiling a geomtery shader that uses a gl_PointSize input, fix it up
during the shader prolog by moving the w component to the x component.
This is similar to how we emit fixups and workarounds for vertex
shader attributes.
Fixes piglit test spec/glsl-1.50/execution/geometry/core-inputs.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
commit 8f758b0b92f6105c9615740096fa1206befe343b
Author: Bryan Cain <bryancain3@gmail.com>
Date: Fri Feb 15 09:30:51 2013 -0600
glsl/gs: handle gl_ClipDistance geometry input in lower_clip_distance.
This corresponds to the lowering of gl_ClipDistance to
gl_ClipDistanceMESA for vertex and geometry shader outputs. Since
this lowering pass occurs after lower_named_interface blocks, it deals
with 2D arrays (gl_ClipDistance[vertex][clip_plane]) rather than 1D
arrays in an interface block
(gl_in[vertex].gl_ClipDistance[clip_plane]).
v2 (Paul Berry <stereotype441@gmail.com>): Fix indexing order for
gl_ClipDistance input lowering. Properly lower bulk assignment of
gl_ClipDistance inputs. Rework for GLSL 1.50 style geometry shaders.
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
v3 (Paul Berry <stereotype441@gmail.com>): Add comments and assertions
to clarify that the 2D version of clip distance is only used for
geometry shader inputs.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
commit c09adcb21bd2c3993f1e8a4997d718d9fee89e6d
Author: Paul Berry <stereotype441@gmail.com>
Date: Fri Aug 2 18:12:23 2013 -0700
glsl/gs: add gl_in support to builtin_variables.cpp.
Previously, builtin_variables.cpp was written assuming that we
supported ARB_geometry_shader4 style geometry shader inputs, meaning
that each built-in varying input to a geometry was supplied via an
array variable whose name ended in "In", e.g. gl_PositionIn or
gl_PointSizeIn.
However, in GLSL 1.50 style geometry shaders, things work
differently--built-in inputs are supplied to geometry shaders via a
built-in interface block called gl_in, which contains all the built-in
inputs using their usual names (e.g. the gl_Position input is supplied
to the geometry shader as gl_in[i].gl_Position).
This patch adds the necessary logic to builtin_variables.cpp to create
the gl_in interface block and populate it accordingly for geometry
shader inputs. The old ARB_geometry_shader4 style varyings are
removed, though they can easily be added back in the future if we
decide to support ARB_geometry_shader4.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
commit 378ff1dbac8c01f2524282b5caa81e4296ee296e
Author: Paul Berry <stereotype441@gmail.com>
Date: Mon Sep 9 16:39:47 2013 -0700
glsl: Keep track of location for interface block fields.
This patch adds a "location" element to struct glsl_struct_field, so
that we can keep track of the gl_varying_slot associated with each
built-in geometry shader input.
In lower_named_interface_blocks, we use this value to populate the
"location" field in the ir_variable that stores each geometry shader
input.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
|
|
commit 1ca97e58d2ec86f207fe577985e4468cd5e681da
Author: Paul Berry <stereotype441@gmail.com>
Date: Wed Oct 2 13:35:15 2013 -0700
Test that gl_in may be redeclared with an array size.
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
commit f610552df15076a15779057640db7caff65d09c0
Author: Paul Berry <stereotype441@gmail.com>
Date: Wed Oct 2 11:59:59 2013 -0700
Verify that gl_PerVertex can't be redeclared in certain shader types.
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
commit 3f84271b2c6541a9dc40c4a6849180a2555a88ae
Author: Paul Berry <stereotype441@gmail.com>
Date: Wed Oct 2 11:59:08 2013 -0700
Verify array-ness and instance name of gl_PerVertex redeclarations.
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
commit 3a4ddcdefcfc8099c53d77d832d493bab9be840d
Author: Paul Berry <stereotype441@gmail.com>
Date: Wed Oct 2 10:45:05 2013 -0700
Test inter- and intra-stage gl_PerVertex matching rules.
These tests verify the following linkage rules, from GLSL 4.10:
1. If multiple shaders using members of a built-in block belonging to
the same interface are linked together in the same program, they must
all redeclare the built-in block in the same way, as described in
section 4.3.7 "Interface Blocks" for interface block matching, or a
link error will result.
2. It will also be a link error if some shaders in a program redeclare
a specific built-in interface block while another shader in that
program does not redeclare that interface block yet still uses a
member of that interface block.
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
commit f57ea148e095c10b1f49125917e365136682a5a4
Author: Paul Berry <stereotype441@gmail.com>
Date: Tue Oct 1 20:15:04 2013 -0700
Test that builtins can't be redeclared both inside and outside gl_PerVertex.
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
commit 1de60d4df7e87fd1f42b81bf31f1981abc2be6ec
Author: Paul Berry <stereotype441@gmail.com>
Date: Tue Oct 1 16:19:06 2013 -0700
Test that after redeclaration, absent members of gl_PerVertex can't be used.
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
commit 60c3ffbd3342c4f8cf577d2b8a21f80cb6de2e06
Author: Paul Berry <stereotype441@gmail.com>
Date: Tue Oct 1 15:58:58 2013 -0700
Test that gl_PerVertex can't be redeclared multiple times in one shader.
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
commit 909ceaf441ce53dba85664e3d86df929b020aadc
Author: Paul Berry <stereotype441@gmail.com>
Date: Tue Oct 1 15:47:17 2013 -0700
Test that gl_PerVertex can't be redeclared after it's been used.
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
commit 6a9cb54c67c20c41e26e740f02a1fc3a0c95d692
Author: Paul Berry <stereotype441@gmail.com>
Date: Fri Sep 27 14:20:01 2013 -0700
Test that the built-in gl_PerVertex interface block can be redeclared.
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
v2: Add comments to clarify that these tests don't use the erroneous
"vec4 t" declaration, since they are verifying functionality when
gl_PerVertex is correctly redeclared.
commit c7f9bca24da08a5f1c833cdd371b80e9f03d6ba5
Author: Paul Berry <stereotype441@gmail.com>
Date: Fri Sep 27 14:20:01 2013 -0700
Test that in general, interface blocks cannot be redeclared.
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
commit fdb5107f77c0aafaf4c87305c0d00cd62a40be7d
Author: Paul Berry <stereotype441@gmail.com>
Date: Fri Sep 27 14:20:01 2013 -0700
Test that interface blocks cannot declare conflicting names.
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
commit 6b316a77ede8face9711f0325c16b08c71f997eb
Author: Paul Berry <stereotype441@gmail.com>
Date: Fri Sep 27 14:20:01 2013 -0700
Test that redeclaration of gl_PerVertex must be for a subset.
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
commit d0c17065ce724fae2142925b33226f8061f3796d
Author: Paul Berry <stereotype441@gmail.com>
Date: Fri Sep 27 14:20:01 2013 -0700
Test illegal usages of "gl_" prefix in interface blocks.
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
commit a602acc5510da56be1211937bfafb691580d4ff3
Author: Paul Berry <stereotype441@gmail.com>
Date: Fri Sep 27 14:20:01 2013 -0700
Test that struct names may not begin with "gl_" prefix.
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
|
|
|
|
|
|
|
|
|
|
This appears to be a mistake in the spec--no need to do/test anything.
|
|
This was a mistake in the spec--the error condition was removed in 3.2
and re-introduced in 4.4. So we don't have to do anything.
|
|
|
|
uniform blocks.
Although we don't directly test this, we have a test that uniforms
can't appear in an out block
(tests/spec/glsl-1.50/compiler/interface-blocks-member-qualifier-mismatch.vert)
and it seems like that's sufficient.
|
|
These are already covered by piglit ARB_uniform_buffer_object tests.
|
|
|
|
|
|
|
|
|
|
These are so trivial that all basic tests of layered rendering already
cover them.
|
|
Now that geometry shader series 4 has landed, a bunch of geometry
shader features are now complete. Note that since geometry shaders
haven't been enabled yet, it is necessary to supply the following
environment variables in order to test the new functionality:
MESA_GL_VERSION_OVERRIDE=3.2
MESA_GLSL_VERSION_OVERRIDE=150
|
|
|