Merge commit 'origin/gallium-master-merge'
[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;
28 unsigned data_start;
29
30 struct pipe_buffer *buffer;
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 } cfg;
43 };
44
45 #endif