[PATCH vkd3d 3/3] Release 1.2.

Henri Verbeet hverbeet at codeweavers.com
Mon Sep 21 17:35:48 CDT 2020


Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
---
 ANNOUNCE                  | 179 ++++++++++++++++++++++++++++++++++++----------
 AUTHORS                   |  11 +++
 Makefile.am               |   4 +-
 configure.ac              |   2 +-
 libs/vkd3d-shader/spirv.c |   2 +-
 5 files changed, 158 insertions(+), 40 deletions(-)

diff --git a/ANNOUNCE b/ANNOUNCE
index 89a4b400..01739d2d 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,16 +1,17 @@
-The Wine team is proud to announce that release 1.1 of vkd3d, the
-Direct3D 12 to Vulkan translation library, is now available.
+The Wine team is proud to announce that release 1.2 of vkd3d, the Direct3D to
+Vulkan translation library, is now available.
 
 This release contains improvements that are listed in the release notes below.
 The main highlights are:
 
-  - Initial support for placed resources.
-  - MoltenVK support.
-  - Support for geometry shaders.
+  - Availability of libvkd3d-shader as a public library.
+  - Support for tessellation shaders.
+  - Version 1.1 root signatures.
+  - Stream output support.
 
 The source is available from the following location:
 
-  https://dl.winehq.org/vkd3d/source/vkd3d-1.1.tar.xz
+  https://dl.winehq.org/vkd3d/source/vkd3d-1.2.tar.xz
 
 The current source can also be pulled directly from the git repository:
 
@@ -21,65 +22,171 @@ for the complete list.
 
 ----------------------------------------------------------------
 
-What's new in vkd3d 1.1
+What's new in vkd3d 1.2
 =======================
 
 
 *** libvkd3d
 
-- Initial support for memory heaps and placed resources.
+- Newly implemented Direct3D 12 features:
+  - Multi-sampling.
+  - Reserved resources.
+  - Instance data step rates. This requires the
+    VK_EXT_vertex_attribute_divisor extension.
+  - `Private data' APIs for all interfaces.
+  - Shader-resource view component mappings.
+  - Indirect indexed draws.
+  - Indirect draws with a count buffer. This requires the
+    VK_KHR_draw_indirect_count extension.
+  - Stream output and stream output queries. This requires the
+    VK_EXT_transform_feedback extension.
+  - Predicated/conditional rendering.
+  - Primitive restart.
+  - Depth rendering without a pixel shader.
+  - Depth clipping. This requires the VK_EXT_depth_clip_enable extension.
+  - Rasteriser discard.
+  - Dual-source blending.
+  - Mapping placed resources.
+  - The ReadFromSubresource() and WriteToSubresource() ID3D12Resource methods.
+  - Simultaneous access to resources from multiple queues.
+  - Null-views. I.e., views without an underlying resource.
+  - Several more feature support queries.
+
+- New interfaces:
+  - vkd3d_serialize_versioned_root_signature() and
+    vkd3d_create_versioned_root_signature_deserializer() provide support for
+    versioned root signatures.
+  - The vkd3d_application_info structure extends the
+    vkd3d_instance_create_info structure, and can be used to pass information
+    about the application to libvkd3d. It is analogous to the
+    VkApplicationInfo structure in Vulkan. Its `api_version' field should be
+    set to the version of the libvkd3d API that the application targets.
+  - The vkd3d_optional_device_extensions_info structure extends the
+    vkd3d_device_create_info structure, and can be used to pass a list of
+    device extensions to enable only when available to libvkd3d. It is
+    analogous to the vkd3d_optional_instance_extensions_info structure for
+    instance extensions.
+
+- New environment variables:
+  - VKD3D_CONFIG can be used to set options that change the behaviour of
+    libvkd3d.
+  - VKD3D_TEST_BUG can be used to disable bug_if() conditions in the test
+    suite.
+  - VKD3D_TEST_FILTER can be used to control which tests are run.
+  - VKD3D_VULKAN_DEVICE can be used to override the Vulkan physical device
+    used by vkd3d.
+  See the README for more detailed descriptions and how to use these.
+
+- When the VK_KHR_dedicated_allocation extension is available, dedicated
+  allocations may be used for committed resources.
+
+- When the VK_KHR_image_format_list extension is available, it will be used to
+  inform the driver about the view formats that a particular mutable Vulkan
+  image can be used with. This improves performance on some Vulkan
+  implementations.
+
+- When the VK_EXT_debug_marker extension is available, object names set with
+  the ID3D12Object SetName() method will be propagated to the underlying
+  Vulkan objects.
+
+- Unordered-access view clears are supported on more formats. Previously these
+  were limited to integer formats for texture resources, and single component
+  integer formats for buffer resources.
+
+- When the D24_UNORM_S8_UINT format is not supported by the Vulkan
+  implementation, the D32_SFLOAT_S8_UINT format will be used instead to
+  implement the D24_UNORM_S8_UINT and related DXGI formats. This is required
+  because the DXGI D24_UNORM_S8_UINT format is mandatory, while the Vulkan
+  D24_UNORM_S8_UINT format is optional.
 
