nv50/ir: add missing license headers
[mesa.git] / src / gallium / drivers / nvc0 / nvc0_program.h
1
2 #ifndef __NVC0_PROGRAM_H__
3 #define __NVC0_PROGRAM_H__
4
5 #include "pipe/p_state.h"
6
7 #define NVC0_CAP_MAX_PROGRAM_TEMPS 128
8
9 #define NVC0_SHADER_HEADER_SIZE (20 * 4)
10
11 struct nvc0_program {
12 struct pipe_shader_state pipe;
13
14 ubyte type;
15 boolean translated;
16 uint8_t max_gpr;
17
18 uint32_t *code;
19 uint32_t *immd_data;
20 unsigned code_base;
21 unsigned code_size;
22 unsigned immd_base;
23 unsigned immd_size; /* size of immediate array data */
24 unsigned parm_size; /* size of non-bindable uniforms (c0[]) */
25
26 uint32_t hdr[20];
27 uint32_t flags[2];
28
29 struct {
30 uint8_t edgeflag;
31 uint8_t num_ucps;
32 uint8_t out_pos[PIPE_MAX_SHADER_OUTPUTS];
33 } vp;
34 struct {
35 uint8_t early_z;
36 uint8_t in_pos[PIPE_MAX_SHADER_INPUTS];
37 } fp;
38 struct {
39 uint32_t tess_mode; /* ~0 if defined by the other stage */
40 uint32_t input_patch_size;
41 } tp;
42
43 void *relocs;
44
45 struct nouveau_resource *res;
46 };
47
48 #endif