r600g: optimize r600_resource_va
Avoid calling get_radeon_bo and inline it.
This commit is contained in:
@@ -696,4 +696,12 @@ static INLINE unsigned r600_pack_float_12p4(float x)
|
|||||||
x >= 4096 ? 0xffff : x * 16;
|
x >= 4096 ? 0xffff : x * 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static INLINE uint64_t r600_resource_va(struct pipe_screen *screen, struct pipe_resource *resource)
|
||||||
|
{
|
||||||
|
struct r600_screen *rscreen = (struct r600_screen*)screen;
|
||||||
|
struct r600_resource *rresource = (struct r600_resource*)resource;
|
||||||
|
|
||||||
|
return rscreen->ws->buffer_get_virtual_address(rresource->cs_buf);
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -62,14 +62,3 @@ void r600_init_context_resource_functions(struct r600_context *r600)
|
|||||||
r600->context.transfer_destroy = u_transfer_destroy_vtbl;
|
r600->context.transfer_destroy = u_transfer_destroy_vtbl;
|
||||||
r600->context.transfer_inline_write = u_default_transfer_inline_write;
|
r600->context.transfer_inline_write = u_default_transfer_inline_write;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint64_t r600_resource_va(struct pipe_screen *screen, struct pipe_resource *resource)
|
|
||||||
{
|
|
||||||
struct r600_screen *rscreen = (struct r600_screen*)screen;
|
|
||||||
struct r600_resource *rresource = (struct r600_resource*)resource;
|
|
||||||
|
|
||||||
if (rresource->buf) {
|
|
||||||
return rscreen->ws->buffer_get_virtual_address(rresource->buf);
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
@@ -98,6 +98,4 @@ struct r600_context;
|
|||||||
|
|
||||||
void r600_upload_const_buffer(struct r600_context *rctx, struct r600_resource **rbuffer, uint32_t *offset);
|
void r600_upload_const_buffer(struct r600_context *rctx, struct r600_resource **rbuffer, uint32_t *offset);
|
||||||
|
|
||||||
uint64_t r600_resource_va(struct pipe_screen *screen, struct pipe_resource *resource);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -898,11 +898,9 @@ static boolean radeon_winsys_bo_get_handle(struct pb_buffer *buffer,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint64_t radeon_winsys_bo_va(struct pb_buffer *buffer)
|
static uint64_t radeon_winsys_bo_va(struct radeon_winsys_cs_handle *buf)
|
||||||
{
|
{
|
||||||
struct radeon_bo *bo = get_radeon_bo(buffer);
|
return ((struct radeon_bo*)buf)->va;
|
||||||
|
|
||||||
return bo->va;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void radeon_bomgr_init_functions(struct radeon_drm_winsys *ws)
|
void radeon_bomgr_init_functions(struct radeon_drm_winsys *ws)
|
||||||
|
@@ -255,7 +255,7 @@ struct radeon_winsys {
|
|||||||
* \param buf A winsys buffer object
|
* \param buf A winsys buffer object
|
||||||
* \return virtual address
|
* \return virtual address
|
||||||
*/
|
*/
|
||||||
uint64_t (*buffer_get_virtual_address)(struct pb_buffer *buf);
|
uint64_t (*buffer_get_virtual_address)(struct radeon_winsys_cs_handle *buf);
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
* Command submission.
|
* Command submission.
|
||||||
|
Reference in New Issue
Block a user