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