+
+void
+debug_describe_zink_gfx_program(char* buf, const struct zink_gfx_program *ptr);
+
+static inline void
+zink_gfx_program_reference(struct zink_screen *screen,
+ struct zink_gfx_program **dst,
+ struct zink_gfx_program *src)
+{
+ struct zink_gfx_program *old_dst = dst ? *dst : NULL;
+
+ if (pipe_reference_described(old_dst ? &old_dst->reference : NULL, &src->reference,
+ (debug_reference_descriptor)debug_describe_zink_gfx_program))
+ zink_destroy_gfx_program(screen, old_dst);
+ if (dst) *dst = src;
+}