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
;
31 unsigned parm_size
; /* size of non-bindable uniforms (c0[]) */
37 uint32_t clip_mode
; /* clip/cull selection */
38 uint8_t clip_enable
; /* mask of defined clip planes */
39 uint8_t cull_enable
; /* mask of defined cull distances */
40 uint8_t num_ucps
; /* also set to max if ClipDistance is used */
41 uint8_t edgeflag
; /* attribute index of edgeflag input */
43 bool need_draw_parameters
;
48 uint8_t color_interp
[2];
50 bool force_persample_interp
;
52 bool reads_framebuffer
;
53 bool post_depth_coverage
;
56 uint32_t tess_mode
; /* ~0 if defined by the other stage */
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
;