radv: Rely on ac_surface for avoiding cmask for linear images.
[mesa.git] / src / amd / vulkan / radv_sqtt.c
index 4cfe346430af026c307d4c13dcdf6f7e51e41b3d..e135e0c02cccc067a8d942f17f69ada01354a1f9 100644 (file)
@@ -341,6 +341,23 @@ radv_emit_thread_trace_stop(struct radv_device *device,
                               S_030800_INSTANCE_BROADCAST_WRITES(1));
 }
 
+void
+radv_emit_thread_trace_userdata(struct radeon_cmdbuf *cs,
+                               const void *data, uint32_t num_dwords)
+{
+       const uint32_t *dwords = (uint32_t *)data;
+
+       while (num_dwords > 0) {
+               uint32_t count = MIN2(num_dwords, 2);
+
+               radeon_set_uconfig_reg_seq(cs, R_030D08_SQ_THREAD_TRACE_USERDATA_2, count);
+               radeon_emit_array(cs, dwords, count);
+
+               dwords += count;
+               num_dwords -= count;
+       }
+}
+
 static void
 radv_emit_spi_config_cntl(struct radv_device *device,
                          struct radeon_cmdbuf *cs, bool enable)
@@ -391,8 +408,8 @@ radv_thread_trace_init_cs(struct radv_device *device)
                switch (family) {
                case RADV_QUEUE_GENERAL:
                        radeon_emit(device->thread_trace_start_cs[family], PKT3(PKT3_CONTEXT_CONTROL, 1, 0));
-                       radeon_emit(device->thread_trace_start_cs[family], CONTEXT_CONTROL_LOAD_ENABLE(1));
-                       radeon_emit(device->thread_trace_start_cs[family], CONTEXT_CONTROL_SHADOW_ENABLE(1));
+                       radeon_emit(device->thread_trace_start_cs[family], CC0_UPDATE_LOAD_ENABLES(1));
+                       radeon_emit(device->thread_trace_start_cs[family], CC1_UPDATE_SHADOW_ENABLES(1));
                        break;
                case RADV_QUEUE_COMPUTE:
                        radeon_emit(device->thread_trace_start_cs[family], PKT3(PKT3_NOP, 0, 0));
@@ -426,8 +443,8 @@ radv_thread_trace_init_cs(struct radv_device *device)
                switch (family) {
                case RADV_QUEUE_GENERAL:
                        radeon_emit(device->thread_trace_stop_cs[family], PKT3(PKT3_CONTEXT_CONTROL, 1, 0));
-                       radeon_emit(device->thread_trace_stop_cs[family], CONTEXT_CONTROL_LOAD_ENABLE(1));
-                       radeon_emit(device->thread_trace_stop_cs[family], CONTEXT_CONTROL_SHADOW_ENABLE(1));
+                       radeon_emit(device->thread_trace_stop_cs[family], CC0_UPDATE_LOAD_ENABLES(1));
+                       radeon_emit(device->thread_trace_stop_cs[family], CC1_UPDATE_SHADOW_ENABLES(1));
                        break;
                case RADV_QUEUE_COMPUTE:
                        radeon_emit(device->thread_trace_stop_cs[family], PKT3(PKT3_NOP, 0, 0));
@@ -587,7 +604,7 @@ radv_get_thread_trace(struct radv_queue *queue,
                                        "buffer size is %d KB.\n",
                                        expected_size, available_size);
                        fprintf(stderr, "Please update the buffer size with "
-                                       "RADV_THREAD_TRACE_BUFER_SIZE=<size_in_bytes>\n");
+                                       "RADV_THREAD_TRACE_BUFFER_SIZE=<size_in_bytes>\n");
                        return false;
                }