mirror of
https://github.com/ValveSoftware/Proton.git
synced 2025-01-15 08:08:18 +03:00
vrclient: Don't build DXVK support on 32-bit Mac
MoltenVK is 64-bit only, so DXVK will not be supported on 32-bit.
This commit is contained in:
parent
d8225e6a80
commit
565041c0e7
@ -15,7 +15,12 @@
|
|||||||
#include "vrclient_private.h"
|
#include "vrclient_private.h"
|
||||||
|
|
||||||
#include "initguid.h"
|
#include "initguid.h"
|
||||||
|
|
||||||
|
#if !defined(__APPLE__) || defined(__x86_64__)
|
||||||
|
/* 32-bit Mac doesn't support Vulkan and thus DXVK */
|
||||||
#include "dxvk-interop.h"
|
#include "dxvk-interop.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "wined3d-interop.h"
|
#include "wined3d-interop.h"
|
||||||
|
|
||||||
#include "cppIVRCompositor_IVRCompositor_021.h"
|
#include "cppIVRCompositor_IVRCompositor_021.h"
|
||||||
@ -478,9 +483,10 @@ EVRCompositorError ivrcompositor_submit(
|
|||||||
IUnknown *texture_iface, *depth_texture = NULL;
|
IUnknown *texture_iface, *depth_texture = NULL;
|
||||||
ID3D11Device *device;
|
ID3D11Device *device;
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
#if !defined(__APPLE__) || defined(__x86_64__)
|
||||||
IDXGIVkInteropSurface *dxvk_surface;
|
IDXGIVkInteropSurface *dxvk_surface;
|
||||||
IDXGIVkInteropDevice *dxvk_device;
|
IDXGIVkInteropDevice *dxvk_device;
|
||||||
|
#endif
|
||||||
|
|
||||||
TRACE("%p, %#x, %p, %p, %#x\n", linux_side, eye, texture, bounds, flags);
|
TRACE("%p, %#x, %p, %p, %#x\n", linux_side, eye, texture, bounds, flags);
|
||||||
|
|
||||||
@ -563,6 +569,7 @@ EVRCompositorError ivrcompositor_submit(
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !defined(__APPLE__) || defined(__x86_64__)
|
||||||
hr = texture_iface->lpVtbl->QueryInterface(texture_iface,
|
hr = texture_iface->lpVtbl->QueryInterface(texture_iface,
|
||||||
&IID_IDXGIVkInteropSurface, (void **)&dxvk_surface);
|
&IID_IDXGIVkInteropSurface, (void **)&dxvk_surface);
|
||||||
|
|
||||||
@ -640,6 +647,7 @@ EVRCompositorError ivrcompositor_submit(
|
|||||||
dxvk_surface->lpVtbl->Release(dxvk_surface);
|
dxvk_surface->lpVtbl->Release(dxvk_surface);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
ERR("Invalid D3D11 texture %p.\n", texture);
|
ERR("Invalid D3D11 texture %p.\n", texture);
|
||||||
return cpp_func(linux_side, eye, texture, bounds, flags);
|
return cpp_func(linux_side, eye, texture, bounds, flags);
|
||||||
@ -755,13 +763,17 @@ void ivrcompositor_post_present_handoff(void (*cpp_func)(void *),
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !defined(__APPLE__) || defined(__x86_64__)
|
||||||
if (user_data->dxvk_device)
|
if (user_data->dxvk_device)
|
||||||
user_data->dxvk_device->lpVtbl->LockSubmissionQueue(user_data->dxvk_device);
|
user_data->dxvk_device->lpVtbl->LockSubmissionQueue(user_data->dxvk_device);
|
||||||
|
#endif
|
||||||
|
|
||||||
cpp_func(linux_side);
|
cpp_func(linux_side);
|
||||||
|
|
||||||
|
#if !defined(__APPLE__) || defined(__x86_64__)
|
||||||
if (user_data->dxvk_device)
|
if (user_data->dxvk_device)
|
||||||
user_data->dxvk_device->lpVtbl->ReleaseSubmissionQueue(user_data->dxvk_device);
|
user_data->dxvk_device->lpVtbl->ReleaseSubmissionQueue(user_data->dxvk_device);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
struct explicit_timing_data
|
struct explicit_timing_data
|
||||||
@ -805,13 +817,17 @@ EVRCompositorError ivrcompositor_wait_get_poses(
|
|||||||
|
|
||||||
TRACE("%p, %p, %u, %p, %u\n", linux_side, render_poses, render_pose_count, game_poses, game_pose_count);
|
TRACE("%p, %p, %u, %p, %u\n", linux_side, render_poses, render_pose_count, game_poses, game_pose_count);
|
||||||
|
|
||||||
|
#if !defined(__APPLE__) || defined(__x86_64__)
|
||||||
if (user_data->dxvk_device)
|
if (user_data->dxvk_device)
|
||||||
user_data->dxvk_device->lpVtbl->LockSubmissionQueue(user_data->dxvk_device);
|
user_data->dxvk_device->lpVtbl->LockSubmissionQueue(user_data->dxvk_device);
|
||||||
|
#endif
|
||||||
|
|
||||||
r = cpp_func(linux_side, render_poses, render_pose_count, game_poses, game_pose_count);
|
r = cpp_func(linux_side, render_poses, render_pose_count, game_poses, game_pose_count);
|
||||||
|
|
||||||
|
#if !defined(__APPLE__) || defined(__x86_64__)
|
||||||
if (user_data->dxvk_device)
|
if (user_data->dxvk_device)
|
||||||
user_data->dxvk_device->lpVtbl->ReleaseSubmissionQueue(user_data->dxvk_device);
|
user_data->dxvk_device->lpVtbl->ReleaseSubmissionQueue(user_data->dxvk_device);
|
||||||
|
#endif
|
||||||
|
|
||||||
if ((wined3d_device = user_data->wined3d_device))
|
if ((wined3d_device = user_data->wined3d_device))
|
||||||
{
|
{
|
||||||
|
@ -57,7 +57,9 @@ struct compositor_data
|
|||||||
{
|
{
|
||||||
ID3D11Device *d3d11_device;
|
ID3D11Device *d3d11_device;
|
||||||
IWineD3D11Device *wined3d_device;
|
IWineD3D11Device *wined3d_device;
|
||||||
|
#if !defined(__APPLE__) || defined(__x86_64__)
|
||||||
IDXGIVkInteropDevice *dxvk_device;
|
IDXGIVkInteropDevice *dxvk_device;
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
void destroy_compositor_data(struct compositor_data *data);
|
void destroy_compositor_data(struct compositor_data *data);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user