Fork of VKD3D. Development branches for Proton's Direct3D 12 implementation.
Go to file
Joshua Ashton d2c7e0df29 vkd3d: Make enqueued_fence_count a uint32_t
Fixes atomic usage with it.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-24 11:39:24 +01:00
bin build: Add initial Autotools files. 2016-09-21 09:05:15 +02:00
crosslibs Add crosslibs .a to .gitignore. 2016-10-24 13:57:04 +02:00
demos demos/gears: Don't redefine _GNU_SOURCE 2020-06-24 15:27:22 +02:00
include vkd3d: Add vkd3d_atomic_uint32_{dec, inc}rement helper 2020-06-24 11:39:24 +01:00
libs vkd3d: Make enqueued_fence_count a uint32_t 2020-06-24 11:39:24 +01:00
m4 build: Redirect stderr to /dev/null in VKD3D_PROG_WIDL. 2019-04-15 21:02:14 +02:00
programs programs/vkd3d-compiler: Add build script 2020-06-24 15:27:22 +02:00
subprojects subprojects: Update dxil-spirv submodule 2020-06-24 15:18:56 +02:00
tests tests: Don't build uninteresting tests. 2020-06-24 15:19:18 +02:00
.gitignore build: Add Meson build system 2020-06-23 14:55:43 +02:00
.gitmodules subprojects: Add submodules for dependencies 2020-06-23 14:55:43 +02:00
ANNOUNCE Release 1.1. 2018-10-05 13:48:18 -05:00
AUTHORS Release 1.1. 2018-10-05 13:48:18 -05:00
COPYING Update copyright info for 2019. 2019-01-10 10:03:58 -06:00
INSTALL build: Add some standard files. 2016-10-28 12:34:12 +02:00
LICENSE Update license to LGPL v2.1. 2017-06-16 22:11:21 +02:00
Makefile.am vkd3d: Eliminate config.h 2020-06-23 14:55:43 +02:00
README vkd3d: Require vulkan headers > 1.1.129 2020-03-31 17:27:21 +02:00
autogen.sh build: Add initial Autotools files. 2016-09-21 09:05:15 +02:00
build-win32.txt build: Add Meson build system 2020-06-23 14:55:43 +02:00
build-win64.txt build: Add Meson build system 2020-06-23 14:55:43 +02:00
configure.ac vkd3d: Eliminate HAVE_SPIRV_UNIFIED1_SPIRV_H and HAVE_SPIRV_UNIFIED1_GLSL_STD_450_H 2020-06-23 14:55:43 +02:00
meson.build build: Fallback to vkd3d-utils if no d3d12 lib is present 2020-06-24 15:27:22 +02:00
meson_options.txt build: Add Meson build system 2020-06-23 14:55:43 +02:00
vkd3d_version.c.in build: Add Meson build system 2020-06-23 14:55:43 +02:00

README

=============================
The vkd3d 3D Graphics Library
=============================

Vkd3d is a 3D graphics library built on top of Vulkan. It has an API very
similar, but not identical, to Direct3D 12.

==============
Building vkd3d
==============

Vkd3d depends on SPIRV-Headers and Vulkan-Headers (>= 1.1.129).

Vkd3d generates some of its headers from IDL files. If you are using the
release tarballs, then these headers are pre-generated and are included. If
you are building from git, then they will be generated at build-time using
widl. By default, vkd3d will use the widl found in `PATH'. If widl is not
available or is not recent (>= 3.20), then you can build Wine with `make
tools/widl' to avoid building all of Wine. You can then point vkd3d's
configure at that widl binary with `WIDL="/path/to/widl"'.

For release builds, you may want to define NDEBUG. If you do not need debug log
messages, you may also consider VKD3D_NO_TRACE_MESSAGES and
VKD3D_NO_DEBUG_MESSAGES. For example, you can pass `CPPFLAGS="-DNDEBUG
-DVKD3D_NO_TRACE_MESSAGES"' to configure.

===========
Using vkd3d
===========

Vkd3d can be used by projects that target Direct3D 12 as a drop-in replacement
at build-time with some modest source modifications.

If vkd3d is available when building Wine, then Wine will use it to support
Direct3D 12 applications.

=====================
Environment variables
=====================

Most of the environment variables used by vkd3d are for debugging purposes. The
environment variables are not considered a part of API and might be changed or
removed in the future versions of vkd3d.

Some of debug variables are lists of elements. Elements must be separated by
commas or semicolons.

 * VKD3D_CONFIG - a list of options that change the behavior of libvkd3d.
    * vk_debug - enables Vulkan debug extensions.

 * VKD3D_DEBUG - controls the debug level for log messages produced by
   libvkd3d. Accepts the following values: none, err, fixme, warn, trace.

 * VKD3D_VULKAN_DEVICE - a zero-based device index. Use to force the selected
   Vulkan device.

 * VKD3D_DISABLE_EXTENSIONS - a list of Vulkan extensions that libvkd3d should
   not use even if available.

 * VKD3D_SHADER_DEBUG - controls the debug level for log messages produced by
   libvkd3d-shader. See VKD3D_DEBUG for accepted values.

 * VKD3D_SHADER_DUMP_PATH - path where shader bytecode is dumped.

 * VKD3D_TEST_DEBUG - enables additional debug messages in tests. Set to 0, 1
   or 2.

 * VKD3D_TEST_FILTER - a filter string. Only the tests whose names matches the
   filter string will be run, e.g. VKD3D_TEST_FILTER=clear_render_target.
   Useful for debugging or developing new tests.

 * VKD3D_TEST_PLATFORM - can be set to "wine", "windows" or "other". The test
   platform controls the behavior of todo(), todo_if(), bug_if() and broken()
   conditions in tests.

 * VKD3D_TEST_BUG - set to 0 to disable bug_if() conditions in tests.