Lines Matching refs:buffer

46 /** Allocates a new drm_intel_bo to store the data for the buffer object. */
51 intel_obj->buffer = drm_intel_bo_alloc(intel->bufmgr, "bufferobj",
58 drm_intel_bo_unreference(intel_obj->buffer);
59 intel_obj->buffer = NULL;
77 obj->buffer = NULL;
83 * Deallocate/free a vertex/pixel buffer object.
102 drm_intel_bo_unreference(intel_obj->buffer);
109 * Allocate space for and store data in a buffer object. Any data that was
110 * previously stored in the buffer object is lost. If data is NULL,
136 if (intel_obj->buffer != NULL)
157 if (!intel_obj->buffer)
161 drm_intel_bo_subdata(intel_obj->buffer, 0, size, data);
169 * Replace data in a subrange of buffer object. If the data range
170 * specified by size + offset extends beyond the end of the buffer or
194 if (intel_obj->buffer == NULL) {
205 drm_intel_bo_busy(intel_obj->buffer) ||
206 drm_intel_bo_references(intel->batch.bo, intel_obj->buffer);
211 drm_intel_bo_unreference(intel_obj->buffer);
213 drm_intel_bo_subdata(intel_obj->buffer, 0, size, data);
216 "to a busy buffer object.\n");
223 intel_obj->buffer, offset,
231 if (drm_intel_bo_busy(intel_obj->buffer)) {
235 drm_intel_bo_subdata(intel_obj->buffer, offset, size, data);
256 if (drm_intel_bo_references(intel->batch.bo, intel_obj->buffer)) {
259 drm_intel_bo_get_subdata(intel_obj->buffer, offset, size, data);
269 * at the same time as they accumulate their buffer object. Without it,
271 * the buffer to put new data in.
274 * flushing the batchbuffer before mapping the buffer, which can save blocking
275 * in many cases. If we would still block, and they allow the whole buffer
276 * to be invalidated, then just allocate a new buffer to replace the old one.
277 * If not, and we'd block, and they allow the subrange of the buffer to be
305 if (!intel_obj->buffer || intel_obj->source) {
314 if (intel_obj->buffer == NULL) {
319 /* If the access is synchronized (like a normal buffer mapping), then get
321 * If the user doesn't care about existing buffer contents and mapping would
322 * cause us to block, then throw out the old buffer.
328 if (drm_intel_bo_references(intel->batch.bo, intel_obj->buffer)) {
330 drm_intel_bo_unreference(intel_obj->buffer);
335 } else if (drm_intel_bo_busy(intel_obj->buffer) &&
337 drm_intel_bo_unreference(intel_obj->buffer);
342 /* If the user is mapping a range of an active buffer object but
348 drm_intel_bo_busy(intel_obj->buffer)) {
368 drm_intel_gem_bo_map_unsynchronized(intel_obj->buffer);
370 drm_intel_gem_bo_map_gtt(intel_obj->buffer);
372 drm_intel_bo_map(intel_obj->buffer, (access & GL_MAP_WRITE_BIT) != 0);
375 obj->Pointer = intel_obj->buffer->virtual + offset;
393 /* Unless we're in the range map using a temporary system buffer,
407 intel_obj->buffer, obj->Offset + offset,
441 intel_obj->buffer, obj->Offset,
454 } else if (intel_obj->buffer != NULL) {
455 drm_intel_bo_unmap(intel_obj->buffer);
472 if (intel_obj->buffer == NULL) {
474 drm_intel_bo_subdata(intel_obj->buffer,
483 return intel_obj->buffer;
498 intel->upload.buffer);
536 intel->upload.buffer_len + delta + size > sizeof(intel->upload.buffer))
541 intel->upload.buffer);
545 if (size < sizeof(intel->upload.buffer))
552 memcpy(intel->upload.buffer + intel->upload.buffer_len, ptr, size);
576 intel->upload.buffer_len + delta + size > sizeof(intel->upload.buffer))
581 intel->upload.buffer);
585 if (size <= sizeof(intel->upload.buffer)) {
591 ptr = intel->upload.buffer + intel->upload.buffer_len;
607 if (size > sizeof(intel->upload.buffer)) {
624 if (intel_obj->buffer == NULL) {
627 &intel_obj->buffer, &intel_obj->offset);
632 return intel_obj->buffer;
653 /* The same buffer may be used, but note that regions copied may
699 intel_buffer_purgeable(drm_intel_bo *buffer)
703 if (buffer != NULL)
704 retained = drm_intel_bo_madvise (buffer, I915_MADV_DONTNEED);
716 if (intel_obj->buffer != NULL)
717 return intel_buffer_purgeable(intel_obj->buffer);
727 /* XXX Create the buffer and madvise(MADV_DONTNEED)? */
770 intel_buffer_unpurgeable(drm_intel_bo *buffer)
775 if (buffer != NULL)
776 retained = drm_intel_bo_madvise (buffer, I915_MADV_WILLNEED);
789 return intel_buffer_unpurgeable(intel_buffer_object (obj)->buffer);