diff options
| author | Zack Rusin <zackr@vmware.com> | 2013-06-05 18:06:06 -0400 |
|---|---|---|
| committer | Zack Rusin <zackr@vmware.com> | 2013-06-10 22:04:27 -0400 |
| commit | c1a50f5ed7beb2f6aecfbacdc3339c8cb0107257 (patch) | |
| tree | 7ee54eaac10f68a5bbf6616342ce236b0615229b /src/gallium/auxiliary/draw/draw_context.c | |
| parent | 3dacb7d40b3a15be1133deaac55b993e8b7809dc (diff) | |
| download | external_mesa3d-c1a50f5ed7beb2f6aecfbacdc3339c8cb0107257.tar.gz external_mesa3d-c1a50f5ed7beb2f6aecfbacdc3339c8cb0107257.tar.bz2 external_mesa3d-c1a50f5ed7beb2f6aecfbacdc3339c8cb0107257.zip | |
draw: make sure clipdistances work with geometry shaders
we were always fetching the info from the vertex shader, but if
geometry shader is present it should be used as the source of
that info.
Signed-off-by: Zack Rusin <zackr@vmware.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_context.c')
| -rw-r--r-- | src/gallium/auxiliary/draw/draw_context.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/draw/draw_context.c b/src/gallium/auxiliary/draw/draw_context.c index 35063b94ca..e8480f6ba7 100644 --- a/src/gallium/auxiliary/draw/draw_context.c +++ b/src/gallium/auxiliary/draw/draw_context.c @@ -737,9 +737,20 @@ draw_current_shader_clipvertex_output(const struct draw_context *draw) uint draw_current_shader_clipdistance_output(const struct draw_context *draw, int index) { + if (draw->gs.geometry_shader) + return draw->gs.geometry_shader->clipdistance_output[index]; return draw->vs.clipdistance_output[index]; } + +uint +draw_current_shader_num_written_clipdistances(const struct draw_context *draw) +{ + if (draw->gs.geometry_shader) + return draw->gs.geometry_shader->info.num_written_clipdistance; + return draw->vs.vertex_shader->info.num_written_clipdistance; +} + /** * Return a pointer/handle for a driver/CSO rasterizer object which * disabled culling, stippling, unfilled tris, etc. |
