lp_state.h revision 1fb440beb9cccbe6f4bbd309792a89f6e1b4ee3f
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"
39c61bf363937f40624a5632745630d4f2b9907082Zack Rusin#include "gallivm/lp_bld_sample.h" /* for struct lp_sampler_static_state */
40946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
41946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
42c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_VIEWPORT      0x1
43c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_RASTERIZER    0x2
44c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_FS            0x4
45c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_BLEND         0x8
46c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_CLIP          0x10
47c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_SCISSOR       0x20
48c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_STIPPLE       0x40
49c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_FRAMEBUFFER   0x80
50c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_DEPTH_STENCIL_ALPHA 0x100
51c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_CONSTANTS     0x200
52c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_SAMPLER       0x400
531fb440beb9cccbe6f4bbd309792a89f6e1b4ee3fmichal#define LP_NEW_SAMPLER_VIEW  0x800
54c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_VERTEX        0x1000
55c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_VS            0x2000
56c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_NEW_QUERY         0x4000
57d904ed88c1d957f662497343de7dc3e9fa743e47José Fonseca#define LP_NEW_BLEND_COLOR   0x8000
58946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
59946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
60946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecastruct vertex_info;
61e4c76c02f77ed6e86537b546f4200f8f8132d114José Fonsecastruct pipe_context;
62e4c76c02f77ed6e86537b546f4200f8f8132d114José Fonsecastruct llvmpipe_context;
63946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
649ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonsecastruct lp_fragment_shader;
659ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonseca
669ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonseca
67e3b38e5ec1ba93e3f1a1b3d5039c70ff7aa3ebe6José Fonsecastruct lp_fragment_shader_variant_key
68e3b38e5ec1ba93e3f1a1b3d5039c70ff7aa3ebe6José Fonseca{
69e3b38e5ec1ba93e3f1a1b3d5039c70ff7aa3ebe6José Fonseca   struct pipe_depth_state depth;
70e3b38e5ec1ba93e3f1a1b3d5039c70ff7aa3ebe6José Fonseca   struct pipe_alpha_state alpha;
7198971802798354cdba45c421cc340ec938143e03José Fonseca   struct pipe_blend_state blend;
7286f450060debebd66dd5fb72f83800d7634efeaaKeith Whitwell   enum pipe_format zsbuf_format;
7386f450060debebd66dd5fb72f83800d7634efeaaKeith Whitwell   unsigned nr_cbufs:8;
7486f450060debebd66dd5fb72f83800d7634efeaaKeith Whitwell   unsigned flatshade:1;
754461442849bfdb817334b38567136f7f9dabdf59Brian Paul   unsigned scissor:1;
76e4c76c02f77ed6e86537b546f4200f8f8132d114José Fonseca
77c1a04416023e24621e4992caf593e8dfe8d7a2fcKeith Whitwell   struct {
78c1a04416023e24621e4992caf593e8dfe8d7a2fcKeith Whitwell      ubyte colormask;
79c1a04416023e24621e4992caf593e8dfe8d7a2fcKeith Whitwell   } cbuf_blend[PIPE_MAX_COLOR_BUFS];
80c1a04416023e24621e4992caf593e8dfe8d7a2fcKeith Whitwell
81e4c76c02f77ed6e86537b546f4200f8f8132d114José Fonseca   struct lp_sampler_static_state sampler[PIPE_MAX_SAMPLERS];
82e3b38e5ec1ba93e3f1a1b3d5039c70ff7aa3ebe6José Fonseca};
83e3b38e5ec1ba93e3f1a1b3d5039c70ff7aa3ebe6José Fonseca
84e3b38e5ec1ba93e3f1a1b3d5039c70ff7aa3ebe6José Fonseca
859ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonsecastruct lp_fragment_shader_variant
869ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonseca{
879ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonseca   struct lp_fragment_shader *shader;
88e3b38e5ec1ba93e3f1a1b3d5039c70ff7aa3ebe6José Fonseca
89e3b38e5ec1ba93e3f1a1b3d5039c70ff7aa3ebe6José Fonseca   struct lp_fragment_shader_variant_key key;
909ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonseca
912797f2bf57562c95a601a67edca3089641215cc4Brian Paul   LLVMValueRef function[2];
929ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonseca
932797f2bf57562c95a601a67edca3089641215cc4Brian Paul   lp_jit_frag_func jit_function[2];
949ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonseca
959ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonseca   struct lp_fragment_shader_variant *next;
969ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonseca};
979ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonseca
989ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonseca
99946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca/**
100946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * Subclass of pipe_shader_state (though it doesn't really need to be).
101946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca *
102946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * This is starting to look an awful lot like a quad pipeline stage...
103946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca */
10473af91e938eb27b001404f11195fb06ff9b08903José Fonsecastruct lp_fragment_shader
10573af91e938eb27b001404f11195fb06ff9b08903José Fonseca{
10673af91e938eb27b001404f11195fb06ff9b08903José Fonseca   struct pipe_shader_state base;
107946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
108946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca   struct tgsi_shader_info info;
109946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
1109ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonseca   struct lp_fragment_shader_variant *variants;
111946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
1129ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonseca   struct lp_fragment_shader_variant *current;
113946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca};
114946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
115946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
116946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca/** Subclass of pipe_shader_state */
117946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecastruct lp_vertex_shader {
118946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca   struct pipe_shader_state shader;
119946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca   struct draw_vertex_shader *draw_data;
120946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca};
121946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
122946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
123946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
124946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid *
125946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecallvmpipe_create_blend_state(struct pipe_context *,
126946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                            const struct pipe_blend_state *);
127946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_bind_blend_state(struct pipe_context *,
128946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                               void *);
129946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_delete_blend_state(struct pipe_context *,
130946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                 void *);
131946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
132946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid *
133946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecallvmpipe_create_sampler_state(struct pipe_context *,
134946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                              const struct pipe_sampler_state *);
135946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_bind_sampler_states(struct pipe_context *, unsigned, void **);
136c0a13bbae15a471fea278e37b92b874fed1f6b3bJosé Fonsecavoid
137c0a13bbae15a471fea278e37b92b874fed1f6b3bJosé Fonsecallvmpipe_bind_vertex_sampler_states(struct pipe_context *,
138c0a13bbae15a471fea278e37b92b874fed1f6b3bJosé Fonseca                                    unsigned num_samplers,
139c0a13bbae15a471fea278e37b92b874fed1f6b3bJosé Fonseca                                    void **samplers);
140946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_delete_sampler_state(struct pipe_context *, void *);
141946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
142946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid *
143946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecallvmpipe_create_depth_stencil_state(struct pipe_context *,
144946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                    const struct pipe_depth_stencil_alpha_state *);
145946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_bind_depth_stencil_state(struct pipe_context *, void *);
146946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_delete_depth_stencil_state(struct pipe_context *, void *);
147946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
148946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid *
149946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecallvmpipe_create_rasterizer_state(struct pipe_context *,
150946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                 const struct pipe_rasterizer_state *);
151946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_bind_rasterizer_state(struct pipe_context *, void *);
152946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_delete_rasterizer_state(struct pipe_context *, void *);
153946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
154946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_framebuffer_state( struct pipe_context *,
1556a509ec6dd16f93758a308a0f0eb1b032f099693Roland Scheidegger                                     const struct pipe_framebuffer_state * );
156946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
157946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_blend_color( struct pipe_context *pipe,
158946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                               const struct pipe_blend_color *blend_color );
159946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
1606a509ec6dd16f93758a308a0f0eb1b032f099693Roland Scheideggervoid llvmpipe_set_stencil_ref( struct pipe_context *pipe,
1616a509ec6dd16f93758a308a0f0eb1b032f099693Roland Scheidegger                               const struct pipe_stencil_ref *stencil_ref );
1626a509ec6dd16f93758a308a0f0eb1b032f099693Roland Scheidegger
163946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_clip_state( struct pipe_context *,
1646a509ec6dd16f93758a308a0f0eb1b032f099693Roland Scheidegger                              const struct pipe_clip_state * );
165946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
166946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_constant_buffer(struct pipe_context *,
167946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                  uint shader, uint index,
16870c8d2a29724d018bacc4a68ddc61db08faea00dRoland Scheidegger                                  struct pipe_buffer *buf);
169946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
170946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid *llvmpipe_create_fs_state(struct pipe_context *,
171946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                               const struct pipe_shader_state *);
172946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_bind_fs_state(struct pipe_context *, void *);
173946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_delete_fs_state(struct pipe_context *, void *);
174946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid *llvmpipe_create_vs_state(struct pipe_context *,
175946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                               const struct pipe_shader_state *);
176946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_bind_vs_state(struct pipe_context *, void *);
177946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_delete_vs_state(struct pipe_context *, void *);
178946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
179946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_polygon_stipple( struct pipe_context *,
180946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca				  const struct pipe_poly_stipple * );
181946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
182946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_scissor_state( struct pipe_context *,
183946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                 const struct pipe_scissor_state * );
184946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
1851fb440beb9cccbe6f4bbd309792a89f6e1b4ee3fmichalvoid llvmpipe_set_fragment_sampler_views(struct pipe_context *,
1861fb440beb9cccbe6f4bbd309792a89f6e1b4ee3fmichal                                         unsigned num,
1871fb440beb9cccbe6f4bbd309792a89f6e1b4ee3fmichal                                         struct pipe_sampler_view **);
188946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
189c0a13bbae15a471fea278e37b92b874fed1f6b3bJosé Fonsecavoid
1901fb440beb9cccbe6f4bbd309792a89f6e1b4ee3fmichalllvmpipe_set_vertex_sampler_views(struct pipe_context *,
1911fb440beb9cccbe6f4bbd309792a89f6e1b4ee3fmichal                                  unsigned num,
1921fb440beb9cccbe6f4bbd309792a89f6e1b4ee3fmichal                                  struct pipe_sampler_view **);
1931fb440beb9cccbe6f4bbd309792a89f6e1b4ee3fmichal
1941fb440beb9cccbe6f4bbd309792a89f6e1b4ee3fmichalstruct pipe_sampler_view *
1951fb440beb9cccbe6f4bbd309792a89f6e1b4ee3fmichalllvmpipe_create_sampler_view(struct pipe_context *pipe,
1961fb440beb9cccbe6f4bbd309792a89f6e1b4ee3fmichal                            struct pipe_texture *texture,
1971fb440beb9cccbe6f4bbd309792a89f6e1b4ee3fmichal                            const struct pipe_sampler_view *templ);
1981fb440beb9cccbe6f4bbd309792a89f6e1b4ee3fmichal
1991fb440beb9cccbe6f4bbd309792a89f6e1b4ee3fmichalvoid
2001fb440beb9cccbe6f4bbd309792a89f6e1b4ee3fmichalllvmpipe_sampler_view_destroy(struct pipe_context *pipe,
2011fb440beb9cccbe6f4bbd309792a89f6e1b4ee3fmichal                              struct pipe_sampler_view *view);
202c0a13bbae15a471fea278e37b92b874fed1f6b3bJosé Fonseca
203946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_viewport_state( struct pipe_context *,
204946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                  const struct pipe_viewport_state * );
205946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
206946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_vertex_elements(struct pipe_context *,
207946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                  unsigned count,
208946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                  const struct pipe_vertex_element *);
209946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
210946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_set_vertex_buffers(struct pipe_context *,
211946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                 unsigned count,
212946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                                 const struct pipe_vertex_buffer *);
213946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
2149ae47069b4a2b67e381b02d805f1ca74f31ea7b8José Fonsecavoid llvmpipe_update_fs(struct llvmpipe_context *lp);
215946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
216946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid llvmpipe_update_derived( struct llvmpipe_context *llvmpipe );
217946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
218946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
21903f212b0d85fed5dec9a855fb6d079e5fdb60ac9Keith Whitwellvoid llvmpipe_draw_arrays(struct pipe_context *pipe, unsigned mode,
220946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca			     unsigned start, unsigned count);
221946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
22203f212b0d85fed5dec9a855fb6d079e5fdb60ac9Keith Whitwellvoid llvmpipe_draw_elements(struct pipe_context *pipe,
223946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca			       struct pipe_buffer *indexBuffer,
224946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca			       unsigned indexSize,
225946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca			       unsigned mode, unsigned start, unsigned count);
22603f212b0d85fed5dec9a855fb6d079e5fdb60ac9Keith Whitwellvoid
227946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecallvmpipe_draw_range_elements(struct pipe_context *pipe,
228946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                             struct pipe_buffer *indexBuffer,
229946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                             unsigned indexSize,
230946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                             unsigned min_index,
231946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                             unsigned max_index,
232946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca                             unsigned mode, unsigned start, unsigned count);
233946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
234946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid
235946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecallvmpipe_map_texture_surfaces(struct llvmpipe_context *lp);
236946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
237946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecavoid
238946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecallvmpipe_unmap_texture_surfaces(struct llvmpipe_context *lp);
239946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
240946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca
241946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca#endif
242