From: Nicolai Hähnle <nicolai.haeh...@amd.com> The radeonsi driver doesn't and shouldn't care about the buffer index. Only the virtual addresses matter. --- src/gallium/drivers/radeon/radeon_winsys.h | 3 +++ src/gallium/winsys/amdgpu/drm/amdgpu_cs.c | 9 --------- 2 files changed, 3 insertions(+), 9 deletions(-)
diff --git a/src/gallium/drivers/radeon/radeon_winsys.h b/src/gallium/drivers/radeon/radeon_winsys.h index 9693032..91f6e89 100644 --- a/src/gallium/drivers/radeon/radeon_winsys.h +++ b/src/gallium/drivers/radeon/radeon_winsys.h @@ -596,20 +596,23 @@ struct radeon_winsys { */ unsigned (*cs_add_buffer)(struct radeon_winsys_cs *cs, struct pb_buffer *buf, enum radeon_bo_usage usage, enum radeon_bo_domain domain, enum radeon_bo_priority priority); /** * Return the index of an already-added buffer. * + * Not supported on amdgpu. Drivers with GPUVM should not care about + * buffer indices. + * * \param cs Command stream * \param buf Buffer * \return The buffer index, or -1 if the buffer has not been added. */ int (*cs_lookup_buffer)(struct radeon_winsys_cs *cs, struct pb_buffer *buf); /** * Return true if there is enough memory in VRAM and GTT for the buffers * added so far. If the validation fails, all buffers which have diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c index df9859b..e2229ff 100644 --- a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c +++ b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c @@ -692,28 +692,20 @@ amdgpu_cs_add_const_preamble_ib(struct radeon_winsys_cs *rcs) cs->csc->request.ibs = &cs->csc->ib[IB_CONST_PREAMBLE]; cs->cst->request.number_of_ibs = 3; cs->cst->request.ibs = &cs->cst->ib[IB_CONST_PREAMBLE]; return &cs->const_preamble_ib.base; } #define OUT_CS(cs, value) (cs)->current.buf[(cs)->current.cdw++] = (value) -static int amdgpu_cs_lookup_buffer(struct radeon_winsys_cs *rcs, - struct pb_buffer *buf) -{ - struct amdgpu_cs *cs = amdgpu_cs(rcs); - - return amdgpu_lookup_buffer(cs->csc, (struct amdgpu_winsys_bo*)buf); -} - static bool amdgpu_cs_validate(struct radeon_winsys_cs *rcs) { return true; } static bool amdgpu_cs_check_space(struct radeon_winsys_cs *rcs, unsigned dw) { struct amdgpu_ib *ib = amdgpu_ib(rcs); struct amdgpu_cs *cs = amdgpu_cs_from_ib(ib); unsigned requested_size = rcs->prev_dw + rcs->current.cdw + dw; @@ -1111,21 +1103,20 @@ static bool amdgpu_bo_is_referenced(struct radeon_winsys_cs *rcs, void amdgpu_cs_init_functions(struct amdgpu_winsys *ws) { ws->base.ctx_create = amdgpu_ctx_create; ws->base.ctx_destroy = amdgpu_ctx_destroy; ws->base.ctx_query_reset_status = amdgpu_ctx_query_reset_status; ws->base.cs_create = amdgpu_cs_create; ws->base.cs_add_const_ib = amdgpu_cs_add_const_ib; ws->base.cs_add_const_preamble_ib = amdgpu_cs_add_const_preamble_ib; ws->base.cs_destroy = amdgpu_cs_destroy; ws->base.cs_add_buffer = amdgpu_cs_add_buffer; - ws->base.cs_lookup_buffer = amdgpu_cs_lookup_buffer; ws->base.cs_validate = amdgpu_cs_validate; ws->base.cs_check_space = amdgpu_cs_check_space; ws->base.cs_get_buffer_list = amdgpu_cs_get_buffer_list; ws->base.cs_flush = amdgpu_cs_flush; ws->base.cs_get_next_fence = amdgpu_cs_get_next_fence; ws->base.cs_is_buffer_referenced = amdgpu_bo_is_referenced; ws->base.cs_sync_flush = amdgpu_cs_sync_flush; ws->base.fence_wait = amdgpu_fence_wait_rel_timeout; ws->base.fence_reference = amdgpu_fence_reference; } -- 2.7.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev