summaryrefslogtreecommitdiff
path: root/r600_atom_kernel.h
diff options
context:
space:
mode:
Diffstat (limited to 'r600_atom_kernel.h')
-rw-r--r--r600_atom_kernel.h52
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