Skip to content

Commit 1fb1030

Browse files
committed
OpenVR SDK 1.0.17
IVRProperties: * Prop_CameraStreamFormat_Int32 - value from the openvr_driver.h ECameraVideoStreamFormat indicating the expected delivery format of the device * TrackedProp_IPCReadFailure IVRTrackedCamera: * CameraVideoStreamFrameHeader_t:: ulFrameExposureTime - additional field which carries the time in absolute system ticks of when the frame exposure happened, and the time of the frames pose. * CVS_FORMAT_YUYV16 - new opener_driver.h ECameraVideoStreamFormat value indicating 16-bit YUYV raw image encoding OpenVR C API: * Fixed cNewInput and rchRenderModelComponentName having an incorrect type IVRCompositor FrameTiming: * Added frame prediction and throttling bits to reprojection flags. Use the macros VR_COMPOSITOR_ADDITIONAL_PREDICTED_FRAMES and VR_COMPOSITOR_NUMBER_OF_THROTTLED_FRAMES for easy access. These values can be used to provide a better job at updating game simulation time for rendered frames when unable to meet native refresh rate requirements. * Added m_nNumVSyncsReadyForUse for tracking how long each frame took to render. * Added m_nNumVSyncsToFirstView for tracking how many vsync intervals before a given frame was first viewed (i.e. scanned out). This may differ from NumVSyncsReadyForUse if the frame was predicted further ahead since frames will never be displayed earlier than the time they were predicted to. * See https://developer.valvesoftware.com/wiki/SteamVR/Frame_Timing for more details. Driver API: * Added TrackingResult_Fallback_RotationOnly, which drivers can return if they have lost positional tracking but wish to still provide rotation-only tracking. [git-p4: depot-paths = "//vr/steamvr/sdk_release/": change = 4759625]
1 parent 6aacebd commit 1fb1030

23 files changed

+302
-174
lines changed

bin/linux32/libopenvr_api.so

0 Bytes
Binary file not shown.

bin/linux32/libopenvr_api.so.dbg

1.18 KB
Binary file not shown.

bin/linux64/empty.dir

Whitespace-only changes.

bin/linux64/libopenvr_api.so

0 Bytes
Binary file not shown.

bin/linux64/libopenvr_api.so.dbg

1.18 KB
Binary file not shown.

bin/osx32/libopenvr_api.dylib

0 Bytes
Binary file not shown.
Binary file not shown.

bin/win32/openvr_api.dll

0 Bytes
Binary file not shown.

bin/win32/openvr_api.pdb

16 KB
Binary file not shown.

bin/win64/openvr_api.dll

0 Bytes
Binary file not shown.

bin/win64/openvr_api.pdb

16 KB
Binary file not shown.

headers/openvr.h

+39-6
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,8 @@ enum ETrackingResult
161161

162162
TrackingResult_Running_OK = 200,
163163
TrackingResult_Running_OutOfRange = 201,
164+
165+
TrackingResult_Fallback_RotationOnly = 300,
164166
};
165167

166168
typedef uint32_t DriverId_t;
@@ -257,6 +259,7 @@ static const PropertyTypeTag_t k_unHapticVibrationPropertyTag = 35;
257259
static const PropertyTypeTag_t k_unSkeletonPropertyTag = 36;
258260

259261
static const PropertyTypeTag_t k_unSpatialAnchorPosePropertyTag = 40;
262+
static const PropertyTypeTag_t k_unJsonPropertyTag = 41;
260263

261264
static const PropertyTypeTag_t k_unOpenVRInternalReserved_Start = 1000;
262265
static const PropertyTypeTag_t k_unOpenVRInternalReserved_End = 10000;
@@ -310,6 +313,7 @@ enum ETrackedDeviceProperty
310313
Prop_NeverTracked_Bool = 1038, // Used for devices that will never have a valid pose by design
311314
Prop_NumCameras_Int32 = 1039,
312315
Prop_CameraFrameLayout_Int32 = 1040, // EVRTrackedCameraFrameLayout value
316+
Prop_CameraStreamFormat_Int32 = 1041, // ECameraVideoStreamFormat value
313317

314318
// Properties that are unique to TrackedDeviceClass_HMD
315319
Prop_ReportsTimeSinceVSync_Bool = 2000,
@@ -440,6 +444,7 @@ enum ETrackedDeviceProperty
440444
// Properties that are set internally based on other information provided by drivers
441445
Prop_ControllerType_String = 7000,
442446
Prop_LegacyInputProfile_String = 7001,
447+
Prop_ControllerHandSelectionPriority_Int32 = 7002, // Allows hand assignments to prefer some controllers over others. High numbers are selected over low numbers
443448

