From f611285f5d5e6c7d19ea176abf34c16d4c1b9cdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Mon, 2 Oct 2023 20:49:03 +0200 Subject: [PATCH] vrclient: Move physical device wrapping to the unix side. CW-Bug-Id: #22729 --- vrclient_x64/Makefile.in | 2 + vrclient_x64/gen_wrapper.py | 4 +- .../cppIVRCompositor_IVRCompositor_019.cpp | 8 -- .../cppIVRCompositor_IVRCompositor_020.cpp | 8 -- .../cppIVRCompositor_IVRCompositor_021.cpp | 8 -- .../cppIVRCompositor_IVRCompositor_022.cpp | 8 -- .../cppIVRCompositor_IVRCompositor_024.cpp | 8 -- .../cppIVRCompositor_IVRCompositor_026.cpp | 8 -- .../cppIVRCompositor_IVRCompositor_027.cpp | 8 -- .../cppIVRSystem_IVRSystem_017.cpp | 8 -- .../cppIVRSystem_IVRSystem_019.cpp | 8 -- .../cppIVRSystem_IVRSystem_020.cpp | 8 -- .../cppIVRSystem_IVRSystem_021.cpp | 8 -- .../cppIVRSystem_IVRSystem_022.cpp | 8 -- vrclient_x64/vrclient_x64/unix_private.h | 6 + .../vrclient_x64/unix_vrcompositor_manual.cpp | 64 +++++++++++ .../vrclient_x64/unix_vrsystem_manual.cpp | 80 +++++++++++++ .../vrclient_x64/vrcompositor_manual.c | 105 ------------------ vrclient_x64/vrclient_x64/vrsystem_manual.c | 102 ----------------- vrclient_x64/vrclient_x64/winIVRCompositor.c | 98 ++++++++++++++-- vrclient_x64/vrclient_x64/winIVRSystem.c | 65 ++++++++++- 21 files changed, 305 insertions(+), 317 deletions(-) create mode 100644 vrclient_x64/vrclient_x64/unix_vrcompositor_manual.cpp create mode 100644 vrclient_x64/vrclient_x64/unix_vrsystem_manual.cpp diff --git a/vrclient_x64/Makefile.in b/vrclient_x64/Makefile.in index a2e45800..cb70d833 100644 --- a/vrclient_x64/Makefile.in +++ b/vrclient_x64/Makefile.in @@ -144,6 +144,8 @@ SOURCES = \ vrclient_x64/cppIVRTrackedCamera_IVRTrackedCamera_006.cpp \ vrclient_x64/json_converter.cpp \ vrclient_x64/jsoncpp.cpp \ + vrclient_x64/unix_vrcompositor_manual.cpp \ vrclient_x64/unix_vrrendermodels_manual.cpp \ + vrclient_x64/unix_vrsystem_manual.cpp \ vrclient_x64/unixlib.cpp \ vrclient_x64/unixlib_generated.cpp \ diff --git a/vrclient_x64/gen_wrapper.py b/vrclient_x64/gen_wrapper.py index 05fe3037..24947836 100755 --- a/vrclient_x64/gen_wrapper.py +++ b/vrclient_x64/gen_wrapper.py @@ -220,12 +220,12 @@ MANUAL_METHODS = { "IVRClientCore_GetGenericInterface": lambda ver, abi: abi == 'w', "IVRClientCore_Cleanup": lambda ver, abi: abi == 'w', "IVRSystem_GetDXGIOutputInfo": lambda ver, abi: abi == 'w', - "IVRSystem_GetOutputDevice": lambda ver, abi: abi == 'w' and ver > 16, + "IVRSystem_GetOutputDevice": lambda ver, abi: abi == 'u' and ver > 16, "IVRCompositor_Submit": lambda ver, abi: abi == 'w' and ver > 8, "IVRCompositor_SetSkyboxOverride": lambda ver, abi: abi == 'w' and ver > 8, "IVRCompositor_PostPresentHandoff": lambda ver, abi: abi == 'w', "IVRCompositor_WaitGetPoses": lambda ver, abi: abi == 'w' and ver > 15 and ver < 27, - "IVRCompositor_GetVulkanDeviceExtensionsRequired": lambda ver, abi: abi == 'w', + "IVRCompositor_GetVulkanDeviceExtensionsRequired": lambda ver, abi: abi == 'u', "IVRRenderModels_LoadTextureD3D11_Async": lambda ver, abi: abi == 'w', "IVRRenderModels_FreeTextureD3D11": lambda ver, abi: abi == 'w', "IVRRenderModels_LoadIntoTextureD3D11_Async": lambda ver, abi: abi == 'w', diff --git a/vrclient_x64/vrclient_x64/cppIVRCompositor_IVRCompositor_019.cpp b/vrclient_x64/vrclient_x64/cppIVRCompositor_IVRCompositor_019.cpp index aa5eac6f..689fdf6d 100644 --- a/vrclient_x64/vrclient_x64/cppIVRCompositor_IVRCompositor_019.cpp +++ b/vrclient_x64/vrclient_x64/cppIVRCompositor_IVRCompositor_019.cpp @@ -313,11 +313,3 @@ NTSTATUS IVRCompositor_IVRCompositor_019_GetVulkanInstanceExtensionsRequired( vo return 0; } -NTSTATUS IVRCompositor_IVRCompositor_019_GetVulkanDeviceExtensionsRequired( void *args ) -{ - struct IVRCompositor_IVRCompositor_019_GetVulkanDeviceExtensionsRequired_params *params = (struct IVRCompositor_IVRCompositor_019_GetVulkanDeviceExtensionsRequired_params *)args; - struct u_IVRCompositor_IVRCompositor_019 *iface = (struct u_IVRCompositor_IVRCompositor_019 *)params->linux_side; - params->_ret = (uint32_t)iface->GetVulkanDeviceExtensionsRequired( params->pPhysicalDevice, params->pchValue, params->unBufferSize ); - return 0; -} - diff --git a/vrclient_x64/vrclient_x64/cppIVRCompositor_IVRCompositor_020.cpp b/vrclient_x64/vrclient_x64/cppIVRCompositor_IVRCompositor_020.cpp index 2ac0b453..0aac064a 100644 --- a/vrclient_x64/vrclient_x64/cppIVRCompositor_IVRCompositor_020.cpp +++ b/vrclient_x64/vrclient_x64/cppIVRCompositor_IVRCompositor_020.cpp @@ -321,11 +321,3 @@ NTSTATUS IVRCompositor_IVRCompositor_020_GetVulkanInstanceExtensionsRequired( vo return 0; } -NTSTATUS IVRCompositor_IVRCompositor_020_GetVulkanDeviceExtensionsRequired( void *args ) -{ - struct IVRCompositor_IVRCompositor_020_GetVulkanDeviceExtensionsRequired_params *params = (struct IVRCompositor_IVRCompositor_020_GetVulkanDeviceExtensionsRequired_params *)args; - struct u_IVRCompositor_IVRCompositor_020 *iface = (struct u_IVRCompositor_IVRCompositor_020 *)params->linux_side; - params->_ret = (uint32_t)iface->GetVulkanDeviceExtensionsRequired( params->pPhysicalDevice, params->pchValue, params->unBufferSize ); - return 0; -} - diff --git a/vrclient_x64/vrclient_x64/cppIVRCompositor_IVRCompositor_021.cpp b/vrclient_x64/vrclient_x64/cppIVRCompositor_IVRCompositor_021.cpp index 3924facc..b61df0a4 100644 --- a/vrclient_x64/vrclient_x64/cppIVRCompositor_IVRCompositor_021.cpp +++ b/vrclient_x64/vrclient_x64/cppIVRCompositor_IVRCompositor_021.cpp @@ -321,14 +321,6 @@ NTSTATUS IVRCompositor_IVRCompositor_021_GetVulkanInstanceExtensionsRequired( vo return 0; } -NTSTATUS IVRCompositor_IVRCompositor_021_GetVulkanDeviceExtensionsRequired( void *args ) -{ - struct IVRCompositor_IVRCompositor_021_GetVulkanDeviceExtensionsRequired_params *params = (struct IVRCompositor_IVRCompositor_021_GetVulkanDeviceExtensionsRequired_params *)args; - struct u_IVRCompositor_IVRCompositor_021 *iface = (struct u_IVRCompositor_IVRCompositor_021 *)params->linux_side; - params->_ret = (uint32_t)iface->GetVulkanDeviceExtensionsRequired( params->pPhysicalDevice, params->pchValue, params->unBufferSize ); - return 0; -} - NTSTATUS IVRCompositor_IVRCompositor_021_SetExplicitTimingMode( void *args ) { struct IVRCompositor_IVRCompositor_021_SetExplicitTimingMode_params *params = (struct IVRCompositor_IVRCompositor_021_SetExplicitTimingMode_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVRCompositor_IVRCompositor_022.cpp b/vrclient_x64/vrclient_x64/cppIVRCompositor_IVRCompositor_022.cpp index 45fb06d2..00e5053b 100644 --- a/vrclient_x64/vrclient_x64/cppIVRCompositor_IVRCompositor_022.cpp +++ b/vrclient_x64/vrclient_x64/cppIVRCompositor_IVRCompositor_022.cpp @@ -321,14 +321,6 @@ NTSTATUS IVRCompositor_IVRCompositor_022_GetVulkanInstanceExtensionsRequired( vo return 0; } -NTSTATUS IVRCompositor_IVRCompositor_022_GetVulkanDeviceExtensionsRequired( void *args ) -{ - struct IVRCompositor_IVRCompositor_022_GetVulkanDeviceExtensionsRequired_params *params = (struct IVRCompositor_IVRCompositor_022_GetVulkanDeviceExtensionsRequired_params *)args; - struct u_IVRCompositor_IVRCompositor_022 *iface = (struct u_IVRCompositor_IVRCompositor_022 *)params->linux_side; - params->_ret = (uint32_t)iface->GetVulkanDeviceExtensionsRequired( params->pPhysicalDevice, params->pchValue, params->unBufferSize ); - return 0; -} - NTSTATUS IVRCompositor_IVRCompositor_022_SetExplicitTimingMode( void *args ) { struct IVRCompositor_IVRCompositor_022_SetExplicitTimingMode_params *params = (struct IVRCompositor_IVRCompositor_022_SetExplicitTimingMode_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVRCompositor_IVRCompositor_024.cpp b/vrclient_x64/vrclient_x64/cppIVRCompositor_IVRCompositor_024.cpp index d44afb11..a6675a72 100644 --- a/vrclient_x64/vrclient_x64/cppIVRCompositor_IVRCompositor_024.cpp +++ b/vrclient_x64/vrclient_x64/cppIVRCompositor_IVRCompositor_024.cpp @@ -321,14 +321,6 @@ NTSTATUS IVRCompositor_IVRCompositor_024_GetVulkanInstanceExtensionsRequired( vo return 0; } -NTSTATUS IVRCompositor_IVRCompositor_024_GetVulkanDeviceExtensionsRequired( void *args ) -{ - struct IVRCompositor_IVRCompositor_024_GetVulkanDeviceExtensionsRequired_params *params = (struct IVRCompositor_IVRCompositor_024_GetVulkanDeviceExtensionsRequired_params *)args; - struct u_IVRCompositor_IVRCompositor_024 *iface = (struct u_IVRCompositor_IVRCompositor_024 *)params->linux_side; - params->_ret = (uint32_t)iface->GetVulkanDeviceExtensionsRequired( params->pPhysicalDevice, params->pchValue, params->unBufferSize ); - return 0; -} - NTSTATUS IVRCompositor_IVRCompositor_024_SetExplicitTimingMode( void *args ) { struct IVRCompositor_IVRCompositor_024_SetExplicitTimingMode_params *params = (struct IVRCompositor_IVRCompositor_024_SetExplicitTimingMode_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVRCompositor_IVRCompositor_026.cpp b/vrclient_x64/vrclient_x64/cppIVRCompositor_IVRCompositor_026.cpp index 8d8e551f..785db8d5 100644 --- a/vrclient_x64/vrclient_x64/cppIVRCompositor_IVRCompositor_026.cpp +++ b/vrclient_x64/vrclient_x64/cppIVRCompositor_IVRCompositor_026.cpp @@ -321,14 +321,6 @@ NTSTATUS IVRCompositor_IVRCompositor_026_GetVulkanInstanceExtensionsRequired( vo return 0; } -NTSTATUS IVRCompositor_IVRCompositor_026_GetVulkanDeviceExtensionsRequired( void *args ) -{ - struct IVRCompositor_IVRCompositor_026_GetVulkanDeviceExtensionsRequired_params *params = (struct IVRCompositor_IVRCompositor_026_GetVulkanDeviceExtensionsRequired_params *)args; - struct u_IVRCompositor_IVRCompositor_026 *iface = (struct u_IVRCompositor_IVRCompositor_026 *)params->linux_side; - params->_ret = (uint32_t)iface->GetVulkanDeviceExtensionsRequired( params->pPhysicalDevice, params->pchValue, params->unBufferSize ); - return 0; -} - NTSTATUS IVRCompositor_IVRCompositor_026_SetExplicitTimingMode( void *args ) { struct IVRCompositor_IVRCompositor_026_SetExplicitTimingMode_params *params = (struct IVRCompositor_IVRCompositor_026_SetExplicitTimingMode_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVRCompositor_IVRCompositor_027.cpp b/vrclient_x64/vrclient_x64/cppIVRCompositor_IVRCompositor_027.cpp index 7511bde6..21059556 100644 --- a/vrclient_x64/vrclient_x64/cppIVRCompositor_IVRCompositor_027.cpp +++ b/vrclient_x64/vrclient_x64/cppIVRCompositor_IVRCompositor_027.cpp @@ -321,14 +321,6 @@ NTSTATUS IVRCompositor_IVRCompositor_027_GetVulkanInstanceExtensionsRequired( vo return 0; } -NTSTATUS IVRCompositor_IVRCompositor_027_GetVulkanDeviceExtensionsRequired( void *args ) -{ - struct IVRCompositor_IVRCompositor_027_GetVulkanDeviceExtensionsRequired_params *params = (struct IVRCompositor_IVRCompositor_027_GetVulkanDeviceExtensionsRequired_params *)args; - struct u_IVRCompositor_IVRCompositor_027 *iface = (struct u_IVRCompositor_IVRCompositor_027 *)params->linux_side; - params->_ret = (uint32_t)iface->GetVulkanDeviceExtensionsRequired( params->pPhysicalDevice, params->pchValue, params->unBufferSize ); - return 0; -} - NTSTATUS IVRCompositor_IVRCompositor_027_SetExplicitTimingMode( void *args ) { struct IVRCompositor_IVRCompositor_027_SetExplicitTimingMode_params *params = (struct IVRCompositor_IVRCompositor_027_SetExplicitTimingMode_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVRSystem_IVRSystem_017.cpp b/vrclient_x64/vrclient_x64/cppIVRSystem_IVRSystem_017.cpp index 37bc3c43..9936afc6 100644 --- a/vrclient_x64/vrclient_x64/cppIVRSystem_IVRSystem_017.cpp +++ b/vrclient_x64/vrclient_x64/cppIVRSystem_IVRSystem_017.cpp @@ -65,14 +65,6 @@ NTSTATUS IVRSystem_IVRSystem_017_GetDXGIOutputInfo( void *args ) return 0; } -NTSTATUS IVRSystem_IVRSystem_017_GetOutputDevice( void *args ) -{ - struct IVRSystem_IVRSystem_017_GetOutputDevice_params *params = (struct IVRSystem_IVRSystem_017_GetOutputDevice_params *)args; - struct u_IVRSystem_IVRSystem_017 *iface = (struct u_IVRSystem_IVRSystem_017 *)params->linux_side; - iface->GetOutputDevice( params->pnDevice, params->textureType, params->pInstance ); - return 0; -} - NTSTATUS IVRSystem_IVRSystem_017_IsDisplayOnDesktop( void *args ) { struct IVRSystem_IVRSystem_017_IsDisplayOnDesktop_params *params = (struct IVRSystem_IVRSystem_017_IsDisplayOnDesktop_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVRSystem_IVRSystem_019.cpp b/vrclient_x64/vrclient_x64/cppIVRSystem_IVRSystem_019.cpp index 0c77675f..43bb3a79 100644 --- a/vrclient_x64/vrclient_x64/cppIVRSystem_IVRSystem_019.cpp +++ b/vrclient_x64/vrclient_x64/cppIVRSystem_IVRSystem_019.cpp @@ -65,14 +65,6 @@ NTSTATUS IVRSystem_IVRSystem_019_GetDXGIOutputInfo( void *args ) return 0; } -NTSTATUS IVRSystem_IVRSystem_019_GetOutputDevice( void *args ) -{ - struct IVRSystem_IVRSystem_019_GetOutputDevice_params *params = (struct IVRSystem_IVRSystem_019_GetOutputDevice_params *)args; - struct u_IVRSystem_IVRSystem_019 *iface = (struct u_IVRSystem_IVRSystem_019 *)params->linux_side; - iface->GetOutputDevice( params->pnDevice, params->textureType, params->pInstance ); - return 0; -} - NTSTATUS IVRSystem_IVRSystem_019_IsDisplayOnDesktop( void *args ) { struct IVRSystem_IVRSystem_019_IsDisplayOnDesktop_params *params = (struct IVRSystem_IVRSystem_019_IsDisplayOnDesktop_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVRSystem_IVRSystem_020.cpp b/vrclient_x64/vrclient_x64/cppIVRSystem_IVRSystem_020.cpp index beee272b..b112b465 100644 --- a/vrclient_x64/vrclient_x64/cppIVRSystem_IVRSystem_020.cpp +++ b/vrclient_x64/vrclient_x64/cppIVRSystem_IVRSystem_020.cpp @@ -65,14 +65,6 @@ NTSTATUS IVRSystem_IVRSystem_020_GetDXGIOutputInfo( void *args ) return 0; } -NTSTATUS IVRSystem_IVRSystem_020_GetOutputDevice( void *args ) -{ - struct IVRSystem_IVRSystem_020_GetOutputDevice_params *params = (struct IVRSystem_IVRSystem_020_GetOutputDevice_params *)args; - struct u_IVRSystem_IVRSystem_020 *iface = (struct u_IVRSystem_IVRSystem_020 *)params->linux_side; - iface->GetOutputDevice( params->pnDevice, params->textureType, params->pInstance ); - return 0; -} - NTSTATUS IVRSystem_IVRSystem_020_IsDisplayOnDesktop( void *args ) { struct IVRSystem_IVRSystem_020_IsDisplayOnDesktop_params *params = (struct IVRSystem_IVRSystem_020_IsDisplayOnDesktop_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVRSystem_IVRSystem_021.cpp b/vrclient_x64/vrclient_x64/cppIVRSystem_IVRSystem_021.cpp index 27dff506..0d959a43 100644 --- a/vrclient_x64/vrclient_x64/cppIVRSystem_IVRSystem_021.cpp +++ b/vrclient_x64/vrclient_x64/cppIVRSystem_IVRSystem_021.cpp @@ -65,14 +65,6 @@ NTSTATUS IVRSystem_IVRSystem_021_GetDXGIOutputInfo( void *args ) return 0; } -NTSTATUS IVRSystem_IVRSystem_021_GetOutputDevice( void *args ) -{ - struct IVRSystem_IVRSystem_021_GetOutputDevice_params *params = (struct IVRSystem_IVRSystem_021_GetOutputDevice_params *)args; - struct u_IVRSystem_IVRSystem_021 *iface = (struct u_IVRSystem_IVRSystem_021 *)params->linux_side; - iface->GetOutputDevice( params->pnDevice, params->textureType, params->pInstance ); - return 0; -} - NTSTATUS IVRSystem_IVRSystem_021_IsDisplayOnDesktop( void *args ) { struct IVRSystem_IVRSystem_021_IsDisplayOnDesktop_params *params = (struct IVRSystem_IVRSystem_021_IsDisplayOnDesktop_params *)args; diff --git a/vrclient_x64/vrclient_x64/cppIVRSystem_IVRSystem_022.cpp b/vrclient_x64/vrclient_x64/cppIVRSystem_IVRSystem_022.cpp index f561d055..81b8cf18 100644 --- a/vrclient_x64/vrclient_x64/cppIVRSystem_IVRSystem_022.cpp +++ b/vrclient_x64/vrclient_x64/cppIVRSystem_IVRSystem_022.cpp @@ -65,14 +65,6 @@ NTSTATUS IVRSystem_IVRSystem_022_GetDXGIOutputInfo( void *args ) return 0; } -NTSTATUS IVRSystem_IVRSystem_022_GetOutputDevice( void *args ) -{ - struct IVRSystem_IVRSystem_022_GetOutputDevice_params *params = (struct IVRSystem_IVRSystem_022_GetOutputDevice_params *)args; - struct u_IVRSystem_IVRSystem_022 *iface = (struct u_IVRSystem_IVRSystem_022 *)params->linux_side; - iface->GetOutputDevice( params->pnDevice, params->textureType, params->pInstance ); - return 0; -} - NTSTATUS IVRSystem_IVRSystem_022_IsDisplayOnDesktop( void *args ) { struct IVRSystem_IVRSystem_022_IsDisplayOnDesktop_params *params = (struct IVRSystem_IVRSystem_022_IsDisplayOnDesktop_params *)args; diff --git a/vrclient_x64/vrclient_x64/unix_private.h b/vrclient_x64/vrclient_x64/unix_private.h index 4a32aae6..e76ce935 100644 --- a/vrclient_x64/vrclient_x64/unix_private.h +++ b/vrclient_x64/vrclient_x64/unix_private.h @@ -16,6 +16,12 @@ extern "C" { #endif /* __cplusplus */ +extern VkDevice_T *(WINAPI *p_get_native_VkDevice)( VkDevice_T * ); +extern VkInstance_T *(WINAPI *p_get_native_VkInstance)( VkInstance_T * ); +extern VkPhysicalDevice_T *(WINAPI *p_get_native_VkPhysicalDevice)( VkPhysicalDevice_T * ); +extern VkPhysicalDevice_T *(WINAPI *p_get_wrapped_VkPhysicalDevice)( VkInstance_T *, VkPhysicalDevice_T * ); +extern VkQueue_T *(WINAPI *p_get_native_VkQueue)( VkQueue_T * ); + #ifdef __cplusplus } /* extern "C" */ #endif /* __cplusplus */ diff --git a/vrclient_x64/vrclient_x64/unix_vrcompositor_manual.cpp b/vrclient_x64/vrclient_x64/unix_vrcompositor_manual.cpp new file mode 100644 index 00000000..084c3289 --- /dev/null +++ b/vrclient_x64/vrclient_x64/unix_vrcompositor_manual.cpp @@ -0,0 +1,64 @@ +#include "unix_private.h" + +NTSTATUS IVRCompositor_IVRCompositor_019_GetVulkanDeviceExtensionsRequired( void *args ) +{ + struct IVRCompositor_IVRCompositor_019_GetVulkanDeviceExtensionsRequired_params *params = (struct IVRCompositor_IVRCompositor_019_GetVulkanDeviceExtensionsRequired_params *)args; + struct u_IVRCompositor_IVRCompositor_019 *iface = (struct u_IVRCompositor_IVRCompositor_019 *)params->linux_side; + VkPhysicalDevice_T *host_device = p_get_native_VkPhysicalDevice( params->pPhysicalDevice ); + params->_ret = (uint32_t)iface->GetVulkanDeviceExtensionsRequired( host_device, params->pchValue, params->unBufferSize ); + return 0; +} + +NTSTATUS IVRCompositor_IVRCompositor_020_GetVulkanDeviceExtensionsRequired( void *args ) +{ + struct IVRCompositor_IVRCompositor_020_GetVulkanDeviceExtensionsRequired_params *params = (struct IVRCompositor_IVRCompositor_020_GetVulkanDeviceExtensionsRequired_params *)args; + struct u_IVRCompositor_IVRCompositor_020 *iface = (struct u_IVRCompositor_IVRCompositor_020 *)params->linux_side; + VkPhysicalDevice_T *host_device = p_get_native_VkPhysicalDevice( params->pPhysicalDevice ); + params->_ret = (uint32_t)iface->GetVulkanDeviceExtensionsRequired( host_device, params->pchValue, params->unBufferSize ); + return 0; +} + +NTSTATUS IVRCompositor_IVRCompositor_021_GetVulkanDeviceExtensionsRequired( void *args ) +{ + struct IVRCompositor_IVRCompositor_021_GetVulkanDeviceExtensionsRequired_params *params = (struct IVRCompositor_IVRCompositor_021_GetVulkanDeviceExtensionsRequired_params *)args; + struct u_IVRCompositor_IVRCompositor_021 *iface = (struct u_IVRCompositor_IVRCompositor_021 *)params->linux_side; + VkPhysicalDevice_T *host_device = p_get_native_VkPhysicalDevice( params->pPhysicalDevice ); + params->_ret = (uint32_t)iface->GetVulkanDeviceExtensionsRequired( host_device, params->pchValue, params->unBufferSize ); + return 0; +} + +NTSTATUS IVRCompositor_IVRCompositor_022_GetVulkanDeviceExtensionsRequired( void *args ) +{ + struct IVRCompositor_IVRCompositor_022_GetVulkanDeviceExtensionsRequired_params *params = (struct IVRCompositor_IVRCompositor_022_GetVulkanDeviceExtensionsRequired_params *)args; + struct u_IVRCompositor_IVRCompositor_022 *iface = (struct u_IVRCompositor_IVRCompositor_022 *)params->linux_side; + VkPhysicalDevice_T *host_device = p_get_native_VkPhysicalDevice( params->pPhysicalDevice ); + params->_ret = (uint32_t)iface->GetVulkanDeviceExtensionsRequired( host_device, params->pchValue, params->unBufferSize ); + return 0; +} + +NTSTATUS IVRCompositor_IVRCompositor_024_GetVulkanDeviceExtensionsRequired( void *args ) +{ + struct IVRCompositor_IVRCompositor_024_GetVulkanDeviceExtensionsRequired_params *params = (struct IVRCompositor_IVRCompositor_024_GetVulkanDeviceExtensionsRequired_params *)args; + struct u_IVRCompositor_IVRCompositor_024 *iface = (struct u_IVRCompositor_IVRCompositor_024 *)params->linux_side; + VkPhysicalDevice_T *host_device = p_get_native_VkPhysicalDevice( params->pPhysicalDevice ); + params->_ret = (uint32_t)iface->GetVulkanDeviceExtensionsRequired( host_device, params->pchValue, params->unBufferSize ); + return 0; +} + +NTSTATUS IVRCompositor_IVRCompositor_026_GetVulkanDeviceExtensionsRequired( void *args ) +{ + struct IVRCompositor_IVRCompositor_026_GetVulkanDeviceExtensionsRequired_params *params = (struct IVRCompositor_IVRCompositor_026_GetVulkanDeviceExtensionsRequired_params *)args; + struct u_IVRCompositor_IVRCompositor_026 *iface = (struct u_IVRCompositor_IVRCompositor_026 *)params->linux_side; + VkPhysicalDevice_T *host_device = p_get_native_VkPhysicalDevice( params->pPhysicalDevice ); + params->_ret = (uint32_t)iface->GetVulkanDeviceExtensionsRequired( host_device, params->pchValue, params->unBufferSize ); + return 0; +} + +NTSTATUS IVRCompositor_IVRCompositor_027_GetVulkanDeviceExtensionsRequired( void *args ) +{ + struct IVRCompositor_IVRCompositor_027_GetVulkanDeviceExtensionsRequired_params *params = (struct IVRCompositor_IVRCompositor_027_GetVulkanDeviceExtensionsRequired_params *)args; + struct u_IVRCompositor_IVRCompositor_027 *iface = (struct u_IVRCompositor_IVRCompositor_027 *)params->linux_side; + VkPhysicalDevice_T *host_device = p_get_native_VkPhysicalDevice( params->pPhysicalDevice ); + params->_ret = (uint32_t)iface->GetVulkanDeviceExtensionsRequired( host_device, params->pchValue, params->unBufferSize ); + return 0; +} diff --git a/vrclient_x64/vrclient_x64/unix_vrsystem_manual.cpp b/vrclient_x64/vrclient_x64/unix_vrsystem_manual.cpp new file mode 100644 index 00000000..b411e42f --- /dev/null +++ b/vrclient_x64/vrclient_x64/unix_vrsystem_manual.cpp @@ -0,0 +1,80 @@ +#include "unix_private.h" + +WINE_DEFAULT_DEBUG_CHANNEL(vrclient); + +static VkInstance_T *unwrap_instance( uint32_t type, VkInstance_T *instance ) +{ + if (type == TextureType_Vulkan) return p_get_native_VkInstance( instance ); + return instance; +} + +static uint64_t wrap_device( uint32_t type, VkInstance_T *instance, uint64_t device ) +{ + if (type == TextureType_Vulkan) + { + VkPhysicalDevice_T *phys_device = (VkPhysicalDevice_T *)( intptr_t)device; + return (uint64_t)(intptr_t)p_get_wrapped_VkPhysicalDevice( instance, phys_device ); + } + + return device; +} + +NTSTATUS IVRSystem_IVRSystem_017_GetOutputDevice( void *args ) +{ + struct IVRSystem_IVRSystem_017_GetOutputDevice_params *params = (struct IVRSystem_IVRSystem_017_GetOutputDevice_params *)args; + struct u_IVRSystem_IVRSystem_017 *iface = (struct u_IVRSystem_IVRSystem_017 *)params->linux_side; + VkInstance_T *host_instance = unwrap_instance( params->textureType, params->pInstance ); + uint64_t host_device; + + iface->GetOutputDevice( &host_device, params->textureType, host_instance ); + *params->pnDevice = wrap_device( params->textureType, params->pInstance, host_device ); + return 0; +} + +NTSTATUS IVRSystem_IVRSystem_019_GetOutputDevice( void *args ) +{ + struct IVRSystem_IVRSystem_019_GetOutputDevice_params *params = (struct IVRSystem_IVRSystem_019_GetOutputDevice_params *)args; + struct u_IVRSystem_IVRSystem_019 *iface = (struct u_IVRSystem_IVRSystem_019 *)params->linux_side; + VkInstance_T *host_instance = unwrap_instance( params->textureType, params->pInstance ); + uint64_t host_device; + + iface->GetOutputDevice( &host_device, params->textureType, host_instance ); + *params->pnDevice = wrap_device( params->textureType, params->pInstance, host_device ); + return 0; +} + +NTSTATUS IVRSystem_IVRSystem_020_GetOutputDevice( void *args ) +{ + struct IVRSystem_IVRSystem_020_GetOutputDevice_params *params = (struct IVRSystem_IVRSystem_020_GetOutputDevice_params *)args; + struct u_IVRSystem_IVRSystem_020 *iface = (struct u_IVRSystem_IVRSystem_020 *)params->linux_side; + VkInstance_T *host_instance = unwrap_instance( params->textureType, params->pInstance ); + uint64_t host_device; + + iface->GetOutputDevice( &host_device, params->textureType, host_instance ); + *params->pnDevice = wrap_device( params->textureType, params->pInstance, host_device ); + return 0; +} + +NTSTATUS IVRSystem_IVRSystem_021_GetOutputDevice( void *args ) +{ + struct IVRSystem_IVRSystem_021_GetOutputDevice_params *params = (struct IVRSystem_IVRSystem_021_GetOutputDevice_params *)args; + struct u_IVRSystem_IVRSystem_021 *iface = (struct u_IVRSystem_IVRSystem_021 *)params->linux_side; + VkInstance_T *host_instance = unwrap_instance( params->textureType, params->pInstance ); + uint64_t host_device; + + iface->GetOutputDevice( &host_device, params->textureType, host_instance ); + *params->pnDevice = wrap_device( params->textureType, params->pInstance, host_device ); + return 0; +} + +NTSTATUS IVRSystem_IVRSystem_022_GetOutputDevice( void *args ) +{ + struct IVRSystem_IVRSystem_022_GetOutputDevice_params *params = (struct IVRSystem_IVRSystem_022_GetOutputDevice_params *)args; + struct u_IVRSystem_IVRSystem_022 *iface = (struct u_IVRSystem_IVRSystem_022 *)params->linux_side; + VkInstance_T *host_instance = unwrap_instance( params->textureType, params->pInstance ); + uint64_t host_device; + + iface->GetOutputDevice( &host_device, params->textureType, host_instance ); + *params->pnDevice = wrap_device( params->textureType, params->pInstance, host_device ); + return 0; +} diff --git a/vrclient_x64/vrclient_x64/vrcompositor_manual.c b/vrclient_x64/vrclient_x64/vrcompositor_manual.c index 44623761..42ccb219 100644 --- a/vrclient_x64/vrclient_x64/vrcompositor_manual.c +++ b/vrclient_x64/vrclient_x64/vrcompositor_manual.c @@ -878,21 +878,6 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_019_SetSkyboxOverride( struct return params._ret; } -uint32_t __thiscall winIVRCompositor_IVRCompositor_019_GetVulkanDeviceExtensionsRequired( struct w_steam_iface *_this, VkPhysicalDevice_T *pPhysicalDevice, - char *pchValue, uint32_t unBufferSize ) -{ - struct IVRCompositor_IVRCompositor_019_GetVulkanDeviceExtensionsRequired_params params = - { - .linux_side = _this->u_iface, - .pPhysicalDevice = get_native_VkPhysicalDevice( pPhysicalDevice ), - .pchValue = pchValue, - .unBufferSize = unBufferSize, - }; - TRACE( "%p\n", _this ); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_019_GetVulkanDeviceExtensionsRequired, ¶ms ); - return params._ret; -} - uint32_t __thiscall winIVRCompositor_IVRCompositor_020_WaitGetPoses( struct w_steam_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount ) @@ -960,21 +945,6 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_020_SetSkyboxOverride( struct return params._ret; } -uint32_t __thiscall winIVRCompositor_IVRCompositor_020_GetVulkanDeviceExtensionsRequired( struct w_steam_iface *_this, VkPhysicalDevice_T *pPhysicalDevice, - char *pchValue, uint32_t unBufferSize ) -{ - struct IVRCompositor_IVRCompositor_020_GetVulkanDeviceExtensionsRequired_params params = - { - .linux_side = _this->u_iface, - .pPhysicalDevice = get_native_VkPhysicalDevice( pPhysicalDevice ), - .pchValue = pchValue, - .unBufferSize = unBufferSize, - }; - TRACE( "%p\n", _this ); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_020_GetVulkanDeviceExtensionsRequired, ¶ms ); - return params._ret; -} - uint32_t __thiscall winIVRCompositor_IVRCompositor_021_WaitGetPoses( struct w_steam_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount ) @@ -1074,21 +1044,6 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_021_SetSkyboxOverride( struct return params._ret; } -uint32_t __thiscall winIVRCompositor_IVRCompositor_021_GetVulkanDeviceExtensionsRequired( struct w_steam_iface *_this, VkPhysicalDevice_T *pPhysicalDevice, - char *pchValue, uint32_t unBufferSize ) -{ - struct IVRCompositor_IVRCompositor_021_GetVulkanDeviceExtensionsRequired_params params = - { - .linux_side = _this->u_iface, - .pPhysicalDevice = get_native_VkPhysicalDevice( pPhysicalDevice ), - .pchValue = pchValue, - .unBufferSize = unBufferSize, - }; - TRACE( "%p\n", _this ); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_021_GetVulkanDeviceExtensionsRequired, ¶ms ); - return params._ret; -} - uint32_t __thiscall winIVRCompositor_IVRCompositor_022_WaitGetPoses( struct w_steam_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount ) @@ -1188,21 +1143,6 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_022_SetSkyboxOverride( struct return params._ret; } -uint32_t __thiscall winIVRCompositor_IVRCompositor_022_GetVulkanDeviceExtensionsRequired( struct w_steam_iface *_this, VkPhysicalDevice_T *pPhysicalDevice, - char *pchValue, uint32_t unBufferSize ) -{ - struct IVRCompositor_IVRCompositor_022_GetVulkanDeviceExtensionsRequired_params params = - { - .linux_side = _this->u_iface, - .pPhysicalDevice = get_native_VkPhysicalDevice( pPhysicalDevice ), - .pchValue = pchValue, - .unBufferSize = unBufferSize, - }; - TRACE( "%p\n", _this ); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_022_GetVulkanDeviceExtensionsRequired, ¶ms ); - return params._ret; -} - uint32_t __thiscall winIVRCompositor_IVRCompositor_024_WaitGetPoses( struct w_steam_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount ) @@ -1302,21 +1242,6 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_024_SetSkyboxOverride( struct return params._ret; } -uint32_t __thiscall winIVRCompositor_IVRCompositor_024_GetVulkanDeviceExtensionsRequired( struct w_steam_iface *_this, VkPhysicalDevice_T *pPhysicalDevice, - char *pchValue, uint32_t unBufferSize ) -{ - struct IVRCompositor_IVRCompositor_024_GetVulkanDeviceExtensionsRequired_params params = - { - .linux_side = _this->u_iface, - .pPhysicalDevice = get_native_VkPhysicalDevice( pPhysicalDevice ), - .pchValue = pchValue, - .unBufferSize = unBufferSize, - }; - TRACE( "%p\n", _this ); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_024_GetVulkanDeviceExtensionsRequired, ¶ms ); - return params._ret; -} - uint32_t __thiscall winIVRCompositor_IVRCompositor_026_WaitGetPoses( struct w_steam_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount ) @@ -1416,21 +1341,6 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_026_SetSkyboxOverride( struct return params._ret; } -uint32_t __thiscall winIVRCompositor_IVRCompositor_026_GetVulkanDeviceExtensionsRequired( struct w_steam_iface *_this, VkPhysicalDevice_T *pPhysicalDevice, - char *pchValue, uint32_t unBufferSize ) -{ - struct IVRCompositor_IVRCompositor_026_GetVulkanDeviceExtensionsRequired_params params = - { - .linux_side = _this->u_iface, - .pPhysicalDevice = get_native_VkPhysicalDevice( pPhysicalDevice ), - .pchValue = pchValue, - .unBufferSize = unBufferSize, - }; - TRACE( "%p\n", _this ); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_026_GetVulkanDeviceExtensionsRequired, ¶ms ); - return params._ret; -} - uint32_t __thiscall winIVRCompositor_IVRCompositor_027_Submit( struct w_steam_iface *_this, uint32_t eEye, const w_Texture_t *pTexture, const VRTextureBounds_t *pBounds, uint32_t nSubmitFlags ) @@ -1494,18 +1404,3 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_027_SetSkyboxOverride( struct set_skybox_override_done( pTextures, unTextureCount ); return params._ret; } - -uint32_t __thiscall winIVRCompositor_IVRCompositor_027_GetVulkanDeviceExtensionsRequired( struct w_steam_iface *_this, VkPhysicalDevice_T *pPhysicalDevice, - char *pchValue, uint32_t unBufferSize ) -{ - struct IVRCompositor_IVRCompositor_027_GetVulkanDeviceExtensionsRequired_params params = - { - .linux_side = _this->u_iface, - .pPhysicalDevice = get_native_VkPhysicalDevice( pPhysicalDevice ), - .pchValue = pchValue, - .unBufferSize = unBufferSize, - }; - TRACE( "%p\n", _this ); - VRCLIENT_CALL( IVRCompositor_IVRCompositor_027_GetVulkanDeviceExtensionsRequired, ¶ms ); - return params._ret; -} diff --git a/vrclient_x64/vrclient_x64/vrsystem_manual.c b/vrclient_x64/vrclient_x64/vrsystem_manual.c index f539d819..6ae2ae1a 100644 --- a/vrclient_x64/vrclient_x64/vrsystem_manual.c +++ b/vrclient_x64/vrclient_x64/vrsystem_manual.c @@ -2,23 +2,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(vrclient); -static VkInstance_T *unwrap_instance( uint32_t type, VkInstance_T *instance ) -{ - if (type == TextureType_Vulkan) return get_native_VkInstance( instance ); - return instance; -} - -static uint64_t wrap_device( uint32_t type, VkInstance_T *instance, uint64_t device ) -{ - if (type == TextureType_Vulkan) - { - VkPhysicalDevice_T *phys_device = (VkPhysicalDevice_T *)( intptr_t)device; - return (uint64_t)( intptr_t)get_wrapped_VkPhysicalDevice( instance, phys_device ); - } - - return device; -} - void __thiscall winIVRSystem_IVRSystem_003_GetDXGIOutputInfo( struct w_steam_iface *_this, int32_t *pnAdapterIndex, int32_t *pnAdapterOutputIndex ) { @@ -99,111 +82,26 @@ void __thiscall winIVRSystem_IVRSystem_017_GetDXGIOutputInfo( struct w_steam_ifa *pnAdapterIndex = 0; } -void __thiscall winIVRSystem_IVRSystem_017_GetOutputDevice( struct w_steam_iface *_this, uint64_t *pnDevice, - uint32_t textureType, VkInstance_T *pInstance ) -{ - struct IVRSystem_IVRSystem_017_GetOutputDevice_params params = - { - .linux_side = _this->u_iface, - .pnDevice = pnDevice, - .textureType = textureType, - .pInstance = unwrap_instance( textureType, pInstance ), - }; - - TRACE( "%p\n", _this ); - - VRCLIENT_CALL( IVRSystem_IVRSystem_017_GetOutputDevice, ¶ms ); - *pnDevice = wrap_device( textureType, pInstance, *pnDevice ); -} - void __thiscall winIVRSystem_IVRSystem_019_GetDXGIOutputInfo( struct w_steam_iface *_this, int32_t *pnAdapterIndex ) { FIXME( "%p\n", _this ); *pnAdapterIndex = 0; } -void __thiscall winIVRSystem_IVRSystem_019_GetOutputDevice( struct w_steam_iface *_this, uint64_t *pnDevice, - uint32_t textureType, VkInstance_T *pInstance ) -{ - struct IVRSystem_IVRSystem_019_GetOutputDevice_params params = - { - .linux_side = _this->u_iface, - .pnDevice = pnDevice, - .textureType = textureType, - .pInstance = unwrap_instance( textureType, pInstance ), - }; - - TRACE( "%p\n", _this ); - - VRCLIENT_CALL( IVRSystem_IVRSystem_019_GetOutputDevice, ¶ms ); - *pnDevice = wrap_device( textureType, pInstance, *pnDevice ); -} - void __thiscall winIVRSystem_IVRSystem_020_GetDXGIOutputInfo( struct w_steam_iface *_this, int32_t *pnAdapterIndex ) { FIXME( "%p\n", _this ); *pnAdapterIndex = 0; } -void __thiscall winIVRSystem_IVRSystem_020_GetOutputDevice( struct w_steam_iface *_this, uint64_t *pnDevice, - uint32_t textureType, VkInstance_T *pInstance ) -{ - struct IVRSystem_IVRSystem_020_GetOutputDevice_params params = - { - .linux_side = _this->u_iface, - .pnDevice = pnDevice, - .textureType = textureType, - .pInstance = unwrap_instance( textureType, pInstance ), - }; - - TRACE( "%p\n", _this ); - - VRCLIENT_CALL( IVRSystem_IVRSystem_020_GetOutputDevice, ¶ms ); - *pnDevice = wrap_device( textureType, pInstance, *pnDevice ); -} - void __thiscall winIVRSystem_IVRSystem_021_GetDXGIOutputInfo( struct w_steam_iface *_this, int32_t *pnAdapterIndex ) { FIXME( "%p\n", _this ); *pnAdapterIndex = 0; } -void __thiscall winIVRSystem_IVRSystem_021_GetOutputDevice( struct w_steam_iface *_this, uint64_t *pnDevice, - uint32_t textureType, VkInstance_T *pInstance ) -{ - struct IVRSystem_IVRSystem_021_GetOutputDevice_params params = - { - .linux_side = _this->u_iface, - .pnDevice = pnDevice, - .textureType = textureType, - .pInstance = unwrap_instance( textureType, pInstance ), - }; - - TRACE( "%p\n", _this ); - - VRCLIENT_CALL( IVRSystem_IVRSystem_021_GetOutputDevice, ¶ms ); - *pnDevice = wrap_device( textureType, pInstance, *pnDevice ); -} - void __thiscall winIVRSystem_IVRSystem_022_GetDXGIOutputInfo( struct w_steam_iface *_this, int32_t *pnAdapterIndex ) { FIXME( "%p\n", _this ); *pnAdapterIndex = 0; } - -void __thiscall winIVRSystem_IVRSystem_022_GetOutputDevice( struct w_steam_iface *_this, uint64_t *pnDevice, - uint32_t textureType, VkInstance_T *pInstance ) -{ - struct IVRSystem_IVRSystem_022_GetOutputDevice_params params = - { - .linux_side = _this->u_iface, - .pnDevice = pnDevice, - .textureType = textureType, - .pInstance = unwrap_instance( textureType, pInstance ), - }; - - TRACE( "%p\n", _this ); - - VRCLIENT_CALL( IVRSystem_IVRSystem_022_GetOutputDevice, ¶ms ); - *pnDevice = wrap_device( textureType, pInstance, *pnDevice ); -} diff --git a/vrclient_x64/vrclient_x64/winIVRCompositor.c b/vrclient_x64/vrclient_x64/winIVRCompositor.c index 3d044842..2a020b20 100644 --- a/vrclient_x64/vrclient_x64/winIVRCompositor.c +++ b/vrclient_x64/vrclient_x64/winIVRCompositor.c @@ -6485,7 +6485,19 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_019_GetVulkanInstanceExtensio return params._ret; } -extern uint32_t __thiscall winIVRCompositor_IVRCompositor_019_GetVulkanDeviceExtensionsRequired(struct w_steam_iface *_this, VkPhysicalDevice_T *pPhysicalDevice, char *pchValue, uint32_t unBufferSize); +uint32_t __thiscall winIVRCompositor_IVRCompositor_019_GetVulkanDeviceExtensionsRequired(struct w_steam_iface *_this, VkPhysicalDevice_T *pPhysicalDevice, char *pchValue, uint32_t unBufferSize) +{ + struct IVRCompositor_IVRCompositor_019_GetVulkanDeviceExtensionsRequired_params params = + { + .linux_side = _this->u_iface, + .pPhysicalDevice = pPhysicalDevice, + .pchValue = pchValue, + .unBufferSize = unBufferSize, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_019_GetVulkanDeviceExtensionsRequired, ¶ms ); + return params._ret; +} extern vtable_ptr winIVRCompositor_IVRCompositor_019_vtable; @@ -7081,7 +7093,19 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_020_GetVulkanInstanceExtensio return params._ret; } -extern uint32_t __thiscall winIVRCompositor_IVRCompositor_020_GetVulkanDeviceExtensionsRequired(struct w_steam_iface *_this, VkPhysicalDevice_T *pPhysicalDevice, char *pchValue, uint32_t unBufferSize); +uint32_t __thiscall winIVRCompositor_IVRCompositor_020_GetVulkanDeviceExtensionsRequired(struct w_steam_iface *_this, VkPhysicalDevice_T *pPhysicalDevice, char *pchValue, uint32_t unBufferSize) +{ + struct IVRCompositor_IVRCompositor_020_GetVulkanDeviceExtensionsRequired_params params = + { + .linux_side = _this->u_iface, + .pPhysicalDevice = pPhysicalDevice, + .pchValue = pchValue, + .unBufferSize = unBufferSize, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_020_GetVulkanDeviceExtensionsRequired, ¶ms ); + return params._ret; +} extern vtable_ptr winIVRCompositor_IVRCompositor_020_vtable; @@ -7681,7 +7705,19 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_021_GetVulkanInstanceExtensio return params._ret; } -extern uint32_t __thiscall winIVRCompositor_IVRCompositor_021_GetVulkanDeviceExtensionsRequired(struct w_steam_iface *_this, VkPhysicalDevice_T *pPhysicalDevice, char *pchValue, uint32_t unBufferSize); +uint32_t __thiscall winIVRCompositor_IVRCompositor_021_GetVulkanDeviceExtensionsRequired(struct w_steam_iface *_this, VkPhysicalDevice_T *pPhysicalDevice, char *pchValue, uint32_t unBufferSize) +{ + struct IVRCompositor_IVRCompositor_021_GetVulkanDeviceExtensionsRequired_params params = + { + .linux_side = _this->u_iface, + .pPhysicalDevice = pPhysicalDevice, + .pchValue = pchValue, + .unBufferSize = unBufferSize, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_021_GetVulkanDeviceExtensionsRequired, ¶ms ); + return params._ret; +} void __thiscall winIVRCompositor_IVRCompositor_021_SetExplicitTimingMode(struct w_steam_iface *_this, bool bExplicitTimingMode) { @@ -8310,7 +8346,19 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_022_GetVulkanInstanceExtensio return params._ret; } -extern uint32_t __thiscall winIVRCompositor_IVRCompositor_022_GetVulkanDeviceExtensionsRequired(struct w_steam_iface *_this, VkPhysicalDevice_T *pPhysicalDevice, char *pchValue, uint32_t unBufferSize); +uint32_t __thiscall winIVRCompositor_IVRCompositor_022_GetVulkanDeviceExtensionsRequired(struct w_steam_iface *_this, VkPhysicalDevice_T *pPhysicalDevice, char *pchValue, uint32_t unBufferSize) +{ + struct IVRCompositor_IVRCompositor_022_GetVulkanDeviceExtensionsRequired_params params = + { + .linux_side = _this->u_iface, + .pPhysicalDevice = pPhysicalDevice, + .pchValue = pchValue, + .unBufferSize = unBufferSize, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_022_GetVulkanDeviceExtensionsRequired, ¶ms ); + return params._ret; +} void __thiscall winIVRCompositor_IVRCompositor_022_SetExplicitTimingMode(struct w_steam_iface *_this, uint32_t eTimingMode) { @@ -8980,7 +9028,19 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_024_GetVulkanInstanceExtensio return params._ret; } -extern uint32_t __thiscall winIVRCompositor_IVRCompositor_024_GetVulkanDeviceExtensionsRequired(struct w_steam_iface *_this, VkPhysicalDevice_T *pPhysicalDevice, char *pchValue, uint32_t unBufferSize); +uint32_t __thiscall winIVRCompositor_IVRCompositor_024_GetVulkanDeviceExtensionsRequired(struct w_steam_iface *_this, VkPhysicalDevice_T *pPhysicalDevice, char *pchValue, uint32_t unBufferSize) +{ + struct IVRCompositor_IVRCompositor_024_GetVulkanDeviceExtensionsRequired_params params = + { + .linux_side = _this->u_iface, + .pPhysicalDevice = pPhysicalDevice, + .pchValue = pchValue, + .unBufferSize = unBufferSize, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_024_GetVulkanDeviceExtensionsRequired, ¶ms ); + return params._ret; +} void __thiscall winIVRCompositor_IVRCompositor_024_SetExplicitTimingMode(struct w_steam_iface *_this, uint32_t eTimingMode) { @@ -9684,7 +9744,19 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_026_GetVulkanInstanceExtensio return params._ret; } -extern uint32_t __thiscall winIVRCompositor_IVRCompositor_026_GetVulkanDeviceExtensionsRequired(struct w_steam_iface *_this, VkPhysicalDevice_T *pPhysicalDevice, char *pchValue, uint32_t unBufferSize); +uint32_t __thiscall winIVRCompositor_IVRCompositor_026_GetVulkanDeviceExtensionsRequired(struct w_steam_iface *_this, VkPhysicalDevice_T *pPhysicalDevice, char *pchValue, uint32_t unBufferSize) +{ + struct IVRCompositor_IVRCompositor_026_GetVulkanDeviceExtensionsRequired_params params = + { + .linux_side = _this->u_iface, + .pPhysicalDevice = pPhysicalDevice, + .pchValue = pchValue, + .unBufferSize = unBufferSize, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_026_GetVulkanDeviceExtensionsRequired, ¶ms ); + return params._ret; +} void __thiscall winIVRCompositor_IVRCompositor_026_SetExplicitTimingMode(struct w_steam_iface *_this, uint32_t eTimingMode) { @@ -10447,7 +10519,19 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_027_GetVulkanInstanceExtensio return params._ret; } -extern uint32_t __thiscall winIVRCompositor_IVRCompositor_027_GetVulkanDeviceExtensionsRequired(struct w_steam_iface *_this, VkPhysicalDevice_T *pPhysicalDevice, char *pchValue, uint32_t unBufferSize); +uint32_t __thiscall winIVRCompositor_IVRCompositor_027_GetVulkanDeviceExtensionsRequired(struct w_steam_iface *_this, VkPhysicalDevice_T *pPhysicalDevice, char *pchValue, uint32_t unBufferSize) +{ + struct IVRCompositor_IVRCompositor_027_GetVulkanDeviceExtensionsRequired_params params = + { + .linux_side = _this->u_iface, + .pPhysicalDevice = pPhysicalDevice, + .pchValue = pchValue, + .unBufferSize = unBufferSize, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRCompositor_IVRCompositor_027_GetVulkanDeviceExtensionsRequired, ¶ms ); + return params._ret; +} void __thiscall winIVRCompositor_IVRCompositor_027_SetExplicitTimingMode(struct w_steam_iface *_this, uint32_t eTimingMode) { diff --git a/vrclient_x64/vrclient_x64/winIVRSystem.c b/vrclient_x64/vrclient_x64/winIVRSystem.c index c72d7f24..35a03e54 100644 --- a/vrclient_x64/vrclient_x64/winIVRSystem.c +++ b/vrclient_x64/vrclient_x64/winIVRSystem.c @@ -7923,7 +7923,18 @@ int32_t __thiscall winIVRSystem_IVRSystem_017_GetD3D9AdapterIndex(struct w_steam extern void __thiscall winIVRSystem_IVRSystem_017_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex); -extern void __thiscall winIVRSystem_IVRSystem_017_GetOutputDevice(struct w_steam_iface *_this, uint64_t *pnDevice, uint32_t textureType, VkInstance_T *pInstance); +void __thiscall winIVRSystem_IVRSystem_017_GetOutputDevice(struct w_steam_iface *_this, uint64_t *pnDevice, uint32_t textureType, VkInstance_T *pInstance) +{ + struct IVRSystem_IVRSystem_017_GetOutputDevice_params params = + { + .linux_side = _this->u_iface, + .pnDevice = pnDevice, + .textureType = textureType, + .pInstance = pInstance, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_017_GetOutputDevice, ¶ms ); +} bool __thiscall winIVRSystem_IVRSystem_017_IsDisplayOnDesktop(struct w_steam_iface *_this) { @@ -8664,7 +8675,18 @@ int32_t __thiscall winIVRSystem_IVRSystem_019_GetD3D9AdapterIndex(struct w_steam extern void __thiscall winIVRSystem_IVRSystem_019_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex); -extern void __thiscall winIVRSystem_IVRSystem_019_GetOutputDevice(struct w_steam_iface *_this, uint64_t *pnDevice, uint32_t textureType, VkInstance_T *pInstance); +void __thiscall winIVRSystem_IVRSystem_019_GetOutputDevice(struct w_steam_iface *_this, uint64_t *pnDevice, uint32_t textureType, VkInstance_T *pInstance) +{ + struct IVRSystem_IVRSystem_019_GetOutputDevice_params params = + { + .linux_side = _this->u_iface, + .pnDevice = pnDevice, + .textureType = textureType, + .pInstance = pInstance, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_019_GetOutputDevice, ¶ms ); +} bool __thiscall winIVRSystem_IVRSystem_019_IsDisplayOnDesktop(struct w_steam_iface *_this) { @@ -9439,7 +9461,18 @@ int32_t __thiscall winIVRSystem_IVRSystem_020_GetD3D9AdapterIndex(struct w_steam extern void __thiscall winIVRSystem_IVRSystem_020_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex); -extern void __thiscall winIVRSystem_IVRSystem_020_GetOutputDevice(struct w_steam_iface *_this, uint64_t *pnDevice, uint32_t textureType, VkInstance_T *pInstance); +void __thiscall winIVRSystem_IVRSystem_020_GetOutputDevice(struct w_steam_iface *_this, uint64_t *pnDevice, uint32_t textureType, VkInstance_T *pInstance) +{ + struct IVRSystem_IVRSystem_020_GetOutputDevice_params params = + { + .linux_side = _this->u_iface, + .pnDevice = pnDevice, + .textureType = textureType, + .pInstance = pInstance, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_020_GetOutputDevice, ¶ms ); +} bool __thiscall winIVRSystem_IVRSystem_020_IsDisplayOnDesktop(struct w_steam_iface *_this) { @@ -10224,7 +10257,18 @@ int32_t __thiscall winIVRSystem_IVRSystem_021_GetD3D9AdapterIndex(struct w_steam extern void __thiscall winIVRSystem_IVRSystem_021_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex); -extern void __thiscall winIVRSystem_IVRSystem_021_GetOutputDevice(struct w_steam_iface *_this, uint64_t *pnDevice, uint32_t textureType, VkInstance_T *pInstance); +void __thiscall winIVRSystem_IVRSystem_021_GetOutputDevice(struct w_steam_iface *_this, uint64_t *pnDevice, uint32_t textureType, VkInstance_T *pInstance) +{ + struct IVRSystem_IVRSystem_021_GetOutputDevice_params params = + { + .linux_side = _this->u_iface, + .pnDevice = pnDevice, + .textureType = textureType, + .pInstance = pInstance, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_021_GetOutputDevice, ¶ms ); +} bool __thiscall winIVRSystem_IVRSystem_021_IsDisplayOnDesktop(struct w_steam_iface *_this) { @@ -10996,7 +11040,18 @@ int32_t __thiscall winIVRSystem_IVRSystem_022_GetD3D9AdapterIndex(struct w_steam extern void __thiscall winIVRSystem_IVRSystem_022_GetDXGIOutputInfo(struct w_steam_iface *_this, int32_t *pnAdapterIndex); -extern void __thiscall winIVRSystem_IVRSystem_022_GetOutputDevice(struct w_steam_iface *_this, uint64_t *pnDevice, uint32_t textureType, VkInstance_T *pInstance); +void __thiscall winIVRSystem_IVRSystem_022_GetOutputDevice(struct w_steam_iface *_this, uint64_t *pnDevice, uint32_t textureType, VkInstance_T *pInstance) +{ + struct IVRSystem_IVRSystem_022_GetOutputDevice_params params = + { + .linux_side = _this->u_iface, + .pnDevice = pnDevice, + .textureType = textureType, + .pInstance = pInstance, + }; + TRACE("%p\n", _this); + VRCLIENT_CALL( IVRSystem_IVRSystem_022_GetOutputDevice, ¶ms ); +} bool __thiscall winIVRSystem_IVRSystem_022_IsDisplayOnDesktop(struct w_steam_iface *_this) {