Home | History | Annotate | Download | only in src

Lines Matching full:dbuf

98 ttmGetPool(struct _TTMBuffer *dBuf)
100 return containerOf(dBuf->buf.pool, struct _TTMPool, pool);
113 struct _TTMBuffer *dBuf = (struct _TTMBuffer *)
114 calloc(1, sizeof(*dBuf));
120 if (!dBuf)
126 ret = wsbmBufStorageInit(&dBuf->buf, pool);
130 ret = WSBM_COND_INIT(&dBuf->event);
144 dBuf->requestedSize = size;
145 dBuf->kBuf.gpuOffset = arg.rep.gpu_offset;
146 dBuf->mapHandle = arg.rep.map_handle;
147 dBuf->realSize = arg.rep.bo_size;
148 dBuf->kBuf.placement = arg.rep.placement;
149 dBuf->kBuf.handle = arg.rep.handle;
151 return &dBuf->buf;
154 WSBM_COND_FREE(&dBuf->event);
156 wsbmBufStorageTakedown(&dBuf->buf);
158 free(dBuf);
165 struct _TTMBuffer *dBuf = (struct _TTMBuffer *)calloc(1, sizeof(*dBuf));
170 if (!dBuf)
173 ret = wsbmBufStorageInit(&dBuf->buf, pool);
177 ret = WSBM_COND_INIT(&dBuf->event);
188 dBuf->requestedSize = arg.rep.bo_size;
189 dBuf->kBuf.gpuOffset = arg.rep.gpu_offset;
190 dBuf->mapHandle = arg.rep.map_handle;
191 dBuf->realSize = arg.rep.bo_size;
192 dBuf->kBuf.placement = arg.rep.placement;
193 dBuf->kBuf.handle = arg.rep.handle;
194 dBuf->kBuf.fence_type_mask = arg.rep.sync_object_arg;
196 return &dBuf->buf;
199 WSBM_COND_FREE(&dBuf->event);
201 wsbmBufStorageTakedown(&dBuf->buf);
203 free(dBuf);
210 struct _TTMBuffer *dBuf = ttmBuffer(*buf);
211 struct _TTMPool *ttmPool = ttmGetPool(dBuf);
215 if (dBuf->virtual != NULL) {
216 (void)munmap(dBuf->virtual, dBuf->requestedSize);
217 dBuf->virtual = NULL;
219 arg.handle = dBuf->kBuf.handle;
220 (void)drmCommandWrite(dBuf->buf.pool->fd,
224 WSBM_COND_FREE(&dBuf->event);
225 wsbmBufStorageTakedown(&dBuf->buf);
226 free(dBuf);
233 struct _TTMBuffer *dBuf = ttmBuffer(buf);
234 struct _TTMPool *ttmPool = ttmGetPool(dBuf);
239 while (dBuf->syncInProgress)
240 WSBM_COND_WAIT(&dBuf->event, &buf->mutex);
242 readers = dBuf->readers;
243 writers = dBuf->writers;
245 if ((mode & WSBM_SYNCCPU_READ) && (++dBuf->readers == 1))
248 if ((mode & WSBM_SYNCCPU_WRITE) && (++dBuf->writers == 1))
257 dBuf->syncInProgress = 1;
266 arg.handle = dBuf->kBuf.handle;
270 DRMRESTARTCOMMANDWRITE(dBuf->buf.pool->fd,
274 dBuf->syncInProgress = 0;
275 WSBM_COND_BROADCAST(&dBuf->event);
278 dBuf->readers = readers;
279 dBuf->writers = writers;
290 struct _TTMBuffer *dBuf = ttmBuffer(buf);
291 struct _TTMPool *ttmPool = ttmGetPool(dBuf);
294 while (dBuf->syncInProgress)
295 WSBM_COND_WAIT(&dBuf->event, &buf->mutex);
297 if ((mode & WSBM_SYNCCPU_READ) && (--dBuf->readers == 0))
300 if ((mode & WSBM_SYNCCPU_WRITE) && (--dBuf->writers == 0))
306 arg.handle = dBuf->kBuf.handle;
310 DRMRESTARTCOMMANDWRITE(dBuf->buf.pool->fd,
353 struct _TTMBuffer *dBuf = ttmBuffer(buf);
364 if (dBuf->virtual == NULL) {
366 virt = mmap(0, dBuf->requestedSize,
368 buf->pool->fd, dBuf->mapHandle);
370 virt = _temp_mmap(0, dBuf->requestedSize,
372 buf->pool->fd, dBuf->mapHandle);
378 dBuf->virtual = virt;
381 *virtual = dBuf->virtual;
398 struct _TTMBuffer *dBuf = ttmBuffer(buf);
400 return dBuf->kBuf.gpuOffset;
412 struct _TTMBuffer *dBuf = ttmBuffer(buf);
414 return dBuf->kBuf.placement;
420 struct _TTMBuffer *dBuf = ttmBuffer(buf);
422 return dBuf->realSize;
437 struct _TTMBuffer *dBuf = ttmBuffer(buf);
438 struct _TTMPool *ttmPool = ttmGetPool(dBuf);
443 req.handle = dBuf->kBuf.handle;
464 struct _TTMBuffer *dBuf = ttmBuffer(buf);
465 struct _TTMPool *ttmPool = ttmGetPool(dBuf);
472 req->handle = dBuf->kBuf.handle;
481 dBuf->kBuf.gpuOffset = rep->gpu_offset;
482 dBuf->kBuf.placement = rep->placement;
534 struct _TTMBuffer *dBuf = (struct _TTMBuffer *)
535 calloc(1, sizeof(*dBuf));
541 if (!dBuf)
547 ret = wsbmBufStorageInit(&dBuf->buf, pool);
551 ret = WSBM_COND_INIT(&dBuf->event);
565 dBuf->requestedSize = size;
566 dBuf->kBuf.gpuOffset = arg.rep.gpu_offset;
567 dBuf->mapHandle = arg.rep.map_handle;
568 dBuf->realSize = arg.rep.bo_size;
569 dBuf->kBuf.placement = arg.rep.placement;
570 dBuf->kBuf.handle = arg.rep.handle;
572 return &dBuf->buf;
575 WSBM_COND_FREE(&dBuf->event);
577 wsbmBufStorageTakedown(&dBuf->buf);
579 free(dBuf);