lp_state.h revision 08dd41fd6899bd6b3289d30dc31f8b2998406889
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"
3808dd41fd6899bd6b3289d30dc31f8b2998406889José Fonseca#include "lp_jit.h"
39946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
40946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
41c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_VIEWPORT      0x1
42c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_RASTERIZER    0x2
43c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_FS            0x4
44c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_BLEND         0x8
45c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_CLIP          0x10
46c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_SCISSOR       0x20
47c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_STIPPLE       0x40
48c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_FRAMEBUFFER   0x80
49c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_DEPTH_STENCIL_ALPHA 0x100
50c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_CONSTANTS     0x200
51c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_SAMPLER       0x400
52c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_TEXTURE       0x800
53c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_VERTEX        0x1000
54c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_VS            0x2000
55c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_QUERY         0x4000
56946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
57946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
58946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecastruct tgsi_sampler;
59946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecastruct vertex_info;
60946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
61946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
629ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonsecastruct lp_fragment_shader;
639ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonseca
649ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonseca
65e3b38e5ec1ba93e3f1a1b3d5039c70ff7aa3ebe6José Fonsecastruct lp_fragment_shader_variant_key
66e3b38e5ec1ba93e3f1a1b3d5039c70ff7aa3ebe6José Fonseca{
67e3b38e5ec1ba93e3f1a1b3d5039c70ff7aa3ebe6José Fonseca   struct pipe_depth_state depth;
68e3b38e5ec1ba93e3f1a1b3d5039c70ff7aa3ebe6José Fonseca   struct pipe_alpha_state alpha;
6998971802798354cdba45c421cc340ec938143e03José Fonseca   struct pipe_blend_state blend;
70e3b38e5ec1ba93e3f1a1b3d5039c70ff7aa3ebe6José Fonseca};
71e3b38e5ec1ba93e3f1a1b3d5039c70ff7aa3ebe6José Fonseca
72e3b38e5ec1ba93e3f1a1b3d5039c70ff7aa3ebe6José Fonseca
739ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonsecastruct lp_fragment_shader_variant
749ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonseca{
759ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonseca   struct lp_fragment_shader *shader;
76e3b38e5ec1ba93e3f1a1b3d5039c70ff7aa3ebe6José Fonseca
77e3b38e5ec1ba93e3f1a1b3d5039c70ff7aa3ebe6José Fonseca   struct lp_fragment_shader_variant_key key;
789ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonseca
799ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonseca   LLVMValueRef function;
809ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonseca
8108dd41fd6899bd6b3289d30dc31f8b2998406889José Fonseca   lp_jit_frag_func jit_function;
829ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonseca
839ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonseca   struct lp_fragment_shader_variant *next;
849ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonseca};
859ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonseca
869ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonseca
87946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca/**
88946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * Subclass of pipe_shader_state (though it doesn't really need to be).
89946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca *
90946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * This is starting to look an awful lot like a quad pipeline stage...
91946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca */
9273af91e938eb27b001404f11195fb06ff9b08903José Fonsecastruct lp_fragment_shader
9373af91e938eb27b001404f11195fb06ff9b08903José Fonseca{
9473af91e938eb27b001404f11195fb06ff9b08903José Fonseca   struct pipe_shader_state base;
95946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
96946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca   struct tgsi_shader_info info;
97946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
989ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonseca   struct lp_fragment_shader_variant *variants;
99946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
1009ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonseca   struct lp_fragment_shader_variant *current;
101946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca};
102946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
103946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
104946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca/** Subclass of pipe_shader_state */
105946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecastruct lp_vertex_shader {
106946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca   struct pipe_shader_state shader;
107946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca   struct draw_vertex_shader *draw_data;
108946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca};
109946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
110946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
111946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
112946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid *
113946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecallvmpipe_create_blend_state(struct pipe_context *,
114946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                            const struct pipe_blend_state *);
115946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_bind_blend_state(struct pipe_context *,
116946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                               void *);
117946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_delete_blend_state(struct pipe_context *,
118946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                 void *);
119946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
120946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid *
121946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecallvmpipe_create_sampler_state(struct pipe_context *,
122946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                              const struct pipe_sampler_state *);
123946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_bind_sampler_states(struct pipe_context *, unsigned, void **);
124946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_delete_sampler_state(struct pipe_context *, void *);
125946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
126946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid *
127946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecallvmpipe_create_depth_stencil_state(struct pipe_context *,
128946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                    const struct pipe_depth_stencil_alpha_state *);
129946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_bind_depth_stencil_state(struct pipe_context *, void *);
130946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_delete_depth_stencil_state(struct pipe_context *, void *);
131946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
132946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid *
133946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecallvmpipe_create_rasterizer_state(struct pipe_context *,
134946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                 const struct pipe_rasterizer_state *);
135946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_bind_rasterizer_state(struct pipe_context *, void *);
136946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_delete_rasterizer_state(struct pipe_context *, void *);
137946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
138946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_framebuffer_state( struct pipe_context *,
139946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca			     const struct pipe_framebuffer_state * );
140946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
141946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_blend_color( struct pipe_context *pipe,
142946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                               const struct pipe_blend_color *blend_color );
143946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
144946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_clip_state( struct pipe_context *,
145946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca			     const struct pipe_clip_state * );
146946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
147946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_constant_buffer(struct pipe_context *,
148946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                  uint shader, uint index,
149946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                  const struct pipe_constant_buffer *buf);
150946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
151946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid *llvmpipe_create_fs_state(struct pipe_context *,
152946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                               const struct pipe_shader_state *);
153946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_bind_fs_state(struct pipe_context *, void *);
154946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_delete_fs_state(struct pipe_context *, void *);
155946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid *llvmpipe_create_vs_state(struct pipe_context *,
156946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                               const struct pipe_shader_state *);
157946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_bind_vs_state(struct pipe_context *, void *);
158946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_delete_vs_state(struct pipe_context *, void *);
159946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
160946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_polygon_stipple( struct pipe_context *,
161946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca				  const struct pipe_poly_stipple * );
162946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
163946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_scissor_state( struct pipe_context *,
164946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                 const struct pipe_scissor_state * );
165946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
166946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_sampler_textures( struct pipe_context *,
167946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                    unsigned num,
168946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                    struct pipe_texture ** );
169946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
170946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_viewport_state( struct pipe_context *,
171946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                  const struct pipe_viewport_state * );
172946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
173946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_vertex_elements(struct pipe_context *,
174946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                  unsigned count,
175946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                  const struct pipe_vertex_element *);
176946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
177946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_vertex_buffers(struct pipe_context *,
178946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                 unsigned count,
179946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                 const struct pipe_vertex_buffer *);
180946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
1819ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonsecavoid llvmpipe_update_fs(struct llvmpipe_context *lp);
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