mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2024-11-21 16:46:41 -08:00
Release 1.5.
This commit is contained in:
parent
d484a08d10
commit
56b2f56b86
Notes:
Alexandre Julliard
2022-10-18 00:13:00 +02:00
Approved-by: Alexandre Julliard (@julliard) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/15
94
ANNOUNCE
94
ANNOUNCE
@ -1,96 +1,50 @@
|
|||||||
The Wine team is proud to announce that release 1.4 of vkd3d, the Direct3D to
|
The Wine team is proud to announce that release 1.5 of vkd3d, the Direct3D to
|
||||||
Vulkan translation library, is now available.
|
Vulkan translation library, is now available.
|
||||||
|
|
||||||
This release contains improvements that are listed in the release notes below.
|
This release contains improvements that are listed in the release notes below.
|
||||||
The main highlights are:
|
The main highlights are:
|
||||||
|
|
||||||
- Many improvements to the HLSL compiler.
|
- Support for various HLSL features and intrinsics.
|
||||||
- A new descriptor heap implementation using the VK_EXT_descriptor_indexing
|
- Typed unordered access view loads of multicomponent formats.
|
||||||
extension.
|
- Miscellaneous bug fixes.
|
||||||
- A new fence implementation using the VK_KHR_timeline_semaphore extension.
|
|
||||||
|
|
||||||
The source is available from the following location:
|
The source is available from the following location:
|
||||||
|
|
||||||
https://dl.winehq.org/vkd3d/source/vkd3d-1.4.tar.xz
|
https://dl.winehq.org/vkd3d/source/vkd3d-1.5.tar.xz
|
||||||
|
|
||||||
The current source can also be pulled directly from the git repository:
|
The current source can also be pulled directly from the git repository:
|
||||||
|
|
||||||
https://source.winehq.org/git/vkd3d.git/
|
https://gitlab.winehq.org/wine/vkd3d.git
|
||||||
|
|
||||||
Vkd3d is available thanks to the work of multiple people. See the file AUTHORS
|
Vkd3d is available thanks to the work of multiple people. See the file AUTHORS
|
||||||
for the complete list.
|
for the complete list.
|
||||||
|
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
|
|
||||||
What's new in vkd3d 1.4
|
What's new in vkd3d 1.5
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
|
|
||||||
*** libvkd3d
|
|
||||||
|
|
||||||
- A new descriptor heap implementation using the VK_EXT_descriptor_indexing
|
|
||||||
extension. In particular, the new implementation is more efficient when
|
|
||||||
large descriptor heaps are used by multiple command lists. The new
|
|
||||||
`virtual_heaps' configuration option can be used to select the original
|
|
||||||
implementation even when the VK_EXT_descriptor_indexing extension is
|
|
||||||
available.
|
|
||||||
|
|
||||||
- A new fence implementation using the VK_KHR_timeline_semaphore extension.
|
|
||||||
The new implementation addresses a number of edge cases the original
|
|
||||||
implementation was unable to, as well as being somewhat more efficient.
|
|
||||||
|
|
||||||
- When the VK_EXT_robustness2 extension is available, it is used to implement
|
|
||||||
null views. This more accurately matches Direct3D 12 behaviour. For example,
|
|
||||||
all reads from such a null view return zeroes, while that isn't necessarily
|
|
||||||
the case for out-of-bounds reads with the original implementation.
|
|
||||||
|
|
||||||
- New interfaces:
|
|
||||||
- vkd3d_set_log_callback() allows writing log output via a custom callback.
|
|
||||||
This can be used to integrate vkd3d's log output with other logging
|
|
||||||
systems.
|
|
||||||
|
|
||||||
|
|
||||||
*** libvkd3d-shader
|
*** libvkd3d-shader
|
||||||
|
|
||||||
- New features for the HLSL source type:
|
- New features for the HLSL source type:
|
||||||
- Support for integer arithmetic, bitwise and shift operations.
|
- Improved support for HLSL object types (like e.g. `Texture2D') inside
|
||||||
- Support for matrix and vector subscripting.
|
structures and arrays.
|
||||||
- Support for the mul() intrinsic function.
|
- Implicitly sized array initialisers.
|
||||||
- Support for matrix copying, casting, and entry-wise operations.
|
- Support for the dot() intrinsic function.
|
||||||
- Support for complex initialisers.
|
- Support for the ldexp() intrinsic function.
|
||||||
- Support for the `nointerpolation' modifier. This modifier is applied by
|
- Support for the lerp() intrinsic function.
|
||||||
default to integer variables.
|
- Support for the logical `and', `or', and `not' operators in shader model 4
|
||||||
- Support for the SV_VertexID semantic.
|
and 5 targets.
|
||||||
- Support for matrix-typed varyings.
|
- Support for casts from `bool' types in shader model 4 and 5 targets.
|
||||||
- Constant folding for a number of operators.
|
- Constant folding for integer bitwise operations.
|
||||||
- Copy propagation across branches and loops. This allows use of non-numeric
|
- Constant folding for integer min() and max().
|
||||||
variables anywhere in a program, as well as more optimised code for
|
|
||||||
accessing numeric variables within branches and loops.
|
|
||||||
|
|
||||||
- The disassembler supports the shader model 5 `msad' instruction.
|
|
||||||
|
|
||||||
- New interfaces:
|
- New interfaces:
|
||||||
- vkd3d_shader_set_log_callback() allows writing log output via a custom
|
- The VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV compile option can be used to
|
||||||
callback.
|
specify the SPIR-V format to use for typed unordered access view loads.
|
||||||
|
When set to `Unknown', and the `shaderStorageImageReadWithoutFormat'
|
||||||
|
feature is enabled in the target environment, this allows typed loads from
|
||||||
*** libvkd3d-utils
|
multicomponent format unordered access views. If left unspecified, a R32
|
||||||
|
format will be used, like in previous versions of libvkd3d-shader.
|
||||||
- New interfaces:
|
|
||||||
- vkd3d_utils_set_log_callback() allows writing log output via a custom
|
|
||||||
callback.
|
|
||||||
|
|
||||||
|
|
||||||
*** build
|
|
||||||
|
|
||||||
- The minimum required version of Vulkan-Headers and SPIRV-Headers for this
|
|
||||||
release is version 1.2.139.
|
|
||||||
|
|
||||||
- The SONAME_LIBVULKAN configure variable can be used to specify the shared
|
|
||||||
object name of the Vulkan library. Because vkd3d loads the Vulkan library
|
|
||||||
dynamically, specifying this removes the need for a Vulkan import library at
|
|
||||||
build time.
|
|
||||||
|
|
||||||
- The `crosstests' target no longer builds Win32/PE demos or tests when these
|
|
||||||
were not enabled at configure time.
|
|
||||||
|
|
||||||
|
1
AUTHORS
1
AUTHORS
@ -16,6 +16,7 @@ Isabella Bosia
|
|||||||
Jactry Zeng
|
Jactry Zeng
|
||||||
Joshua Ashton
|
Joshua Ashton
|
||||||
Józef Kucia
|
Józef Kucia
|
||||||
|
Martin Storsjö
|
||||||
Matteo Bruni
|
Matteo Bruni
|
||||||
Nikolay Sivov
|
Nikolay Sivov
|
||||||
Philip Rebohle
|
Philip Rebohle
|
||||||
|
@ -242,7 +242,7 @@ libvkd3d_shader_la_SOURCES = \
|
|||||||
libs/vkd3d-shader/vkd3d_shader_main.c \
|
libs/vkd3d-shader/vkd3d_shader_main.c \
|
||||||
libs/vkd3d-shader/vkd3d_shader_private.h
|
libs/vkd3d-shader/vkd3d_shader_private.h
|
||||||
libvkd3d_shader_la_CFLAGS = $(AM_CFLAGS) -DLIBVKD3D_SHADER_SOURCE -I$(srcdir)/libs/vkd3d-shader @SPIRV_TOOLS_CFLAGS@
|
libvkd3d_shader_la_CFLAGS = $(AM_CFLAGS) -DLIBVKD3D_SHADER_SOURCE -I$(srcdir)/libs/vkd3d-shader @SPIRV_TOOLS_CFLAGS@
|
||||||
libvkd3d_shader_la_LDFLAGS = $(AM_LDFLAGS) -version-info 3:0:2
|
libvkd3d_shader_la_LDFLAGS = $(AM_LDFLAGS) -version-info 4:0:3
|
||||||
libvkd3d_shader_la_LIBADD = libvkd3d-common.la @SPIRV_TOOLS_LIBS@ -lm
|
libvkd3d_shader_la_LIBADD = libvkd3d-common.la @SPIRV_TOOLS_LIBS@ -lm
|
||||||
if HAVE_LD_VERSION_SCRIPT
|
if HAVE_LD_VERSION_SCRIPT
|
||||||
libvkd3d_shader_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libs/vkd3d-shader/vkd3d_shader.map
|
libvkd3d_shader_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libs/vkd3d-shader/vkd3d_shader.map
|
||||||
@ -276,7 +276,7 @@ libvkd3d_la_SOURCES = \
|
|||||||
libs/vkd3d/vkd3d_shaders.h \
|
libs/vkd3d/vkd3d_shaders.h \
|
||||||
libs/vkd3d/vulkan_procs.h
|
libs/vkd3d/vulkan_procs.h
|
||||||
libvkd3d_la_CFLAGS = $(AM_CFLAGS) -DLIBVKD3D_SOURCE
|
libvkd3d_la_CFLAGS = $(AM_CFLAGS) -DLIBVKD3D_SOURCE
|
||||||
libvkd3d_la_LDFLAGS = $(AM_LDFLAGS) -version-info 5:0:4
|
libvkd3d_la_LDFLAGS = $(AM_LDFLAGS) -version-info 6:0:5
|
||||||
libvkd3d_la_LIBADD = libvkd3d-common.la libvkd3d-shader.la @DL_LIBS@ @PTHREAD_LIBS@
|
libvkd3d_la_LIBADD = libvkd3d-common.la libvkd3d-shader.la @DL_LIBS@ @PTHREAD_LIBS@
|
||||||
if HAVE_LD_VERSION_SCRIPT
|
if HAVE_LD_VERSION_SCRIPT
|
||||||
libvkd3d_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libs/vkd3d/vkd3d.map
|
libvkd3d_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libs/vkd3d/vkd3d.map
|
||||||
@ -288,7 +288,7 @@ libvkd3d_utils_la_SOURCES = \
|
|||||||
libs/vkd3d-utils/vkd3d_utils_main.c \
|
libs/vkd3d-utils/vkd3d_utils_main.c \
|
||||||
libs/vkd3d-utils/vkd3d_utils_private.h
|
libs/vkd3d-utils/vkd3d_utils_private.h
|
||||||
libvkd3d_utils_la_CFLAGS = $(AM_CFLAGS) -DLIBVKD3D_UTILS_SOURCE
|
libvkd3d_utils_la_CFLAGS = $(AM_CFLAGS) -DLIBVKD3D_UTILS_SOURCE
|
||||||
libvkd3d_utils_la_LDFLAGS = $(AM_LDFLAGS) -version-info 4:0:3
|
libvkd3d_utils_la_LDFLAGS = $(AM_LDFLAGS) -version-info 4:1:3
|
||||||
libvkd3d_utils_la_LIBADD = libvkd3d-common.la libvkd3d-shader.la libvkd3d.la @PTHREAD_LIBS@
|
libvkd3d_utils_la_LIBADD = libvkd3d-common.la libvkd3d-shader.la libvkd3d.la @PTHREAD_LIBS@
|
||||||
if HAVE_LD_VERSION_SCRIPT
|
if HAVE_LD_VERSION_SCRIPT
|
||||||
libvkd3d_utils_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libs/vkd3d-utils/vkd3d_utils.map
|
libvkd3d_utils_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libs/vkd3d-utils/vkd3d_utils.map
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
AC_PREREQ([2.69])
|
AC_PREREQ([2.69])
|
||||||
AC_INIT([vkd3d],[1.4])
|
AC_INIT([vkd3d],[1.5])
|
||||||
|
|
||||||
AC_CONFIG_AUX_DIR([bin])
|
AC_CONFIG_AUX_DIR([bin])
|
||||||
AC_CONFIG_MACRO_DIR([m4])
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
#define VK_NO_PROTOTYPES
|
#define VK_NO_PROTOTYPES
|
||||||
#define VK_USE_PLATFORM_XCB_KHR
|
#define VK_USE_PLATFORM_XCB_KHR
|
||||||
#define VKD3D_UTILS_API_VERSION VKD3D_API_VERSION_1_4
|
#define VKD3D_UTILS_API_VERSION VKD3D_API_VERSION_1_5
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include <vkd3d.h>
|
#include <vkd3d.h>
|
||||||
#include <vkd3d_utils.h>
|
#include <vkd3d_utils.h>
|
||||||
|
@ -61,6 +61,7 @@ enum vkd3d_api_version
|
|||||||
VKD3D_API_VERSION_1_2,
|
VKD3D_API_VERSION_1_2,
|
||||||
VKD3D_API_VERSION_1_3,
|
VKD3D_API_VERSION_1_3,
|
||||||
VKD3D_API_VERSION_1_4,
|
VKD3D_API_VERSION_1_4,
|
||||||
|
VKD3D_API_VERSION_1_5,
|
||||||
|
|
||||||
VKD3D_FORCE_32_BIT_ENUM(VKD3D_API_VERSION),
|
VKD3D_FORCE_32_BIT_ENUM(VKD3D_API_VERSION),
|
||||||
};
|
};
|
||||||
|
@ -46,6 +46,7 @@ enum vkd3d_shader_api_version
|
|||||||
VKD3D_SHADER_API_VERSION_1_2,
|
VKD3D_SHADER_API_VERSION_1_2,
|
||||||
VKD3D_SHADER_API_VERSION_1_3,
|
VKD3D_SHADER_API_VERSION_1_3,
|
||||||
VKD3D_SHADER_API_VERSION_1_4,
|
VKD3D_SHADER_API_VERSION_1_4,
|
||||||
|
VKD3D_SHADER_API_VERSION_1_5,
|
||||||
|
|
||||||
VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_API_VERSION),
|
VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_API_VERSION),
|
||||||
};
|
};
|
||||||
|
@ -206,7 +206,7 @@ static enum vkd3d_shader_input_sysval_semantic vkd3d_siv_from_sysval(enum vkd3d_
|
|||||||
|
|
||||||
#define VKD3D_SPIRV_VERSION 0x00010000
|
#define VKD3D_SPIRV_VERSION 0x00010000
|
||||||
#define VKD3D_SPIRV_GENERATOR_ID 18
|
#define VKD3D_SPIRV_GENERATOR_ID 18
|
||||||
#define VKD3D_SPIRV_GENERATOR_VERSION 4
|
#define VKD3D_SPIRV_GENERATOR_VERSION 5
|
||||||
#define VKD3D_SPIRV_GENERATOR_MAGIC vkd3d_make_u32(VKD3D_SPIRV_GENERATOR_VERSION, VKD3D_SPIRV_GENERATOR_ID)
|
#define VKD3D_SPIRV_GENERATOR_MAGIC vkd3d_make_u32(VKD3D_SPIRV_GENERATOR_VERSION, VKD3D_SPIRV_GENERATOR_ID)
|
||||||
|
|
||||||
struct vkd3d_spirv_stream
|
struct vkd3d_spirv_stream
|
||||||
|
@ -210,7 +210,7 @@ HRESULT WINAPI D3DCompile2(const void *data, SIZE_T data_size, const char *filen
|
|||||||
|
|
||||||
option = &options[0];
|
option = &options[0];
|
||||||
option->name = VKD3D_SHADER_COMPILE_OPTION_API_VERSION;
|
option->name = VKD3D_SHADER_COMPILE_OPTION_API_VERSION;
|
||||||
option->value = VKD3D_SHADER_API_VERSION_1_4;
|
option->value = VKD3D_SHADER_API_VERSION_1_5;
|
||||||
|
|
||||||
compile_info.type = VKD3D_SHADER_STRUCTURE_TYPE_COMPILE_INFO;
|
compile_info.type = VKD3D_SHADER_STRUCTURE_TYPE_COMPILE_INFO;
|
||||||
compile_info.next = &preprocess_info;
|
compile_info.next = &preprocess_info;
|
||||||
@ -315,7 +315,7 @@ HRESULT WINAPI D3DPreprocess(const void *data, SIZE_T size, const char *filename
|
|||||||
|
|
||||||
static const struct vkd3d_shader_compile_option options[] =
|
static const struct vkd3d_shader_compile_option options[] =
|
||||||
{
|
{
|
||||||
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_4},
|
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_5},
|
||||||
};
|
};
|
||||||
|
|
||||||
TRACE("data %p, size %lu, filename %s, macros %p, include %p, preprocessed_blob %p, messages_blob %p.\n",
|
TRACE("data %p, size %lu, filename %s, macros %p, include %p, preprocessed_blob %p, messages_blob %p.\n",
|
||||||
|
@ -1964,7 +1964,7 @@ static HRESULT create_shader_stage(struct d3d12_device *device,
|
|||||||
|
|
||||||
const struct vkd3d_shader_compile_option options[] =
|
const struct vkd3d_shader_compile_option options[] =
|
||||||
{
|
{
|
||||||
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_4},
|
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_5},
|
||||||
{VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV, typed_uav_compile_option(device)},
|
{VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV, typed_uav_compile_option(device)},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -2016,7 +2016,7 @@ static int vkd3d_scan_dxbc(const struct d3d12_device *device, const D3D12_SHADER
|
|||||||
|
|
||||||
const struct vkd3d_shader_compile_option options[] =
|
const struct vkd3d_shader_compile_option options[] =
|
||||||
{
|
{
|
||||||
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_4},
|
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_5},
|
||||||
{VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV, typed_uav_compile_option(device)},
|
{VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV, typed_uav_compile_option(device)},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -726,7 +726,7 @@ int main(int argc, char **argv)
|
|||||||
if (!options.explicit_colour && !getenv("NO_COLOUR") && !getenv("NO_COLOR") && has_colour(output))
|
if (!options.explicit_colour && !getenv("NO_COLOUR") && !getenv("NO_COLOR") && has_colour(output))
|
||||||
options.formatting |= VKD3D_SHADER_COMPILE_OPTION_FORMATTING_COLOUR;
|
options.formatting |= VKD3D_SHADER_COMPILE_OPTION_FORMATTING_COLOUR;
|
||||||
add_compile_option(&options, VKD3D_SHADER_COMPILE_OPTION_FORMATTING, options.formatting);
|
add_compile_option(&options, VKD3D_SHADER_COMPILE_OPTION_FORMATTING, options.formatting);
|
||||||
add_compile_option(&options, VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_4);
|
add_compile_option(&options, VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_5);
|
||||||
|
|
||||||
info.type = VKD3D_SHADER_STRUCTURE_TYPE_COMPILE_INFO;
|
info.type = VKD3D_SHADER_STRUCTURE_TYPE_COMPILE_INFO;
|
||||||
info.next = &hlsl_source_info;
|
info.next = &hlsl_source_info;
|
||||||
|
Loading…
Reference in New Issue
Block a user