[PATCH 4/8] wined3d: Pass a wined3d_bo_vk pointer to wined3d_buffer_vk_create_buffer_object().
Zebediah Figura
zfigura at codeweavers.com
Tue Nov 2 18:20:09 CDT 2021
Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
---
dlls/wined3d/buffer.c | 34 +++++++++++++++++-----------------
1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
index d4efecb2241..56cce00301e 100644
--- a/dlls/wined3d/buffer.c
+++ b/dlls/wined3d/buffer.c
@@ -1399,10 +1399,10 @@ HRESULT wined3d_buffer_gl_init(struct wined3d_buffer_gl *buffer_gl, struct wined
return wined3d_buffer_init(&buffer_gl->b, device, desc, data, parent, parent_ops, &wined3d_buffer_gl_ops);
}
-static BOOL wined3d_buffer_vk_create_buffer_object(struct wined3d_buffer_vk *buffer_vk,
- struct wined3d_context_vk *context_vk)
+static BOOL wined3d_buffer_vk_create_buffer_object(const struct wined3d_buffer_vk *buffer_vk,
+ struct wined3d_context_vk *context_vk, struct wined3d_bo_vk *bo)
{
- struct wined3d_resource *resource = &buffer_vk->b.resource;
+ const struct wined3d_resource *resource = &buffer_vk->b.resource;
uint32_t bind_flags = resource->bind_flags;
VkMemoryPropertyFlags memory_type;
VkBufferUsageFlags usage;
@@ -1433,19 +1433,8 @@ static BOOL wined3d_buffer_vk_create_buffer_object(struct wined3d_buffer_vk *buf
else if (!(resource->usage & WINED3DUSAGE_DYNAMIC))
memory_type |= VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT;
- if (!(wined3d_device_vk_create_bo(wined3d_device_vk(resource->device),
- context_vk, resource->size, usage, memory_type, &buffer_vk->bo)))
- {
- WARN("Failed to create Vulkan buffer.\n");
- return FALSE;
- }
-
- list_init(&buffer_vk->b.bo_user.entry);
- list_add_head(&buffer_vk->bo.b.users, &buffer_vk->b.bo_user.entry);
- buffer_vk->b.buffer_object = (uintptr_t)&buffer_vk->bo;
- buffer_invalidate_bo_range(&buffer_vk->b, 0, 0);
-
- return TRUE;
+ return wined3d_device_vk_create_bo(wined3d_device_vk(resource->device),
+ context_vk, resource->size, usage, memory_type, bo);
}
const VkDescriptorBufferInfo *wined3d_buffer_vk_get_buffer_info(struct wined3d_buffer_vk *buffer_vk)
@@ -1464,6 +1453,8 @@ const VkDescriptorBufferInfo *wined3d_buffer_vk_get_buffer_info(struct wined3d_b
static BOOL wined3d_buffer_vk_prepare_location(struct wined3d_buffer *buffer,
struct wined3d_context *context, unsigned int location)
{
+ struct wined3d_buffer_vk *buffer_vk = wined3d_buffer_vk(buffer);
+
switch (location)
{
case WINED3D_LOCATION_SYSMEM:
@@ -1473,7 +1464,16 @@ static BOOL wined3d_buffer_vk_prepare_location(struct wined3d_buffer *buffer,
if (buffer->buffer_object)
return TRUE;
- return wined3d_buffer_vk_create_buffer_object(wined3d_buffer_vk(buffer), wined3d_context_vk(context));
+ if (!wined3d_buffer_vk_create_buffer_object(buffer_vk, wined3d_context_vk(context), &buffer_vk->bo))
+ {
+ WARN("Failed to create Vulkan buffer.\n");
+ return FALSE;
+ }
+
+ list_add_head(&buffer_vk->bo.b.users, &buffer_vk->b.bo_user.entry);
+ buffer_vk->b.buffer_object = (uintptr_t)&buffer_vk->bo;
+ buffer_invalidate_bo_range(&buffer_vk->b, 0, 0);
+ return TRUE;
default:
FIXME("Unhandled location %s.\n", wined3d_debug_location(location));
--
2.33.0
More information about the wine-devel
mailing list