1f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#ifndef __NV30_CONTEXT_H__ 2f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define __NV30_CONTEXT_H__ 3f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 4f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "pipe/p_format.h" 5f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 6f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "nv30_screen.h" 7f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "nv30_state.h" 8f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 9f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "nouveau/nouveau_context.h" 10f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 11f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define BUFCTX_FB 0 12f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define BUFCTX_VTXTMP 1 13f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define BUFCTX_VTXBUF 2 14f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define BUFCTX_IDXBUF 3 15f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define BUFCTX_VERTTEX(n) (4 + (n)) 16f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define BUFCTX_FRAGPROG 8 17f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define BUFCTX_FRAGTEX(n) (9 + (n)) 18f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 19f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define NV30_NEW_BLEND (1 << 0) 20f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define NV30_NEW_RASTERIZER (1 << 1) 21f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define NV30_NEW_ZSA (1 << 2) 22f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define NV30_NEW_VERTPROG (1 << 3) 23f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define NV30_NEW_VERTCONST (1 << 4) 24f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define NV30_NEW_FRAGPROG (1 << 5) 25f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define NV30_NEW_FRAGCONST (1 << 6) 26f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define NV30_NEW_BLEND_COLOUR (1 << 7) 27f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define NV30_NEW_STENCIL_REF (1 << 8) 28f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define NV30_NEW_CLIP (1 << 9) 29f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define NV30_NEW_SAMPLE_MASK (1 << 10) 30f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define NV30_NEW_FRAMEBUFFER (1 << 11) 31f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define NV30_NEW_STIPPLE (1 << 12) 32f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define NV30_NEW_SCISSOR (1 << 13) 33f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define NV30_NEW_VIEWPORT (1 << 14) 34f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define NV30_NEW_ARRAYS (1 << 15) 35f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define NV30_NEW_VERTEX (1 << 16) 36f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define NV30_NEW_CONSTBUF (1 << 17) 37f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define NV30_NEW_FRAGTEX (1 << 18) 38f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define NV30_NEW_VERTTEX (1 << 19) 39f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define NV30_NEW_SWTNL (1 << 31) 40f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define NV30_NEW_ALL 0x000fffff 41f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 42f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct nv30_context { 43f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct nouveau_context base; 44f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct nv30_screen *screen; 45f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 46f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct nouveau_bufctx *bufctx; 47f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 48f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct { 49f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned rt_enable; 50f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned scissor_off; 51f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned num_vtxelts; 52f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org boolean prim_restart; 53f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct nv30_fragprog *fragprog; 54f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } state; 55f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 56f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint32_t dirty; 57f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 58f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct draw_context *draw; 59f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint32_t draw_flags; 60f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint32_t draw_dirty; 61f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 62f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct nv30_blend_stateobj *blend; 63f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct nv30_rasterizer_stateobj *rast; 64f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct nv30_zsa_stateobj *zsa; 65f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct nv30_vertex_stateobj *vertex; 66f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 67f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct { 68f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned filter; 69f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned aniso; 70f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } config; 71f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 72f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct { 73f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct nv30_vertprog *program; 74f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 75f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct pipe_resource *constbuf; 76f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned constbuf_nr; 77f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 78f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct pipe_sampler_view *textures[PIPE_MAX_SAMPLERS]; 79f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned num_textures; 80f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct nv30_sampler_state *samplers[PIPE_MAX_SAMPLERS]; 81f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned num_samplers; 82f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned dirty_samplers; 83f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } vertprog; 84f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 85f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct { 86f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct nv30_fragprog *program; 87f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 88f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct pipe_resource *constbuf; 89f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned constbuf_nr; 90f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 91f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct pipe_sampler_view *textures[PIPE_MAX_SAMPLERS]; 92f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned num_textures; 93f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct nv30_sampler_state *samplers[PIPE_MAX_SAMPLERS]; 94f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned num_samplers; 95f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned dirty_samplers; 96f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } fragprog; 97f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 98f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct pipe_framebuffer_state framebuffer; 99f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct pipe_blend_color blend_colour; 100f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct pipe_stencil_ref stencil_ref; 101f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct pipe_poly_stipple stipple; 102f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct pipe_scissor_state scissor; 103f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct pipe_viewport_state viewport; 104f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct pipe_clip_state clip; 105f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 106f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned sample_mask; 107f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 108f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct pipe_vertex_buffer vtxbuf[PIPE_MAX_ATTRIBS]; 109f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned num_vtxbufs; 110f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct pipe_index_buffer idxbuf; 111f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint32_t vbo_fifo; 112f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint32_t vbo_user; 113f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned vbo_min_index; 114f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned vbo_max_index; 115f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org boolean vbo_push_hint; 116f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 117f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct nouveau_heap *blit_vp; 118f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct pipe_resource *blit_fp; 119f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 120f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org /*XXX: nvfx state, DO NOT USE EVER OUTSIDE "STOLEN" NVFX code */ 121f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned is_nv4x; 122f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned use_nv4x; 123f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org bool hw_pointsprite_control; 124f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org enum { 125f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org HW, 126f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } render_mode; 127f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 128f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 129f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic INLINE struct nv30_context * 130f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnv30_context(struct pipe_context *pipe) 131f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 132f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return (struct nv30_context *)pipe; 133f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 134f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 135f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct pipe_context * 136f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnv30_context_create(struct pipe_screen *pscreen, void *priv); 137f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 138f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 139f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnv30_vbo_init(struct pipe_context *pipe); 140f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 141f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 142f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnv30_vbo_validate(struct nv30_context *nv30); 143f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 144f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 145f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnv30_query_init(struct pipe_context *pipe); 146f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 147f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 148f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnv30_state_init(struct pipe_context *pipe); 149f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 150f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 151f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnv30_clear_init(struct pipe_context *pipe); 152f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 153f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 154f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnv30_vertprog_init(struct pipe_context *pipe); 155f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 156f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 157f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnv30_vertprog_validate(struct nv30_context *nv30); 158f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 159f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 160f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnv30_fragprog_init(struct pipe_context *pipe); 161f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 162f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 163f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnv30_fragprog_validate(struct nv30_context *nv30); 164f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 165f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 166f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnv30_texture_init(struct pipe_context *pipe); 167f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 168f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 169f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnv30_texture_validate(struct nv30_context *nv30); 170f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 171f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 172f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnv30_fragtex_init(struct pipe_context *pipe); 173f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 174f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 175f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnv30_fragtex_validate(struct nv30_context *nv30); 176f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 177f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 178f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnv40_verttex_init(struct pipe_context *pipe); 179f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 180f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 181f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnv40_verttex_validate(struct nv30_context *nv30); 182f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 183f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 184f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnv30_push_vbo(struct nv30_context *nv30, const struct pipe_draw_info *info); 185f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 186f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 187f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnv30_draw_init(struct pipe_context *pipe); 188f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 189f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 190f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnv30_render_vbo(struct pipe_context *pipe, const struct pipe_draw_info *info); 191f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 192f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgboolean 193f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnv30_state_validate(struct nv30_context *nv30, boolean hwtnl); 194f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 195f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 196f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnv30_state_release(struct nv30_context *nv30); 197f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 198f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org//XXX: needed to make it build, clean this up! 199f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 200f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_nvfx_fragprog_translate(struct nv30_context *nvfx, struct nv30_fragprog *fp, 201f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org boolean emulate_sprite_flipping); 202f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 203f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgboolean 204f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_nvfx_vertprog_translate(struct nv30_context *nv30, struct nv30_vertprog *vp); 205f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 206f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#ifdef NV30_3D_VERTEX_BEGIN_END 207f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define NV30_PRIM_GL_CASE(n) \ 208f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case PIPE_PRIM_##n: return NV30_3D_VERTEX_BEGIN_END_##n 209f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 210f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic INLINE unsigned 211f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnv30_prim_gl(unsigned prim) 212f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 213f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org switch (prim) { 214f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NV30_PRIM_GL_CASE(POINTS); 215f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NV30_PRIM_GL_CASE(LINES); 216f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NV30_PRIM_GL_CASE(LINE_LOOP); 217f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NV30_PRIM_GL_CASE(LINE_STRIP); 218f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NV30_PRIM_GL_CASE(TRIANGLES); 219f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NV30_PRIM_GL_CASE(TRIANGLE_STRIP); 220f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NV30_PRIM_GL_CASE(TRIANGLE_FAN); 221f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NV30_PRIM_GL_CASE(QUADS); 222f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NV30_PRIM_GL_CASE(QUAD_STRIP); 223f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NV30_PRIM_GL_CASE(POLYGON); 224f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org default: 225f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return NV30_3D_VERTEX_BEGIN_END_POINTS; 226f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org break; 227f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 228f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 229f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#endif 230f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 231f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#endif 232