Release notes

RELEASE NOTES

This page includes the release notes for Varjo software.
Varjo Base
Varjo SDK for Custom Engines

VARJO BASE

Varjo Base 3.0.5

March 29, 2021

  • This is a hot-fix release targeted primarily for the users of XR-3 and VR-3 headsets, and contains the following changes:
    • Improved mixed reality depth occlusion at near distances close to user (XR-3 only)
    • Improvements to rendering quality
    • Performance improvements and various bug fixes

Varjo Base 3.0.0

March 8, 2021

  • XR-3 and VR-3 support
  • Guided first-time setup flow for XR-3 and VR-3
  • Single-dot eye tracking calibration for foveated rendering for XR-3 & VR-3
  • Varjo inside-out tracking (Beta) for XR-3
  • Ultraleap’s fifth generation hand tracking (Gemini Preview)
  • Log in with Varjo Account. Varjo Base will check for a valid subscription when using XR-3 and VR-3.

  • Completely redesigned Menu for quick settings while wearing the headset. Menu can also be used with hands with the new headset models XR-3 and VR-3.
  • Varjo Marker tracking quality improvements
  • Improved performance
  • Fix to an issue where user settings were not always restored after software updates.

  • Native SDK updates
    • Foveated rendering API
    • 200Hz eye tracking for XR-3 & VR-3
    • Ultraleap hand tracking SDK for XR-3 & VR-3
    • Experimental 3D reconstruction API
  • Unity plugin updates
    • Support for foveated rendering
    • 200Hz eye tracking for XR-3 & VR-3
    • Ultraleap hand tracking SDK for XR-3 & VR-3
    • Support for Chroma keying
    • Video pass-through metadata only stream
    • Support for Vive trackers
    • Support for the Experimental 3D reconstruction
  • Simulate XR-3 and VR-3 options in Varjo Base Analytics window

Varjo Base 2.5.0

September 28, 2020

  • Added ability to change between display blending modes
  • Added experimental support for chroma masking
  • Fixed a bug with Unreal depth submission

Varjo Base 2.4.1

August 17, 2020

  • Mixed Reality depth estimation performance improvements
  • Fixed a bug occasionally preventing starting of XR-1 Developer Edition cameras on Windows 10 May 2020 update (version 2004)
  • Fixed a bug with DX12 texture creation under multi-GPU SLI

Varjo Base 2.4.0

June 22, 2020

  • Added Motion Prediction
  • Added Override origin and direction
  • Added Chroma key UI
  • Unity XR SDK release
  • Added Multiclient support
  • Added HDR cube map support
  • Added Varjo Marker support for Unity
  • Added experimental support for video post-process shaders
  • Added experimental support for foveated rendering
  • Added support for matching color tone and brightness between VR and VST

Varjo Base 2.3.1

June 2, 2020

  • Added SteamVR 1.12 compatibility
  • Removed an error dialog when selecting VST image
  • Added temperature monitoring for the XR-1 Developer Edition hand tracking module
  • Fixed bug in Varjo Tracking for Japanese locale

Varjo Base 2.3.0

May 4, 2020

  • Varjo Markers full release
  • Added functionality to export eye tracking data
  • Added UI for selecting third-party tracking methods
  • Improved depth estimation for XR-1 Developer Edition
  • Added functionality to recalibrate cameras on XR-1 Developer Edition
  • Out-of-box support for client applications running in admin mode

Varjo Base 2.2.1

March 12, 2020

  • Fixed a bug when updating Varjo Base

Varjo Base 2.2.0

March 10, 2020

  • Added chroma key support for XR-1 Developer Edition
  • Added Varjo Marker support for XR-1 Developer Edition
  • Added simulation mode for XR-1 Developer Edition
  • Added DX12 API support
  • Added First Time Use wizard
  • Added optional admin-mode support for client applications
  • Bug and performance fixes

Varjo Base 2.1.0

December 16, 2019

  • Added support for rendering different images in context and focus
  • Added automated VR scene color correction based on VST image
  • Added MR examples for Unity, Unreal, and Native SDK
  • Added 3DoF tracking fallback in case the 6DoF tracking becomes unavailable
  • Implemented various rendering performance improvements

Varjo Base 2.0.0

November 7, 2019

  • Improved rendering processes
  • Switched eye tracking calibration to faster mode
  • Added Tracking Plugin API for third party tracking solutions
  • Added support for mixed reality
  • Added OpenVR/SteamVR application support

VARJO SDK FOR CUSTOM ENGINES

Varjo SDK for Custom Engines 3.0.0

This release adds API functionality for new XR-3/VR-3 headsets.

