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
{
13 uint8_t varying_count
[4];
14 uint8_t varying_index
[4][128];
18 #define NVC0_SHADER_HEADER_SIZE (20 * 4)
21 struct pipe_shader_state pipe
;
33 unsigned immd_size
; /* size of immediate array data */
34 unsigned parm_size
; /* size of non-bindable uniforms (c0[]) */
40 uint32_t clip_mode
; /* clip/cull selection */
41 uint8_t clip_enable
; /* mask of defined clip planes */
42 uint8_t num_ucps
; /* also set to max if ClipDistance is used */
43 uint8_t edgeflag
; /* attribute index of edgeflag input */
45 bool need_draw_parameters
;
50 uint8_t color_interp
[2];
51 bool force_persample_interp
;
55 uint32_t tess_mode
; /* ~0 if defined by the other stage */
56 uint32_t input_patch_size
;
59 uint32_t lmem_size
; /* local memory (TGSI PRIVATE resource) size */
60 uint32_t smem_size
; /* shared memory (TGSI LOCAL resource) size */
69 struct nvc0_transform_feedback_state
*tfb
;
71 struct nouveau_heap
*mem
;