Henri Verbeet : wined3d: Create a blitter for the Vulkan adapter.
Module: wine Branch: master Commit: 59ddd605842252da8406d94334302c494defa615 URL: https://source.winehq.org/git/wine.git/?a=commit;h=59ddd605842252da8406d9433... Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Thu Jun 6 17:39:08 2019 +0430 wined3d: Create a blitter for the Vulkan adapter. The CPU blitter isn't the fastest, but it should work. Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/wined3d/adapter_vk.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/dlls/wined3d/adapter_vk.c b/dlls/wined3d/adapter_vk.c index 0009818..0dc6458 100644 --- a/dlls/wined3d/adapter_vk.c +++ b/dlls/wined3d/adapter_vk.c @@ -416,12 +416,14 @@ static BOOL adapter_vk_check_format(const struct wined3d_adapter *adapter, static HRESULT adapter_vk_init_3d(struct wined3d_device *device) { + struct wined3d_device_vk *device_vk; struct wined3d_context *context_vk; HRESULT hr; TRACE("device %p.\n", device); - context_vk = &wined3d_device_vk(device)->context_vk; + device_vk = wined3d_device_vk(device); + context_vk = &device_vk->context_vk; if (FAILED(hr = wined3d_context_vk_init(context_vk, device->swapchains[0]))) { WARN("Failed to initialise context.\n"); @@ -437,6 +439,14 @@ static HRESULT adapter_vk_init_3d(struct wined3d_device *device) TRACE("Initialised context %p.\n", context_vk); + if (!(device_vk->d.blitter = wined3d_cpu_blitter_create())) + { + ERR("Failed to create CPU blitter.\n"); + device_context_remove(device, context_vk); + wined3d_context_cleanup(context_vk); + return E_FAIL; + } + return WINED3D_OK; } @@ -446,6 +456,8 @@ static void adapter_vk_uninit_3d(struct wined3d_device *device) TRACE("device %p.\n", device); + device->blitter->ops->blitter_destroy(device->blitter, NULL); + context_vk = &wined3d_device_vk(device)->context_vk; device_context_remove(device, context_vk); wined3d_context_cleanup(context_vk);
participants (1)
-
Alexandre Julliard