1 #ifndef SPU_VERTEX_SHADER_H
2 #define SPU_VERTEX_SHADER_H
4 #include "pipe/p_format.h"
9 typedef void (*spu_full_fetch_func
)( struct spu_vs_context
*draw
,
10 struct spu_exec_machine
*machine
,
14 struct spu_vs_context
{
15 struct pipe_viewport_state viewport
;
18 uint64_t src_ptr
[PIPE_ATTRIB_MAX
];
19 unsigned pitch
[PIPE_ATTRIB_MAX
];
20 unsigned size
[PIPE_ATTRIB_MAX
];
21 unsigned code_offset
[PIPE_ATTRIB_MAX
];
25 spu_full_fetch_func fetch_func
;
29 /* Clip derived state:
34 struct spu_exec_machine machine
;
35 const float (*constants
)[4];
37 unsigned num_vs_outputs
;
40 extern void spu_update_vertex_fetch(struct spu_vs_context
*draw
);
42 static INLINE
void spu_vertex_fetch(struct spu_vs_context
*draw
,
43 struct spu_exec_machine
*machine
,
47 if (draw
->vertex_fetch
.dirty
) {
48 spu_update_vertex_fetch(draw
);
49 draw
->vertex_fetch
.dirty
= 0;
52 (*draw
->vertex_fetch
.fetch_func
)(draw
, machine
, elts
, count
);
55 struct cell_command_vs
;
58 spu_execute_vertex_shader(struct spu_vs_context
*draw
,
59 const struct cell_command_vs
*vs
);
61 #endif /* SPU_VERTEX_SHADER_H */