2 #ifndef __NVC0_PROGRAM_H__
3 #define __NVC0_PROGRAM_H__
5 #include "pipe/p_state.h"
7 #define NVC0_CAP_MAX_PROGRAM_TEMPS 128
10 struct nvc0_transform_feedback_state
{
12 uint8_t varying_count
[4];
13 uint8_t varying_index
[4][128];
17 #define NVC0_SHADER_HEADER_SIZE (20 * 4)
20 struct pipe_shader_state pipe
;
32 unsigned immd_size
; /* size of immediate array data */
33 unsigned parm_size
; /* size of non-bindable uniforms (c0[]) */
39 uint32_t clip_mode
; /* clip/cull selection */
40 uint8_t clip_enable
; /* mask of defined clip planes */
41 uint8_t num_ucps
; /* also set to max if ClipDistance is used */
42 uint8_t edgeflag
; /* attribute index of edgeflag input */
43 boolean need_vertex_id
;
47 uint8_t in_pos
[PIPE_MAX_SHADER_INPUTS
];
50 uint32_t tess_mode
; /* ~0 if defined by the other stage */
51 uint32_t input_patch_size
;
56 struct nvc0_transform_feedback_state
*tfb
;
58 struct nouveau_heap
*mem
;