summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeonsi/si_commands.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_commands.c')
-rw-r--r--src/gallium/drivers/radeonsi/si_commands.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeonsi/si_commands.c b/src/gallium/drivers/radeonsi/si_commands.c
index 5215a342f41..8dcf5d3341b 100644
--- a/src/gallium/drivers/radeonsi/si_commands.c
+++ b/src/gallium/drivers/radeonsi/si_commands.c
@@ -36,6 +36,28 @@ void si_cmd_context_control(struct si_pm4_state *pm4)
si_pm4_cmd_end(pm4, false);
}
+void si_cmd_draw_index_2(struct si_pm4_state *pm4, uint32_t max_size,
+ uint64_t index_base, uint32_t index_count,
+ uint32_t initiator, bool predicate)
+{
+ si_pm4_cmd_begin(pm4, PKT3_DRAW_INDEX_2);
+ si_pm4_cmd_add(pm4, max_size);
+ si_pm4_cmd_add(pm4, index_base);
+ si_pm4_cmd_add(pm4, (index_base >> 32UL) & 0xFF);
+ si_pm4_cmd_add(pm4, index_count);
+ si_pm4_cmd_add(pm4, initiator);
+ si_pm4_cmd_end(pm4, predicate);
+}
+
+void si_cmd_draw_index_auto(struct si_pm4_state *pm4, uint32_t count,
+ uint32_t initiator, bool predicate)
+{
+ si_pm4_cmd_begin(pm4, PKT3_DRAW_INDEX_AUTO);
+ si_pm4_cmd_add(pm4, count);
+ si_pm4_cmd_add(pm4, initiator);
+ si_pm4_cmd_end(pm4, predicate);
+}
+
void si_cmd_surface_sync(struct si_pm4_state *pm4, uint32_t cp_coher_cntl)
{
si_pm4_cmd_begin(pm4, PKT3_SURFACE_SYNC);