diff options
author | Nicolai Hähnle <nicolai.haehnle@amd.com> | 2016-09-07 10:37:42 +0200 |
---|---|---|
committer | Nicolai Hähnle <nicolai.haehnle@amd.com> | 2016-09-27 16:45:15 +0200 |
commit | a987e4377a0a11cf05ffe57c7f8596b82409a5d9 (patch) | |
tree | b2275e54299a40d35546a7d9438a2733c4e832c3 /src/gallium/winsys/amdgpu/drm/amdgpu_bo.h | |
parent | 5af9eef719cda5e45b69a0cd1fde135df5dd3fbc (diff) |
winsys/amdgpu: add slab entry structures to amdgpu_winsys_bo
Already adjust amdgpu_bo_map/unmap accordingly.
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 | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.h b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.h index 93cc83aa80a..e5b5cf538a8 100644 --- a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.h +++ b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.h @@ -35,20 +35,33 @@ #include "amdgpu_winsys.h" +#include "pipebuffer/pb_slab.h" + struct amdgpu_winsys_bo { struct pb_buffer base; - struct pb_cache_entry cache_entry; + union { + struct { + struct pb_cache_entry cache_entry; + + amdgpu_va_handle va_handle; + int map_count; + bool use_reusable_pool; + + struct list_head global_list_item; + } real; + struct { + struct pb_slab_entry entry; + struct amdgpu_winsys_bo *real; + } slab; + } u; struct amdgpu_winsys *ws; void *user_ptr; /* from buffer_from_ptr */ - amdgpu_bo_handle bo; - int map_count; + amdgpu_bo_handle bo; /* NULL for slab entries */ uint32_t unique_id; - amdgpu_va_handle va_handle; uint64_t va; enum radeon_bo_domain initial_domain; - bool use_reusable_pool; /* how many command streams is this bo referenced in? */ int num_cs_references; @@ -66,8 +79,6 @@ struct amdgpu_winsys_bo { unsigned num_fences; unsigned max_fences; struct pipe_fence_handle **fences; - - struct list_head global_list_item; }; bool amdgpu_bo_can_reclaim(struct pb_buffer *_buf); |