Lines Matching refs:dst
57 pipe_reference_init(struct pipe_reference *dst, unsigned count)
59 dst->count = count;
71 * Both 'dst' and 'src' may be NULL.
75 pipe_reference_described(struct pipe_reference *dst,
79 if (dst != src) {
87 if (dst) {
88 int count = p_atomic_dec_return(&dst->count);
89 assert(count != -1); /* dst had to be referenced */
90 debug_reference(dst, get_desc, -1);
100 pipe_reference(struct pipe_reference *dst, struct pipe_reference *src)
102 return pipe_reference_described(dst, src,
108 pipe_surface_reference(struct pipe_surface **dst, struct pipe_surface *src)
110 struct pipe_surface *old_dst = *dst;
117 *dst = src;
154 pipe_resource_reference(struct pipe_resource **dst, struct pipe_resource *src)
156 struct pipe_resource *old_dst = *dst;
164 *dst = src;
171 pipe_drop_resource_references(struct pipe_resource *dst, int num_refs)
173 int count = p_atomic_add_return(&dst->reference.count, -num_refs);
178 pipe_resource_destroy(dst);
201 * Set *dst to \p src with proper reference counting.
203 * The caller must guarantee that \p src and *dst were created in
207 pipe_sampler_view_reference(struct pipe_sampler_view **dst,
210 struct pipe_sampler_view *old_dst = *dst;
217 *dst = src;
221 pipe_so_target_reference(struct pipe_stream_output_target **dst,
224 struct pipe_stream_output_target *old_dst = *dst;
230 *dst = src;
234 pipe_vertex_state_reference(struct pipe_vertex_state **dst,
237 struct pipe_vertex_state *old_dst = *dst;
242 *dst = src;
246 pipe_vertex_buffer_unreference(struct pipe_vertex_buffer *dst)
248 if (dst->is_user_buffer)
249 dst->buffer.user = NULL;
251 pipe_resource_reference(&dst->buffer.resource, NULL);
255 pipe_vertex_buffer_reference(struct pipe_vertex_buffer *dst,
258 if (dst->buffer.resource == src->buffer.resource) {
260 dst->stride = src->stride;
261 dst->is_user_buffer = src->is_user_buffer;
262 dst->buffer_offset = src->buffer_offset;
266 pipe_vertex_buffer_unreference(dst);
268 * dst can be used as a hash key.
270 dst->stride = src->stride;
271 dst->is_user_buffer = src->is_user_buffer;
272 dst->buffer_offset = src->buffer_offset;
275 dst->buffer.user = src->buffer.user;
277 pipe_resource_reference(&dst->buffer.resource, src->buffer.resource);
483 struct pipe_resource *dst,
493 pipe->resource_copy_region(pipe, dst, 0, dst_offset, 0, 0, src, 0, &box);
711 util_copy_constant_buffer(struct pipe_constant_buffer *dst,
717 pipe_resource_reference(&dst->buffer, NULL);
718 dst->buffer = src->buffer;
720 pipe_resource_reference(&dst->buffer, src->buffer);
722 dst->buffer_offset = src->buffer_offset;
723 dst->buffer_size = src->buffer_size;
724 dst->user_buffer = src->user_buffer;
727 pipe_resource_reference(&dst->buffer, NULL);
728 dst->buffer_offset = 0;
729 dst->buffer_size = 0;
730 dst->user_buffer = NULL;
735 util_copy_shader_buffer(struct pipe_shader_buffer *dst,
739 pipe_resource_reference(&dst->buffer, src->buffer);
740 dst->buffer_offset = src->buffer_offset;
741 dst->buffer_size = src->buffer_size;
744 pipe_resource_reference(&dst->buffer, NULL);
745 dst->buffer_offset = 0;
746 dst->buffer_size = 0;
751 util_copy_image_view(struct pipe_image_view *dst,
755 pipe_resource_reference(&dst->resource, src->resource);
756 dst->format = src->format;
757 dst->access = src->access;
758 dst->shader_access = src->shader_access;
759 dst->u = src->u;
761 pipe_resource_reference(&dst->resource, NULL);
762 dst->format = PIPE_FORMAT_NONE;
763 dst->access = 0;
764 dst->shader_access = 0;
765 memset(&dst->u, 0, sizeof(dst->u));
817 const struct pipe_resource *dst = info->dst.resource;
819 if (dst->last_level != 0)
822 assert(info->dst.level == 0);
824 /* Make sure the dst box covers the whole resource. */
825 if (!(util_texrange_covers_whole_level(dst, 0,
827 info->dst.box.width, info->dst.box.height, info->dst.box.depth))) {
831 /* Make sure the mask actually updates all the channels present in the dst format. */
838 const struct util_format_description *format_desc = util_format_description(info->dst.format);