nv30_context.h revision c727fa6dbf5a9fca5fc94de06c309f54402449d1
16acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#ifndef __NV30_CONTEXT_H__ 26acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define __NV30_CONTEXT_H__ 36acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 46acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#include "pipe/p_context.h" 56acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#include "pipe/p_defines.h" 66acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#include "pipe/p_state.h" 76acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#include "pipe/p_compiler.h" 86acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 96acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#include "util/u_memory.h" 106acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#include "util/u_math.h" 116acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 126acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#include "draw/draw_vertex.h" 136acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 146acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#include "nouveau/nouveau_winsys.h" 156acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#include "nouveau/nouveau_gldefs.h" 166acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#include "nouveau/nouveau_context.h" 176acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 186acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define NOUVEAU_PUSH_CONTEXT(ctx) \ 196acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct nv30_screen *ctx = nv30->screen 206acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#include "nouveau/nouveau_push.h" 216acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#include "nouveau/nouveau_stateobj.h" 226acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 236acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#include "nv30_state.h" 246acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 256acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define NOUVEAU_ERR(fmt, args...) \ 266acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn fprintf(stderr, "%s:%d - "fmt, __func__, __LINE__, ##args); 276acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define NOUVEAU_MSG(fmt, args...) \ 286acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn fprintf(stderr, "nouveau: "fmt, ##args); 296acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 306acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennenum nv30_state_index { 316acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_FB = 0, 326acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_VIEWPORT = 1, 336acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_BLEND = 2, 346acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_RAST = 3, 356acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_ZSA = 4, 366acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_BCOL = 5, 376acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_CLIP = 6, 386acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_SCISSOR = 7, 396acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_STIPPLE = 8, 406acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_FRAGPROG = 9, 416acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_VERTPROG = 10, 426acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_FRAGTEX0 = 11, 436acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_FRAGTEX1 = 12, 446acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_FRAGTEX2 = 13, 456acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_FRAGTEX3 = 14, 466acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_FRAGTEX4 = 15, 476acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_FRAGTEX5 = 16, 486acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_FRAGTEX6 = 17, 496acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_FRAGTEX7 = 18, 506acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_FRAGTEX8 = 19, 516acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_FRAGTEX9 = 20, 526acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_FRAGTEX10 = 21, 536acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_FRAGTEX11 = 22, 546acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_FRAGTEX12 = 23, 556acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_FRAGTEX13 = 24, 566acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_FRAGTEX14 = 25, 576acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_FRAGTEX15 = 26, 586acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_VERTTEX0 = 27, 596acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_VERTTEX1 = 28, 606acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_VERTTEX2 = 29, 616acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_VERTTEX3 = 30, 626acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_VTXBUF = 31, 636acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_VTXFMT = 32, 646acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_VTXATTR = 33, 656acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn NV30_STATE_MAX = 34 666acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn}; 676acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 686acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#include "nv30_screen.h" 696acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 706acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define NV30_NEW_BLEND (1 << 0) 716acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define NV30_NEW_RAST (1 << 1) 726acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define NV30_NEW_ZSA (1 << 2) 736acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define NV30_NEW_SAMPLER (1 << 3) 746acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define NV30_NEW_FB (1 << 4) 756acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define NV30_NEW_STIPPLE (1 << 5) 766acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define NV30_NEW_SCISSOR (1 << 6) 776acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define NV30_NEW_VIEWPORT (1 << 7) 786acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define NV30_NEW_BCOL (1 << 8) 796acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define NV30_NEW_VERTPROG (1 << 9) 806acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define NV30_NEW_FRAGPROG (1 << 10) 816acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define NV30_NEW_ARRAYS (1 << 11) 826acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define NV30_NEW_UCP (1 << 12) 836acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 846acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennstruct nv30_rasterizer_state { 856acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct pipe_rasterizer_state pipe; 866acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct nouveau_stateobj *so; 876acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn}; 886acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 896acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennstruct nv30_zsa_state { 906acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct pipe_depth_stencil_alpha_state pipe; 916acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct nouveau_stateobj *so; 926acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn}; 936acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 946acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennstruct nv30_blend_state { 956acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct pipe_blend_state pipe; 966acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct nouveau_stateobj *so; 976acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn}; 986acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 996acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1006acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennstruct nv30_state { 1016acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn unsigned scissor_enabled; 1026acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn unsigned stipple_enabled; 1036acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn unsigned viewport_bypass; 1046acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn unsigned fp_samplers; 1056acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1066acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn uint64_t dirty; 1076acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct nouveau_stateobj *hw[NV30_STATE_MAX]; 1086acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn}; 1096acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1106acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennstruct nv30_context { 1116acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct pipe_context pipe; 1126acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1136acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct nouveau_winsys *nvws; 1146acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct nv30_screen *screen; 1156acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn unsigned pctx_id; 1166acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1176acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct draw_context *draw; 1186acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1196acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn /* HW state derived from pipe states */ 1206acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct nv30_state state; 1216acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1226acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn /* Context state */ 1236acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn unsigned dirty; 1246acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct pipe_scissor_state scissor; 1256acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn unsigned stipple[32]; 1266acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct nv30_vertex_program *vertprog; 1276acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct nv30_fragment_program *fragprog; 1286acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct pipe_buffer *constbuf[PIPE_SHADER_TYPES]; 1296acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn unsigned constbuf_nr[PIPE_SHADER_TYPES]; 1306acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct nv30_rasterizer_state *rasterizer; 1316acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct nv30_zsa_state *zsa; 1326acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct nv30_blend_state *blend; 1336acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct pipe_blend_color blend_colour; 1346acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct pipe_viewport_state viewport; 1356acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct pipe_framebuffer_state framebuffer; 1366acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct pipe_buffer *idxbuf; 1376acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn unsigned idxbuf_format; 1386acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct nv30_sampler_state *tex_sampler[PIPE_MAX_SAMPLERS]; 1396acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct nv30_miptree *tex_miptree[PIPE_MAX_SAMPLERS]; 1406acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn unsigned nr_samplers; 1416acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn unsigned nr_textures; 1426acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn unsigned dirty_samplers; 1436acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct pipe_vertex_buffer vtxbuf[PIPE_MAX_ATTRIBS]; 1446acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn unsigned vtxbuf_nr; 1456acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct pipe_vertex_element vtxelt[PIPE_MAX_ATTRIBS]; 1466acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn unsigned vtxelt_nr; 1476acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn}; 1486acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1496acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennstatic INLINE struct nv30_context * 1506acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennnv30_context(struct pipe_context *pipe) 1516acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn{ 1526acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn return (struct nv30_context *)pipe; 1536acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn} 1546acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1556acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennstruct nv30_state_entry { 1566acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn boolean (*validate)(struct nv30_context *nv30); 1576acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct { 1586acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn unsigned pipe; 1596acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn unsigned hw; 1606acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn } dirty; 1616acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn}; 1626acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1636acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennextern void nv30_init_state_functions(struct nv30_context *nv30); 1646acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennextern void nv30_init_surface_functions(struct nv30_context *nv30); 1656acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennextern void nv30_init_query_functions(struct nv30_context *nv30); 1666acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1676acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennextern void nv30_screen_init_miptree_functions(struct pipe_screen *pscreen); 1686acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1696acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/* nv30_draw.c */ 1706acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennextern struct draw_stage *nv30_draw_render_stage(struct nv30_context *nv30); 1716acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1726acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/* nv30_vertprog.c */ 1736acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennextern void nv30_vertprog_destroy(struct nv30_context *, 1746acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct nv30_vertex_program *); 1756acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1766acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/* nv30_fragprog.c */ 1776acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennextern void nv30_fragprog_destroy(struct nv30_context *, 1786acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct nv30_fragment_program *); 1796acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1806acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/* nv30_fragtex.c */ 1816acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennextern void nv30_fragtex_bind(struct nv30_context *); 1826acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1836acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/* nv30_state.c and friends */ 1846acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennextern boolean nv30_state_validate(struct nv30_context *nv30); 1856acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennextern void nv30_state_emit(struct nv30_context *nv30); 1866acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennextern void nv30_state_flush_notify(struct nouveau_channel *chan); 1876acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennextern struct nv30_state_entry nv30_state_rasterizer; 1886acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennextern struct nv30_state_entry nv30_state_scissor; 1896acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennextern struct nv30_state_entry nv30_state_stipple; 1906acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennextern struct nv30_state_entry nv30_state_fragprog; 1916acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennextern struct nv30_state_entry nv30_state_vertprog; 1926acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennextern struct nv30_state_entry nv30_state_blend; 1936acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennextern struct nv30_state_entry nv30_state_blend_colour; 1946acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennextern struct nv30_state_entry nv30_state_zsa; 1956acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennextern struct nv30_state_entry nv30_state_viewport; 1966acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennextern struct nv30_state_entry nv30_state_framebuffer; 1976acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennextern struct nv30_state_entry nv30_state_fragtex; 1986acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennextern struct nv30_state_entry nv30_state_vbo; 1996acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 2006acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/* nv30_vbo.c */ 2016acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennextern void nv30_draw_arrays(struct pipe_context *, unsigned mode, 2026acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn unsigned start, unsigned count); 2036acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennextern void nv30_draw_elements(struct pipe_context *pipe, 2046acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn struct pipe_buffer *indexBuffer, 2056acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn unsigned indexSize, 2066acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn unsigned mode, unsigned start, 2076acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn unsigned count); 2086acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 2096acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/* nv30_clear.c */ 2106acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennextern void nv30_clear(struct pipe_context *pipe, unsigned buffers, 2116acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn const float *rgba, double depth, unsigned stencil); 2126acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 2136acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#endif 2146acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn