PVRRayTracingSimulation Manual


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.

  1. 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:

    • On GNU/Linux set it to:

  2. Enable the layers. For instance by setting the VK_INSTANCE_LAYERS environment variable.

    • On Windows, set it to:

    • On GNU/Linux, set it to:

  3. Set the VK_DEVSIM_FILENAME environment variable to the absolute path of RayTracingPlatformCapabilities.json.

    • On Windows, set it to:

    • On GNU/Linux, set it to:

  4. Run your Vulkan application.


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.