mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-12-15 08:03:30 -08:00
Release 1.18.
This commit is contained in:
Notes:
Henri Verbeet
2025-11-20 12:05:32 +01:00
Approved-by: Giovanni Mascellani (@giomasce) Approved-by: navi (@navi) Approved-by: Francisco Casas (@fcasas) Approved-by: Elizabeth Figura (@zfigura) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1835
100
ChangeLog.md
100
ChangeLog.md
@@ -1,3 +1,103 @@
|
||||
# What's new in vkd3d 1.18 (20 November 2025)
|
||||
|
||||
### libvkd3d
|
||||
|
||||
- The CreateCommandList1() method of the ID3D12Device4 interface is
|
||||
implemented.
|
||||
|
||||
### libvkd3d-shader
|
||||
|
||||
- Several new features and improvements for the HLSL source type:
|
||||
- Flattening of branched code. I.e., code using if/else statements can be
|
||||
turned into conditional moves when that's either advantageous or
|
||||
necessary. Cases where this is necessary include targeting shader model
|
||||
2.0 or earlier, as well as code using the ‘flatten’ attribute.
|
||||
- More constant folding improvements. For example:
|
||||
- asfloat(), asint(), asuint(), cos(), mad(), round(), and sin()
|
||||
operations are constant folded.
|
||||
- ‘true ? x : y’ is folded to ‘x’
|
||||
- ‘x ? true : false’ is folded to ‘x’
|
||||
- ‘||x||’ is folded to ‘|x|’
|
||||
- ‘~~x’ is folded to ‘x’
|
||||
- ‘x < 0’ is folded to ‘false’ for unsigned ‘x’
|
||||
- The following intrinsic functions:
|
||||
- countbits()
|
||||
- firstbithigh()
|
||||
- firstbitlow()
|
||||
- frexp()
|
||||
- texCUBEbias()
|
||||
- Integer-typed conditional expressions in shader model 1-3 target
|
||||
profiles. Previously these were only supported in shader model 4+ target
|
||||
profiles.
|
||||
- Resource loads from ‘StructuredBuffer’ resources.
|
||||
- ‘centroid’ interpolation modifiers in shader model 1-3 target profiles.
|
||||
- Support for ‘\_centroid’ modifier suffixes on I/O semantics. I.e.,
|
||||
‘float2 t : TEXCOORD0_centroid’ is equivalent to ‘centroid float2 t :
|
||||
TEXCOORD0’.
|
||||
|
||||
- The following legacy Direct3D byte-code instructions are implemented:
|
||||
- bem
|
||||
- tex
|
||||
- texbem
|
||||
- texbeml
|
||||
- texcoord
|
||||
|
||||
- The experimental Metal Shading Language (MSL) target supports the
|
||||
following features:
|
||||
- Compute shaders.
|
||||
- Immediate-constant buffers.
|
||||
- Standard, inverse, and hyperbolic trigonometric functions.
|
||||
- Integer division and remainder operations.
|
||||
- Floating-point remainder operations.
|
||||
- Bit scanning and counting operations.
|
||||
- Boolean operands, as produced by DXIL sources.
|
||||
- Barrier operations.
|
||||
|
||||
- When the experimental MSL target is enabled, the ‘hlsl’ source type can be
|
||||
used in combination with the ‘msl’ target type to convert HLSL shaders to
|
||||
MSL.
|
||||
|
||||
- Signed integer operations like min() and max() are correctly translated
|
||||
from DXIL to MSL. Previously these would end up getting translated as
|
||||
unsigned operations, and would thus mishandle negative values.
|
||||
|
||||
- The experimental OpenGL Shading Language (GLSL) target supports the
|
||||
following features:
|
||||
- Screen-space partial derivatives.
|
||||
- sin() and cos() operations.
|
||||
- Unsigned integer division and remainder operations.
|
||||
- Static texel offsets on texture load operations.
|
||||
- ‘SV_Coverage’ fragment shader outputs.
|
||||
- ‘SV_InstanceID’ inputs.
|
||||
|
||||
- Textual output formats are documented to have a zero byte following their
|
||||
output. This can be convenient for passing such output to functions
|
||||
expecting a null-terminated string. For some output formats this was
|
||||
already true in earlier versions of vkd3d, but not guaranteed by the API.
|
||||
|
||||
- New interfaces:
|
||||
- The vkd3d_shader_d3dbc_source_info structure extends the
|
||||
vkd3d_shader_compile_info structure, and can be used to specify
|
||||
auxiliary information for legacy Direct3D byte-code (‘d3dbc’) shaders
|
||||
that's necessary for target formats like SPIR-V and GLSL, but not
|
||||
specified by ‘d3dbc’ shaders. In particular, it allows specifying
|
||||
resource/sampler types for shader model 1 fragment shaders, as well as
|
||||
which samplers are comparison-mode samplers for shader model 1-3
|
||||
shaders.
|
||||
- The vkd3d_shader_scan_thread_group_size_info structure extends the
|
||||
vkd3d_shader_compile_info structure, and can be used to to retrieve the
|
||||
thread group size expected by a compute shader. This information is
|
||||
particularly useful when targeting Metal environments, because the Metal
|
||||
API requires the thread group size to be specified through its dispatch
|
||||
API, instead of being specified by the shader.
|
||||
- The VKD3D_SHADER_PARAMETER_NAME_BUMP_LUMINANCE_OFFSET_[0-5] shader
|
||||
parameters specify the corresponding bump-mapping luminance offsets.
|
||||
- The VKD3D_SHADER_PARAMETER_NAME_BUMP_LUMINANCE_SCALE_[0-5] shader
|
||||
parameters specify the corresponding bump-mapping luminance scale
|
||||
factors.
|
||||
- The VKD3D_SHADER_PARAMETER_NAME_BUMP_MATRIX_[0-5] shader parameters
|
||||
specify the corresponding bump-mapping transformation matrices.
|
||||
|
||||
# What's new in vkd3d 1.17 (21 August 2025)
|
||||
|
||||
### libvkd3d
|
||||
|
||||
@@ -432,7 +432,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 -DVKD3D_DEBUG_ENV=VKD3D_SHADER_DEBUG -I$(srcdir)/libs/vkd3d-shader @SPIRV_TOOLS_CFLAGS@
|
||||
libvkd3d_shader_la_LDFLAGS = $(AM_LDFLAGS) -version-info 16:0:15
|
||||
libvkd3d_shader_la_LDFLAGS = $(AM_LDFLAGS) -version-info 17:0:16
|
||||
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
|
||||
@@ -467,7 +467,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 18:0:17
|
||||
libvkd3d_la_LDFLAGS = $(AM_LDFLAGS) -version-info 19:0:18
|
||||
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
|
||||
@@ -480,7 +480,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:3:6
|
||||
libvkd3d_utils_la_LDFLAGS = $(AM_LDFLAGS) -version-info 7:4: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.17])
|
||||
AC_INIT([vkd3d],[1.18])
|
||||
|
||||
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_17
|
||||
#define VKD3D_UTILS_API_VERSION VKD3D_API_VERSION_1_18
|
||||
#include <vkd3d.h>
|
||||
#include <vkd3d_utils.h>
|
||||
#ifdef HAVE_XCB
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
#include <intrin.h>
|
||||
#endif
|
||||
|
||||
#define VKD3D_SHADER_API_VERSION_CURRENT VKD3D_SHADER_API_VERSION_1_17
|
||||
#define VKD3D_SHADER_API_VERSION_CURRENT VKD3D_SHADER_API_VERSION_1_18
|
||||
|
||||
#ifndef ARRAY_SIZE
|
||||
# define ARRAY_SIZE(x) (sizeof(x) / sizeof(*(x)))
|
||||
|
||||
@@ -102,6 +102,7 @@ enum vkd3d_api_version
|
||||
VKD3D_API_VERSION_1_15,
|
||||
VKD3D_API_VERSION_1_16,
|
||||
VKD3D_API_VERSION_1_17,
|
||||
VKD3D_API_VERSION_1_18,
|
||||
|
||||
VKD3D_FORCE_32_BIT_ENUM(VKD3D_API_VERSION),
|
||||
};
|
||||
|
||||
@@ -60,6 +60,7 @@ enum vkd3d_shader_api_version
|
||||
VKD3D_SHADER_API_VERSION_1_15,
|
||||
VKD3D_SHADER_API_VERSION_1_16,
|
||||
VKD3D_SHADER_API_VERSION_1_17,
|
||||
VKD3D_SHADER_API_VERSION_1_18,
|
||||
|
||||
VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_API_VERSION),
|
||||
};
|
||||
|
||||
@@ -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 17
|
||||
#define VKD3D_SPIRV_GENERATOR_VERSION 18
|
||||
#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
|
||||
|
||||
Reference in New Issue
Block a user