CP_LOAD_STATE6_0_STATE_SRC(SS6_INDIRECT) |
CP_LOAD_STATE6_0_STATE_BLOCK(SB6_CS_SHADER) |
CP_LOAD_STATE6_0_NUM_UNIT(v->instrlen));
- OUT_RELOCD(ring, v->bo, 0, 0, 0);
+ OUT_RELOC(ring, v->bo, 0, 0, 0);
}
static void
return bo;
}
+void
+fd_bo_mark_for_dump(struct fd_bo *bo)
+{
+ bo->flags |= FD_RELOC_DUMP;
+}
+
uint64_t fd_bo_get_iova(struct fd_bo *bo)
{
return bo->iova;
uint32_t handle, uint32_t size);
struct fd_bo * fd_bo_from_name(struct fd_device *dev, uint32_t name);
struct fd_bo * fd_bo_from_dmabuf(struct fd_device *dev, int fd);
+void fd_bo_mark_for_dump(struct fd_bo *bo);
uint64_t fd_bo_get_iova(struct fd_bo *bo);
struct fd_bo * fd_bo_ref(struct fd_bo *bo);
void fd_bo_del(struct fd_bo *bo);
__out_reloc(ring, bo, offset, or, shift, FD_RELOC_WRITE);
}
-static inline void
-OUT_RELOCD(struct fd_ringbuffer *ring, struct fd_bo *bo,
- uint32_t offset, uint64_t or, int32_t shift)
-{
- __out_reloc(ring, bo, offset, or, shift, FD_RELOC_DUMP);
-}
-
static inline void
OUT_RB(struct fd_ringbuffer *ring, struct fd_ringbuffer *target)
{
DRM_FREEDRENO_GEM_CACHE_WCOMBINE |
DRM_FREEDRENO_GEM_TYPE_KMEM,
"%s:%s", ir3_shader_stage(v), info->name);
+ /* Always include shaders in kernel crash dumps. */
+ fd_bo_mark_for_dump(v->bo);
memcpy(fd_bo_map(v->bo), bin, sz);
OUT_RING(ring, CP_LOAD_STATE_1_EXT_SRC_ADDR(0) |
CP_LOAD_STATE_1_STATE_TYPE(ST_SHADER));
} else {
- OUT_RELOCD(ring, so->bo, 0,
+ OUT_RELOC(ring, so->bo, 0,
CP_LOAD_STATE_1_STATE_TYPE(ST_SHADER), 0);
}
for (i = 0; i < sz; i++) {
OUT_RING(ring, CP_LOAD_STATE4_1_EXT_SRC_ADDR(0) |
CP_LOAD_STATE4_1_STATE_TYPE(ST4_SHADER));
} else {
- OUT_RELOCD(ring, so->bo, 0,
+ OUT_RELOC(ring, so->bo, 0,
CP_LOAD_STATE4_1_STATE_TYPE(ST4_SHADER), 0);
}
CP_LOAD_STATE4_1_STATE_TYPE(ST4_SHADER));
OUT_RING(ring, CP_LOAD_STATE4_2_EXT_SRC_ADDR_HI(0));
} else {
- OUT_RELOCD(ring, so->bo, 0,
+ OUT_RELOC(ring, so->bo, 0,
CP_LOAD_STATE4_1_STATE_TYPE(ST4_SHADER), 0);
}
CP_LOAD_STATE6_0_STATE_SRC(SS6_INDIRECT) |
CP_LOAD_STATE6_0_STATE_BLOCK(sb) |
CP_LOAD_STATE6_0_NUM_UNIT(so->instrlen));
- OUT_RELOCD(ring, so->bo, 0, 0, 0);
+ OUT_RELOC(ring, so->bo, 0, 0, 0);
}
/* Add any missing varyings needed for stream-out. Otherwise varyings not