mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
Release 1.17.
This commit is contained in:
Notes:
Henri Verbeet
2025-08-21 13:05:55 +02:00
Approved-by: Elizabeth Figura (@zfigura) Approved-by: Francisco Casas (@fcasas) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1683
80
ChangeLog.md
80
ChangeLog.md
@@ -1,3 +1,83 @@
|
||||
# What's new in vkd3d 1.17 (21 August 2025)
|
||||
|
||||
### libvkd3d
|
||||
|
||||
- The EnumerateMetaCommands() method of the ID3D12Device5 interface is
|
||||
implemented.
|
||||
|
||||
### libvkd3d-shader
|
||||
|
||||
- Several new features and improvements for the HLSL source type:
|
||||
- Initial thread group shared memory support.
|
||||
- Improved support for geometry shaders: shader model 5 multiple output
|
||||
streams, as well as SV_IsFrontFace, SV_RenderTargetArrayIndex, and
|
||||
SV_ViewportArrayIndex outputs.
|
||||
- Structure variable input/output semantics are propagated to the
|
||||
constituent structure fields.
|
||||
- Shader entry point return values are allocated before any other outputs
|
||||
in the output signature. This matches d3dcompiler/fxc more closely.
|
||||
- Hull shader control point pass-through.
|
||||
- Reflection information can be retrieved using vkd3d_shader_scan().
|
||||
- Improved preprocessor handling of comments inside include directives, as
|
||||
well as inclusion of empty files.
|
||||
- Memory barrier intrinsics are supported in shader model 4 target
|
||||
profiles. Previous these were only supported in shader model 5 target
|
||||
profiles.
|
||||
- Parser support for the noise() intrinsic. Although the intrinsic itself
|
||||
isn't implemented, parser support for the intrinsic is required to allow
|
||||
compilation of any other shaders in the same source file to succeed as
|
||||
well.
|
||||
- Parser support for StructuredBuffer resources.
|
||||
|
||||
- Various new features and improvements for the effects (FX) source type:
|
||||
- Shader blob assignments and FXLVM value expressions in ‘fx_2_0’ effects.
|
||||
- Nameless structure types.
|
||||
- Explicit constant buffer bind points and constant packing offsets.
|
||||
- The ‘d3ds_noiseswiz’, ‘ge’, ‘lt’, and ‘noise’ FXLVM operations.
|
||||
|
||||
- The experimental Metal Shading Language (MSL) target supports the
|
||||
following features:
|
||||
- Texture sampling and gather operations.
|
||||
- Loops and switches.
|
||||
- Screen-space partial derivatives.
|
||||
- Various integer arithmetic and comparison operations.
|
||||
- Indirect addressing of constant buffers.
|
||||
- Indexable temporary registers.
|
||||
- Fragment shader output sample coverage masks.
|
||||
- SV_Position and SV_SampleIndex fragment shader inputs.
|
||||
- SV_VertexID inputs.
|
||||
|
||||
- When the experimental MSL target is enabled, the ‘dxbc-dxil’ source type
|
||||
can be used in combination with the ‘msl’ target type to convert DXIL
|
||||
shaders to MSL.
|
||||
|
||||
- The new ‘tx’ source type can be used in combination with the ‘d3d-asm’
|
||||
target type to disassemble D3DX ‘tx_1_0’ texture shaders.
|
||||
|
||||
- The FX target takes alignment and padding into account in ‘fx_4_0’ buffer
|
||||
size calculations.
|
||||
|
||||
- The SPIR-V target is capable of outputting OpSource and OpLine debug
|
||||
information.
|
||||
|
||||
- The core grammar for the experimental SPIR-V disassembler has been updated
|
||||
to the ‘vulkan-sdk-1.4.313.0’ release.
|
||||
|
||||
- New interfaces:
|
||||
- The VKD3D_SHADER_SOURCE_TX source type specifies D3DX ‘tx_1_0’ texture
|
||||
shaders.
|
||||
|
||||
### vkd3d-compiler
|
||||
|
||||
- The new ‘tx’ source type specifies D3DX ‘tx_1_0’ texture shaders.
|
||||
|
||||
### demos
|
||||
|
||||
- The new vkd3d-teapot demo uses tessellation shaders to render a version of
|
||||
Martin Newell's famous teapot. It should be noted that current versions of
|
||||
MoltenVK unfortunately do not support all features required to execute
|
||||
this demo correctly.
|
||||
|
||||
# What's new in vkd3d 1.16 (20 May 2025)
|
||||
|
||||
### libvkd3d
|
||||
|
@@ -426,7 +426,7 @@ libvkd3d_shader_la_SOURCES = \
|
||||
libs/vkd3d-shader/vkd3d_shader_main.c \
|
||||
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_LDFLAGS = $(AM_LDFLAGS) -version-info 15:0:14
|
||||
libvkd3d_shader_la_LDFLAGS = $(AM_LDFLAGS) -version-info 16:0:15
|
||||
libvkd3d_shader_la_LIBADD = libvkd3d-common.la @SPIRV_TOOLS_LIBS@ -lm
|
||||
if HAVE_LD_VERSION_SCRIPT
|
||||
libvkd3d_shader_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libs/vkd3d-shader/vkd3d_shader.map
|
||||
@@ -461,7 +461,7 @@ libvkd3d_la_SOURCES = \
|
||||
libs/vkd3d/vkd3d_shaders.h \
|
||||
libs/vkd3d/vulkan_procs.h
|
||||
libvkd3d_la_CFLAGS = $(AM_CFLAGS) -DLIBVKD3D_SOURCE
|
||||
libvkd3d_la_LDFLAGS = $(AM_LDFLAGS) -version-info 17:0:16
|
||||
libvkd3d_la_LDFLAGS = $(AM_LDFLAGS) -version-info 18:0:17
|
||||
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
|
||||
@@ -474,7 +474,7 @@ libvkd3d_utils_la_SOURCES = \
|
||||
libs/vkd3d-utils/vkd3d_utils_main.c \
|
||||
libs/vkd3d-utils/vkd3d_utils_private.h
|
||||
libvkd3d_utils_la_CFLAGS = $(AM_CFLAGS) -DLIBVKD3D_UTILS_SOURCE
|
||||
libvkd3d_utils_la_LDFLAGS = $(AM_LDFLAGS) -version-info 7:2:6
|
||||
libvkd3d_utils_la_LDFLAGS = $(AM_LDFLAGS) -version-info 7:3:6
|
||||
libvkd3d_utils_la_LIBADD = libvkd3d-common.la libvkd3d-shader.la libvkd3d.la @PTHREAD_LIBS@
|
||||
if HAVE_LD_VERSION_SCRIPT
|
||||
libvkd3d_utils_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libs/vkd3d-utils/vkd3d_utils.map
|
||||
|
@@ -1,5 +1,5 @@
|
||||
AC_PREREQ([2.69])
|
||||
AC_INIT([vkd3d],[1.16])
|
||||
AC_INIT([vkd3d],[1.17])
|
||||
|
||||
AC_CONFIG_AUX_DIR([bin])
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
|
@@ -28,7 +28,7 @@
|
||||
#ifdef HAVE_XCB
|
||||
# define VK_USE_PLATFORM_XCB_KHR
|
||||
#endif
|
||||
#define VKD3D_UTILS_API_VERSION VKD3D_API_VERSION_1_16
|
||||
#define VKD3D_UTILS_API_VERSION VKD3D_API_VERSION_1_17
|
||||
#include <vkd3d.h>
|
||||
#include <vkd3d_utils.h>
|
||||
#ifdef HAVE_XCB
|
||||
|
@@ -101,6 +101,7 @@ enum vkd3d_api_version
|
||||
VKD3D_API_VERSION_1_14,
|
||||
VKD3D_API_VERSION_1_15,
|
||||
VKD3D_API_VERSION_1_16,
|
||||
VKD3D_API_VERSION_1_17,
|
||||
|
||||
VKD3D_FORCE_32_BIT_ENUM(VKD3D_API_VERSION),
|
||||
};
|
||||
|
@@ -59,6 +59,7 @@ enum vkd3d_shader_api_version
|
||||
VKD3D_SHADER_API_VERSION_1_14,
|
||||
VKD3D_SHADER_API_VERSION_1_15,
|
||||
VKD3D_SHADER_API_VERSION_1_16,
|
||||
VKD3D_SHADER_API_VERSION_1_17,
|
||||
|
||||
VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_API_VERSION),
|
||||
};
|
||||
|
@@ -4205,7 +4205,7 @@ static void fx_parse_shader_blob(struct fx_parser *parser, enum vkd3d_shader_sou
|
||||
|
||||
static const struct vkd3d_shader_compile_option options[] =
|
||||
{
|
||||
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_16},
|
||||
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_17},
|
||||
};
|
||||
|
||||
info.type = VKD3D_SHADER_STRUCTURE_TYPE_COMPILE_INFO;
|
||||
|
@@ -38,7 +38,7 @@
|
||||
#define VKD3D_SPIRV_VERSION_1_0 0x00010000
|
||||
#define VKD3D_SPIRV_VERSION_1_3 0x00010300
|
||||
#define VKD3D_SPIRV_GENERATOR_ID 18
|
||||
#define VKD3D_SPIRV_GENERATOR_VERSION 16
|
||||
#define VKD3D_SPIRV_GENERATOR_VERSION 17
|
||||
#define VKD3D_SPIRV_GENERATOR_MAGIC vkd3d_make_u32(VKD3D_SPIRV_GENERATOR_VERSION, VKD3D_SPIRV_GENERATOR_ID)
|
||||
#ifndef VKD3D_SHADER_UNSUPPORTED_SPIRV_PARSER
|
||||
# define VKD3D_SHADER_UNSUPPORTED_SPIRV_PARSER 0
|
||||
|
@@ -271,7 +271,7 @@ HRESULT WINAPI D3DCompile2VKD3D(const void *data, SIZE_T data_size, const char *
|
||||
|
||||
option = &options[0];
|
||||
option->name = VKD3D_SHADER_COMPILE_OPTION_API_VERSION;
|
||||
option->value = VKD3D_SHADER_API_VERSION_1_16;
|
||||
option->value = VKD3D_SHADER_API_VERSION_1_17;
|
||||
|
||||
compile_info.type = VKD3D_SHADER_STRUCTURE_TYPE_COMPILE_INFO;
|
||||
compile_info.next = &preprocess_info;
|
||||
@@ -435,7 +435,7 @@ HRESULT WINAPI D3DPreprocess(const void *data, SIZE_T size, const char *filename
|
||||
|
||||
static const struct vkd3d_shader_compile_option options[] =
|
||||
{
|
||||
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_16},
|
||||
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_17},
|
||||
};
|
||||
|
||||
TRACE("data %p, size %"PRIuPTR", filename %s, macros %p, include %p, preprocessed_blob %p, messages_blob %p.\n",
|
||||
@@ -981,7 +981,7 @@ HRESULT WINAPI D3DDisassemble(const void *data, SIZE_T data_size,
|
||||
|
||||
static const struct vkd3d_shader_compile_option options[] =
|
||||
{
|
||||
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_16},
|
||||
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_17},
|
||||
};
|
||||
|
||||
TRACE("data %p, data_size %"PRIuPTR", flags %#x, comments %p, blob %p.\n",
|
||||
|
@@ -2391,7 +2391,7 @@ static HRESULT create_shader_stage(struct d3d12_device *device,
|
||||
|
||||
const struct vkd3d_shader_compile_option options[] =
|
||||
{
|
||||
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_16},
|
||||
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_17},
|
||||
{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_FEATURE, feature_flags_compile_option(device)},
|
||||
@@ -2456,7 +2456,7 @@ static int vkd3d_scan_dxbc(const struct d3d12_device *device, const D3D12_SHADER
|
||||
|
||||
const struct vkd3d_shader_compile_option options[] =
|
||||
{
|
||||
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_16},
|
||||
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_17},
|
||||
{VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV, typed_uav_compile_option(device)},
|
||||
};
|
||||
|
||||
@@ -4135,7 +4135,7 @@ static int compile_hlsl_cs(const struct vkd3d_shader_code *hlsl, struct vkd3d_sh
|
||||
|
||||
static const struct vkd3d_shader_compile_option options[] =
|
||||
{
|
||||
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_16},
|
||||
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_17},
|
||||
};
|
||||
|
||||
info.type = VKD3D_SHADER_STRUCTURE_TYPE_COMPILE_INFO;
|
||||
|
@@ -937,7 +937,7 @@ int main(int argc, char **argv)
|
||||
if (!options.explicit_colour && !getenv("NO_COLOUR") && !getenv("NO_COLOR") && has_colour(output))
|
||||
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_API_VERSION, VKD3D_SHADER_API_VERSION_1_16);
|
||||
add_compile_option(&options, VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_17);
|
||||
if (options.target_type->type == VKD3D_SHADER_TARGET_SPIRV_BINARY
|
||||
|| options.target_type->type == VKD3D_SHADER_TARGET_SPIRV_TEXT)
|
||||
add_compile_option(&options, VKD3D_SHADER_COMPILE_OPTION_FEATURE,
|
||||
|
@@ -645,7 +645,7 @@ static bool compile_shader(struct gl_runner *runner, enum shader_type shader_typ
|
||||
|
||||
const struct vkd3d_shader_compile_option options[] =
|
||||
{
|
||||
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_16},
|
||||
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_17},
|
||||
{VKD3D_SHADER_COMPILE_OPTION_FRAGMENT_COORDINATE_ORIGIN,
|
||||
VKD3D_SHADER_COMPILE_OPTION_FRAGMENT_COORDINATE_ORIGIN_LOWER_LEFT},
|
||||
{VKD3D_SHADER_COMPILE_OPTION_FEATURE, shader_runner_caps_get_feature_flags(&runner->caps)},
|
||||
|
@@ -393,7 +393,7 @@ static bool compile_shader(struct metal_runner *runner, enum shader_type type, s
|
||||
|
||||
const struct vkd3d_shader_compile_option options[] =
|
||||
{
|
||||
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_16},
|
||||
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_17},
|
||||
{VKD3D_SHADER_COMPILE_OPTION_FEATURE, shader_runner_caps_get_feature_flags(&runner->caps)},
|
||||
};
|
||||
|
||||
|
@@ -371,7 +371,7 @@ static bool compile_d3d_code(struct vulkan_shader_runner *runner,
|
||||
int ret;
|
||||
|
||||
options[0].name = VKD3D_SHADER_COMPILE_OPTION_API_VERSION;
|
||||
options[0].value = VKD3D_SHADER_API_VERSION_1_16;
|
||||
options[0].value = VKD3D_SHADER_API_VERSION_1_17;
|
||||
options[1].name = VKD3D_SHADER_COMPILE_OPTION_FEATURE;
|
||||
options[1].value = shader_runner_caps_get_feature_flags(&runner->caps);
|
||||
|
||||
|
Reference in New Issue
Block a user