zink: make fb ref func return bool on free

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9665>
This commit is contained in:
Mike Blumenkrantz 2020-12-24 15:23:34 -05:00
parent cbe24a0e9c
commit 73fa8c2bdb
1 changed files with 6 additions and 2 deletions

View File

@ -70,17 +70,21 @@ zink_destroy_framebuffer(struct zink_screen *screen,
void void
debug_describe_zink_framebuffer(char* buf, const struct zink_framebuffer *ptr); debug_describe_zink_framebuffer(char* buf, const struct zink_framebuffer *ptr);
static inline void static inline bool
zink_framebuffer_reference(struct zink_screen *screen, zink_framebuffer_reference(struct zink_screen *screen,
struct zink_framebuffer **dst, struct zink_framebuffer **dst,
struct zink_framebuffer *src) struct zink_framebuffer *src)
{ {
struct zink_framebuffer *old_dst = *dst; struct zink_framebuffer *old_dst = *dst;
bool ret = false;
if (pipe_reference_described(&old_dst->reference, src ? &src->reference : NULL, if (pipe_reference_described(&old_dst->reference, src ? &src->reference : NULL,
(debug_reference_descriptor)debug_describe_zink_framebuffer)) (debug_reference_descriptor)debug_describe_zink_framebuffer)) {
zink_destroy_framebuffer(screen, old_dst); zink_destroy_framebuffer(screen, old_dst);
ret = true;
}
*dst = src; *dst = src;
return ret;
} }
#endif #endif