lp_state.h revision 2d6b39f05edcd575b1e10d53f96a38bec848fa67
1946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca/**************************************************************************
2946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca *
3946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * Copyright 2007 Tungsten Graphics, Inc., Cedar Park, Texas.
4946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * All Rights Reserved.
5946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca *
6946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * Permission is hereby granted, free of charge, to any person obtaining a
7946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * copy of this software and associated documentation files (the
8946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * "Software"), to deal in the Software without restriction, including
9946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * without limitation the rights to use, copy, modify, merge, publish,
10946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * distribute, sub license, and/or sell copies of the Software, and to
11946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * permit persons to whom the Software is furnished to do so, subject to
12946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * the following conditions:
13946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca *
14946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * The above copyright notice and this permission notice (including the
15946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * next paragraph) shall be included in all copies or substantial portions
16946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * of the Software.
17946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca *
18946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
21946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
22946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca *
26946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca **************************************************************************/
27946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
28946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca/* Authors:  Keith Whitwell <keith@tungstengraphics.com>
29946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca */
30946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
31c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#ifndef LP_STATE_H
32c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_STATE_H
33946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
342d6b39f05edcd575b1e10d53f96a38bec848fa67José Fonseca#include <llvm-c/Core.h>
352d6b39f05edcd575b1e10d53f96a38bec848fa67José Fonseca
36946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca#include "pipe/p_state.h"
37946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca#include "tgsi/tgsi_scan.h"
38946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
39946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
40c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_VIEWPORT      0x1
41c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_RASTERIZER    0x2
42c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_FS            0x4
43c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_BLEND         0x8
44c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_CLIP          0x10
45c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_SCISSOR       0x20
46c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_STIPPLE       0x40
47c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_FRAMEBUFFER   0x80
48c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_DEPTH_STENCIL_ALPHA 0x100
49c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_CONSTANTS     0x200
50c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_SAMPLER       0x400
51c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_TEXTURE       0x800
52c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_VERTEX        0x1000
53c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_VS            0x2000
54c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_QUERY         0x4000
55946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
56946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
57946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecastruct tgsi_sampler;
58946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecastruct tgsi_exec_machine;
59946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecastruct vertex_info;
60946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
61946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
62946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca/**
63946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * Subclass of pipe_shader_state (though it doesn't really need to be).
64946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca *
65946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * This is starting to look an awful lot like a quad pipeline stage...
66946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca */
67946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecastruct lp_fragment_shader {
68946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca   struct pipe_shader_state shader;
69946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
70946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca   struct tgsi_shader_info info;
71946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
72946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca   void (*prepare)( const struct lp_fragment_shader *shader,
73946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca		    struct tgsi_exec_machine *machine,
74946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca		    struct tgsi_sampler **samplers);
75946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
76946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca   /* Run the shader - this interface will get cleaned up in the
77946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca    * future:
78946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca    */
79946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca   unsigned (*run)( const struct lp_fragment_shader *shader,
80946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca		    struct tgsi_exec_machine *machine,
81946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca		    struct quad_header *quad );
82946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
83946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
84946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca   void (*delete)( struct lp_fragment_shader * );
85946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca};
86946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
87946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
88946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca/** Subclass of pipe_shader_state */
89946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecastruct lp_vertex_shader {
90946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca   struct pipe_shader_state shader;
91946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca   struct draw_vertex_shader *draw_data;
92946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca};
93946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
94946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
952d6b39f05edcd575b1e10d53f96a38bec848fa67José Fonsecatypedef void
962d6b39f05edcd575b1e10d53f96a38bec848fa67José Fonseca(*lp_blend_func)(float src[][4],
972d6b39f05edcd575b1e10d53f96a38bec848fa67José Fonseca                 float dst[][4],
982d6b39f05edcd575b1e10d53f96a38bec848fa67José Fonseca                 float con[][4],
992d6b39f05edcd575b1e10d53f96a38bec848fa67José Fonseca                 float res[][4]);
1002d6b39f05edcd575b1e10d53f96a38bec848fa67José Fonseca
1012d6b39f05edcd575b1e10d53f96a38bec848fa67José Fonseca
1022d6b39f05edcd575b1e10d53f96a38bec848fa67José Fonsecastruct lp_blend_state
1032d6b39f05edcd575b1e10d53f96a38bec848fa67José Fonseca{
1042d6b39f05edcd575b1e10d53f96a38bec848fa67José Fonseca   struct pipe_blend_state base;
1052d6b39f05edcd575b1e10d53f96a38bec848fa67José Fonseca
1062d6b39f05edcd575b1e10d53f96a38bec848fa67José Fonseca   LLVMValueRef function;
1072d6b39f05edcd575b1e10d53f96a38bec848fa67José Fonseca
1082d6b39f05edcd575b1e10d53f96a38bec848fa67José Fonseca   lp_blend_func jit_function;
1092d6b39f05edcd575b1e10d53f96a38bec848fa67José Fonseca};
1102d6b39f05edcd575b1e10d53f96a38bec848fa67José Fonseca
1112d6b39f05edcd575b1e10d53f96a38bec848fa67José Fonseca
112946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
113946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid *
114946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecallvmpipe_create_blend_state(struct pipe_context *,
115946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                            const struct pipe_blend_state *);
116946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_bind_blend_state(struct pipe_context *,
117946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                               void *);
118946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_delete_blend_state(struct pipe_context *,
119946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                 void *);
120946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
121946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid *
122946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecallvmpipe_create_sampler_state(struct pipe_context *,
123946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                              const struct pipe_sampler_state *);
124946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_bind_sampler_states(struct pipe_context *, unsigned, void **);
125946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_delete_sampler_state(struct pipe_context *, void *);
126946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
127946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid *
128946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecallvmpipe_create_depth_stencil_state(struct pipe_context *,
129946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                    const struct pipe_depth_stencil_alpha_state *);
130946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_bind_depth_stencil_state(struct pipe_context *, void *);
131946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_delete_depth_stencil_state(struct pipe_context *, void *);
132946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
133946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid *
134946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecallvmpipe_create_rasterizer_state(struct pipe_context *,
135946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                 const struct pipe_rasterizer_state *);
136946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_bind_rasterizer_state(struct pipe_context *, void *);
137946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_delete_rasterizer_state(struct pipe_context *, void *);
138946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
139946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_framebuffer_state( struct pipe_context *,
140946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca			     const struct pipe_framebuffer_state * );
141946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
142946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_blend_color( struct pipe_context *pipe,
143946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                               const struct pipe_blend_color *blend_color );
144946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
145946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_clip_state( struct pipe_context *,
146946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca			     const struct pipe_clip_state * );
147946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
148946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_constant_buffer(struct pipe_context *,
149946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                  uint shader, uint index,
150946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                  const struct pipe_constant_buffer *buf);
151946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
152946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid *llvmpipe_create_fs_state(struct pipe_context *,
153946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                               const struct pipe_shader_state *);
154946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_bind_fs_state(struct pipe_context *, void *);
155946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_delete_fs_state(struct pipe_context *, void *);
156946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid *llvmpipe_create_vs_state(struct pipe_context *,
157946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                               const struct pipe_shader_state *);
158946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_bind_vs_state(struct pipe_context *, void *);
159946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_delete_vs_state(struct pipe_context *, void *);
160946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
161946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_polygon_stipple( struct pipe_context *,
162946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca				  const struct pipe_poly_stipple * );
163946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
164946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_scissor_state( struct pipe_context *,
165946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                 const struct pipe_scissor_state * );
166946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
167946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_sampler_textures( struct pipe_context *,
168946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                    unsigned num,
169946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                    struct pipe_texture ** );
170946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
171946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_viewport_state( struct pipe_context *,
172946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                  const struct pipe_viewport_state * );
173946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
174946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_vertex_elements(struct pipe_context *,
175946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                  unsigned count,
176946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                  const struct pipe_vertex_element *);
177946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
178946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_vertex_buffers(struct pipe_context *,
179946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                 unsigned count,
180946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                 const struct pipe_vertex_buffer *);
181946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
182946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
183946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_update_derived( struct llvmpipe_context *llvmpipe );
184946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
185946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
186946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecaboolean llvmpipe_draw_arrays(struct pipe_context *pipe, unsigned mode,
187946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca			     unsigned start, unsigned count);
188946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
189946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecaboolean llvmpipe_draw_elements(struct pipe_context *pipe,
190946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca			       struct pipe_buffer *indexBuffer,
191946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca			       unsigned indexSize,
192946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca			       unsigned mode, unsigned start, unsigned count);
193946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecaboolean
194946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecallvmpipe_draw_range_elements(struct pipe_context *pipe,
195946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                             struct pipe_buffer *indexBuffer,
196946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                             unsigned indexSize,
197946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                             unsigned min_index,
198946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                             unsigned max_index,
199946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                             unsigned mode, unsigned start, unsigned count);
200946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
201946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid
202946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecallvmpipe_set_edgeflags(struct pipe_context *pipe, const unsigned *edgeflags);
203946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
204946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
205946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid
206946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecallvmpipe_map_transfers(struct llvmpipe_context *lp);
207946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
208946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid
209946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecallvmpipe_unmap_transfers(struct llvmpipe_context *lp);
210946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
211946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid
212946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecallvmpipe_map_texture_surfaces(struct llvmpipe_context *lp);
213946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
214946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid
215946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecallvmpipe_unmap_texture_surfaces(struct llvmpipe_context *lp);
216946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
217946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
218946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecastruct vertex_info *
219946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecallvmpipe_get_vertex_info(struct llvmpipe_context *llvmpipe);
220946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
221946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecastruct vertex_info *
222946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecallvmpipe_get_vbuf_vertex_info(struct llvmpipe_context *llvmpipe);
223946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
224946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
225946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca#endif
226