[PATCH 1/8] wined3d: Pass a wined3d_device_vk to wined3d_context_vk_create_bo().

Henri Verbeet hverbeet at gmail.com
Wed Nov 3 12:10:52 CDT 2021


On Wed, 3 Nov 2021 at 00:20, Zebediah Figura <zfigura at codeweavers.com> wrote:
> With the goal of making the context_vk parameter optional, so that we can
> allocate new BOs from the client thread.
>
This would mainly be for the wined3d_buffer_vk_create_buffer_object()
call in patch 8/8, but in the Vulkan backend, we can always get the
context through "device_vk->context_vk", provided we're inside an
init_3d()/uninit_3d() pair. I.e., the Vulkan backend can make Vulkan
calls from applications threads, it just needs synchronisation. I.e.,
I don't think the Vulkan backend needs this.

That said, I still think this change is probably the right thing to
do, but with a bit of a different justification. We'll likely need a
change like this for wined3d_context_gl_create_bo(), and then it makes
sense to make wined3d_context_vk_create_bo() a device function as well
for consistency.

> -static bool wined3d_context_vk_create_slab_bo(struct wined3d_context_vk *context_vk,
> +static bool wined3d_context_vk_create_slab_bo(struct wined3d_device_vk *device_vk, struct wined3d_context_vk *context_vk,
>          VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags memory_type, struct wined3d_bo_vk *bo)
>  {
If we're making this a device function, that should probably be called
wined3d_device_vk_create_slab_bo(), and be moved to device.c.

> -BOOL wined3d_context_vk_create_bo(struct wined3d_context_vk *context_vk, VkDeviceSize size,
> -        VkBufferUsageFlags usage, VkMemoryPropertyFlags memory_type, struct wined3d_bo_vk *bo)
> +BOOL wined3d_device_vk_create_bo(struct wined3d_device_vk *device_vk, struct wined3d_context_vk *context_vk,
> +        VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags memory_type, struct wined3d_bo_vk *bo)
>  {
If we're making this a device function, this should be moved to
device.c. And if we're touching this, be may as well use the standard
"bool" instead of "BOOL".



More information about the wine-devel mailing list