Added

  • Foveated rendering API (finalized from earlier experimental version). This adds the following new functionality:
    • Ability to query FOV tangents for both foveated and non-foveated views (varjo_GetFoveatedFovTangents and varjo_GetFovTangents)
    • Function to query texture sizes (varjo_GetTextureSize) for best, recommended and foveated quality. Applications should migrate to using this API for fetching texture sizes.
    • varjo_D3D12UpdateVariableRateShadingTexture for generating various variable rate shading masks with D3D12 (other API support coming later).
  • Improved gaze data API that supports parallel data streams and 200Hz gaze tracking.
  • Helper function varjo_GetProjectionMatrix to convert FOV half tangents to projection matrix.
  • varjo_Error_SwapChainTextureIsNotReleased error code. This error will be raised if application forgets to call varjo_ReleaseSwapChainImage before varjo_EndFrameWithLayers.

Changed

  • Refactor render target handling in example code
  • Refactor some code common to all examples (logging)
  • Improve marker rendering in MarkerExample application
  • Update license

Removed

  • Legacy rendering API that was marked deprecated

Varjo SDK for Custom Engines 2.4.0

Added

  • Benchmark example: Support for rendering left eye views and right eye views on different gpus in sli for opengl, d3d12 (--use-sli) Support for rendering all eye views on slave gpu (--use-slave-gpu)

Varjo SDK for Custom Engines 2.3.0

Added

  • New mixed reality camera property varjo_CameraPropertyType_Sharpness
  • Generic varjo_Lock() and varjo_Unlock() functions for exclusively locking MR features for the calling session. Related new error codes varjo_Error_AlreadyLocked and varjo_Error_NotLocked.
  • New function varjo_GetPropertyString to get a string property
  • New function varjo_GetPropertyStringSize to get the size of a buffer for a string property
  • New properties to get the product name (varjo_PropertyKey_HMDProductName) and serial number (varjo_PropertyKey_HMDSerialNumber) of the HMD
  • varjo_RenderAPI_D3D12 that was missing from 2.2 release
  • New error codes for rendering data validation:
    • varjo_Error_InvalidSwapChain
    • varjo_Error_D3D12CreateTextureFailed
    • varjo_Error_WrongSwapChainTextureFormat
    • varjo_Error_InvalidViewExtension
  • Benchmark example: occlusion mesh rendering for all APIs, and support for reversed depth (--reverse-depth)

Changed

  • Update examples to use the new lock API
  • varjo_GetSupportedTextureFormats can now return varjo_Error_InvalidRenderAPI
  • Refactor common example code: headless view and logging macros
  • Stabilize Varjo World API (beta in 2.2). This is a breaking change; apps built on top of 2.2 VarjoLib will stop working gracefully (i.e. markers will not be returned anymore with new 2.3 runtime). The main change is in naming as visual markers are now called object markers. Also, the separate dynamic and static marker types have been removed; prediction mode similar to 2.2 dynamic marker is available to get similar behavior.

Varjo SDK for Custom Engines 2.2.0

Added

  • DirectX 12 support. New header Varjo_d3d12.h and a separate function for DX12 swapchain creation in Varjo_layers.h.
  • DirectX 12 renderer for Benchmark example. Enable with –renderer=d3d12.
  • API for controlling chroma keying (Varjo_mr.h and Varjo_mr_types.h), a new feature in 2.2 software release.
  • New example, ChromaKeyExample, for showing the usage of chroma key feature.
  • Varjo world API (Varjo_world.h and Varjo_types_world.h). This API allows applications to query objects exposed by Varjo stack and the related components (such as the pose of an object). This API is currently used for visual markers, a new feature in 2.2 software release.
  • New example, MarkerExample, for showing the basic usage of Varjo World API and visual marker feature.

Changed

  • Move reusable classes from MRExample to Common folder.
  • Wrap all example classes with VarjoExamples namespace.

Varjo SDK for Custom Engines 2.1.0

Added

  • New error codes varjo_Error_ValidationFailure, varjo_Error_InvalidSwapChainRect and varjo_Error_ViewDepthExtensionValidationFailure. These tie with the added validation for varjo_SubmitInfoLayers.
  • Benchmark example app commandline parameter –depth-format for setting the depth-stencil texture format (d32/d24s8/d32s8)
  • View extension (varjo_ViewExtensionDepthTestRange) to define ranges for which the depth test is active. Outside the given range the layer is alpha-blended in layer order without depth testing.
  • varjo_UpdateNearFarPlanes to replace deprecated varjo_UpdateClipPlaneDistances. The implementation of this function is in Varjo_math.h.

Changed

  • Improve MRExample application
  • Update Benchmark to use varjo_UpdateNearFarPlanes

