Release notes


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


Varjo Base, release version 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, release version 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, release version 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, release version 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, release version 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, release version 2.2.1

March 12, 2020

  • Fixed a bug when updating Varjo Base

Varjo Base, release version 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, release version 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, release version 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 Base, release version 1.4.0

October 3, 2019

  • Fully redesigned Varjo Base with improved user interface for controlling your headset
  • Added 6DOF timewarp

Varjo Base, release version 1.3.1

July 22, 2019

  • Improved stability in the Varjo Base Mirroring window
  • Improved USB diagnostics
  • Improved Eye tracking diagnostics

Varjo Base, release version 1.3.0

June 19, 2019

  • Updated visual style for Headset alignment guidance
  • New built-in tools for screenshot, video capture, eye tracking visualisation and other controls in Varjo Base Mirroring window
  • LWRP and HDRP support added for Unity
  • SLI performance improvements
  • Focus area visual quality improvements
  • Improved management for headset overheating situations
  • New developer tool for uploading Eye tracking data to Varjo for analysing the eye tracking behaviour

Varjo Base, release version 1.2.1

May 8, 2019

  • WIP for SLI systems support (current initialisation times for SLI could be up to 30 seconds)
  • More robust and fast USB initialization
  • Optimised In-HMD CPU performance

Varjo Base, release version 1.2.0

April 18, 2019

  • Additional visual enhancements for the Bionic Display™
  • Improved mapper with even higher precision for the 20/20 Eye Tracker
  • New UI for more precise headset alignment added
  • More robust and accurate automatic IPD adjustment
  • Compositor mirror for simultaneous use with VR-1 implemented
  • Minor bugs fixed – improved stability and overall performance

Varjo Base, release version 1.1.2

April 3, 2019

  • Latest SteamVR support added

Varjo Base, release version 1.1.1

March 19, 2019

  • UI fixes and improvements in Varjo Base
  • License file update for the SDK

Varjo Base, release version 1.1.0

March 5, 2019

  • This is the first official release of the Varjo Base software. Installing Varjo Base will make your VR-1 headset work with your Windows 10 computer.


Varjo SDK for Custom Engines, release version 2.3.0

May 4, 2020


  • 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)


  • 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, release version 2.2.0

March 10, 2020


  • 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.


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

Varjo SDK for Custom Engines, release version 2.1.0

December 16, 2019


  • 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.


  • Improve MRExample application
  • Update Benchmark to use varjo_UpdateNearFarPlanes


  • 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, release version 2.0.0

November 7, 2019


  • 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


  • 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.


  • 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.


  • 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, release version 1.4.0

October 3, 2019

  • 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, release version 1.3.0

June 19, 2019

  • Added varjo_EventType_Foreground
  • Minor documentation improvements

Varjo SDK for Custom Engines, release version 1.2.0

April 18, 2019

  • 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


Varjo Firmware, release version 2.5

October 28, 2019

  • Improved USB connection reliability after waking up from sleep and cable disconnect/reconnect
  • HMD HW reset request support from Varjo Base
  • USB device string descriptor changed to “Varjo device”, firmware name to “HMD”
  • Bugfixes to handle multiple USB suspend/resume requests and display wake up after sleep

Varjo Firmware, release version 2.1

August 13, 2019

  • Indication LED colors aligned to new specification
  • Video control chip firmware update improving display and cable detection by GPU
  • Thermal limitation updates improving eye tracking usage

Varjo Firmware, release version 2.0

February 26, 2019

  • Initial public release