summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Berry <stereotype441@gmail.com>2013-10-08 13:02:45 -0700
committerPaul Berry <stereotype441@gmail.com>2013-10-08 13:02:45 -0700
commit5425ec2b42769588f423f76570695eb93b16d464 (patch)
tree20212cd9a27628006c8a5c13d43f3b5ec40b7222
parent4d280e0c2e9ad12e06adb6f1a657af059f7ba000 (diff)
Check off some mesa tasks related to the following commits:
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>
-rw-r--r--gl32.xml6
1 files changed, 3 insertions, 3 deletions
diff --git a/gl32.xml b/gl32.xml
index 0e21d2d..b3152dd 100644
--- a/gl32.xml
+++ b/gl32.xml
@@ -531,7 +531,7 @@
Writing to gl_Position from either the vertex or geometry shader
is optional.
</task>
- <task name="GS39" specref="GL 3.2 2.12.4" piglit="done">
+ <task name="GS39" specref="GL 3.2 2.12.4" piglit="done" mesa="done">
gl_in[] receives values from built-in output variables written by
the vertex shader.
</task>
@@ -1075,7 +1075,7 @@
Not necessary to test since the value is undefined.
</task>
- <task name="GS128" specref="GLSL 1.50 7.1" piglit="done">
+ <task name="GS128" specref="GLSL 1.50 7.1" piglit="done" mesa="done">
The gl_PerVertex interface block also appears as a geometry shader
input interface block, having block-name gl_PerVertex,
instance_name gl_in, and an implicit array size.
@@ -1388,7 +1388,7 @@
is redeclared as e.g. "flat in vec4 gl_FrontColor". No "gl_in[]"
is used.
</task>
- <task name="IB38" specref="GLSL 1.50 7.1" piglit="done">
+ <task name="IB38" specref="GLSL 1.50 7.1" piglit="done" mesa="done">
The output variables gl_Position, gl_PointSize, and
gl_ClipDistance are now considered to be nested within an
interface block having block-name gl_PerVertex and no