diff options
author | Zack Rusin <zackr@vmware.com> | 2013-03-30 06:21:41 -0700 |
---|---|---|
committer | Zack Rusin <zackr@vmware.com> | 2013-04-03 10:16:25 -0700 |
commit | 302df7cc85b0e2ce47c40048f30bd116b0d692fc (patch) | |
tree | 4af50d5db1d99dda7a1c90659c79425e00f9c0f0 /src/gallium/auxiliary/draw/draw_vs.c | |
parent | 246e68735fe22b4d9f510f8fb1bb8b7bb448b068 (diff) | |
download | external_mesa3d-302df7cc85b0e2ce47c40048f30bd116b0d692fc.zip external_mesa3d-302df7cc85b0e2ce47c40048f30bd116b0d692fc.tar.gz external_mesa3d-302df7cc85b0e2ce47c40048f30bd116b0d692fc.tar.bz2 |
draw/llvmpipe: allow independent so attachments to the vs
When geometry shaders are present, one needs to be able to create
an empty geometry shader with stream output that needs to be
resolved later and attached to the currently bound vertex shader.
Lets add support for it to llvmpipe and draw. draw allows attaching
independent stream output info to any vertex shader and llvmpipe
resolves at draw time which vertex shader the given empty geometry
shader should be linked to.
Signed-off-by: Zack Rusin <zackr@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_vs.c')
-rw-r--r-- | src/gallium/auxiliary/draw/draw_vs.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/draw/draw_vs.c b/src/gallium/auxiliary/draw/draw_vs.c index 266cca7..afec376 100644 --- a/src/gallium/auxiliary/draw/draw_vs.c +++ b/src/gallium/auxiliary/draw/draw_vs.c @@ -245,3 +245,16 @@ draw_vs_get_emit( struct draw_context *draw, return draw->vs.emit; } + +void +draw_vs_attach_so(struct draw_vertex_shader *dvs, + const struct pipe_stream_output_info *info) +{ + dvs->state.stream_output = *info; +} + +void +draw_vs_reset_so(struct draw_vertex_shader *dvs) +{ + memset(&dvs->state.stream_output, 0, sizeof(dvs->state.stream_output)); +} |