1 #ifndef __NVFX_STATE_H__
2 #define __NVFX_STATE_H__
4 #include "pipe/p_state.h"
5 #include "tgsi/tgsi_scan.h"
6 #include "nouveau/nouveau_statebuf.h"
8 struct nvfx_vertex_program_exec
{
10 boolean has_branch_offset
;
14 struct nvfx_vertex_program_data
{
15 int index
; /* immediates == -1 */
19 struct nvfx_vertex_program
{
20 struct pipe_shader_state pipe
;
22 struct draw_vertex_shader
*draw
;
26 struct pipe_clip_state ucp
;
28 struct nvfx_vertex_program_exec
*insns
;
30 struct nvfx_vertex_program_data
*consts
;
33 struct nouveau_resource
*exec
;
35 struct nouveau_resource
*data
;
37 unsigned data_start_min
;
44 struct nvfx_fragment_program_data
{
49 struct nvfx_fragment_program_bo
{
50 struct nvfx_fragment_program_bo
* next
;
51 struct nouveau_bo
* bo
;
52 char insn
[] __attribute__((aligned(16)));
55 struct nvfx_fragment_program
{
56 struct pipe_shader_state pipe
;
57 struct tgsi_shader_info info
;
65 struct nvfx_fragment_program_data
*consts
;
72 unsigned progs_per_bo
;
73 struct nvfx_fragment_program_bo
* fpbo
;