mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2024-11-21 16:46:41 -08:00
Release 1.7.
This commit is contained in:
parent
54b0165e32
commit
57d92a15cf
Notes:
Alexandre Julliard
2023-03-24 12:49:49 +01:00
Approved-by: Alexandre Julliard (@julliard) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/132
74
ANNOUNCE
74
ANNOUNCE
@ -1,16 +1,17 @@
|
|||||||
The Wine team is proud to announce that release 1.6 of vkd3d, the Direct3D to
|
The Wine team is proud to announce that release 1.7 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:
|
||||||
|
|
||||||
- Initial support for HLSL compute shaders.
|
- Support for many more HLSL features and intrinsics.
|
||||||
- More support for HLSL features and intrinsics.
|
- Much improved support for the Direct3D shader model 1/2/3 HLSL profiles.
|
||||||
|
- Public vkd3d-shader API for parsing and serialising DXBC blobs.
|
||||||
- Miscellaneous bug fixes.
|
- Miscellaneous bug fixes.
|
||||||
|
|
||||||
The source is available from the following location:
|
The source is available from the following location:
|
||||||
|
|
||||||
https://dl.winehq.org/vkd3d/source/vkd3d-1.6.tar.xz
|
https://dl.winehq.org/vkd3d/source/vkd3d-1.7.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:
|
||||||
|
|
||||||
@ -21,40 +22,49 @@ for the complete list.
|
|||||||
|
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
|
|
||||||
What's new in vkd3d 1.6
|
What's new in vkd3d 1.7
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
|
|
||||||
*** libvkd3d-shader
|
*** libvkd3d-shader
|
||||||
|
|
||||||
- New features for the HLSL source type:
|
- New features for the HLSL source type:
|
||||||
- Initial support for compute shaders.
|
- Support for calling user-defined functions.
|
||||||
- Improved support for initialisation and assignment of compound objects
|
- Support for array parameters to user-defined functions.
|
||||||
like structures and arrays, including casts and implicit conversions.
|
- Much improved support for the Direct3D shader model 1/2/3 profiles.
|
||||||
- Support for loads and stores of texture resource unordered-access views.
|
- Support for the SV_DispatchThreadID, SV_GroupID, and SV_GroupThreadID
|
||||||
- Support for function attributes. In particular, the required "numthreads"
|
compute shader system-value semantics.
|
||||||
attribute for compute shader entry points is now supported.
|
- Support for the optional "offset" parameter of the texture object Load()
|
||||||
- Support for the asuint() intrinsic function.
|
method.
|
||||||
- Support for the length() intrinsic function.
|
- Support for the all() intrinsic function.
|
||||||
- Support for the normalize() intrinsic function.
|
- Support for the distance() intrinsic function.
|
||||||
- Support for integer division and modulus.
|
- Support for the exp() and exp2() intrinsic functions.
|
||||||
- Support for taking the absolute value of integers.
|
- Support for the frac() intrinsic function.
|
||||||
- Support for floating-point modulus.
|
- Support for the lit() intrinsic function.
|
||||||
|
- Support for the reflect() intrinsic function.
|
||||||
|
- Support for the sin() and cos() intrinsic functions.
|
||||||
|
- Support for the smoothstep() intrinsic function.
|
||||||
|
- Support for the sqrt() and rsqrt() intrinsic functions.
|
||||||
|
- Support for the step() intrinsic function.
|
||||||
|
- Support for the transpose() intrinsic function.
|
||||||
|
- Support for the case-insensitive variants of the "float" and "dword" data
|
||||||
|
types.
|
||||||
|
- Partial support for minimum precision data types like "min16float". These
|
||||||
|
are currently interpreted as their regular counterparts.
|
||||||
|
- Improved constant propagation support, in particular to constant
|
||||||
|
propagation through swizzles.
|
||||||
|
|
||||||
|
- HLSL static variables are now properly zero-initialised.
|
||||||
|
|
||||||
|
- The Direct3D shader model 4 and 5 disassembler outputs sample counts for
|
||||||
|
multi-sampled resource declarations.
|
||||||
|
|
||||||
- New interfaces:
|
- New interfaces:
|
||||||
- The VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_UAV_ATOMICS descriptor info flag is
|
- vkd3d_shader_parse_dxbc() provides support for parsing DXBC blobs.
|
||||||
used to indicate that atomic operations are used on unordered-access view
|
- vkd3d_shader_serialize_dxbc() provides support for serialising DXBC blobs.
|
||||||
descriptors.
|
- vkd3d_shader_free_dxbc() is used to free vkd3d_shader_dxbc_desc
|
||||||
|
structures, as returned by vkd3d_shader_parse_dxbc().
|
||||||
|
- The VKD3D_SHADER_COMPILE_OPTION_WRITE_TESS_GEOM_POINT_SIZE compile option
|
||||||
*** libvkd3d-common
|
can be used to specify whether SPIR-V shaders targeting Vulkan
|
||||||
|
environments should write point sizes for geometry and tessellation
|
||||||
- vkd3d debug output is prefixed with "vkd3d:" in order to make it easier to
|
shaders. If left unspecified, point sizes will be written.
|
||||||
distinguish from output produced by applications or other libraries.
|
|
||||||
|
|
||||||
|
|
||||||
*** demos
|
|
||||||
|
|
||||||
- The demos now use libvkd3d-shader to compile HLSL shaders at run-time.
|
|
||||||
|
|
||||||
|
1
AUTHORS
1
AUTHORS
@ -8,6 +8,7 @@ Chip Davis
|
|||||||
Conor McCarthy
|
Conor McCarthy
|
||||||
David Gow
|
David Gow
|
||||||
Derek Lesho
|
Derek Lesho
|
||||||
|
Fabian Maurer
|
||||||
Francisco Casas
|
Francisco Casas
|
||||||
Francois Gouget
|
Francois Gouget
|
||||||
Giovanni Mascellani
|
Giovanni Mascellani
|
||||||
|
2
COPYING
2
COPYING
@ -1,4 +1,4 @@
|
|||||||
Copyright 2016-2022 the Vkd3d project authors (see the file AUTHORS for a
|
Copyright 2016-2023 the Vkd3d project authors (see the file AUTHORS for a
|
||||||
complete list)
|
complete list)
|
||||||
|
|
||||||
Vkd3d is free software; you can redistribute it and/or modify it under
|
Vkd3d is free software; you can redistribute it and/or modify it under
|
||||||
|
@ -259,7 +259,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 5:0:4
|
libvkd3d_shader_la_LDFLAGS = $(AM_LDFLAGS) -version-info 6:0:5
|
||||||
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
|
||||||
@ -293,7 +293,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 7:0:6
|
libvkd3d_la_LDFLAGS = $(AM_LDFLAGS) -version-info 8:0:7
|
||||||
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
|
||||||
@ -305,7 +305,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:2:3
|
libvkd3d_utils_la_LDFLAGS = $(AM_LDFLAGS) -version-info 4:3: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.6])
|
AC_INIT([vkd3d],[1.7])
|
||||||
|
|
||||||
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_6
|
#define VKD3D_UTILS_API_VERSION VKD3D_API_VERSION_1_7
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include <vkd3d.h>
|
#include <vkd3d.h>
|
||||||
#include <vkd3d_utils.h>
|
#include <vkd3d_utils.h>
|
||||||
|
@ -75,6 +75,7 @@ enum vkd3d_api_version
|
|||||||
VKD3D_API_VERSION_1_4,
|
VKD3D_API_VERSION_1_4,
|
||||||
VKD3D_API_VERSION_1_5,
|
VKD3D_API_VERSION_1_5,
|
||||||
VKD3D_API_VERSION_1_6,
|
VKD3D_API_VERSION_1_6,
|
||||||
|
VKD3D_API_VERSION_1_7,
|
||||||
|
|
||||||
VKD3D_FORCE_32_BIT_ENUM(VKD3D_API_VERSION),
|
VKD3D_FORCE_32_BIT_ENUM(VKD3D_API_VERSION),
|
||||||
};
|
};
|
||||||
|
@ -48,6 +48,7 @@ enum vkd3d_shader_api_version
|
|||||||
VKD3D_SHADER_API_VERSION_1_4,
|
VKD3D_SHADER_API_VERSION_1_4,
|
||||||
VKD3D_SHADER_API_VERSION_1_5,
|
VKD3D_SHADER_API_VERSION_1_5,
|
||||||
VKD3D_SHADER_API_VERSION_1_6,
|
VKD3D_SHADER_API_VERSION_1_6,
|
||||||
|
VKD3D_SHADER_API_VERSION_1_7,
|
||||||
|
|
||||||
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 6
|
#define VKD3D_SPIRV_GENERATOR_VERSION 7
|
||||||
#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_6;
|
option->value = VKD3D_SHADER_API_VERSION_1_7;
|
||||||
|
|
||||||
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_6},
|
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_7},
|
||||||
};
|
};
|
||||||
|
|
||||||
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",
|
||||||
|
@ -1958,7 +1958,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_6},
|
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_7},
|
||||||
{VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV, typed_uav_compile_option(device)},
|
{VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV, typed_uav_compile_option(device)},
|
||||||
{VKD3D_SHADER_COMPILE_OPTION_WRITE_TESS_GEOM_POINT_SIZE, 0},
|
{VKD3D_SHADER_COMPILE_OPTION_WRITE_TESS_GEOM_POINT_SIZE, 0},
|
||||||
};
|
};
|
||||||
@ -2011,7 +2011,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_6},
|
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_7},
|
||||||
{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_6);
|
add_compile_option(&options, VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_7);
|
||||||
|
|
||||||
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