Release 1.13.

This commit is contained in:
Henri Verbeet 2024-08-29 12:00:00 +02:00
parent eb71a1722a
commit 0e72aba0bc
Notes: Henri Verbeet 2024-08-29 12:28:38 +02:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1023
14 changed files with 481 additions and 751 deletions

1111
ANNOUNCE

File diff suppressed because it is too large Load Diff

View File

@ -3,6 +3,7 @@ Alexandre Julliard
Alistair Leslie-Hughes Alistair Leslie-Hughes
Andrew Eikum Andrew Eikum
Andrey Gusev Andrey Gusev
Anna (navi) Figueiredo Gomes
Atharva Nimbalkar Atharva Nimbalkar
Biswapriyo Nath Biswapriyo Nath
Brendan Shanks Brendan Shanks
@ -33,8 +34,10 @@ Petrichor Park
Philip Rebohle Philip Rebohle
Rémi Bernon Rémi Bernon
Robin Kertels Robin Kertels
Shaun Ren
Stefan Dösinger Stefan Dösinger
Sven Hesse Sven Hesse
Victor Chiletto Victor Chiletto
Vinson Lee Vinson Lee
Yuxuan Shui
Zhiyi Zhang Zhiyi Zhang

View File

@ -1,3 +1,89 @@
# What's new in vkd3d 1.13 (29 August 2024)
### libvkd3d
- The ID3D12CommandList6 interface is supported.
- Block-compressed textures can be created with unaligned dimensions. This
corresponds to
D3D12_FEATURE_D3D12_OPTIONS8.UnalignedBlockTexturesSupported.
- Some minor issues pointed out by the Vulkan validation layers have been
addressed. These are not known to affect applications in practice, but
should make libvkd3d slightly more well-behaved.
### libvkd3d-shader
- New features for the HLSL source type:
- Basic loop unrolling support. Some of the more complicated cases like
loops containing conditional jumps are still unsupported.
- Initialisation values for global variables, function parameters, and
annotation variables are parsed and stored in output formats supporting
them.
- Shader model 5.1 register spaces are supported when using the
corresponding target profiles, as well as shader model 5.1 reflection
data.
- Register reservations support expressions as offsets. For example:
float f : register(c0[1 + 1 * 2]);
- The tex1D(), tex2D(), tex3D(), and texCUBE() intrinsic function variants
with explicit derivatives are supported.
- The following intrinsic functions are supported:
- asint()
- f16tof32()
- faceforward()
- GetRenderTargetSampleCount()
- rcp()
- tex2Dbias()
- tex1Dgrad(), tex2Dgrad(), tex3Dgrad(), and texCUBEgrad()
- The sin() and cos() intrinsic functions are supported in shader model
1-3 profiles. These were already supported in shader model 4+ profiles.
- The following features specific to effects target profiles:
- Types supported in version 4.0+:
- BlendState
- ComputeShader, DomainShader, GeometryShader, and HullShader
- DepthStencilState
- RasterizerState
- State application functions implemented for version 4.0+ effects:
- OMSetRenderTargets()
- SetBlendState()
- SetComputeShader(), SetDomainShader(), SetGeometryShader(),
SetHullShader(), SetPixelShader(), and SetVertexShader()
- SetDepthStencilState()
- SetRasterizerState()
- String types. These are mainly used for annotations.
- Annotations on global variables.
- Support for the Texture field of the SamplerState type.
- Support for NULL values.
- Stores to swizzled matrix variables.
- The unsigned type modifier is supported. (For example,
unsigned int.) Note that uint and related types were already
supported.
- ConstantBuffer<> types.
- The SV_Coverage output semantic for fragment shaders.
- The experimental DXIL source type supports quad group operations.
- The Direct3D shader model 2-3 texldb instruction is correctly disassembled
when outputting Direct3D shader assembly.
- New interfaces:
- The vkd3d_shader_parameter_info structure extends the
vkd3d_shader_compile_info structure, and can be used to specify shader
parameters. This is a more generic version of the shader parameter
interface for SPIR-V targets in struct vkd3d_shader_spirv_target_info.
- The VKD3D_SHADER_PARAMETER_DATA_TYPE_FLOAT32 enumeration value specifies
that a shader parameter contains 32-bit floating-point data.
- The VKD3D_SHADER_PARAMETER_NAME_ALPHA_TEST_FUNC shader parameter
specifies the alpha test function.
- The VKD3D_SHADER_PARAMETER_NAME_ALPHA_TEST_REF shader parameter
specifies the alpha test reference value.
- The VKD3D_SHADER_PARAMETER_NAME_FLAT_INTERPOLATION shader parameter
specifies the interpolation mode for colour inputs in Direct3D shader
model 1-3 fragment shaders.
- The VKD3D_SHADER_PARAMETER_TYPE_BUFFER enumeration value specifies that
the value of a shader parameter is provided at run-time through a buffer
resource.
# What's new in vkd3d 1.12 (28 May 2024) # What's new in vkd3d 1.12 (28 May 2024)
### libvkd3d ### libvkd3d

