Skip to content

Commit 751538d

Browse files
committed
# OpenVR SDK 1.26.7
IVROverlay: * Removed defunct GetOverlayTransformOverlayRelative and SetOverlayTransformOverlayRelative interfaces EVREventType: * Removed defunct VREvent_SceneFocusChanged * Added VREvent_SceneAppPipeDisconnected - Called when the scene app's pipe has been closed (data is process) ETrackedDeviceProperty: * Added Prop_Hmd_SupportsHDR10_Bool * Added Prop_Hmd_EnableParallelRenderCameras_Bool (drivers can set this compensate for canted and/or clocked displays) * Added Prop_DriverProvidedChaperoneJson_String (overrides Prop_DriverProvidedChaperonePath_String) * Renamed Prop_Hmd_SupportsRoomViewDirect_Bool * Renamed Prop_Hmd_SupportsAppThrottling_Bool * Added Prop_Hmd_SupportsGpuBusMonitoring_Bool * Added Prop_DSCVersion_Int32 * Added Prop_DSCSliceCount_Int32 * Added Prop_DSCBPPx16_Int32 VROverlayTransformType: * Removed defunct VROverlayTransform_SystemOverlay * Added VROverlayTransform_Subview Compositor_CumulativeStats: * Added m_nNumFrameSubmits * Added m_flSumCompositorCPUTimeMS * Added m_flSumCompositorGPUTimeMS * Added m_flSumTargetFrameTimes * Added m_flSumApplicationCPUTimeMS * Added m_flSumApplicationGPUTimeMS * Added m_nNumFramesWithDepth [git-p4: depot-paths = "//vr/steamvr/sdk_release/": change = 8250329]
1 parent 32dcadc commit 751538d

29 files changed

+396
-262
lines changed

bin/linux32/libopenvr_api.so

-924 KB
Binary file not shown.

bin/linux32/libopenvr_api.so.dbg

-1.7 MB
Binary file not shown.

bin/linux64/libopenvr_api.so

-932 KB
Binary file not shown.

bin/linux64/libopenvr_api.so.dbg

-1.76 MB
Binary file not shown.

bin/linuxarm64/libopenvr_api.so

0 Bytes
Binary file not shown.

bin/linuxarm64/libopenvr_api.so.dbg

11 KB
Binary file not shown.

bin/linuxarm64/libopenvr_api_unity.so

-1.5 KB
Binary file not shown.
9.16 KB
Binary file not shown.

bin/win32/openvr_api.dll

1.49 KB
Binary file not shown.

bin/win32/openvr_api.dll.sig

0 Bytes
Binary file not shown.

bin/win32/openvr_api.pdb

16 KB
Binary file not shown.

bin/win64/openvr_api.dll

1016 Bytes
Binary file not shown.

bin/win64/openvr_api.dll.sig

0 Bytes
Binary file not shown.

bin/win64/openvr_api.pdb

16 KB
Binary file not shown.

codegen/openvr_capi.h.py

