diff options
author | Nicolai Hähnle <nicolai.haehnle@amd.com> | 2016-09-07 10:50:59 +0200 |
---|---|---|
committer | Nicolai Hähnle <nicolai.haehnle@amd.com> | 2016-09-27 16:45:23 +0200 |
commit | ffa1c669ddb48c25bab3457b8b2bfcd255acc674 (patch) | |
tree | 24022c38863308cb6cd4661dfa043be2dd468fbd /src/gallium/winsys/amdgpu/drm/amdgpu_bo.h | |
parent | a3832590c60e3016a94bbba79072b2913585a672 (diff) |
winsys/amdgpu: enable buffer allocation from slabs
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Diffstat (limited to 'src/gallium/winsys/amdgpu/drm/amdgpu_bo.h')
-rw-r--r-- | src/gallium/winsys/amdgpu/drm/amdgpu_bo.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.h b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.h index e5b5cf538a8..1e25897b6c1 100644 --- a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.h +++ b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.h @@ -81,10 +81,22 @@ struct amdgpu_winsys_bo { struct pipe_fence_handle **fences; }; +struct amdgpu_slab { + struct pb_slab base; + struct amdgpu_winsys_bo *buffer; + struct amdgpu_winsys_bo *entries; +}; + bool amdgpu_bo_can_reclaim(struct pb_buffer *_buf); void amdgpu_bo_destroy(struct pb_buffer *_buf); void amdgpu_bo_init_functions(struct amdgpu_winsys *ws); +bool amdgpu_bo_can_reclaim_slab(void *priv, struct pb_slab_entry *entry); +struct pb_slab *amdgpu_bo_slab_alloc(void *priv, unsigned heap, + unsigned entry_size, + unsigned group_index); +void amdgpu_bo_slab_free(void *priv, struct pb_slab *slab); + static inline struct amdgpu_winsys_bo *amdgpu_winsys_bo(struct pb_buffer *bo) { @@ -92,6 +104,12 @@ struct amdgpu_winsys_bo *amdgpu_winsys_bo(struct pb_buffer *bo) } static inline +struct amdgpu_slab *amdgpu_slab(struct pb_slab *slab) +{ + return (struct amdgpu_slab *)slab; +} + +static inline void amdgpu_winsys_bo_reference(struct amdgpu_winsys_bo **dst, struct amdgpu_winsys_bo *src) { |