1 #ifndef __NV50_PROGRAM_H__
2 #define __NV50_PROGRAM_H__
4 #include "pipe/p_state.h"
5 #include "tgsi/tgsi_scan.h"
7 struct nv50_program_exec
{
8 struct nv50_program_exec
*next
;
19 uint8_t hw
; /* hw index, nv50 wants flat FP inputs last */
20 uint8_t id
; /* tgsi index */
25 ubyte sn
, si
; /* semantic name & index */
29 struct pipe_shader_state pipe
;
30 struct tgsi_shader_info info
;
34 struct nv50_program_exec
*exec_head
;
35 struct nv50_program_exec
*exec_tail
;
37 struct nouveau_resource
*data
[1];
38 unsigned data_start
[1];
40 struct nouveau_bo
*bo
;
53 /* for VPs, io_nr doesn't count 'private' results (PSIZ etc.) */
54 unsigned in_nr
, out_nr
;
55 struct nv50_sreg4 in
[PIPE_MAX_SHADER_INPUTS
];
56 struct nv50_sreg4 out
[PIPE_MAX_SHADER_OUTPUTS
];
58 /* FP colour inputs, VP/GP back colour outputs */
59 struct nv50_sreg4 two_side
[2];
66 uint8_t clpd
, clpd_nr
;