Deprecated

  • Legacy rendering API. This includes types in Varjo_types.h and functions in Varjo.h, Varjo_d3d11.h and Varjo_gl.h. All applications need to migrate to Layer API (defined in Varjo_layers.h).

Varjo SDK for Custom Engines 2.0.0

Added

  • Mixed reality API (Varjo_mr.h and Varjo_mr_types.h) for controlling mixed reality devices and cameras
  • Mixed reality API related events:
    • varjo_EventType_MRDeviceStatus
    • varjo_EventType_MRCameraPropertyChange
  • Mixed reality API related error codes:
    • varjo_Error_RequestFailed
    • varjo_Error_OperationFailed
    • varjo_Error_NotAvailable
    • varjo_Error_CapabilityNotAvailable
    • varjo_Error_CameraAlreadyLocked
    • varjo_Error_CameraNotLocked
    • varjo_Error_CameraInvalidPropertyType
    • varjo_Error_CameraInvalidPropertyValue
    • varjo_Error_CameraInvalidPropertyMode
  • Property key for querying whether a mixed reality capable device is currently connected (varjo_PropertyKey_MRAvailable)
  • Data stream API (Varjo_datastream.h and Varjo_datastream_types.h) for subscribing to color camera and lighting cubemap streams
  • Data stream API related events:
    • varjo_EventType_DataStreamStart
    • varjo_EventType_DataStreamStop
  • Data stream API related error codes:
    • varjo_Error_DataStreamInvalidCallback
    • varjo_Error_DataStreamInvalidId
    • varjo_Error_DataStreamAlreadyInUse
    • varjo_Error_DataStreamNotInUse
    • varjo_Error_DataStreamBufferInvalidId
    • varjo_Error_DataStreamBufferAlreadyLocked
    • varjo_Error_DataStreamBufferNotLocked
    • varjo_Error_DataStreamFrameExpired
    • varjo_Error_DataStreamDataNotAvailable
  • varjo_BeginFrameWithLayers to begin a frame when using the layer rendering API. This is effectively the same varjo_BeginFrame but without the second parameter.
  • New parameters for controlling gaze output filter
  • Mixed reality example (MRExample)
  • New options for the benchmark example to run with video see-through

Removed

  • Flag varjo_LayerFlag_BlendMode_Inherit. Inheriting has no effect anymore since runtime version 2.0, so the flag is obsolete.
  • Flag varjo_LayerFlag_BlendMode_Opaque. Opaque is the default blending mode since runtime version 2.0, so the flag is obsolete. Applications utilizing alpha blending need to turn it on using varjo_LayerFlag_BlendMode_AlphaBlend.

Changed

  • varjo_LayerMultiProj::views can be filled with just two views for submission of a stereo pair. Varjo compositor will split the image for the quad display devices. This is a runtime change, but important enough to be documented here as well.
  • Rename varjo_LayerFlag_DepthSorting to varjo_LayerFlag_DepthTesting.
  • Examples are now built using CMake. Instructions under examples/README.txt.

Deprecated

  • Blending / depth testing related submission flags (varjo_SubmitFlag_Opaque, varjo_SubmitFlag_InvertAlpha and varjo_SubmitFlag_DepthSorting). Behavior is controlled now for each layer separately.
  • varjo_SubmitInfoLayers::flags. This field has no effect.

Varjo SDK for Custom Engines 1.4.0

  • Added experimental layer rendering API (Varjo_layers.h and Varjo_layer_types.h) Note: This will be finalized in the next release and might still be subject to small changes. The supplied example uses both renderng APIs. Developer documentation will be included in the next version as well
  • Added varjo_RequestGazeCalibrationWithParameters for application-controlled gaze calibration
  • Added varjo_GetViewCount to query number of views
  • Added varjo_Error_GazeInvalidParameter to denote error of passing invalid parameters to varjo_RequestGazeCalibrationWithParameters
  • Added varjo_Error_D3D11CreateTextureFailed to denote error in texture creation
  • Added properties for querying gaze calibration quality
  • Added property for querying HMD connection status
  • Added support for the new texture formats: A8_UNORM, YUV422, RGBA16_FLOAT, D24_UNORM_S8_UINT and D32_FLOAT_S8_UINT

Varjo SDK for Custom Engines 1.3.0

  • Added varjo_EventType_Foreground
  • Minor documentation improvements

Varjo SDK for Custom Engines 1.2.0

  • Support for 32-bit applications
  • Improved examples
  • Native SDK projection matrix is now off-axis to provide improved image quality.
    • NOTE: Applications that don’t support off-axis projection should call varjo_SetCenteredProjection(…) function to enable old behavior.
    • NOTE: Applications built with <1.1 behave as previously.
  • Error messages for rendering and gaze are separated.
  • VarjoLib does not require CPU with AVX support anymore