summaryrefslogtreecommitdiff
path: root/r600_atom_api.h
diff options
context:
space:
mode:
Diffstat (limited to 'r600_atom_api.h')
-rw-r--r--r600_atom_api.h35
1 files changed, 25 insertions, 10 deletions
diff --git a/r600_atom_api.h b/r600_atom_api.h
index 762b710..8b5b1ff 100644
--- a/r600_atom_api.h
+++ b/r600_atom_api.h
@@ -40,6 +40,7 @@ struct drm_radeon_atom {
#define R600_ATOM_SPI 11
#define R600_ATOM_SX 12
#define R600_ATOM_VS_SHADER 13
+#define R600_ATOM_PS_SHADER 14
struct drm_r600_cb {
u32 pitch;
@@ -264,6 +265,17 @@ struct drm_r600_spi {
u32 spi_vs_out_id_9;
};
+/* sx - shader export */
+struct drm_r600_sx {
+ u32 sx_alpha_ref;
+ u32 sx_alpha_test_control;
+ u32 sx_export_buffer_sizes;
+ u32 sx_misc;
+ u32 offset;
+ struct radeon_bo *buffer;
+ u32 placements[2];
+};
+
/* vs_shader - vertex shader */
struct drm_r600_vs_shader {
u8 input_semantic[32];
@@ -278,18 +290,20 @@ struct drm_r600_vs_shader {
u32 sq_pgm_resources_vs;
};
-/* sx - shader export */
-struct drm_r600_sx {
- u32 sx_alpha_ref;
- u32 sx_alpha_test_control;
- u32 sx_export_buffer_sizes;
- u32 sx_misc;
- u32 offset;
- struct radeon_bo *buffer;
- u32 placements[2];
+/* ps_shader - pixel shader */
+struct drm_r600_ps_shader {
+ u8 input_semantic[32];
+ u8 input_gpr[32];
+ u8 ninputs;
+ u8 output_semantic[32];
+ u8 output_gpr[32];
+ u8 noutputs;
+ u32 *opcodes;
+ u32 ndwords;
+ u32 sq_pgm_resources_ps;
+ u32 sq_pgm_exports_ps;
};
-
struct drm_r600_batch {
struct radeon_atom *vs_constants;
struct radeon_atom *ps_constants;
@@ -305,6 +319,7 @@ struct drm_r600_batch {
struct radeon_atom *spi;
struct radeon_atom *sx;
struct radeon_atom *vs_shader;
+ struct radeon_atom *ps_shader;
};