View File

@ -365,7 +365,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 11:0:10 libvkd3d_shader_la_LDFLAGS = $(AM_LDFLAGS) -version-info 12:0:11
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
@ -400,7 +400,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 13:0:12 libvkd3d_la_LDFLAGS = $(AM_LDFLAGS) -version-info 14:0:13
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
@ -413,7 +413,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 6:1:5 libvkd3d_utils_la_LDFLAGS = $(AM_LDFLAGS) -version-info 6:2:5
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

View File

@ -1,5 +1,5 @@
AC_PREREQ([2.69]) AC_PREREQ([2.69])
AC_INIT([vkd3d],[1.12]) AC_INIT([vkd3d],[1.13])
AC_CONFIG_AUX_DIR([bin]) AC_CONFIG_AUX_DIR([bin])
AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_MACRO_DIR([m4])

View File

@ -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_12 #define VKD3D_UTILS_API_VERSION VKD3D_API_VERSION_1_13
#include "config.h" #include "config.h"
#include <vkd3d.h> #include <vkd3d.h>
#include <vkd3d_utils.h> #include <vkd3d_utils.h>

View File

@ -97,6 +97,7 @@ enum vkd3d_api_version
VKD3D_API_VERSION_1_10, VKD3D_API_VERSION_1_10,
VKD3D_API_VERSION_1_11, VKD3D_API_VERSION_1_11,
VKD3D_API_VERSION_1_12, VKD3D_API_VERSION_1_12,
VKD3D_API_VERSION_1_13,
VKD3D_FORCE_32_BIT_ENUM(VKD3D_API_VERSION), VKD3D_FORCE_32_BIT_ENUM(VKD3D_API_VERSION),
}; };

View File

@ -55,6 +55,7 @@ enum vkd3d_shader_api_version
VKD3D_SHADER_API_VERSION_1_10, VKD3D_SHADER_API_VERSION_1_10,
VKD3D_SHADER_API_VERSION_1_11, VKD3D_SHADER_API_VERSION_1_11,
VKD3D_SHADER_API_VERSION_1_12, VKD3D_SHADER_API_VERSION_1_12,
VKD3D_SHADER_API_VERSION_1_13,
VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_API_VERSION), VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_API_VERSION),
}; };

View File

