mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-04-13 05:43:18 -07:00
Release 1.15.
This commit is contained in:
committed by
Henri Verbeet
parent
872a96e599
commit
985d317e0e
Notes:
Henri Verbeet
2025-02-19 14:06:00 +01:00
Approved-by: Giovanni Mascellani (@giomasce) Approved-by: Henri Verbeet (@hverbeet) Approved-by: Elizabeth Figura (@zfigura) Approved-by: Francisco Casas (@fcasas) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1378
2
COPYING
2
COPYING
@@ -1,4 +1,4 @@
|
||||
Copyright 2016-2024 the Vkd3d project authors (see the file AUTHORS for a
|
||||
Copyright 2016-2025 the Vkd3d project authors (see the file AUTHORS for a
|
||||
complete list)
|
||||
|
||||
Vkd3d is free software; you can redistribute it and/or modify it under
|
||||
|
86
ChangeLog.md
86
ChangeLog.md
@@ -1,3 +1,89 @@
|
||||
# What's new in vkd3d 1.15 (19 February 2025)
|
||||
|
||||
### libvkd3d
|
||||
|
||||
- New interfaces:
|
||||
- vkd3d_queue_signal_on_cpu() allows a Direct3D 12 fence to be signalled
|
||||
when all preceding work on a Direct3D 12 command queue has been submitted
|
||||
to the corresponding Vulkan queue.
|
||||
|
||||
### libvkd3d-shader
|
||||
|
||||
- New features for the HLSL source type:
|
||||
- ‘InputPatch’ and ‘OutputPatch’ tessellation shader objects. This was the
|
||||
main feature required by most tessellation shaders that was still missing,
|
||||
and tessellation shaders should be considered generally usable now.
|
||||
- Unrolling of loops containing conditional jumps.
|
||||
- Improved function overload resolution. Previously the compiler was unable
|
||||
to decide between multiple function overloads with the same number of
|
||||
parameters.
|
||||
- The parser is able to continue parsing in a larger number of error cases.
|
||||
This allows more issues in the input to be reported during a single
|
||||
compilaton attempt.
|
||||
- The following intrinsic functions are supported:
|
||||
- GatherCmp()
|
||||
- GatherCmpAlpha(), GatherCmpBlue(), GatherCmpGreen(), and GatherCmpRed()
|
||||
- InterlockedAdd(), InterlockedAnd(), InterlockedCompareExchange(),
|
||||
InterlockedCompareStore(), InterlockedExchange(), InterlockedMax(),
|
||||
InterlockedMin(), InterlockedOr(), and InterlockedXor()
|
||||
- isinf()
|
||||
- Separate resource and sampler support for shader model 1-3 target
|
||||
profiles.
|
||||
- Casts on the left hand side of assignments.
|
||||
- Reassociation and redistribution of constants in binary expressions, to
|
||||
facilitate constant folding.
|
||||
- Packing of interstage I/O variables with the ‘SV_IsFrontFace’,
|
||||
‘SV_PrimitiveID’, ‘SV_RenderTargetArrayIndex’, ‘SV_SampleIndex’, and
|
||||
‘SV_ViewPortArrayIndex’ semantics matches d3dcompiler/fxc more closely.
|
||||
- Parser support for the ‘LineStream’, ‘PointStream’, and ‘TriangleStream’
|
||||
Stream-Output objects.
|
||||
|
||||
- A number of instructions have been implemented for the experimental MSL
|
||||
target. Although more and more shaders are starting to work, support is
|
||||
still fairly limited. For example, shader resource views and unordered
|
||||
access views are still entirely unsupported.
|
||||
|
||||
- Shader code generation for fixed-function fog. Like the existing shader code
|
||||
generation for other fixed-function features, this is mainly relevant for
|
||||
executing shader model 1-3 sources in modern target environments like
|
||||
Vulkan.
|
||||
|
||||
- The ‘fx’ parser can parse binary effects containing inline shader blobs.
|
||||
|
||||
- Internal validator support for validating I/O signatures, as well as I/O
|
||||
source and destination parameters. The validator is enabled by the
|
||||
‘force_validation’ option, specified through the VKD3D_SHADER_CONFIG
|
||||
environment variable.
|
||||
|
||||
- Internal validator support for validating the number of indices used with a
|
||||
register, as well as basic bounds checking for static indices.
|
||||
|
||||
- New interfaces:
|
||||
- The vkd3d_shader_scan_hull_shader_tessellation_info structure extends the
|
||||
vkd3d_shader_compile_info structure, and can be used to retrieve the
|
||||
output primitive type and partitioning mode used by a hull shader. This
|
||||
information is particularly useful for specifying
|
||||
vkd3d_shader_spirv_domain_shader_target_info structures when targetting
|
||||
SPIR-V in OpenGL environments.
|
||||
- The VKD3D_SHADER_PARAMETER_NAME_FOG_FRAGMENT_MODE shader parameter
|
||||
specifies the kind of fog to generate in a fragment shader.
|
||||
- The VKD3D_SHADER_PARAMETER_NAME_FOG_COLOUR shader parameter
|
||||
specifies the fog colour.
|
||||
- The VKD3D_SHADER_PARAMETER_NAME_FOG_END shader parameter
|
||||
specifies the ‘end’ parameter used for linear fog generation.
|
||||
- The VKD3D_SHADER_PARAMETER_NAME_FOG_SCALE shader parameter
|
||||
specifies the ‘scale’ parameter used for fog generation.
|
||||
- The VKD3D_SHADER_PARAMETER_NAME_FOG_SOURCE shader parameter
|
||||
specifies the kind of fog coordinate to output from a pre-rasterisation
|
||||
shader.
|
||||
|
||||
### vkd3d-compiler
|
||||
|
||||
- The new ‘dxbc-fx’ source type specifies an effect binary embedded in a DXBC
|
||||
container. This is a convenience feature;
|
||||
‘vkd3d-compiler -x dxbc-fx blob.dxbc’ is equivalent to
|
||||
‘vkd3d-dxbc -x t:FX10 blob.dxbc | vkd3d-compiler -x fx’.
|
||||
|
||||
# What's new in vkd3d 1.14 (21 November 2024)
|
||||
|
||||
### libvkd3d
|
||||
|
@@ -400,7 +400,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 13:0:12
|
||||
libvkd3d_shader_la_LDFLAGS = $(AM_LDFLAGS) -version-info 14:0:13
|
||||
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
|
||||
@@ -435,7 +435,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 15:0:14
|
||||
libvkd3d_la_LDFLAGS = $(AM_LDFLAGS) -version-info 16:0:15
|
||||
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
|
||||
@@ -448,7 +448,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:0:6
|
||||
libvkd3d_utils_la_LDFLAGS = $(AM_LDFLAGS) -version-info 7:1: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
|
||||
|
2
commits
2
commits
@@ -1,2 +0,0 @@
|
||||
-
|
||||
0dc07f5cce72cce47b1a2787a910aeb5edc2a65e vkd3d-shader: Silence a spurious -Wmaybe-uninitialized in vsir_program_insert_alpha_test().
|
@@ -1,5 +1,5 @@
|
||||
AC_PREREQ([2.69])
|
||||
AC_INIT([vkd3d],[1.14])
|
||||
AC_INIT([vkd3d],[1.15])
|
||||
|
||||
AC_CONFIG_AUX_DIR([bin])
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
|
@@ -19,7 +19,7 @@
|
||||
|
||||
#define VK_NO_PROTOTYPES
|
||||
#define VK_USE_PLATFORM_XCB_KHR
|
||||
#define VKD3D_UTILS_API_VERSION VKD3D_API_VERSION_1_14
|
||||
#define VKD3D_UTILS_API_VERSION VKD3D_API_VERSION_1_15
|
||||
#include "config.h"
|
||||
#include <vkd3d.h>
|
||||
#include <vkd3d_utils.h>
|
||||
|
@@ -99,6 +99,7 @@ enum vkd3d_api_version
|
||||
VKD3D_API_VERSION_1_12,
|
||||
VKD3D_API_VERSION_1_13,
|
||||
VKD3D_API_VERSION_1_14,
|
||||
VKD3D_API_VERSION_1_15,
|
||||
|
||||
VKD3D_FORCE_32_BIT_ENUM(VKD3D_API_VERSION),
|
||||
};
|
||||
|
@@ -57,6 +57,7 @@ enum vkd3d_shader_api_version
|
||||
VKD3D_SHADER_API_VERSION_1_12,
|
||||
VKD3D_SHADER_API_VERSION_1_13,
|
||||
VKD3D_SHADER_API_VERSION_1_14,
|
||||
VKD3D_SHADER_API_VERSION_1_15,
|
||||
|
||||
VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_API_VERSION),
|
||||
};
|
||||
|
@@ -3237,7 +3237,7 @@ static void fx_4_parse_shader_blob(struct fx_parser *parser, unsigned int object
|
||||
|
||||
static const struct vkd3d_shader_compile_option options[] =
|
||||
{
|
||||
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_14},
|
||||
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_15},
|
||||
};
|
||||
|
||||
fx_parser_read_unstructured(parser, &data_size, shader->offset, sizeof(data_size));
|
||||
|
@@ -37,7 +37,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 14
|
||||
#define VKD3D_SPIRV_GENERATOR_VERSION 15
|
||||
#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_14;
|
||||
option->value = VKD3D_SHADER_API_VERSION_1_15;
|
||||
|
||||
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_14},
|
||||
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_15},
|
||||
};
|
||||
|
||||
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_14},
|
||||
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_15},
|
||||
};
|
||||
|
||||
TRACE("data %p, data_size %"PRIuPTR", flags %#x, comments %p, blob %p.\n",
|
||||
|
@@ -2333,7 +2333,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_14},
|
||||
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_15},
|
||||
{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)},
|
||||
@@ -2388,7 +2388,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_14},
|
||||
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_15},
|
||||
{VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV, typed_uav_compile_option(device)},
|
||||
};
|
||||
|
||||
@@ -4067,7 +4067,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_14},
|
||||
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_15},
|
||||
};
|
||||
|
||||
info.type = VKD3D_SHADER_STRUCTURE_TYPE_COMPILE_INFO;
|
||||
|
@@ -932,7 +932,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_14);
|
||||
add_compile_option(&options, VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_15);
|
||||
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,
|
||||
|
@@ -593,7 +593,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_14},
|
||||
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_15},
|
||||
{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)},
|
||||
|
@@ -254,7 +254,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_13},
|
||||
{VKD3D_SHADER_COMPILE_OPTION_API_VERSION, VKD3D_SHADER_API_VERSION_1_15},
|
||||
{VKD3D_SHADER_COMPILE_OPTION_FEATURE, shader_runner_caps_get_feature_flags(&runner->caps)},
|
||||
};
|
||||
|
||||
|
@@ -354,7 +354,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_14;
|
||||
options[0].value = VKD3D_SHADER_API_VERSION_1_15;
|
||||
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