Home | History | Annotate | Download | only in svga

Lines Matching refs:sbuf

77    struct svga_buffer *sbuf = svga_buffer(resource);
105 pipe_resource_reference(&sbuf->translated_indices.buffer, NULL);
108 if ((usage & PIPE_TRANSFER_READ) && sbuf->dirty) {
116 if (!sbuf->user) {
120 if (sbuf->dma.pending > 0) {
121 svga_buffer_upload_flush(svga, sbuf);
125 assert(sbuf->handle);
127 ret = SVGA3D_vgpu10_ReadbackSubResource(svga->swc, sbuf->handle, 0);
130 ret = SVGA3D_vgpu10_ReadbackSubResource(svga->swc, sbuf->handle, 0);
138 sbuf->dirty = FALSE;
151 if (sbuf->dma.pending) {
152 svga_buffer_upload_flush(svga, sbuf);
163 svga_buffer_destroy_hw_storage(ss, sbuf);
166 sbuf->map.num_ranges = 0;
167 sbuf->dma.flags.discard = TRUE;
171 if (!sbuf->map.num_ranges) {
177 sbuf->dma.flags.unsynchronized = TRUE;
187 if (sbuf->dma.pending) {
188 svga_buffer_upload_flush(svga, sbuf);
190 if (svga_buffer_has_hw_storage(sbuf)) {
222 sbuf->dma.flags.unsynchronized = FALSE;
226 if (!sbuf->swbuf && !svga_buffer_has_hw_storage(sbuf)) {
227 if (svga_buffer_create_hw_storage(ss, sbuf) != PIPE_OK) {
236 (sbuf->b.b.width0 + 1023)/1024);
239 sbuf->swbuf = align_malloc(sbuf->b.b.width0, 16);
240 if (!sbuf->swbuf) {
247 if (sbuf->swbuf) {
249 map = sbuf->swbuf;
251 else if (svga_buffer_has_hw_storage(sbuf)) {
254 map = svga_buffer_hw_storage_map(svga, sbuf, transfer->usage, &retry);
262 map = svga_buffer_hw_storage_map(svga, sbuf, transfer->usage, &retry);
270 ++sbuf->map.count;
291 struct svga_buffer *sbuf = svga_buffer(transfer->resource);
300 svga_buffer_add_range(sbuf, offset, offset + length);
311 struct svga_buffer *sbuf = svga_buffer(transfer->resource);
317 assert(sbuf->map.count);
318 if (sbuf->map.count) {
319 --sbuf->map.count;
322 if (svga_buffer_has_hw_storage(sbuf)) {
323 svga_buffer_hw_storage_unmap(svga, sbuf);
336 sbuf->dma.flags.discard = TRUE;
338 svga_buffer_add_range(sbuf, 0, sbuf->b.b.width0);
353 struct svga_buffer *sbuf = svga_buffer( buf );
357 assert(!sbuf->dma.pending);
359 if (sbuf->handle)
360 svga_buffer_destroy_host_surface(ss, sbuf);
362 if (sbuf->uploaded.buffer)
363 pipe_resource_reference(&sbuf->uploaded.buffer, NULL);
365 if (sbuf->hwbuf)
366 svga_buffer_destroy_hw_storage(ss, sbuf);
368 if (sbuf->swbuf && !sbuf->user)
369 align_free(sbuf->swbuf);
371 pipe_resource_reference(&sbuf->translated_indices.buffer, NULL);
373 ss->hud.total_resource_bytes -= sbuf->size;
378 FREE(sbuf);
398 struct svga_buffer *sbuf;
402 sbuf = CALLOC_STRUCT(svga_buffer);
403 if (!sbuf)
406 sbuf->b.b = *template;
407 sbuf->b.vtbl = &svga_buffer_vtbl;
408 pipe_reference_init(&sbuf->b.b.reference, 1);
409 sbuf->b.b.screen = screen;
410 sbuf->bind_flags = template->bind;
417 sbuf->bind_flags = PIPE_BIND_CONSTANT_BUFFER;
420 sbuf->b.b.width0 = align(sbuf->b.b.width0, 16);
436 sbuf->bind_flags |= (PIPE_BIND_VERTEX_BUFFER |
439 sbuf->bind_flags |= PIPE_BIND_STREAM_OUTPUT;
442 if (svga_buffer_create_host_surface(ss, sbuf) != PIPE_OK)
446 sbuf->swbuf = align_malloc(sbuf->b.b.width0, 64);
447 if (!sbuf->swbuf)
451 debug_reference(&sbuf->b.b.reference,
454 sbuf->size = util_resource_size(&sbuf->b.b);
455 ss->hud.total_resource_bytes += sbuf->size;
460 return &sbuf->b.b;
463 FREE(sbuf);
476 struct svga_buffer *sbuf;
479 sbuf = CALLOC_STRUCT(svga_buffer);
480 if (!sbuf)
483 pipe_reference_init(&sbuf->b.b.reference, 1);
484 sbuf->b.vtbl = &svga_buffer_vtbl;
485 sbuf->b.b.screen = screen;
486 sbuf->b.b.format = PIPE_FORMAT_R8_UNORM; /* ?? */
487 sbuf->b.b.usage = PIPE_USAGE_IMMUTABLE;
488 sbuf->b.b.bind = bind;
489 sbuf->b.b.width0 = bytes;
490 sbuf->b.b.height0 = 1;
491 sbuf->b.b.depth0 = 1;
492 sbuf->b.b.array_size = 1;
494 sbuf->bind_flags = bind;
495 sbuf->swbuf = ptr;
496 sbuf->user = TRUE;
498 debug_reference(&sbuf->b.b.reference,
503 return &sbuf->b.b;