Noticed that we weren't consistently making cmdstream buffers
gpu-readonly. Fix that and drop the need to pass flags to
fd_bo_new_ring().
Signed-off-by: Rob Clark <robdclark@chromium.org>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3663>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3663>
* to re-use cmdstream bo's for cmdstream and not unrelated purposes.
*/
struct fd_bo *
* to re-use cmdstream bo's for cmdstream and not unrelated purposes.
*/
struct fd_bo *
-fd_bo_new_ring(struct fd_device *dev, uint32_t size, uint32_t flags)
+fd_bo_new_ring(struct fd_device *dev, uint32_t size)
+ uint32_t flags = DRM_FREEDRENO_GEM_GPUREADONLY;
struct fd_bo *bo = bo_new(dev, size, flags, &dev->ring_cache);
if (bo)
bo->bo_reuse = RING_CACHE;
struct fd_bo *bo = bo_new(dev, size, flags, &dev->ring_cache);
if (bo)
bo->bo_reuse = RING_CACHE;
time_t free_time; /* time when added to bucket-list */
};
time_t free_time; /* time when added to bucket-list */
};
-struct fd_bo *fd_bo_new_ring(struct fd_device *dev,
- uint32_t size, uint32_t flags);
+struct fd_bo *fd_bo_new_ring(struct fd_device *dev, uint32_t size);
#define enable_debug 0 /* TODO make dynamic */
#define enable_debug 0 /* TODO make dynamic */
if (!suballoc_bo) {
// TODO possibly larger size for streaming bo?
if (!suballoc_bo) {
// TODO possibly larger size for streaming bo?
- msm_ring->ring_bo = fd_bo_new_ring(
- submit->pipe->dev, 0x8000, 0);
+ msm_ring->ring_bo = fd_bo_new_ring(submit->pipe->dev, 0x8000);
msm_ring->offset = 0;
} else {
msm_ring->ring_bo = fd_bo_ref(suballoc_bo);
msm_ring->offset = 0;
} else {
msm_ring->ring_bo = fd_bo_ref(suballoc_bo);
size = INIT_SIZE;
msm_ring->offset = 0;
size = INIT_SIZE;
msm_ring->offset = 0;
- msm_ring->ring_bo = fd_bo_new_ring(submit->pipe->dev, size, 0);
+ msm_ring->ring_bo = fd_bo_new_ring(submit->pipe->dev, size);
}
if (!msm_ringbuffer_init(msm_ring, size, flags))
}
if (!msm_ringbuffer_init(msm_ring, size, flags))
finalize_current_cmd(ring);
fd_bo_del(msm_ring->ring_bo);
finalize_current_cmd(ring);
fd_bo_del(msm_ring->ring_bo);
- msm_ring->ring_bo = fd_bo_new_ring(pipe->dev, size, 0);
+ msm_ring->ring_bo = fd_bo_new_ring(pipe->dev, size);
msm_ring->cmd = cmd_new(msm_ring->ring_bo);
ring->start = fd_bo_map(msm_ring->ring_bo);
msm_ring->cmd = cmd_new(msm_ring->ring_bo);
ring->start = fd_bo_map(msm_ring->ring_bo);
msm_ring->u.pipe = pipe;
msm_ring->offset = 0;
msm_ring->u.pipe = pipe;
msm_ring->offset = 0;
- msm_ring->ring_bo = fd_bo_new_ring(pipe->dev, size, 0);
+ msm_ring->ring_bo = fd_bo_new_ring(pipe->dev, size);
msm_ring->base.refcnt = 1;
msm_ring->u.reloc_bos = NULL;
msm_ring->base.refcnt = 1;
msm_ring->u.reloc_bos = NULL;
if (!suballoc_bo) {
// TODO possibly larger size for streaming bo?
if (!suballoc_bo) {
// TODO possibly larger size for streaming bo?
- msm_ring->ring_bo = fd_bo_new_ring(submit->pipe->dev,
- 0x8000, DRM_FREEDRENO_GEM_GPUREADONLY);
+ msm_ring->ring_bo = fd_bo_new_ring(submit->pipe->dev, 0x8000);
msm_ring->offset = 0;
} else {
msm_ring->ring_bo = fd_bo_ref(suballoc_bo);
msm_ring->offset = 0;
} else {
msm_ring->ring_bo = fd_bo_ref(suballoc_bo);
size = INIT_SIZE;
msm_ring->offset = 0;
size = INIT_SIZE;
msm_ring->offset = 0;
- msm_ring->ring_bo = fd_bo_new_ring(submit->pipe->dev, size,
- DRM_FREEDRENO_GEM_GPUREADONLY);
+ msm_ring->ring_bo = fd_bo_new_ring(submit->pipe->dev, size);
}
if (!msm_ringbuffer_sp_init(msm_ring, size, flags))
}
if (!msm_ringbuffer_sp_init(msm_ring, size, flags))
finalize_current_cmd(ring);
fd_bo_del(msm_ring->ring_bo);
finalize_current_cmd(ring);
fd_bo_del(msm_ring->ring_bo);
- msm_ring->ring_bo = fd_bo_new_ring(pipe->dev, size,
- DRM_FREEDRENO_GEM_GPUREADONLY);
+ msm_ring->ring_bo = fd_bo_new_ring(pipe->dev, size);
ring->start = fd_bo_map(msm_ring->ring_bo);
ring->end = &(ring->start[size/4]);
ring->start = fd_bo_map(msm_ring->ring_bo);
ring->end = &(ring->start[size/4]);
msm_ring->u.pipe = pipe;
msm_ring->offset = 0;
msm_ring->u.pipe = pipe;
msm_ring->offset = 0;
- msm_ring->ring_bo = fd_bo_new_ring(pipe->dev, size,
- DRM_FREEDRENO_GEM_GPUREADONLY);
+ msm_ring->ring_bo = fd_bo_new_ring(pipe->dev, size);
msm_ring->base.refcnt = 1;
return msm_ringbuffer_sp_init(msm_ring, size, _FD_RINGBUFFER_OBJECT);
msm_ring->base.refcnt = 1;
return msm_ringbuffer_sp_init(msm_ring, size, _FD_RINGBUFFER_OBJECT);