+13-2
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
#endif
3030
3131
// OPENVR API export macro
32-
#if defined( _WIN32 ) && !defined( _X360 )
32+
#if defined( _WIN32 )
3333
#if defined( OPENVR_API_EXPORTS )
3434
#define S_API EXTERN_C __declspec( dllexport )
3535
#elif defined( OPENVR_API_NODLL )
@@ -65,6 +65,16 @@
6565
typedef uint64_t VRActionSetHandle_t;
6666
typedef uint64_t VRInputValueHandle_t;
6767
typedef uint64_t PathHandle_t;
68+
69+
// 64-bit types that are part of public structures
70+
// that are replicated in shared memory.
71+
#if defined(__linux__) || defined(__APPLE__)
72+
typedef uint64_t vrshared_uint64_t __attribute__ ((aligned(8)));
73+
typedef double vrshared_double __attribute__ ((aligned(8)));
74+
#else
75+
typedef uint64_t vrshared_uint64_t;
76+
typedef double vrshared_double;
77+
#endif
6878
""")
6979

7080

@@ -157,7 +167,8 @@ def OutputStructFields(struct):
157167
if(thetype[0:6] != 'union ' and thetype[0:7] != 'struct '):
158168
thetypedef = getclasswithoutnamespace(typedef['typedef']) # remove the vr:: bit from thetypedef
159169
thetype = getclasswithoutnamespace(thetype)
160-
print('typedef '+thetype+' '+thetypedef+';')
170+
if (thetypedef != 'vrshared_uint64_t' and thetypedef != 'vrshared_double'):
171+
print('typedef '+thetype+' '+thetypedef+';')
161172

162173
######
163174
# Output structs

headers/openvr.h

+118-82
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
namespace vr
1717
{
1818
static const uint32_t k_nSteamVRVersionMajor = 1;
19-
static const uint32_t k_nSteamVRVersionMinor = 23;
19+
static const uint32_t k_nSteamVRVersionMinor = 26;
2020
static const uint32_t k_nSteamVRVersionBuild = 7;
2121
} // namespace vr
2222

@@ -104,40 +104,6 @@ struct VRBoneTransform_t
104104
HmdQuaternionf_t orientation;
105105
};
106106

107-
#pragma pack( pop )
108-
109-
} // namespace vr
110-
111-
#endif
112-
113-
// vrtypes.h
114-
115-
#ifndef _INCLUDE_VRTYPES_H
116-
#define _INCLUDE_VRTYPES_H
117-
118-
// Forward declarations to avoid requiring vulkan.h
119-
struct VkDevice_T;
120-
struct VkPhysicalDevice_T;
121-
struct VkInstance_T;
122-
struct VkQueue_T;
123-
124-
// Forward declarations to avoid requiring d3d12.h
125-
struct ID3D12Resource;
126-
struct ID3D12CommandQueue;
127-
128-
namespace vr
129-
{
130-
#pragma pack( push, 8 )
131-
132-
/** A handle for a spatial anchor. This handle is only valid during the session it was created in.
133-
* Anchors that live beyond one session should be saved by their string descriptors. */
134-
typedef uint32_t SpatialAnchorHandle_t;
135-
136-
typedef void* glSharedTextureHandle_t;
137-
typedef int32_t glInt_t;
138-
typedef uint32_t glUInt_t;
139-
140-
141107
/** Used to return the post-distortion UVs for each color channel.
142108
* UVs range from 0 to 1 with 0,0 in the upper left corner of the
143109
* source render target. The 0,0 to 1,1 range covers a single eye. */
@@ -164,9 +130,9 @@ enum ETextureType
164130
TextureType_DirectX12 = 4, // Handle is a pointer to a D3D12TextureData_t structure
165131
TextureType_DXGISharedHandle = 5, // Handle is a HANDLE DXGI share handle, only supported for Overlay render targets.
166132
// this texture is used directly by our renderer, so only perform atomic (copyresource or resolve) on it
167-
TextureType_Metal = 6, // Handle is a MTLTexture conforming to the MTLSharedTexture protocol. Textures submitted to IVRCompositor::Submit which
168-
// are of type MTLTextureType2DArray assume layer 0 is the left eye texture (vr::EVREye::Eye_left), layer 1 is the right
169-
// eye texture (vr::EVREye::Eye_Right)
133+
TextureType_Metal = 6, // Handle is a MTLTexture conforming to the MTLSharedTexture protocol. Textures submitted to IVRCompositor::Submit which
134+
// are of type MTLTextureType2DArray assume layer 0 is the left eye texture (vr::EVREye::Eye_left), layer 1 is the right
135+
// eye texture (vr::EVREye::Eye_Right)
170136
};
171137

172138
enum EColorSpace
@@ -183,6 +149,81 @@ struct Texture_t
183149
EColorSpace eColorSpace;
184150
};
185151

152+
/** Allows the application to control what part of the provided texture will be used in the
153+
* frame buffer. */
154+
struct VRTextureBounds_t
155+
{
156+
float uMin, vMin;
157+
float uMax, vMax;
158+
};
159+
160+
/** Allows specifying pose used to render provided scene texture (if different from value returned by WaitGetPoses). */
161+
struct VRTextureWithPose_t : public Texture_t
162+
{
163+
HmdMatrix34_t mDeviceToAbsoluteTracking; // Actual pose used to render scene textures.
164+
};
165+
166+
struct VRTextureDepthInfo_t
167+
{
168+
void* handle; // See ETextureType definition above
169+
HmdMatrix44_t mProjection;
170+
HmdVector2_t vRange; // 0..1
171+
};
172+
173+
struct VRTextureWithDepth_t : public Texture_t
174+
{
175+
VRTextureDepthInfo_t depth;
176+
};
177+
178+
struct VRTextureWithPoseAndDepth_t : public VRTextureWithPose_t
179+
{
180+
VRTextureDepthInfo_t depth;
181+
};
182+
183+
// 64-bit types that are part of public structures
184+
// that are replicated in shared memory.
185+
#if defined(__linux__) || defined(__APPLE__)
186+
typedef uint64_t vrshared_uint64_t __attribute__ ((aligned(8)));
187+
typedef double vrshared_double __attribute__ ((aligned(8)));
188+
#else
189+
typedef uint64_t vrshared_uint64_t;
190+
typedef double vrshared_double;
191+
#endif
192+
193+
#pragma pack( pop )
194+
195+
} // namespace vr
196+
197+
#endif
198+
199+
// vrtypes.h
200+
201+
#ifndef _INCLUDE_VRTYPES_H
202+
#define _INCLUDE_VRTYPES_H
203+
204+
// Forward declarations to avoid requiring vulkan.h
205+
struct VkDevice_T;
206+
struct VkPhysicalDevice_T;
207+
struct VkInstance_T;
208+
struct VkQueue_T;
209+
210+
// Forward declarations to avoid requiring d3d12.h
211+
struct ID3D12Resource;
212+
struct ID3D12CommandQueue;
213+
214+
namespace vr
215+
{
216+
#pragma pack( push, 8 )
217+
218+
/** A handle for a spatial anchor. This handle is only valid during the session it was created in.
219+
* Anchors that live beyond one session should be saved by their string descriptors. */
220+
typedef uint32_t SpatialAnchorHandle_t;
221+
222+
typedef void* glSharedTextureHandle_t;
223+
typedef int32_t glInt_t;
224+
typedef uint32_t glUInt_t;
225+
226+
186227
// Handle to a shared texture (HANDLE on Windows obtained using OpenSharedResource).
187228
typedef uint64_t SharedTextureHandle_t;
188229
#define INVALID_SHARED_TEXTURE_HANDLE ((vr::SharedTextureHandle_t)0)
@@ -484,14 +525,22 @@ enum ETrackedDeviceProperty
484525
// Prop_DashboardLayoutPathName_String = 2090, // DELETED
485526
Prop_DashboardScale_Float = 2091,
486527
Prop_PeerButtonInfo_String = 2092,
528+
Prop_Hmd_SupportsHDR10_Bool = 2093,
529+
Prop_Hmd_EnableParallelRenderCameras_Bool = 2094,
530+
Prop_DriverProvidedChaperoneJson_String = 2095, // higher priority than Prop_DriverProvidedChaperonePath_String
487531

488532
Prop_IpdUIRangeMinMeters_Float = 2100,
489533
Prop_IpdUIRangeMaxMeters_Float = 2101,
490534
Prop_Hmd_SupportsHDCP14LegacyCompat_Bool = 2102,
491535
Prop_Hmd_SupportsMicMonitoring_Bool = 2103,
492536
Prop_Hmd_SupportsDisplayPortTrainingMode_Bool = 2104,
493-
Prop_SupportsRoomViewDirect_Bool = 2105,
494-
Prop_SupportsAppThrottling_Bool = 2106,
537+
Prop_Hmd_SupportsRoomViewDirect_Bool = 2105,
538+
Prop_Hmd_SupportsAppThrottling_Bool = 2106,
539+
Prop_Hmd_SupportsGpuBusMonitoring_Bool = 2107,
540+
541+
Prop_DSCVersion_Int32 = 2110,
542+
Prop_DSCSliceCount_Int32 = 2111,
543+
Prop_DSCBPPx16_Int32 = 2112,
495544

496545
// Driver requested mura correction properties
497546
Prop_DriverRequestedMuraCorrectionMode_Int32 = 2200,
@@ -613,37 +662,6 @@ static const VRActionSetHandle_t k_ulInvalidActionSetHandle = 0;
613662
static const VRInputValueHandle_t k_ulInvalidInputValueHandle = 0;
614663

615664

616-
/** Allows the application to control what part of the provided texture will be used in the
617-
* frame buffer. */
618-
struct VRTextureBounds_t
619-
{
620-
float uMin, vMin;
621-
float uMax, vMax;
622-
};
623-
624-
/** Allows specifying pose used to render provided scene texture (if different from value returned by WaitGetPoses). */
625-
struct VRTextureWithPose_t : public Texture_t
626-
{
627-
HmdMatrix34_t mDeviceToAbsoluteTracking; // Actual pose used to render scene textures.
628-
};
629-
630-
struct VRTextureDepthInfo_t
631-
{
632-
void* handle; // See ETextureType definition above
633-
HmdMatrix44_t mProjection;
634-
HmdVector2_t vRange; // 0..1
635-
};
636-
637-
struct VRTextureWithDepth_t : public Texture_t
638-
{
639-
VRTextureDepthInfo_t depth;
640-
};
641-
642-
struct VRTextureWithPoseAndDepth_t : public VRTextureWithPose_t
643-
{
644-
VRTextureDepthInfo_t depth;
645-
};
646-
647665
/** Allows the application to control how scene textures are used by the compositor when calling Submit. */
648666
enum EVRSubmitFlags
649667
{
@@ -783,7 +801,7 @@ enum EVREventType
783801
// VREvent_SceneFocusLost = 402, // data is process
784802
// VREvent_SceneFocusGained = 403, // data is process
785803
VREvent_SceneApplicationChanged = 404, // data is process - The App actually drawing the scene changed (usually to or from the compositor)
786-
VREvent_SceneFocusChanged = 405, // data is process - New app got access to draw the scene
804+
// VREvent_SceneFocusChanged = 405, // data is process - This is defunct and will not be called.
787805
VREvent_InputFocusChanged = 406, // data is process
788806
// VREvent_SceneApplicationSecondaryRenderingStarted = 407,
789807
VREvent_SceneApplicationUsingWrongGraphicsAdapter = 408, // data is process
@@ -794,6 +812,8 @@ enum EVREventType
794812

795813
VREvent_SceneApplicationStateChanged = 412, // No data; but query VRApplications()->GetSceneApplicationState();
796814

815+
VREvent_SceneAppPipeDisconnected = 413, // data is process - Called when the scene app's pipe has been closed.
816+
797817
VREvent_ConsoleOpened = 420,
798818
VREvent_ConsoleClosed = 421,
799819

@@ -1007,6 +1027,9 @@ enum EVRButtonId
10071027
k_EButton_IndexController_B = k_EButton_ApplicationMenu,
10081028
k_EButton_IndexController_JoyStick = k_EButton_Axis3,
10091029

1030+
k_EButton_Reserved0 = 50,
1031+
k_EButton_Reserved1 = 51,
1032+
10101033
k_EButton_Max = 64
10111034
};
10121035

@@ -2801,7 +2824,6 @@ namespace vr
28012824
static const char * const k_pch_SteamVR_ForceWindows32bitVRMonitor = "forceWindows32BitVRMonitor";
28022825
static const char * const k_pch_SteamVR_DebugInputBinding = "debugInputBinding";
28032826
static const char * const k_pch_SteamVR_DoNotFadeToGrid = "doNotFadeToGrid";
2804-
static const char * const k_pch_SteamVR_RenderCameraMode = "renderCameraMode";
28052827
static const char * const k_pch_SteamVR_EnableSharedResourceJournaling = "enableSharedResourceJournaling";
28062828
static const char * const k_pch_SteamVR_EnableSafeMode = "enableSafeMode";
28072829
static const char * const k_pch_SteamVR_PreferredRefreshRate = "preferredRefreshRate";
@@ -2895,6 +2917,7 @@ namespace vr
28952917
static const char * const k_pch_Perf_SaveTimingsOnExit_Bool = "saveTimingsOnExit";
28962918
static const char * const k_pch_Perf_TestData_Float = "perfTestData";
28972919
static const char * const k_pch_Perf_GPUProfiling_Bool = "GPUProfiling";
2920+
static const char * const k_pch_Perf_GpuBusMonitoring_Bool = "gpuBusMonitoring";
28982921

28992922
//-----------------------------------------------------------------------------
29002923
// collision bounds keys
@@ -2967,6 +2990,7 @@ namespace vr
29672990
static const char * const k_pch_Dashboard_DashboardScale = "dashboardScale";
29682991
static const char * const k_pch_Dashboard_UseStandaloneSystemLayer = "standaloneSystemLayer";
29692992
static const char * const k_pch_Dashboard_StickyDashboard = "stickyDashboard";
2993+
static const char * const k_pch_Dashboard_AllowSteamOverlays_Bool = "allowSteamOverlays";
29702994

29712995
//-----------------------------------------------------------------------------
29722996
// model skin keys
@@ -2997,7 +3021,8 @@ namespace vr
29973021
// per-app keys - the section name for these is the app key itself. Some of these are prefixed by the controller type
29983022
static const char* const k_pch_App_BindingAutosaveURLSuffix_String = "AutosaveURL";
29993023
static const char* const k_pch_App_BindingLegacyAPISuffix_String = "_legacy";
3000-
static const char* const k_pch_App_BindingSteamVRInputAPISuffix_String = "_steamvrinput";
3024+
static const char *const k_pch_App_BindingSteamVRInputAPISuffix_String = "_steamvrinput";
3025+
static const char *const k_pch_App_BindingOpenXRAPISuffix_String = "_openxr";
30013026
static const char* const k_pch_App_BindingCurrentURLSuffix_String = "CurrentURL";
30023027
static const char* const k_pch_App_BindingPreviousURLSuffix_String = "PreviousURL";
30033028
static const char* const k_pch_App_NeedToUpdateAutosaveSuffix_Bool = "NeedToUpdateAutosave";
@@ -3278,6 +3303,16 @@ struct Compositor_CumulativeStats
32783303
uint32_t m_nNumFramePresentsTimedOut;
32793304
uint32_t m_nNumDroppedFramesTimedOut;
32803305
uint32_t m_nNumReprojectedFramesTimedOut;
3306+
3307+
/** For items in this section, divide all the values by m_nNumFrameSubmits. */
3308+
uint32_t m_nNumFrameSubmits;
3309+
vrshared_double m_flSumCompositorCPUTimeMS;
3310+
vrshared_double m_flSumCompositorGPUTimeMS;
3311+
vrshared_double m_flSumTargetFrameTimes;
3312+
vrshared_double m_flSumApplicationCPUTimeMS;
3313+
vrshared_double m_flSumApplicationGPUTimeMS;
3314+
3315+
uint32_t m_nNumFramesWithDepth; // total frames submitted with depth by the current application
32813316
};
32823317

32833318
struct Compositor_StageRenderSettings
@@ -3737,13 +3772,14 @@ namespace vr
37373772
VROverlayTransform_Invalid = -1,
37383773
VROverlayTransform_Absolute = 0,
37393774
VROverlayTransform_TrackedDeviceRelative = 1,
3740-
VROverlayTransform_SystemOverlay = 2,
3775+
//VROverlayTransform_SystemOverlay = 2, // Deleted from the SDK.
37413776
VROverlayTransform_TrackedComponent = 3,
37423777
VROverlayTransform_Cursor = 4,
37433778
VROverlayTransform_DashboardTab = 5,
37443779
VROverlayTransform_DashboardThumb = 6,
37453780
VROverlayTransform_Mountable = 7,
37463781
VROverlayTransform_Projection = 8,
3782+
VROverlayTransform_Subview = 9,
37473783
};
37483784

37493785
/** Overlay control settings */
@@ -3805,6 +3841,9 @@ namespace vr
38053841

38063842
// If this is set, the alpha values of the overlay texture will be ignored
38073843
VROverlayFlags_IgnoreTextureAlpha = 1 << 22,
3844+
3845+
// Do not use
3846+
VROverlayFlags_Reserved = 1 << 26,
38083847
};
38093848

38103849
enum VRMessageOverlayResponse
@@ -3981,6 +4020,9 @@ namespace vr
39814020
* Within a category overlays are rendered lowest sort order to highest sort order. Overlays with the same
39824021
* sort order are rendered back to front base on distance from the HMD.
39834022
*
4023+
* Subview overlays are always drawn immediately on top of their parent overlay, and the sort order is
4024+
* only relative to their peer subviews for that overlay.
4025+
*
39844026
* Sort order defaults to 0. */
39854027
virtual EVROverlayError SetOverlaySortOrder( VROverlayHandle_t ulOverlayHandle, uint32_t unSortOrder ) = 0;
39864028

@@ -4041,12 +4083,6 @@ namespace vr
40414083
/** Gets the transform information when the overlay is rendering on a component. */
40424084
virtual EVROverlayError GetOverlayTransformTrackedDeviceComponent( VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t *punDeviceIndex, VR_OUT_STRING() char *pchComponentName, uint32_t unComponentNameSize ) = 0;
40434085

4044-
/** Gets the transform if it is relative to another overlay. Returns an error if the transform is some other type. */
4045-
virtual vr::EVROverlayError GetOverlayTransformOverlayRelative( VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t *ulOverlayHandleParent, HmdMatrix34_t *pmatParentOverlayToOverlayTransform ) = 0;
4046-
4047-
/** Sets the transform to relative to the transform of the specified overlay. This overlays visibility will also track the parents visibility */
4048-
virtual vr::EVROverlayError SetOverlayTransformOverlayRelative( VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t ulOverlayHandleParent, const HmdMatrix34_t *pmatParentOverlayToOverlayTransform ) = 0;
4049-
40504086
/** Sets the hotspot for the specified overlay when that overlay is used as a cursor. These are in texture space with 0,0 in the upper left corner of
40514087
* the texture and 1,1 in the lower right corner of the texture. */
40524088
virtual EVROverlayError SetOverlayTransformCursor( VROverlayHandle_t ulCursorOverlayHandle, const HmdVector2_t *pvHotspot ) = 0;
@@ -4228,7 +4264,7 @@ namespace vr
42284264
virtual void CloseMessageOverlay() = 0;
42294265
};
42304266

4231-
static const char * const IVROverlay_Version = "IVROverlay_026";
4267+
static const char * const IVROverlay_Version = "IVROverlay_027";
42324268

42334269
} // namespace vr
42344270

0 commit comments

Comments
 (0)