Lines Matching refs:buffer
110 /* Force scanout/depth/stencil buffer allocation to be encrypted */
152 /* Set expected VRAM and GART usage for the buffer. */
157 * because they might never be moved back again. If a buffer is large enough,
158 * upload data by copying from a temporary GTT buffer.
181 * the same buffer where one of the contexts invalidates it while
218 struct si_resource *buffer = si_resource(buf);
221 util_range_destroy(&buffer->valid_buffer_range);
222 radeon_bo_reference(((struct si_screen*)screen)->ws, &buffer->buf, NULL);
223 util_idalloc_mt_free(&sscreen->buffer_ids, buffer->b.buffer_id_unique);
224 FREE_CL(buffer);
228 radeon_bo_reference(((struct si_screen*)screen)->ws, &tex->buffer, NULL);
232 struct si_resource *resource = &tex->buffer;
236 if (tex->cmask_buffer != &tex->buffer) {
244 /* Reallocate the buffer a update all resource bindings where the buffer is
247 * This is used to avoid CPU-GPU synchronizations, because it makes the buffer
261 * broken when the buffer is explicitly re-allocated.
266 /* Check if mapping this buffer would cause waiting for the GPU. */
269 /* Reallocate the buffer in the same pipe_resource. */
350 * 4) Is glMapBuffer on a shared buffer guaranteed to return the
364 /* See if the buffer range being mapped has never been initialized,
377 /* If a buffer in VRAM is too large and the range is discarded, don't
378 * map it directly. This makes sure that the buffer stays in VRAM.
394 /* At this point, the buffer is always idle. */
397 /* Fall back to a temporary buffer. */
407 /* Check if mapping this buffer would cause waiting for the GPU.
413 /* Do a wait-free write-only transfer using a temporary buffer. */
439 /* At this point, the buffer is always idle (we checked it above). */
443 /* Use a staging buffer in cached GTT for reads. */
455 /* Copy the VRAM buffer to the staging buffer. */
492 /* Copy the staging buffer into the original one. */
539 static void si_buffer_subdata(struct pipe_context *ctx, struct pipe_resource *buffer,
552 map = si_buffer_transfer_map(ctx, buffer, 0, usage, &box, &transfer);
606 struct pipe_resource buffer;
608 memset(&buffer, 0, sizeof buffer);
609 buffer.target = PIPE_BUFFER;
610 buffer.format = PIPE_FORMAT_R8_UNORM;
611 buffer.bind = 0;
612 buffer.usage = usage;
613 buffer.flags = flags;
614 buffer.width0 = size;
615 buffer.height0 = 1;
616 buffer.depth0 = 1;
617 buffer.array_size = 1;
618 return si_buffer_create(screen, &buffer, alignment);
643 /* Convert a user pointer to a buffer. */
738 * Since buffer commitment changes cannot be pipelined, we need to
739 * (a) flush any pending commands that refer to the buffer we're about