@ -228,7 +228,7 @@ enum vkd3d_shader_input_sysval_semantic vkd3d_siv_from_sysval_indexed(enum vkd3d
#define VKD3D_SPIRV_VERSION_1_0 0x00010000 #define VKD3D_SPIRV_VERSION_1_0 0x00010000
#define VKD3D_SPIRV_VERSION_1_3 0x00010300 #define VKD3D_SPIRV_VERSION_1_3 0x00010300
#define VKD3D_SPIRV_GENERATOR_ID 18 #define VKD3D_SPIRV_GENERATOR_ID 18
#define VKD3D_SPIRV_GENERATOR_VERSION 12 #define VKD3D_SPIRV_GENERATOR_VERSION 13
#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

View File

@ -271,7 +271,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_12; option->value = VKD3D_SHADER_API_VERSION_1_13;
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;
@ -403,7 +403,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_12}, {VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_13},
}; };
TRACE("data %p, size %"PRIuPTR", filename %s, macros %p, include %p, preprocessed_blob %p, messages_blob %p.\n", TRACE("data %p, size %"PRIuPTR", filename %s, macros %p, include %p, preprocessed_blob %p, messages_blob %p.\n",
@ -949,7 +949,7 @@ HRESULT WINAPI D3DDisassemble(const void *data, SIZE_T data_size,
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_12}, {VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_13},
}; };
TRACE("data %p, data_size %"PRIuPTR", flags %#x, comments %p, blob %p.\n", TRACE("data %p, data_size %"PRIuPTR", flags %#x, comments %p, blob %p.\n",

View File

@ -2286,7 +2286,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_12}, {VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_13},
{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},
{VKD3D_SHADER_COMPILE_OPTION_FEATURE, feature_flags_compile_option(device)}, {VKD3D_SHADER_COMPILE_OPTION_FEATURE, feature_flags_compile_option(device)},
@ -2341,7 +2341,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_12}, {VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_13},
{VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV, typed_uav_compile_option(device)}, {VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV, typed_uav_compile_option(device)},
}; };
@ -4019,7 +4019,7 @@ static int compile_hlsl_cs(const struct vkd3d_shader_code *hlsl, struct vkd3d_sh
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_12}, {VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_13},
}; };
info.type = VKD3D_SHADER_STRUCTURE_TYPE_COMPILE_INFO; info.type = VKD3D_SHADER_STRUCTURE_TYPE_COMPILE_INFO;

View File

@ -853,7 +853,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_12); add_compile_option(&options, VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_13);
if (options.target_type == VKD3D_SHADER_TARGET_SPIRV_BINARY if (options.target_type == VKD3D_SHADER_TARGET_SPIRV_BINARY
|| options.target_type == VKD3D_SHADER_TARGET_SPIRV_TEXT) || options.target_type == VKD3D_SHADER_TARGET_SPIRV_TEXT)
add_compile_option(&options, VKD3D_SHADER_COMPILE_OPTION_FEATURE, add_compile_option(&options, VKD3D_SHADER_COMPILE_OPTION_FEATURE,

View File

@ -547,7 +547,7 @@ static bool compile_shader(struct gl_runner *runner, ID3DBlob *blob, struct vkd3
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_12}, {VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_13},
{VKD3D_SHADER_COMPILE_OPTION_FRAGMENT_COORDINATE_ORIGIN, {VKD3D_SHADER_COMPILE_OPTION_FRAGMENT_COORDINATE_ORIGIN,
VKD3D_SHADER_COMPILE_OPTION_FRAGMENT_COORDINATE_ORIGIN_LOWER_LEFT}, VKD3D_SHADER_COMPILE_OPTION_FRAGMENT_COORDINATE_ORIGIN_LOWER_LEFT},
{VKD3D_SHADER_COMPILE_OPTION_FEATURE, shader_runner_caps_get_feature_flags(&runner->caps)}, {VKD3D_SHADER_COMPILE_OPTION_FEATURE, shader_runner_caps_get_feature_flags(&runner->caps)},

View File

@ -484,7 +484,7 @@ static bool compile_shader(struct vulkan_shader_runner *runner, const char *sour
option = &options[info.option_count++]; option = &options[info.option_count++];
option->name = VKD3D_SHADER_COMPILE_OPTION_API_VERSION; option->name = VKD3D_SHADER_COMPILE_OPTION_API_VERSION;
option->value = VKD3D_SHADER_API_VERSION_1_12; option->value = VKD3D_SHADER_API_VERSION_1_13;
compile_options = runner->r.compile_options; compile_options = runner->r.compile_options;
if (compile_options) if (compile_options)