1 #ifndef __NVFX_STATE_H__
2 #define __NVFX_STATE_H__
4 #include "pipe/p_state.h"
5 #include "pipe/p_video_state.h"
6 #include "tgsi/tgsi_scan.h"
7 #include "nouveau/nouveau_statebuf.h"
9 struct nvfx_vertex_program_exec
{
11 boolean has_branch_offset
;
15 struct nvfx_vertex_program_data
{
16 int index
; /* immediates == -1 */
20 struct nvfx_vertex_program
{
21 struct pipe_shader_state pipe
;
23 struct draw_vertex_shader
*draw
;
27 struct pipe_clip_state ucp
;
29 struct nvfx_vertex_program_exec
*insns
;
31 struct nvfx_vertex_program_data
*consts
;
34 struct nouveau_resource
*exec
;
36 struct nouveau_resource
*data
;
38 unsigned data_start_min
;
45 struct nvfx_fragment_program_data
{
50 struct nvfx_fragment_program_bo
{
51 struct nvfx_fragment_program_bo
* next
;
52 struct nouveau_bo
* bo
;
53 char insn
[] __attribute__((aligned(16)));
56 struct nvfx_fragment_program
{
57 struct pipe_shader_state pipe
;
58 struct tgsi_shader_info info
;
66 struct nvfx_fragment_program_data
*consts
;
73 unsigned progs_per_bo
;
74 struct nvfx_fragment_program_bo
* fpbo
;