mirror of
https://github.com/ValveSoftware/Proton.git
synced 2024-12-27 23:25:50 +03:00
vrclient: Remove upper version limit for IVRCompositor_WaitGetPoses manual override.
CW-Bug-Id: #23412
This commit is contained in:
parent
0efcd7d787
commit
5ec8d4dcfb
@ -235,7 +235,7 @@ MANUAL_METHODS = {
|
||||
"IVRCompositor_Submit": lambda ver, abi: ver > 8,
|
||||
"IVRCompositor_SetSkyboxOverride": lambda ver, abi: ver > 8,
|
||||
"IVRCompositor_PostPresentHandoff": lambda ver, abi: abi == 'w',
|
||||
"IVRCompositor_WaitGetPoses": lambda ver, abi: abi == 'w' and ver > 15 and ver < 27,
|
||||
"IVRCompositor_WaitGetPoses": lambda ver, abi: abi == 'w' and ver > 15,
|
||||
"IVRCompositor_GetVulkanDeviceExtensionsRequired": lambda ver, abi: abi == 'u',
|
||||
"IVRRenderModels_LoadTextureD3D11_Async": lambda ver, abi: abi == 'w',
|
||||
"IVRRenderModels_FreeTextureD3D11": lambda ver, abi: abi == 'w',
|
||||
|
@ -1295,6 +1295,41 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_026_SetSkyboxOverride( struct
|
||||
return params._ret;
|
||||
}
|
||||
|
||||
uint32_t __thiscall winIVRCompositor_IVRCompositor_027_WaitGetPoses( struct w_steam_iface *_this,
|
||||
TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount,
|
||||
TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount )
|
||||
{
|
||||
struct IVRCompositor_IVRCompositor_027_WaitGetPoses_params params =
|
||||
{
|
||||
.linux_side = _this->u_iface,
|
||||
.pRenderPoseArray = pRenderPoseArray,
|
||||
.unRenderPoseArrayCount = unRenderPoseArrayCount,
|
||||
.pGamePoseArray = pGamePoseArray,
|
||||
.unGamePoseArrayCount = unGamePoseArrayCount,
|
||||
};
|
||||
TRACE( "%p\n", _this );
|
||||
wait_get_poses_init( _this->u_iface );
|
||||
|
||||
if (compositor_data.dxvk_device && compositor_data.d3d11_explicit_handoff && !compositor_data.handoff_called)
|
||||
{
|
||||
struct IVRCompositor_IVRCompositor_027_PostPresentHandoff_params params = {.linux_side = _this->u_iface};
|
||||
/* Calling handoff after submit is optional for d3d11 but mandatory for Vulkan
|
||||
* if explicit timing mode is set. */
|
||||
VRCLIENT_CALL( IVRCompositor_IVRCompositor_027_PostPresentHandoff, ¶ms );
|
||||
}
|
||||
|
||||
VRCLIENT_CALL( IVRCompositor_IVRCompositor_027_WaitGetPoses, ¶ms );
|
||||
|
||||
if (compositor_data.dxvk_device && compositor_data.d3d11_explicit_handoff)
|
||||
{
|
||||
struct IVRCompositor_IVRCompositor_027_SubmitExplicitTimingData_params params = {.linux_side = _this->u_iface};
|
||||
VRCLIENT_CALL( IVRCompositor_IVRCompositor_027_SubmitExplicitTimingData, ¶ms );
|
||||
}
|
||||
|
||||
wait_get_poses_done( _this->u_iface );
|
||||
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 )
|
||||
|
@ -10097,20 +10097,7 @@ uint32_t __thiscall winIVRCompositor_IVRCompositor_027_GetTrackingSpace(struct w
|
||||
return params._ret;
|
||||
}
|
||||
|
||||
uint32_t __thiscall winIVRCompositor_IVRCompositor_027_WaitGetPoses(struct w_steam_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount)
|
||||
{
|
||||
struct IVRCompositor_IVRCompositor_027_WaitGetPoses_params params =
|
||||
{
|
||||
.linux_side = _this->u_iface,
|
||||
.pRenderPoseArray = pRenderPoseArray,
|
||||
.unRenderPoseArrayCount = unRenderPoseArrayCount,
|
||||
.pGamePoseArray = pGamePoseArray,
|
||||
.unGamePoseArrayCount = unGamePoseArrayCount,
|
||||
};
|
||||
TRACE("%p\n", _this);
|
||||
VRCLIENT_CALL( IVRCompositor_IVRCompositor_027_WaitGetPoses, ¶ms );
|
||||
return params._ret;
|
||||
}
|
||||
extern uint32_t __thiscall winIVRCompositor_IVRCompositor_027_WaitGetPoses(struct w_steam_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount);
|
||||
|
||||
uint32_t __thiscall winIVRCompositor_IVRCompositor_027_GetLastPoses(struct w_steam_iface *_this, TrackedDevicePose_t *pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t *pGamePoseArray, uint32_t unGamePoseArrayCount)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user