X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Fvc4%2Fvc4_bufmgr.h;h=30a388ee59913e8beb1cbbb77107fd9d1612670f;hb=a5e7c12cedb8a91236dd3caf99133f86349702a9;hp=ecd0daa7c70f48742d93ebd1dfa270f58adebcd0;hpb=34ea1aca92ce20a95e4f5d41325fb965a2b96986;p=mesa.git diff --git a/src/gallium/drivers/vc4/vc4_bufmgr.h b/src/gallium/drivers/vc4/vc4_bufmgr.h index ecd0daa7c70..30a388ee599 100644 --- a/src/gallium/drivers/vc4/vc4_bufmgr.h +++ b/src/gallium/drivers/vc4/vc4_bufmgr.h @@ -66,17 +66,18 @@ struct vc4_bo *vc4_bo_alloc_shader(struct vc4_screen *screen, const void *data, uint32_t size); void vc4_bo_last_unreference(struct vc4_bo *bo); void vc4_bo_last_unreference_locked_timed(struct vc4_bo *bo, time_t time); -struct vc4_bo *vc4_bo_open_name(struct vc4_screen *screen, uint32_t name, - uint32_t winsys_stride); -struct vc4_bo *vc4_bo_open_dmabuf(struct vc4_screen *screen, int fd, - uint32_t winsys_stride); +struct vc4_bo *vc4_bo_open_name(struct vc4_screen *screen, uint32_t name); +struct vc4_bo *vc4_bo_open_dmabuf(struct vc4_screen *screen, int fd); bool vc4_bo_flink(struct vc4_bo *bo, uint32_t *name); int vc4_bo_get_dmabuf(struct vc4_bo *bo); +void vc4_bo_debug_describe(char* buf, const struct vc4_bo *ptr); static inline struct vc4_bo * vc4_bo_reference(struct vc4_bo *bo) { - pipe_reference(NULL, &bo->reference); + pipe_reference_described(NULL, &bo->reference, + (debug_reference_descriptor) + vc4_bo_debug_describe); return bo; } @@ -89,13 +90,18 @@ vc4_bo_unreference(struct vc4_bo **bo) if ((*bo)->private) { /* Avoid the mutex for private BOs */ - if (pipe_reference(&(*bo)->reference, NULL)) + if (pipe_reference_described(&(*bo)->reference, NULL, + (debug_reference_descriptor) + vc4_bo_debug_describe)) { vc4_bo_last_unreference(*bo); + } } else { screen = (*bo)->screen; mtx_lock(&screen->bo_handles_mutex); - if (pipe_reference(&(*bo)->reference, NULL)) { + if (pipe_reference_described(&(*bo)->reference, NULL, + (debug_reference_descriptor) + vc4_bo_debug_describe)) { util_hash_table_remove(screen->bo_handles, (void *)(uintptr_t)(*bo)->handle); vc4_bo_last_unreference(*bo); @@ -113,8 +119,11 @@ vc4_bo_unreference_locked_timed(struct vc4_bo **bo, time_t time) if (!*bo) return; - if (pipe_reference(&(*bo)->reference, NULL)) + if (pipe_reference_described(&(*bo)->reference, NULL, + (debug_reference_descriptor) + vc4_bo_debug_describe)) { vc4_bo_last_unreference_locked_timed(*bo, time); + } *bo = NULL; }