444449
// Vendors are free to expose private debug data in this reserved region
445450
Prop_VendorSpecific_Reserved_Start = 10000,
@@ -467,6 +472,7 @@ enum ETrackedPropertyError
467472
TrackedProp_PermissionDenied = 10,
468473
TrackedProp_InvalidOperation = 11,
469474
TrackedProp_CannotWriteToWildcards = 12,
475+
TrackedProp_IPCReadFailure = 13,
470476
};
471477

472478

@@ -747,6 +753,7 @@ enum EVREventType
747753
VREvent_Input_BindingLoadSuccessful = 1702, // data is inputBinding
748754
VREvent_Input_ActionManifestReloaded = 1703, // no data
749755
VREvent_Input_ActionManifestLoadFailed = 1704, // data is actionManifest
756+
VREvent_Input_TrackerActivated = 1706,
750757

751758
VREvent_SpatialAnchors_PoseUpdated = 1800, // data is spatialAnchor. broadcast
752759
VREvent_SpatialAnchors_DescriptorUpdated = 1801, // data is spatialAnchor. broadcast
@@ -1472,6 +1479,8 @@ struct CameraVideoStreamFrameHeader_t
14721479
uint32_t nFrameSequence;
14731480

14741481
TrackedDevicePose_t standingTrackedDevicePose;
1482+
1483+
uint64_t ulFrameExposureTime; // mid-point of the exposure of the image in host system ticks
14751484
};
14761485

14771486
// Screenshot types
@@ -2143,7 +2152,7 @@ namespace vr
21432152

