Module: wine Branch: master Commit: 59f16dd564175847244ad31eab729b481b0c198d URL: https://source.winehq.org/git/wine.git/?a=commit;h=59f16dd564175847244ad31ea...
Author: Zebediah Figura zfigura@codeweavers.com Date: Tue Oct 12 16:15:44 2021 -0500
wined3d: Move the "users" field to a common wined3d_bo structure.
Signed-off-by: Zebediah Figura zfigura@codeweavers.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/wined3d/adapter_vk.c | 8 ++++---- dlls/wined3d/buffer.c | 4 ++-- dlls/wined3d/context_gl.c | 10 +++++----- dlls/wined3d/context_vk.c | 4 ++-- dlls/wined3d/view.c | 8 ++++---- dlls/wined3d/wined3d_private.h | 11 +++++++++-- 6 files changed, 26 insertions(+), 19 deletions(-)
diff --git a/dlls/wined3d/adapter_vk.c b/dlls/wined3d/adapter_vk.c index 5667cd8d0d3..fe738a4bcaa 100644 --- a/dlls/wined3d/adapter_vk.c +++ b/dlls/wined3d/adapter_vk.c @@ -939,13 +939,13 @@ static void *adapter_vk_map_bo_address(struct wined3d_context *context, if (wined3d_context_vk_create_bo(context_vk, bo->size, bo->usage, bo->memory_type, &tmp)) { bool host_synced = bo->host_synced; - list_move_head(&tmp.users, &bo->users); + list_move_head(&tmp.b.users, &bo->b.users); wined3d_context_vk_destroy_bo(context_vk, bo); *bo = tmp; bo->host_synced = host_synced; - list_init(&bo->users); - list_move_head(&bo->users, &tmp.users); - LIST_FOR_EACH_ENTRY(bo_user, &bo->users, struct wined3d_bo_user, entry) + list_init(&bo->b.users); + list_move_head(&bo->b.users, &tmp.b.users); + LIST_FOR_EACH_ENTRY(bo_user, &bo->b.users, struct wined3d_bo_user, entry) { bo_user->valid = false; } diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c index 3ea3bf4b180..e1a5ec26c29 100644 --- a/dlls/wined3d/buffer.c +++ b/dlls/wined3d/buffer.c @@ -193,7 +193,7 @@ static BOOL wined3d_buffer_gl_create_buffer_object(struct wined3d_buffer_gl *buf return FALSE; }
- list_add_head(&buffer_gl->bo.users, &buffer_gl->bo_user.entry); + list_add_head(&buffer_gl->bo.b.users, &buffer_gl->bo_user.entry); buffer_gl->b.buffer_object = (uintptr_t)bo; buffer_invalidate_bo_range(&buffer_gl->b, 0, 0);
@@ -1429,7 +1429,7 @@ static BOOL wined3d_buffer_vk_create_buffer_object(struct wined3d_buffer_vk *buf }
list_init(&buffer_vk->bo_user.entry); - list_add_head(&buffer_vk->bo.users, &buffer_vk->bo_user.entry); + list_add_head(&buffer_vk->bo.b.users, &buffer_vk->bo_user.entry); buffer_vk->b.buffer_object = (uintptr_t)&buffer_vk->bo; buffer_invalidate_bo_range(&buffer_vk->b, 0, 0);
diff --git a/dlls/wined3d/context_gl.c b/dlls/wined3d/context_gl.c index 0e4b900efe0..55782f1ba8e 100644 --- a/dlls/wined3d/context_gl.c +++ b/dlls/wined3d/context_gl.c @@ -2686,12 +2686,12 @@ static void *wined3d_bo_gl_map(struct wined3d_bo_gl *bo, if (wined3d_context_gl_create_bo(context_gl, bo->size, bo->binding, bo->usage, bo->coherent, bo->flags, &tmp)) { - list_move_head(&tmp.users, &bo->users); + list_move_head(&tmp.b.users, &bo->b.users); wined3d_context_gl_destroy_bo(context_gl, bo); *bo = tmp; - list_init(&bo->users); - list_move_head(&bo->users, &tmp.users); - LIST_FOR_EACH_ENTRY(bo_user, &bo->users, struct wined3d_bo_user, entry) + list_init(&bo->b.users); + list_move_head(&bo->b.users, &tmp.b.users); + LIST_FOR_EACH_ENTRY(bo_user, &bo->b.users, struct wined3d_bo_user, entry) { bo_user->valid = false; } @@ -2887,7 +2887,7 @@ bool wined3d_context_gl_create_bo(struct wined3d_context_gl *context_gl, GLsizei bo->usage = usage; bo->flags = flags; bo->coherent = coherent; - list_init(&bo->users); + list_init(&bo->b.users); bo->command_fence_id = 0;
return true; diff --git a/dlls/wined3d/context_vk.c b/dlls/wined3d/context_vk.c index af7b9fc1830..ebd8bbece89 100644 --- a/dlls/wined3d/context_vk.c +++ b/dlls/wined3d/context_vk.c @@ -413,7 +413,7 @@ static bool wined3d_context_vk_create_slab_bo(struct wined3d_context_vk *context bo->buffer_offset = idx * object_size; bo->memory_offset = slab->bo.memory_offset + bo->buffer_offset; bo->size = size; - list_init(&bo->users); + list_init(&bo->b.users); bo->command_buffer_id = 0; bo->host_synced = false;
@@ -492,7 +492,7 @@ BOOL wined3d_context_vk_create_bo(struct wined3d_context_vk *context_vk, VkDevic bo->size = size; bo->usage = usage; bo->memory_type = adapter_vk->memory_properties.memoryTypes[memory_type_idx].propertyFlags; - list_init(&bo->users); + list_init(&bo->b.users); bo->command_buffer_id = 0; bo->slab = NULL; bo->host_synced = false; diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c index 565d35d1c5a..a8b3a7b4f75 100644 --- a/dlls/wined3d/view.c +++ b/dlls/wined3d/view.c @@ -966,7 +966,7 @@ static void wined3d_shader_resource_view_gl_cs_init(void *object) context = context_acquire(resource->device, NULL, 0); create_buffer_view(&view_gl->gl_view, context, desc, buffer, view_format); view_gl->bo_user.valid = true; - list_add_head(&wined3d_buffer_gl(buffer)->bo.users, &view_gl->bo_user.entry); + list_add_head(&wined3d_buffer_gl(buffer)->bo.b.users, &view_gl->bo_user.entry); context_release(context); } else @@ -1096,7 +1096,7 @@ static void wined3d_shader_resource_view_vk_cs_init(void *object)
srv_vk->view_vk.u.vk_buffer_view = vk_buffer_view; srv_vk->view_vk.bo_user.valid = true; - list_add_head(&buffer_vk->bo.users, &srv_vk->view_vk.bo_user.entry); + list_add_head(&buffer_vk->bo.b.users, &srv_vk->view_vk.bo_user.entry);
return; } @@ -1646,7 +1646,7 @@ static void wined3d_unordered_access_view_gl_cs_init(void *object) context_gl = wined3d_context_gl(context_acquire(resource->device, NULL, 0)); create_buffer_view(&view_gl->gl_view, &context_gl->c, desc, buffer, view_gl->v.format); view_gl->bo_user.valid = true; - list_add_head(&wined3d_buffer_gl(buffer)->bo.users, &view_gl->bo_user.entry); + list_add_head(&wined3d_buffer_gl(buffer)->bo.b.users, &view_gl->bo_user.entry); if (desc->flags & (WINED3D_VIEW_BUFFER_COUNTER | WINED3D_VIEW_BUFFER_APPEND)) { struct wined3d_bo_gl *bo = &view_gl->counter_bo; @@ -2196,7 +2196,7 @@ static void wined3d_unordered_access_view_vk_cs_init(void *object)
uav_vk->view_vk.u.vk_buffer_view = vk_buffer_view; uav_vk->view_vk.bo_user.valid = true; - list_add_head(&buffer_vk->bo.users, &view_vk->bo_user.entry); + list_add_head(&buffer_vk->bo.b.users, &view_vk->bo_user.entry); }
if (desc->flags & (WINED3D_VIEW_BUFFER_COUNTER | WINED3D_VIEW_BUFFER_APPEND)) diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 0884ba5c023..ab262e3425c 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -1588,8 +1588,15 @@ do { \ #define checkGLcall(A) do {} while(0) #endif
+struct wined3d_bo +{ + struct list users; +}; + struct wined3d_bo_gl { + struct wined3d_bo b; + GLuint id; GLsizeiptr size; GLenum binding; @@ -1597,7 +1604,6 @@ struct wined3d_bo_gl
GLbitfield flags; bool coherent; - struct list users; uint64_t command_fence_id; };
@@ -1614,6 +1620,8 @@ struct wined3d_bo_user
struct wined3d_bo_vk { + struct wined3d_bo b; + VkBuffer vk_buffer; struct wined3d_allocator_block *memory; struct wined3d_bo_slab_vk *slab; @@ -1627,7 +1635,6 @@ struct wined3d_bo_vk VkBufferUsageFlags usage; VkMemoryPropertyFlags memory_type;
- struct list users; uint64_t command_buffer_id; bool host_synced; };