nv50_stateobj.h revision 8f060df60d1f5ad63a341e39f2ec5a0c3c452cf5
1 2#ifndef __NV50_STATEOBJ_H__ 3#define __NV50_STATEOBJ_H__ 4 5#include "pipe/p_state.h" 6 7#define NV50_SCISSORS_CLIPPING 8 9#define SB_BEGIN_3D(so, m, s) \ 10 (so)->state[(so)->size++] = \ 11 ((s) << 18) | (NV50_SUBCH_3D << 13) | NV50_3D_##m 12 13#define SB_BEGIN_3D_(so, m, s) \ 14 (so)->state[(so)->size++] = \ 15 ((s) << 18) | (NV50_SUBCH_3D << 13) | m 16 17#define SB_DATA(so, u) (so)->state[(so)->size++] = (u) 18 19#include "nv50_stateobj_tex.h" 20 21struct nv50_blend_stateobj { 22 struct pipe_blend_state pipe; 23 int size; 24 uint32_t state[78]; 25}; 26 27struct nv50_rasterizer_stateobj { 28 struct pipe_rasterizer_state pipe; 29 int size; 30 uint32_t state[42]; 31}; 32 33struct nv50_zsa_stateobj { 34 struct pipe_depth_stencil_alpha_state pipe; 35 int size; 36 uint32_t state[29]; 37}; 38 39struct nv50_vertex_element { 40 struct pipe_vertex_element pipe; 41 uint32_t state; 42}; 43 44struct nv50_vertex_stateobj { 45 struct translate *translate; 46 unsigned num_elements; 47 uint32_t instance_elts; 48 uint32_t instance_bufs; 49 boolean need_conversion; 50 unsigned vertex_size; 51 unsigned packet_vertex_limit; 52 struct nv50_vertex_element element[0]; 53}; 54 55#endif 56