radv: Add trace ids for secondary buffers.
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Sat, 18 Mar 2017 01:12:59 +0000 (02:12 +0100)
committerBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Tue, 29 Aug 2017 21:06:03 +0000 (23:06 +0200)
Signed-off-by: Bas Nieuwenhuizen <basni@google.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
src/amd/vulkan/radv_cmd_buffer.c
src/amd/vulkan/radv_device.c
src/amd/vulkan/radv_radeon_winsys.h
src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c

index fcc14dd93655fcabc1e1d07dd011a267f7b4117b..1c88717551ab323fef4f2d42c552835b69dd1057 100644 (file)
@@ -341,6 +341,8 @@ void radv_cmd_buffer_trace_emit(struct radv_cmd_buffer *cmd_buffer)
                return;
 
        va = device->ws->buffer_get_va(device->trace_bo);
+       if (cmd_buffer->level == VK_COMMAND_BUFFER_LEVEL_SECONDARY)
+               va += 4;
 
        MAYBE_UNUSED unsigned cdw_max = radeon_check_space(cmd_buffer->device->ws, cmd_buffer->cs, 7);
 
index fec965c622588fb35a9cecebbd65f45e5c652bb0..1e3148a0432daebbf5642833a2278623b929bb55 100644 (file)
@@ -1389,7 +1389,7 @@ static void radv_dump_trace(struct radv_device *device,
        }
 
        fprintf(f, "Trace ID: %x\n", *device->trace_id_ptr);
-       device->ws->cs_dump(cs, f, *device->trace_id_ptr);
+       device->ws->cs_dump(cs, f, (const int*)device->trace_id_ptr, 2);
        fclose(f);
 }
 
index 215ef0bfc1531b6c2850dae2ef254d29e1f88e4d..8e2ba7431a7e3c87e5b935983c3c5ff3a7e083fd 100644 (file)
@@ -216,7 +216,7 @@ struct radeon_winsys {
        void (*cs_execute_secondary)(struct radeon_winsys_cs *parent,
                                    struct radeon_winsys_cs *child);
 
-       void (*cs_dump)(struct radeon_winsys_cs *cs, FILE* file, uint32_t trace_id);
+       void (*cs_dump)(struct radeon_winsys_cs *cs, FILE* file, const int *trace_ids, int trace_id_count);
 
        int (*surface_init)(struct radeon_winsys *ws,
                            const struct ac_surf_info *surf_info,
index 49c9c909466b2496ee693f1db2a02431c0dbbe4c..4a9ecab657f64ad33a1923a8fb07b8f07f8a7b85 100644 (file)
@@ -987,7 +987,7 @@ static void *radv_amdgpu_winsys_get_cpu_addr(void *_cs, uint64_t addr)
 
 static void radv_amdgpu_winsys_cs_dump(struct radeon_winsys_cs *_cs,
                                        FILE* file,
-                                       uint32_t trace_id)
+                                       const int *trace_ids, int trace_id_count)
 {
        struct radv_amdgpu_cs *cs = (struct radv_amdgpu_cs *)_cs;
        void *ib = cs->base.buf;
@@ -998,7 +998,7 @@ static void radv_amdgpu_winsys_cs_dump(struct radeon_winsys_cs *_cs,
                num_dw = cs->ib.size;
        }
        assert(ib);
-       ac_parse_ib(file, ib, num_dw, (const int*)&trace_id, 1,  "main IB",
+       ac_parse_ib(file, ib, num_dw, trace_ids, trace_id_count,  "main IB",
                    cs->ws->info.chip_class, radv_amdgpu_winsys_get_cpu_addr, cs);
 }