PVRRayTracingSimulation Manual
Overview
PVRRayTracingSimulation is a collection of Vulkan layers that, when active, simulates the capabilities and behavior of a theoretical PowerVR platform that supports ray tracing. To achieve this, this collection of layers does the following:
Changes queries made to match the capabilities listed in RayTracingPlatformCapabilities.json, using
VK_LAYER_LUNARG_device_simulation
.Emulates support of building Acceleration Structures on the host, through
VK_LAYER_POWERVR_acceleration_structure_host_commands
.
System Requirements
Each of the layers, like any Vulkan layer, require a Vulkan loader and a Vulkan-compatible driver to be supported. In addition, the driver must support the same or more features than the platform being simulated. Notably:
The driver must support the VK_KHR_ray_tracing_pipeline and VK_KHR_acceleration_structure extensions.
The driver must have greater capabilities than those in RayTracingPlatformCapabilities.json. Not fulfilling this may cause some applications to crash, while others will still work as intended.
Setting it up
Assume that $PVRRSROOT
is the absolute path to the directory where the files have been extracted.
Ensure that the supplied layers are visible to the Vulkan loader. For instance, you could set the
VK_LAYER_PATH
environment variable as follows:On Windows set it to:
$PVRRSROOT\\Lunarg;$PVRRSROOT
On GNU/Linux set it to:
$PVRRSROOT/Lunarg:$PVRRSROOT
Enable the layers. For instance by setting the
VK_INSTANCE_LAYERS
environment variable.On Windows, set it to:
VK_LAYER_POWERVR_acceleration_structure_host_commands;VK_LAYER_LUNARG_device_simulation
On GNU/Linux, set it to:
VK_LAYER_POWERVR_acceleration_structure_host_commands:VK_LAYER_LUNARG_device_simulation
Set the VK_DEVSIM_FILENAME environment variable to the absolute path of RayTracingPlatformCapabilities.json.
On Windows, set it to:
$PVRRSROOT\\RayTracingPlatformCapabilities.json
On GNU/Linux, set it to:
$PVRRSROOT/RayTracingPlatformCapabilities.json
Run your Vulkan application.
Acknowledgements
VK_LAYER_LUNARG_device_simulation
are built from VulkanTools, which is released under the Apache-2 license, as acknowledged in the VK_LAYER_LUNARG_device_simulation/LICENSE.txt
file.