1b8e80941Smrg/**********************************************************
2b8e80941Smrg * Copyright 2014 VMware, Inc.  All rights reserved.
3b8e80941Smrg *
4b8e80941Smrg * Permission is hereby granted, free of charge, to any person
5b8e80941Smrg * obtaining a copy of this software and associated documentation
6b8e80941Smrg * files (the "Software"), to deal in the Software without
7b8e80941Smrg * restriction, including without limitation the rights to use, copy,
8b8e80941Smrg * modify, merge, publish, distribute, sublicense, and/or sell copies
9b8e80941Smrg * of the Software, and to permit persons to whom the Software is
10b8e80941Smrg * furnished to do so, subject to the following conditions:
11b8e80941Smrg *
12b8e80941Smrg * The above copyright notice and this permission notice shall be
13b8e80941Smrg * included in all copies or substantial portions of the Software.
14b8e80941Smrg *
15b8e80941Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16b8e80941Smrg * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17b8e80941Smrg * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18b8e80941Smrg * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
19b8e80941Smrg * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
20b8e80941Smrg * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21b8e80941Smrg * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22b8e80941Smrg * SOFTWARE.
23b8e80941Smrg *
24b8e80941Smrg **********************************************************/
25b8e80941Smrg
26b8e80941Smrg#ifndef SVGA_STREAMOUT_H
27b8e80941Smrg#define SVGA_STREAMOUT_H
28b8e80941Smrg
29b8e80941Smrgstruct svga_shader;
30b8e80941Smrg
31b8e80941Smrgstruct svga_stream_output {
32b8e80941Smrg   struct pipe_stream_output_info info;
33b8e80941Smrg   unsigned pos_out_index;                  // position output index
34b8e80941Smrg   unsigned id;
35b8e80941Smrg};
36b8e80941Smrg
37b8e80941Smrgstruct svga_stream_output *
38b8e80941Smrgsvga_create_stream_output(struct svga_context *svga,
39b8e80941Smrg                          struct svga_shader *shader,
40b8e80941Smrg                          const struct pipe_stream_output_info *info);
41b8e80941Smrg
42b8e80941Smrgenum pipe_error
43b8e80941Smrgsvga_set_stream_output(struct svga_context *svga,
44b8e80941Smrg                       struct svga_stream_output *streamout);
45b8e80941Smrg
46b8e80941Smrgvoid
47b8e80941Smrgsvga_delete_stream_output(struct svga_context *svga,
48b8e80941Smrg                          struct svga_stream_output *streamout);
49b8e80941Smrg
50b8e80941Smrgenum pipe_error
51b8e80941Smrgsvga_rebind_stream_output_targets(struct svga_context *svga);
52b8e80941Smrg
53b8e80941Smrg#endif /* SVGA_STREAMOUT_H */
54