diff options
Diffstat (limited to 'r600_atom_kernel.h')
-rw-r--r-- | r600_atom_kernel.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/r600_atom_kernel.h b/r600_atom_kernel.h index ba646a1..dc3dcf4 100644 --- a/r600_atom_kernel.h +++ b/r600_atom_kernel.h @@ -27,6 +27,7 @@ #define R600_ATOM_DB_CNTL 8 #define R600_ATOM_VS_SHADER 9 #define R600_ATOM_PS_SHADER 10 +#define R600_BATCH_NATOMS 11 struct drm_r600_cb { u32 pitch; @@ -163,6 +164,19 @@ struct drm_r600_db_cntl { u32 db_alpha_to_mask; }; +/* vs_shader - vertex shader */ +struct drm_r600_vs_shader { + u32 sq_pgm_resources_vs; + u8 input_semantic[32]; + u8 input_gpr[32]; + u8 ninputs; + u8 output_semantic[32]; + u8 fog_output_id; + u8 noutputs; + u32 ndwords; + u32 opcodes[512]; +}; + /* ps_shader - pixel shader */ struct drm_r600_ps_shader { u32 spi_ps_in_control_0; @@ -174,4 +188,42 @@ struct drm_r600_ps_shader { u32 opcodes[512]; }; +struct drm_r600_vs_buffer { + u32 handle; + u32 resource_id; + u32 sq_vtx_constant_word0; + u32 sq_vtx_constant_word2; + u32 sq_vtx_constant_word3; +}; + +struct drm_r600_vs_element { + u32 buffer_id; + u32 semantic; + u32 sq_vtx_word0; + u32 sq_vtx_word1; + u32 sq_vtx_word2; +}; + +struct drm_r600_vs_input { + u32 nelements; + u32 nbuffers; + struct drm_r600_vs_element elements[32]; + struct drm_r600_vs_buffer buffers[32]; +}; + +struct drm_r600_batch { + struct radeon_atom *vs_constants; + struct radeon_atom *ps_constants; + struct radeon_atom *blend; + struct radeon_atom *cb; + struct radeon_atom *cb_cntl; + struct radeon_atom *pa; + struct radeon_atom *vport; + struct radeon_atom *db; + struct radeon_atom *db_cntl; + struct radeon_atom *vs_shader; + struct radeon_atom *ps_shader; + struct drm_r600_vs_input inputs; +}; + #endif |