Lines Matching defs:kgem
41 kgem_debug_get_reloc_entry(struct kgem *kgem, uint32_t offset)
47 for (i = 0; i < kgem->nreloc; i++)
48 if (kgem->reloc[i].offset == offset)
49 return kgem->reloc+i;
56 kgem_debug_get_bo_for_reloc_entry(struct kgem *kgem,
64 list_for_each_entry(bo, &kgem->next_request->buffers, request)
68 assert(&bo->request != &kgem->next_request->buffers);
73 static int kgem_debug_handle_is_fenced(struct kgem *kgem, uint32_t handle)
77 if (kgem->has_handle_lut)
78 return kgem->exec[handle].flags & EXEC_OBJECT_NEEDS_FENCE;
80 for (i = 0; i < kgem->nexec; i++)
81 if (kgem->exec[i].handle == handle)
82 return kgem->exec[i].flags & EXEC_OBJECT_NEEDS_FENCE;
87 static int kgem_debug_handle_tiling(struct kgem *kgem, uint32_t handle)
91 list_for_each_entry(bo, &kgem->next_request->buffers, request)
121 decode_nop(struct kgem *kgem, uint32_t offset)
123 uint32_t *data = kgem->batch + offset;
130 decode_mi(struct kgem *kgem, uint32_t offset)
161 uint32_t *data = kgem->batch + offset;
195 __decode_2d(struct kgem *kgem, uint32_t offset)
232 uint32_t *data = kgem->batch + offset;
271 reloc = kgem_debug_get_reloc_entry(kgem, offset+4);
276 kgem_debug_handle_is_fenced(kgem, reloc->target_handle),
277 kgem_debug_handle_tiling(kgem, reloc->target_handle));
279 assert(kgem->gen >= 040 ||
280 kgem_debug_handle_is_fenced(kgem, reloc->target_handle));
319 reloc = kgem_debug_get_reloc_entry(kgem, offset+4);
325 kgem_debug_handle_is_fenced(kgem, reloc->target_handle),
326 kgem_debug_handle_tiling(kgem, reloc->target_handle));
327 assert(kgem->gen >= 040 ||
328 kgem_debug_handle_is_fenced(kgem, reloc->target_handle));
334 reloc = kgem_debug_get_reloc_entry(kgem, offset+7);
340 kgem_debug_handle_is_fenced(kgem, reloc->target_handle),
341 kgem_debug_handle_tiling(kgem, reloc->target_handle));
342 assert(kgem->gen >= 040 ||
343 kgem_debug_handle_is_fenced(kgem, reloc->target_handle));
373 __decode_2d_gen8(struct kgem *kgem, uint32_t offset)
409 uint32_t *data = kgem->batch + offset;
448 reloc = kgem_debug_get_reloc_entry(kgem, offset+4);
453 kgem_debug_handle_is_fenced(kgem, reloc->target_handle),
454 kgem_debug_handle_tiling(kgem, reloc->target_handle));
494 reloc = kgem_debug_get_reloc_entry(kgem, offset+4);
500 kgem_debug_handle_is_fenced(kgem, reloc->target_handle),
501 kgem_debug_handle_tiling(kgem, reloc->target_handle));
507 reloc = kgem_debug_get_reloc_entry(kgem, offset+8);
513 kgem_debug_handle_is_fenced(kgem, reloc->target_handle),
514 kgem_debug_handle_tiling(kgem, reloc->target_handle));
543 static int (*decode_2d(int gen))(struct kgem*, uint32_t)
551 static int kgem_nop_decode_3d(struct kgem *kgem, uint32_t offset)
553 uint32_t *data = kgem->batch + offset;
557 static void kgem_nop_finish_state(struct kgem *kgem)
561 static int (*decode_3d(int gen))(struct kgem*, uint32_t)
581 static void (*finish_state(int gen))(struct kgem*)
601 void __kgem_batch_debug(struct kgem *kgem, uint32_t nbatch)
603 int (*const decode[])(struct kgem *, uint32_t) = {
606 decode_2d(kgem->gen),
607 decode_3d(kgem->gen),
612 int class = (kgem->batch[offset] & 0xe0000000) >> 29;
614 offset += decode[class](kgem, offset);
617 finish_state(kgem->gen)(kgem);