summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeonsi/radeonsi_pm4.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/radeonsi/radeonsi_pm4.h')
-rw-r--r--src/gallium/drivers/radeonsi/radeonsi_pm4.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/gallium/drivers/radeonsi/radeonsi_pm4.h b/src/gallium/drivers/radeonsi/radeonsi_pm4.h
index 803bb8f572d..2b32ffb8155 100644
--- a/src/gallium/drivers/radeonsi/radeonsi_pm4.h
+++ b/src/gallium/drivers/radeonsi/radeonsi_pm4.h
@@ -29,8 +29,9 @@
#include "../../winsys/radeon/drm/radeon_winsys.h"
-#define SI_PM4_MAX_DW 128
-#define SI_PM4_MAX_BO 32
+#define SI_PM4_MAX_DW 128
+#define SI_PM4_MAX_BO 32
+#define SI_PM4_MAX_RELOCS 4
// forward defines
struct r600_context;
@@ -53,6 +54,10 @@ struct si_pm4_state
unsigned nbo;
struct si_resource *bo[SI_PM4_MAX_BO];
enum radeon_bo_usage bo_usage[SI_PM4_MAX_BO];
+
+ /* relocs for shader data */
+ unsigned nrelocs;
+ unsigned relocs[SI_PM4_MAX_RELOCS];
};
void si_pm4_cmd_begin(struct si_pm4_state *state, unsigned opcode);
@@ -64,6 +69,10 @@ void si_pm4_add_bo(struct si_pm4_state *state,
struct si_resource *bo,
enum radeon_bo_usage usage);
+void si_pm4_sh_data_begin(struct si_pm4_state *state);
+void si_pm4_sh_data_add(struct si_pm4_state *state, uint32_t dw);
+void si_pm4_sh_data_end(struct si_pm4_state *state, unsigned reg);
+
void si_pm4_inval_shader_cache(struct si_pm4_state *state);
void si_pm4_inval_texture_cache(struct si_pm4_state *state);
void si_pm4_inval_vertex_cache(struct si_pm4_state *state);