Demonstrates how to enable HDRFramebuffer mode if available. The render a test scene using a pattern that makes it easy to detect if the display actually enabled HDR mode.
This sample outputs to a HDR screen if supported.
This is a work in progress sample as the currently used tonemapper isn't suited for HDR displays.
Inspired by:
- UHD Color for Games
- Implementing HDR in ‘Rise of the Tomb Raider’
- High Dynamic Range Display Development
- Advanced Techniques and Optimization of HDR Color Pipelines
- VDR Follow Up – Tonemapping for HDR Signals
- HDR Programming
The app can be controlled using:
| Key | Result |
|---|---|
| 1 | Fullscreen linear rendering |
| 2 | Fullscreen tonemapped rendering |
| 3 | Split-screen rendering (default) |
| Q | Decrease exposure |
| E | Increase exposure |
| R | Reset exposure |
| P | Toggle HDR debug pattern on/off |
| A | Strafe left |
| W | Strafe right |
| S | Move forward |
| D | Move backward |
| Right Mouse | Mouse look (hold it) |
| Middle mouse | Reset camera |
Command line arguments':
| Argument | Description | Source |
|---|---|---|
| --DisableDisplayHDRCheck | Disables the check that verifies that the display is HDR compatible | Demo |
| --DisablePattern | Disable the debug pattern | Demo |
| -s, --Scene <arg> | Select the scene to run (0 to 2) | Demo |
| --ActualDpi <arg> | ActualDpi [x,y] Override the actual dpi reported by the native window | DemoHost |
| --DensityDpi <arg> | DensityDpi <number> Override the density dpi reported by the native window | DemoHost |
| --DisplayId <arg> | DisplayId <number> | DemoHost |
| --LogExtensions | Output the extensions to the log | DemoHost |
| --LogLayers | Output the layers to the log | DemoHost |
| --LogSurfaceFormats | Output the supported surface formats to the log | DemoHost |
| --VkApiDump | Enable the VK_LAYER_LUNARG_api_dump layer. | DemoHost |
| --VkPhysicalDevice <arg> | Set the physical device index. | DemoHost |
| --VkPresentMode <arg> | Override the present mode with the supplied value. Known values: VK_PRESENT_MODE_IMMEDIATE_KHR (0), VK_PRESENT_MODE_MAILBOX_KHR (1), VK_PRESENT_MODE_FIFO_KHR (2), VK_PRESENT_MODE_FIFO_RELAXED_KHR (3), VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR (1000111000), VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR (1000111001) | DemoHost |
| --VkScreenshot <arg> | Enable/disable screenshot support (defaults to enabled) | DemoHost |
| --VkValidate <arg> | Enable/disable the VK_LAYER_LUNARG_standard_validation layer. | DemoHost |
| --Window <arg> | Window mode [left,top,width,height] | DemoHost |
| --AppFirewall | Enable the app firewall, reporting crashes on-screen instead of exiting | DemoHostManager |
| --ContentMonitor | Monitor the Content directory for changes and restart the app on changes.WARNING: Might not work on all platforms and it might impact app performance (experimental) | DemoHostManager |
| --ExitAfterDuration <arg> | Exit after the given duration has passed. The value can be specified in seconds or milliseconds. For example 10s or 10ms. | DemoHostManager |
| --ExitAfterFrame <arg> | Exit after the given number of frames has been rendered | DemoHostManager |
| --ForceUpdateTime <arg> | Force the update time to be the given value in microseconds (can be useful when taking a lot of screen-shots). If 0 this option is disabled | DemoHostManager |
| --LogStats | Log basic rendering stats (this is equal to setting LogStatsMode to latest) | DemoHostManager |
| --LogStatsMode <arg> | Set the log stats mode, more advanced version of LogStats. Can be disabled, latest, average | DemoHostManager |
| --ScreenshotFormat <arg> | Chose the format for the screenshot: bmp, jpg, png (default), tga, hdr | DemoHostManager |
| --ScreenshotFrequency <arg> | Create a screenshot at the given frame frequency | DemoHostManager |
| --ScreenshotNamePrefix <arg> | Chose the screenshot name prefix (defaults to 'Screenshot') | DemoHostManager |
| --ScreenshotNameScheme <arg> | Chose the screenshot name scheme: frame (default), sequence, exact. | DemoHostManager |
| --ScreenshotToneMapper <arg> | Chose the tone mapper to apply when converting a HDR screenshot to SDR: hable, reinhard, clamp (default, colors are clamped to SDR ranges). | DemoHostManager |
| --Stats | Display basic frame profiling stats | DemoHostManager |
| --StatsFlags <arg> | Select the stats to be displayed/logged. Defaults to frame|cpu. Can be 'frame', 'cpu' or any combination | DemoHostManager |
| --Version | Print version information | DemoHostManager |
| --Graphics.Profile | Enable graphics service stats | GraphicsService |
| --Profiler.AverageEntries <arg> | The number of frames used to calculate the average frame-time. Defaults to: 60 | ProfilerService |
| --ghelp <arg> | Display option groups: all, demo or host | base |
| -h, --help | Display options | base |
| -v, --verbose | Enable verbose output | base |