21442153
class CVRSettingHelper
21452154
{
2146-
IVRSettings *m_pSettings = nullptr;
2155+
IVRSettings *m_pSettings;
21472156
public:
21482157
CVRSettingHelper( IVRSettings *pSettings )
21492158
{
@@ -2252,13 +2261,15 @@ namespace vr
22522261
static const char * const k_pch_SteamVR_BaseStationPowerManagement_Bool = "basestationPowerManagement";
22532262
static const char * const k_pch_SteamVR_NeverKillProcesses_Bool = "neverKillProcesses";
22542263
static const char * const k_pch_SteamVR_SupersampleScale_Float = "supersampleScale";
2264+
static const char * const k_pch_SteamVR_MaxRecommendedResolution_Int32 = "maxRecommendedResolution";
22552265
static const char * const k_pch_SteamVR_AllowAsyncReprojection_Bool = "allowAsyncReprojection";
22562266
static const char * const k_pch_SteamVR_AllowReprojection_Bool = "allowInterleavedReprojection";
22572267
static const char * const k_pch_SteamVR_ForceReprojection_Bool = "forceReprojection";
22582268
static const char * const k_pch_SteamVR_ForceFadeOnBadTracking_Bool = "forceFadeOnBadTracking";
2259-
static const char * const k_pch_SteamVR_DefaultMirrorView_Int32 = "defaultMirrorView";
2269+
static const char * const k_pch_SteamVR_DefaultMirrorView_Int32 = "mirrorView";
22602270
static const char * const k_pch_SteamVR_ShowMirrorView_Bool = "showMirrorView";
22612271
static const char * const k_pch_SteamVR_MirrorViewGeometry_String = "mirrorViewGeometry";
2272+
static const char * const k_pch_SteamVR_MirrorViewGeometryMaximized_String = "mirrorViewGeometryMaximized";
22622273
static const char * const k_pch_SteamVR_StartMonitorFromAppLaunch = "startMonitorFromAppLaunch";
22632274
static const char * const k_pch_SteamVR_StartCompositorFromAppLaunch_Bool = "startCompositorFromAppLaunch";
22642275
static const char * const k_pch_SteamVR_StartDashboardFromAppLaunch_Bool = "startDashboardFromAppLaunch";
@@ -2290,6 +2301,7 @@ namespace vr
22902301
static const char * const k_pch_Lighthouse_DBHistory_Bool = "dbhistory";
22912302
static const char * const k_pch_Lighthouse_EnableBluetooth_Bool = "enableBluetooth";
22922303
static const char * const k_pch_Lighthouse_PowerManagedBaseStations_String = "PowerManagedBaseStations";
2304+
static const char * const k_pch_Lighthouse_EnableImuFallback_Bool = "enableImuFallback";
22932305

22942306
//-----------------------------------------------------------------------------
22952307
// null keys
@@ -2310,6 +2322,7 @@ namespace vr
23102322
static const char * const k_pch_UserInterface_Section = "userinterface";
23112323
static const char * const k_pch_UserInterface_StatusAlwaysOnTop_Bool = "StatusAlwaysOnTop";
23122324
static const char * const k_pch_UserInterface_MinimizeToTray_Bool = "MinimizeToTray";
2325+
static const char * const k_pch_UserInterface_HidePopupsWhenStatusMinimized_Bool = "HidePopupsWhenStatusMinimized";
23132326
static const char * const k_pch_UserInterface_Screenshots_Bool = "screenshots";
23142327
static const char * const k_pch_UserInterface_ScreenshotType_Int = "screenshotType";
23152328

@@ -2332,9 +2345,7 @@ namespace vr
23322345
//-----------------------------------------------------------------------------
23332346
// perf keys
23342347
static const char * const k_pch_Perf_Section = "perfcheck";
2335-
static const char * const k_pch_Perf_HeuristicActive_Bool = "heuristicActive";
2336-
static const char * const k_pch_Perf_NotifyInHMD_Bool = "warnInHMD";
2337-
static const char * const k_pch_Perf_NotifyOnlyOnce_Bool = "warnOnlyOnce";
2348+
static const char * const k_pch_Perf_PerfGraphInHMD_Bool = "perfGraphInHMD";
23382349
static const char * const k_pch_Perf_AllowTimingStore_Bool = "allowTimingStore";
23392350
static const char * const k_pch_Perf_SaveTimingsOnExit_Bool = "saveTimingsOnExit";
23402351
static const char * const k_pch_Perf_TestData_Float = "perfTestData";
@@ -2410,6 +2421,12 @@ namespace vr
24102421
static const char* const k_pch_WebInterface_WebEnable_Bool = "WebEnable";
24112422
static const char* const k_pch_WebInterface_WebPort_String = "WebPort";
24122423

2424+
//-----------------------------------------------------------------------------
2425+
// vrwebhelper keys
2426+
static const char* const k_pch_VRWebHelper_Section = "VRWebHelper";
2427+
static const char* const k_pch_VRWebHelper_DebuggerEnabled_Bool = "DebuggerEnabled";
2428+
static const char* const k_pch_VRWebHelper_DebuggerPort_Int32 = "DebuggerPort";
2429+
24132430
//-----------------------------------------------------------------------------
24142431
// tracking overrides - keys are device paths, values are the device paths their
24152432
// tracking/pose information overrides
@@ -2629,6 +2646,19 @@ const uint32_t VRCompositor_ReprojectionAsync = 0x04; // This flag indicate
26292646
// NumFramePresents > 1 also indicates the scene texture was reused,
26302647
// and also the number of times that it was presented in total.
26312648

2649+
const uint32_t VRCompositor_PredictionMask = 0x30; // The runtime may predict more than one frame (up to four) ahead if
2650+
// it detects the application is taking too long to render. These two
2651+
// bits will contain the count of additional frames (normally zero).
2652+
// Use the VR_COMPOSITOR_ADDITIONAL_PREDICTED_FRAMES macro to read from
2653+
// the latest frame timing entry.
2654+
2655+
const uint32_t VRCompositor_ThrottleMask = 0xC0; // Number of frames the compositor is throttling the application.
2656+
// Use the VR_COMPOSITOR_NUMBER_OF_THROTTLED_FRAMES macro to read from
2657+
// the latest frame timing entry.
2658+
2659+
#define VR_COMPOSITOR_ADDITIONAL_PREDICTED_FRAMES( timing ) ( ( ( timing ).m_nReprojectionFlags & vr::VRCompositor_PredictionMask ) >> 4 )
2660+
#define VR_COMPOSITOR_NUMBER_OF_THROTTLED_FRAMES( timing ) ( ( ( timing ).m_nReprojectionFlags & vr::VRCompositor_ThrottleMask ) >> 6 )
2661+
26322662
/** Provides a single frame's timing information to the app */
26332663
struct Compositor_FrameTiming
26342664
{
@@ -2668,6 +2698,9 @@ struct Compositor_FrameTiming
26682698
float m_flCompositorRenderStartMs;
26692699

26702700
vr::TrackedDevicePose_t m_HmdPose; // pose used by app to render this frame
2701+
2702+
uint32_t m_nNumVSyncsReadyForUse;
2703+
uint32_t m_nNumVSyncsToFirstView;
26712704
};
26722705

26732706
/** Cumulative stats for current application. These are not cleared until a new app connects,
@@ -3777,7 +3810,7 @@ class IVRTrackedCamera
37773810
virtual vr::EVRTrackedCameraError ReleaseVideoStreamTextureGL( vr::TrackedCameraHandle_t hTrackedCamera, vr::glUInt_t glTextureId ) = 0;
37783811
};
37793812

3780-
static const char * const IVRTrackedCamera_Version = "IVRTrackedCamera_003";
3813+
static const char * const IVRTrackedCamera_Version = "IVRTrackedCamera_004";
37813814

37823815
} // namespace vr
37833816

0 commit comments

Comments
 (0)