-- Improved support for resource views.
+- Various bug fixes.
 
-- ClearUnorderedAccessViewUint() is implemented for textures.
 
-- Blend factor is implemented.
+*** libvkd3d-shader
 
-- Performance improvements.
+- libvkd3d-shader is now available as a public instead of an internal library.
 
-- A new interface is available for enabling additional Vulkan instance
-  extensions.
+- New features:
+  - Tessellation shaders.
+  - Root signature version 1.1 serialisation, deserialisation, and conversion.
+  - Multi-sample masks.
+  - Per-sample shading.
+  - Early depth/stencil test.
+  - Conservative depth output.
+  - Dual-source blending.
+  - Stream output.
+  - Viewport arrays.
 
-- A new public function is available for mapping VkFormats to DXGI_FORMATs.
+- Support for OpenGL SPIR-V target environments. This allows SPIR-V produced
+  by libvkd3d-shader to be used with GL_ARB_gl_spirv. This includes support
+  for OpenGL atomic counters and combined samplers.
 
-- Support for more DXGI formats.
+- Preliminary support for shader model 5.1 shaders. This is still a work in
+  progress. Notably, support for resource arrays is not yet implemented.
 
-- Various bug fixes.
+- When the SPV_EXT_demote_to_helper_invocation is available, it will be used
+  to implement the `discard' shader instruction instead of using SpvOpKill. In
+  particular, this ensures the `deriv_rtx' and `deriv_rty' instruction return
+  accurate results after a (conditional) `discard' instruction.
 
+- Support for using SPIR-V specialisation constants for shader parameters.
 
-*** libvkd3d-shader
+- Support for more shader instructions:
+  - bufinfo,
+  - eval_centroid,
+  - eval_sample_index,
+  - ld2ms,
+  - sample_b,
+  - sample_d,
+  - sample_info,
+  - samplepos.
+
+- When built against SPIRV-Tools, libvkd3d-shader can produce SPIR-V shaders
+  in text form.
 
-- Support for geometry shaders.
+- libvkd3d-shader now has its own environment variable (VKD3D_SHADER_DEBUG) to
+  control debug output.
 
-- Pretty printing is implemented for shader code extracted from DXBC.
+- Various shader translation fixes.
 
-- Clip and cull distances are supported.
 
-- Support for more shader instructions:
-  - round_ne,
-  - sincos,
-  - ineg,
-  - continue,
-  - continuec,
-  - gather4_po,
-  - gather4_po_c,
-  - gather4_c.
+*** vkd3d-compiler
 
-- Texel offsets are supported.
+- When supported by libvkd3d-shader, text form SPIR-V is available as a target
+  format, in addition to the existing binary form SPIR-V target format.
 
-- Various shader translation fixes.
+- Input from standard input, and output to standard output is supported.
 
 
 *** libvkd3d-utils
 
-- Vulkan WSI extensions are detected at runtime.
+- To specify the libvkd3d API version to use when creating vkd3d instances,
+  define VKD3D_UTILS_API_VERSION to the desired version before including
+  vkd3d_utils.h. If VKD3D_UTILS_API_VERSION is not explicitly defined,
+  VKD3D_API_VERSION_1_0 will be used.
+
+- Support for versioned root signatures is provided by the
+  D3D12SerializeVersionedRootSignature() and
+  D3D12CreateVersionedRootSignatureDeserializer() entry points.
 
 
 *** build
 
-- Demos are not built by default.
+- The minimum required version of Vulkan-Headers and SPIRV-Headers for this
+  release is version 1.1.113.
+
+- The minimum required version of widl for this release is version 3.20.
+
+- If doxygen is available, it will be used to build API documentation. By
+  default, documentation will be generated in HTML and PDF formats.
 
-- libxcb is now an optional dependency required only for demos.
+- If debug logs are not required or desired, defining VKD3D_NO_TRACE_MESSAGES
+  and VKD3D_NO_DEBUG_MESSAGES will prevent them from being included in the
+  build. For example, a release build may want to configure with
+  `CPPFLAGS="-DNDEBUG -DVKD3D_NO_TRACE_MESSAGES -DVKD3D_NO_DEBUG_MESSAGES"'.
 
