diff options
| author | Dave Airlie <airlied@redhat.com> | 2016-04-11 12:59:25 +1000 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2016-04-12 14:15:36 +1000 |
| commit | c2aeeca4554d744b6293ad87d9a183e51b0138ff (patch) | |
| tree | cf6e46282434e533ee1817d2739ed5554defc4c5 /src/gallium/auxiliary/draw/draw_context.c | |
| parent | 081a958bcddd37131bd67d0ac26a0785ecbd5fa6 (diff) | |
| download | external_mesa3d-c2aeeca4554d744b6293ad87d9a183e51b0138ff.tar.gz external_mesa3d-c2aeeca4554d744b6293ad87d9a183e51b0138ff.tar.bz2 external_mesa3d-c2aeeca4554d744b6293ad87d9a183e51b0138ff.zip | |
draw: add support for passing buffers to vs/gs shaders.
Like the image code, but for shader buffers this time.
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_context.c')
| -rw-r--r-- | src/gallium/auxiliary/draw/draw_context.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/draw/draw_context.c b/src/gallium/auxiliary/draw/draw_context.c index 2ba9b09966..75551fbe2d 100644 --- a/src/gallium/auxiliary/draw/draw_context.c +++ b/src/gallium/auxiliary/draw/draw_context.c @@ -749,7 +749,23 @@ draw_image(struct draw_context *draw, } } - +/** + * Provide TGSI buffer objects for vertex/geometry shaders that use + * load/store/atomic ops. This state only needs to be set once per context. + * This might only be used by software drivers for the time being. + */ +void +draw_buffer(struct draw_context *draw, + uint shader, + struct tgsi_buffer *buffer) +{ + if (shader == PIPE_SHADER_VERTEX) { + draw->vs.tgsi.buffer = buffer; + } else { + debug_assert(shader == PIPE_SHADER_GEOMETRY); + draw->gs.tgsi.buffer = buffer; + } +} void draw_set_render( struct draw_context *draw, |
