Merge branch 'mesa_7_5_branch' into mesa_7_6_branch
[mesa.git] / src / gallium / drivers / nv50 / nv50_program.h
1 #ifndef __NV50_PROGRAM_H__
2 #define __NV50_PROGRAM_H__
3
4 #include "pipe/p_state.h"
5 #include "tgsi/tgsi_scan.h"
6
7 struct nv50_program_exec {
8 struct nv50_program_exec *next;
9
10 unsigned inst[2];
11 struct {
12 int index;
13 unsigned mask;
14 unsigned shift;
15 } param;
16 };
17
18 struct nv50_program {
19 struct pipe_shader_state pipe;
20 struct tgsi_shader_info info;
21 boolean translated;
22
23 unsigned type;
24 struct nv50_program_exec *exec_head;
25 struct nv50_program_exec *exec_tail;
26 unsigned exec_size;
27 struct nouveau_resource *data[2];
28 unsigned data_start[2];
29
30 struct nouveau_bo *bo;
31
32 float *immd;
33 unsigned immd_nr;
34 unsigned param_nr;
35
36 struct {
37 unsigned high_temp;
38 unsigned high_result;
39 struct {
40 unsigned attr[2];
41 } vp;
42 struct {
43 unsigned regs[4];
44 unsigned map[5];
45 unsigned high_map;
46 } fp;
47 } cfg;
48 };
49
50 #endif