revert between 56095 -> 55830 in arch
[AROS.git] / workbench / libs / mesa / src / gallium / drivers / nv50 / nv50_stateobj.h
blob4c98c7e46fc30375605d98880220ba8f580fa171
2 #ifndef __NV50_STATEOBJ_H__
3 #define __NV50_STATEOBJ_H__
5 #include "pipe/p_state.h"
7 #define NV50_SCISSORS_CLIPPING
9 #define SB_BEGIN_3D(so, m, s) \
10 (so)->state[(so)->size++] = \
11 ((s) << 18) | (NV50_SUBCH_3D << 13) | NV50_3D_##m
13 #define SB_BEGIN_3D_(so, m, s) \
14 (so)->state[(so)->size++] = \
15 ((s) << 18) | (NV50_SUBCH_3D << 13) | m
17 #define SB_DATA(so, u) (so)->state[(so)->size++] = (u)
19 #include "nv50_stateobj_tex.h"
21 struct nv50_blend_stateobj {
22 struct pipe_blend_state pipe;
23 int size;
24 uint32_t state[82]; // TODO: allocate less if !independent_blend_enable
27 struct nv50_rasterizer_stateobj {
28 struct pipe_rasterizer_state pipe;
29 int size;
30 uint32_t state[42];
33 struct nv50_zsa_stateobj {
34 struct pipe_depth_stencil_alpha_state pipe;
35 int size;
36 uint32_t state[29];
39 struct nv50_vertex_element {
40 struct pipe_vertex_element pipe;
41 uint32_t state;
44 struct 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];
55 #endif