Skip to content

Running Shaders

Chas. Boyd edited this page Apr 13, 2017 · 28 revisions

To run shaders compiled as DXIL, you will need support from the operating system as well as from the driver for your graphics adapter. This link lists the components required for operation.

While support for retail DXIL is available across Windows 10 today, production drivers expose the new capability via experimental mode which requires the Windows 10 Creators Update (or any Windows 10 Insider Preview Build 15007 or later).

Drivers indicate support DXIL by reporting support for Shader Model 6, possibly in experimental mode. To enable support in these cases, the Developer Mode setting must be enabled.

Hardware Drivers:

The following vendors provide drivers with hardware GPU support for DXIL:

NVIDIA's new r381 drivers (r381.65 and later) provide experimental mode support for DXIL 1.0 and Shader Model 6.0. This feature is considered beta at this time and intended to enable developers to try out DXIL and the new Shader Model 6.0 features -- Wave Math and Int64. Here are the Release Notes., and a download link.

AMD released its first driver with experimental mode support for DXIL and Shader Model 6: Radeon Software Crimson ReLive Edition 17.3.1. It uses and requires DXIL v1.0. Using this driver, all of the execution tests pass except for the 2 wave intrinsics tests. This capability is also provided in the update, Radeon Software Crimson ReLive Edition 17.3.2.

A later driver should have fixes for the wave routines.

Software Rendering

In the absence of hardware support, tests will run using the Windows Advanced Rasterization Platform (WARP) adapter. To get the correct version of WARP working, in addition to setting Developer mode, you should install the 'Graphics Tools' optional feature via the Settings app (click the 'Apps' icon, then the 'Manage optional features' link, then 'Add a feature', and select 'Graphics Tools' from the list).

To select the first available adapter that supports D3D12 instead, the parameter /p:"Adapter=*" can be added to the test command line in utils/hct/hcttest.cmd.