-- MoltenVK is supported.
+- Microsoft Windows is now a supported target platform. To create a build for
+  Windows, either cross-compile by configuring with an appropriate --host
+  option like for example `--host=x86_64-w64-mingw32', or build on Windows
+  itself using an environment like MSYS2 or Cygwin.
 
diff --git a/AUTHORS b/AUTHORS
index c15cb6ae..8528b200 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,4 +1,15 @@
+Alexandre Julliard
+Andrew Eikum
 Chip Davis
+Conor McCarthy
+Derek Lesho
+Hans-Kristian Arntzen
 Henri Verbeet
+Isabella Bosia
+Jactry Zeng
 Józef Kucia
+Philip Rebohle
+Rémi Bernon
 Sven Hesse
+Zebediah Figura
+Zhiyi Zhang
diff --git a/Makefile.am b/Makefile.am
index deea5678..05403157 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -111,7 +111,7 @@ libvkd3d_la_SOURCES = \
 	libs/vkd3d/vkd3d_private.h \
 	libs/vkd3d/vkd3d_shaders.h \
 	libs/vkd3d/vulkan_procs.h
-libvkd3d_la_LDFLAGS = $(AM_LDFLAGS) -version-info 2:0:1
+libvkd3d_la_LDFLAGS = $(AM_LDFLAGS) -version-info 3:0:2
 libvkd3d_la_LIBADD = libvkd3d-common.la libvkd3d-shader.la @DL_LIBS@ @PTHREAD_LIBS@
 if HAVE_LD_VERSION_SCRIPT
 libvkd3d_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libs/vkd3d/vkd3d.map
@@ -122,7 +122,7 @@ libvkd3d_utils_la_SOURCES = \
 	libs/vkd3d-utils/vkd3d_utils.map \
 	libs/vkd3d-utils/vkd3d_utils_main.c \
 	libs/vkd3d-utils/vkd3d_utils_private.h
-libvkd3d_utils_la_LDFLAGS = $(AM_LDFLAGS) -version-info 1:1:0
+libvkd3d_utils_la_LDFLAGS = $(AM_LDFLAGS) -version-info 2:0:1
 libvkd3d_utils_la_LIBADD = libvkd3d-common.la libvkd3d.la @PTHREAD_LIBS@
 if HAVE_LD_VERSION_SCRIPT
 libvkd3d_utils_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libs/vkd3d-utils/vkd3d_utils.map
diff --git a/configure.ac b/configure.ac
index a9db1723..62093862 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
 AC_PREREQ([2.69])
-AC_INIT([vkd3d],[1.1])
+AC_INIT([vkd3d],[1.2])
 
 AC_CONFIG_AUX_DIR([bin])
 AC_CONFIG_MACRO_DIR([m4])
diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c
index 994b5ac1..44fe35c7 100644
--- a/libs/vkd3d-shader/spirv.c
+++ b/libs/vkd3d-shader/spirv.c
@@ -213,7 +213,7 @@ static enum vkd3d_shader_input_sysval_semantic vkd3d_siv_from_sysval(enum vkd3d_
 
 #define VKD3D_SPIRV_VERSION 0x00010000
 #define VKD3D_SPIRV_GENERATOR_ID 18
-#define VKD3D_SPIRV_GENERATOR_VERSION 1
+#define VKD3D_SPIRV_GENERATOR_VERSION 2
 #define VKD3D_SPIRV_GENERATOR_MAGIC ((VKD3D_SPIRV_GENERATOR_ID << 16) | VKD3D_SPIRV_GENERATOR_VERSION)
 
 struct vkd3d_spirv_stream
-- 
2.11.0




More information about the wine-devel mailing list