Vkd3d provides '''VKD3D_DEBUG''' and '''VKD3D_SHADER_DEBUG''' environment variables to control debug log messages. The debug variables can be set to one of the following debug log levels: '''none''', '''err''', '''fixme''', '''warn''', '''trace'''.

Vkd3d provides '''VKD3D_DEBUG''' and '''VKD3D_SHADER_DEBUG''' environment variables to control debug log messages. The debug variables can be set to one of the following debug log levels: '''none''', '''err''', '''fixme''', '''warn''', '''trace'''.

See the [https://source.winehq.org/git/vkd3d.git/blob_plain/HEAD:/README README file] for description of all debug environment variables.

See the [https://source.winehq.org/git/vkd3d.git/blob_plain/HEAD:/README README file] for description of all debug environment variables.

+

+

== Vulkan validation layers ==

+

+

Enable validation layers in a standard way:

+

+

export VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_standard_validation

+

+

You may also want to enable Vulkan debug extensions in vkd3d:

+

+

VKD3D_CONFIG=vk_debug

+

+

== Other tools ==

+

+

* [https://renderdoc.org/ RenderDoc] is a frame-capture based debugger. It supports Vulkan and Direct3D 12.

+

* VK_LAYER_LUNARG_api_dump is useful to dump Vulkan commands produced by libvkd3d.

+

* [https://github.com/ValveSoftware/Fossilize Fossilize] might be useful for debugging crashes in driver shader compiler. Just capture pipelines using VK_LAYER_fossilize and use fossilize-replay to reproduce the crash.

+

+

= Tests =

+

+

Use the following command to run tests:

+

make check

+

+

Tests can also be run individually, for example:

+

make tests/d3d12 && ./tests/d3d12

+

VKD3D_TEST_FILTER=clear_render_target ./tests/d3d12

+

+

To cross-compile tests for Windows run the following command:

+

make crosstest

+

+

== Shader bytecode in tests ==

+

+

Some tests include compiled shader bytecode. Shader bytecode should be generated with '''/Qstrip_debug /Qstrip_reflect''' options. For example:

Debugging

Debug output

Vkd3d provides VKD3D_DEBUG and VKD3D_SHADER_DEBUG environment variables to control debug log messages. The debug variables can be set to one of the following debug log levels: none, err, fixme, warn, trace.

See the README file for description of all debug environment variables.

Vulkan validation layers

Enable validation layers in a standard way:

export VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_standard_validation

You may also want to enable Vulkan debug extensions in vkd3d:

VKD3D_CONFIG=vk_debug

Other tools

RenderDoc is a frame-capture based debugger. It supports Vulkan and Direct3D 12.

VK_LAYER_LUNARG_api_dump is useful to dump Vulkan commands produced by libvkd3d.

Fossilize might be useful for debugging crashes in driver shader compiler. Just capture pipelines using VK_LAYER_fossilize and use fossilize-replay to reproduce the crash.