The vkd3d team is proud to announce that release 1.16 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:
- Support for DirectX Intermediate Language (DXIL) shaders.
- Initial support for geometry shaders in the HLSL compiler.
- Miscellaneous bug fixes.
The source is available from the following location:
<https://dl.winehq.org/vkd3d/source/vkd3d-1.16.tar.xz>
The current source can also be pulled directly from the git repository:
<https://gitlab.winehq.org/wine/vkd3d.git>
Vkd3d is available thanks to the work of multiple people. See the file AUTHORS
for the complete list.
# What's new in vkd3d 1.16
### libvkd3d
- DXIL shaders are supported in the default configuration. Previously this
required building vkd3d with the ‘-DVKD3D_SHADER_UNSUPPORTED_DXIL’
preprocessor option. The also raises the maximum supported shader model to
version 6.0.
- Graphics pipeline state objects can be created from shaders with embedded
root signatures. This was already possible for compute pipeline state
objects.
- The SetEventOnMultipleFenceCompletion() method of the ID3D12Device1
interface is implemented.
- When the VK_KHR_zero_initialize_workgroup_memory extension is supported,
libvkd3d supports zero-initialising compute shader thread group shared
memory.
- The VK_KHR_maintenance2 extension is now explicitly required. libvkd3d
already unconditionally used features provided by this extension, but
unfortunately didn't explicitly require it. Support for this extension is
widespread, and the extension is part of Vulkan 1.1.
### libvkd3d-shader
- The previously experimental support for compiling DXIL shaders is now a
supported feature and enabled by default. Please note that this feature is
nevertheless still far from perfect.
- New features for the HLSL source type:
- Initial support for geometry shaders.
- Indirect addressing in shader model 1-3 target profiles.
- Modulus and truncation operations in shader model 1-3 target profiles.
- Vectorised output code.
- Further improved constant folding and propagation.
- The following intrinsic functions are supported:
- AllMemoryBarrier()
- AllMemoryBarrierWithGroupSync()
- DeviceMemoryBarrier()
- DeviceMemoryBarrierWithGroupSync()
- GroupMemoryBarrier()
- GroupMemoryBarrierWithGroupSync()
- The ‘.Length’ Texture object property.
- The ‘SV_RenderTargetArrayIndex’ and ‘SV_ViewportArrayIndex’ semantics in
tessellation shaders.
- Disassembler support for binary ‘fx_2_0’ effects.
- Experimental built-in support for disassembling SPIR-V shaders, enabled by
building vkd3d with the ‘-DVKD3D_SHADER_UNSUPPORTED_SPIRV_PARSER’
preprocessor option. When enabled, the built-in SPIR-V disassembler is
used instead of SPIRV-Tools for the ‘spirv-text’ target type, as well as
for the debug output enabled by the VKD3D_SHADER_DEBUG environment
variable.
- The experimental OpenGL Shading Language (GLSL) target supports indirect
addressing of constant buffers.
- The experimental Metal Shading Language (MSL) target supports texture
loads.
- New interfaces:
- The VKD3D_SHADER_COMPILE_OPTION_FEATURE_ZERO_INITIALIZE_WORKGROUP_MEMORY
flag indicates support for zero-initialising workgroup memory in the
SPIR-V target environment.
- The VKD3D_SHADER_COMPONENT_INT64 enumeration value indicates a 64-bit
signed integer value.
- The VKD3D_SHADER_COMPONENT_FLOAT16 enumeration value indicates a 16-bit
IEEE floating-point value.
- The VKD3D_SHADER_COMPONENT_UINT16 enumeration value indicates a 16-bit
unsigned integer value.
- The VKD3D_SHADER_COMPONENT_INT16 enumeration value indicates a 16-bit
signed integer value.
- When targeting VKD3D_SHADER_API_1_16, the
VKD3D_SHADER_RESOURCE_DATA_NONE enumeration value is returned for the
‘resource_data_type’ field in the vkd3d_shader_descriptor_info structure
for sampler descriptors. VKD3D_SHADER_API_1_15 and before use the
VKD3D_SHADER_RESOURCE_DATA_UINT enumeration value for this.
### demos
- The vkd3d demos now work on both the Microsoft Windows and Apple macOS
builds. The macOS versions of the vkd3d demos are completely new in vkd3d
1.16, while the Windows demos could previously be built, but only worked
on Wine. Note that the vkd3d demos produced by a Windows build of vkd3d
are distinct from those produced by the ‘make crosstest’ target: the
former are Vulkan applications using vkd3d, while the latter are Direct3D
12 applications.
- The vkd3d demos have basic support for DPI scaling.
### build
- Perl and the ‘JSON’ Perl module have been added as build dependencies.
These are used for the experimental built-in SPIR-V disassembler, as well
as for the macOS versions of the vkd3d demos.
### Changes since vkd3d 1.15:
```
Andrey Gusev (2):
vkd3d-shader/dxil: Store the actual return value in sm6_parser_signatures_init().
vkd3d-shader/ir: Store the actual return value in shader_signature_map_patch_constant_index_ranges().
Anna (navi) Figueiredo Gomes (6):
tests/hlsl: Add lower sm1 saturate test.
tests/hlsl: Add angle bracket state block syntax test.
vkd3d-shader: Parse angle bracket initializer in state blocks.
tests/hlsl: Add some fx_4_0 state tests.
vkd3d-shader/fx: Don't cast between int and uint in state blocks.
vkd3d-shader/hlsl: Use the source data type in clone_interlocked().
Conor McCarthy (13):
tests/hlsl: Add typed buffer SRV 16-bit tests.
tests/hlsl: Add a sampler 16-bit test.
tests/hlsl: Add a TGSM 16-bit test.
tests/hlsl: Add a typed SRV load 16-bit test.
tests/hlsl: Add interstage interface 16-bit tests.
tests/hlsl: Add a conditional 16-bit test.
tests: Replace test_vs_ps_relative_addressing() with a shader runner test.
tests/hlsl: Test casts to 16-bit float.
tests/hlsl: Test casts to 16-bit int.
tests/hlsl: Test casts to 16-bit uint.
tests/hlsl: Test casts from double to 16-bit integer types.
vkd3d-shader/tpf: Emit the resource data type only for typed resource declarations.
tests/hlsl: Add a shader model 5.1 test to srv-byteaddressbuffer.shader_test.
Elizabeth Figura (70):
vkd3d-shader/hlsl: Don't mark extern variables with an explicit first_write or last_read.
vkd3d-shader/hlsl: Skip transformation passes on error.
vkd3d-shader/hlsl: Remove the type equality assertions in hlsl_new_ternary_expr().
vkd3d-shader/hlsl: Handle error instructions in hlsl_new_swizzle().
vkd3d-shader/hlsl: Add a hlsl_block_add_uint_constant() helper.
vkd3d-shader/hlsl: Add a hlsl_block_add_int_constant() helper.
vkd3d-shader/hlsl: Inline add_pow_expr().
vkd3d-shader/hlsl: Add a hlsl_block_add_float_constant() helper.
vkd3d-shader/hlsl: Add a hlsl_block_add_unary_expr() helper.
vkd3d-shader/hlsl: Add a hlsl_block_add_cast() helper.
vkd3d-shader/hlsl: Add a hlsl_block_add_binary_expr() helper.
vkd3d-shader/hlsl: Add a hlsl_block_add_expr() helper.
vkd3d-shader/hlsl: Pass a block to hlsl_new_void_expr().
vkd3d-shader/hlsl: Pass the target block to hlsl_new_load_component().
vkd3d-shader/hlsl: Add a hlsl_block_add_store_index() helper.
vkd3d-shader/hlsl: Add a hlsl_block_add_simple_store() helper.
vkd3d-shader/hlsl: Pass the target block to hlsl_new_store_component().
vkd3d-shader/hlsl: Return void from hlsl_block_add_store_component().
vkd3d-shader/hlsl: Return an error expr from hlsl_add_load_component() on allocation failure.
vkd3d-shader/hlsl: Add a hlsl_block_add_load_index() helper.
vkd3d-shader/hlsl: Add a hlsl_block_add_simple_load() helper.
vkd3d-shader/hlsl: Emit the minimum-precision global flag when minimum-precision semantics are used.
vkd3d-shader/hlsl: Emit minimum-precision signatures.
vkd3d-shader/hlsl: Emit the minimum-precision SFI0 flag.
vkd3d-shader/hlsl: Use common hlsl_type_is_integer() and hlsl_base_type_is_integer() helpers.
vkd3d-shader/hlsl: Pass the correct type to base_type_get_semantic_equivalent().
vkd3d-shader/hlsl: Make min16uint into a first-class type.
vkd3d-shader/hlsl: Add a hlsl_block_add_jump() helper.
vkd3d-shader/hlsl: Add a hlsl_block_add_if() helper.
vkd3d-shader/hlsl: Add a hlsl_block_add_loop() helper.
vkd3d-shader/hlsl: Add a hlsl_block_add_index() helper.
vkd3d-shader/hlsl: Add a hlsl_block_add_resource_store() helper.
vkd3d-shader/hlsl: Fix temp allocation for ps 1.x.
vkd3d-shader/hlsl: Fix writing the sincos extra constants.
vkd3d-shader/hlsl: Introduce hlsl_block_add_resource_load().
vkd3d-shader/hlsl: Introduce hlsl_block_add_swizzle().
vkd3d-shader/hlsl: Return an error expression from add_cast() on allocation failure.
vkd3d-shader/hlsl: Do not abort when performing an invalid explicit cast.
vkd3d-shader/hlsl: Do not abort when performing an invalid implicit cast.
vkd3d-shader/hlsl: Stop checking for failure from intrinsic_float_convert_arg().
vkd3d-shader/hlsl: Don't invalidate OOB constant derefs.
vkd3d-shader/hlsl: Zero-initialize "nonconst_i" and "ret_swizzle" in copy_propagation_replace_with_deref().
vkd3d-shader/hlsl: Reuse shader model 1-3 constants.
vkd3d-shader/hlsl: Use vsir_*_from_hlsl_node() helpers in more places.
vkd3d-shader/hlsl: Set the correct index count for sm1 DEPTHOUT.
vkd3d-shader/hlsl: Initialize the vsir dimension for sm1.
vkd3d-shader/hlsl: Leave the swizzle zero for VSIR_DIMENSION_NONE registers.
vkd3d-shader/hlsl: Initialize the temp count for sm1.
vkd3d-shader/glsl: Invert gl_FragCoord w.
vkd3d-shader/hlsl: Allow compiling directly to GLSL.
vkd3d-shader/hlsl: Introduce a compiler pass to vectorize expressions.
vkd3d-shader/hlsl: Introduce a compiler pass to vectorize stores.
vkd3d-shader/hlsl: Set the sysval for more sm1 semantics.
vkd3d-shader/hlsl: Set the right interpolation mode in the vsir signature.
vkd3d-shader/ir: Introduce a vsir_dst_param_init_null() helper.
vkd3d-shader/ir: Validate SSA write masks.
vkd3d-shader: Normalize TEXKILL to use a source register.
tests/hlsl: Show that GetRenderTargetSampleCount() returns a vector.
vkd3d-shader/hlsl: Return a uint1 from GetRenderTargetSampleCount().
vkd3d-shader/ir: Merge tess factor used masks together.
vkd3d-shader/spirv: Return void from spirv_compiler_emit_input().
vkd3d-shader/spirv: Do not declare inputs with an empty used_mask.
vkd3d-shader/hlsl: Emit an error when min16uint is used in d3dbc target profiles.
vkd3d-shader/hlsl: Do not emit HLSL_OP1_ABS for unsigned types.
tests/hlsl: Add more tests for the "numthreads" attribute.
vkd3d-shader/hlsl: Validate "numthreads" attribute values.
vkd3d-shader/ir: Use the .w component of the existing swizzle when lowering texldb.
vkd3d-shader/hlsl: Fix an incorrect error message for referring to non-struct types with "struct".
tests/hlsl: Add more tests for struct syntax.
vkd3d-shader/hlsl: Forbid referring to typedefs with "struct".
Feifan He (3):
tests/shader_runner_metal: Introduce a helper to encode the argument buffer.
tests/shader_runner_metal: Add texture support.
vkd3d-shader/msl: Implement VKD3DSIH_LD.
Francisco Casas (38):
vkd3d-shader/hlsl: Also dump preprocessed shaders.
tests/test-driver: Print the shader model for the detailed output of the hlsl backend.
tests/test-driver: Group together tags in the same line and shader model.
tests/test-driver: Merge the same consecutive tags togeter.
vkd3d-make/hlsl: Trace the number of registers allocated in allocate_temp_registers().
vkd3d-shader/hlsl: Only use the temp copy for variables that are written.
tests: Test unused invalid samples with a static sampler.
vkd3d-shader/hlsl: Run folding passes again after lower_nonconstant_array_loads.
vkd3d-shader/hlsl: Don't cast all expressions to float.
vkd3d-shader/hlsl: Remove lower_nonfloat_exprs().
vkd3d-shader/hlsl: Lower TRUNC expressions for SM1.
tests: Add a hard test for copy-propagation invalidation.
vkd3d-shader/hlsl: Fix invalidation of the wrong components in copy-propagation.
tests/hlsl: Test for loss of precision on integer negation in d3dbc target profiles.
tests/hlsl: Test integer modulus with big integers.
tests/hlsl: Test integer division with big integers.
vkd3d-shader/hlsl: Don't lower integer MOD and DIV on const passes for d3dbc target profiles.
vkd3d-shader/hlsl: Lower integer modulus for d3dbc target profiles.
tests/hlsl: Test vertex shader uniform indirect addressing.
tests/hlsl: Test SM1 vertex shader uniform allocation on indirect addressing.
vkd3d-shader/d3dbc: Respect "idx_count" when writing registers.
vkd3d-shader/hlsl: Implement indirect addressing for d3dbc target profiles.
vkd3d-shader/ir: Normalise MOVA and d3dbc indirect addressing.
vkd3d-shader/hlsl: Allow non-constant deref propagation on SM1.
vkd3d-shader/ir: Reset instruction pointers after shader_instruction_array_insert_at().
tests/hlsl: Test the object .Length property.
vkd3d-shader/hlsl: Support the .Length property for Textures.
vkd3d-shader/hlsl: Make struct_declaration_without_vars return void.
vkd3d-shader/hlsl: Avoid leaking declaration_statement blocks.
vkd3d-shader/hlsl: Avoid leaking blocks on YYABORT.
vkd3d-shader/hlsl: Add parse_variable_def destructors to the parser.
vkd3d-shader/hlsl: Add switch_case destructors to the parser.
vkd3d-shader/hlsl: Remove the unnecessary "instr" field from the parser %union.
vkd3d-shader/hlsl: Parse barriers.
vkd3d-shader/hlsl: Mark stores dirty on interlocked operation in vectorize_stores().
vkd3d-shader/hlsl: Generate vsir for HLSL_IR_SYNC operations.
tests: Add tests for DeviceMemoryBarrierWithGroupSync().
ci: Update the DXC version used on the CI to 1.8.2502.
Giovanni Mascellani (104):
tests: Enable tessellation shaders in the Vulkan shader runner.
tests: Test I/O index ranges not intersecting a signature element for a given register.
vkd3d-shader/ir: Report errors in the I/O normaliser instead of asserting.
vkd3d-shader/ir: Use a structure to record range data in the I/O normaliser.
vkd3d-shader/ir: Handle index ranges that do not touch a signature element for each register.
vkd3d-shader/tpf: Allow I/O index ranges to not intersect a signature element for a given register.
vkd3d: Require extension VK_KHR_maintenance2.
vkd3d: Rename push_descriptor_set to root_descriptor_set.
vkd3d: Put all root descriptors in a single Vulkan descriptor set when using Vulkan heaps.
tests: Test embedding the root signature in shaders for graphics pipelines.
vkd3d: Take the root signature from shaders when creating graphics pipelines.
vkd3d/device: Require VK_KHR_zero_initialize_workgroup_memory when appropriate.
vkd3d: Split Vulkan debug messages.
vkd3d-shader/spirv: Emit immediate words for unhandled instructions.
tests/shader_runner: Allow selecting the executor.
tests/shader_runner: Allow selecting the compiler.
tests: Store the compiler string in the shader runner capabilities.
tests/shader_runner: Avoid creating devices for backends that won't execute.
vkd3d-shader/ir: Validate CONSTBUFFER registers.
vkd3d-shader/ir: Disallow CONSTBUFFER registers in destination parameters.
vkd3d-shader/ir: Disallow IMMCONSTBUFFER registers in destination parameters.
ci: Define VKD3D_TEST_DEBUG when running the CI scripts.
tests: Mark a few other timestamp query tests as buggy on MoltenVK.
tests: Mark two other tessellation tests as buggy on MoltenVK.
tests: Transition texture state to inherit aliased data.
tests: Mark a test about resource aliasing as todo on MoltenVK.
vkd3d-shader/spirv: Run the vsir passes before creating the SPIR-V generator.
vkd3d-shader/spirv: Immediately store a reference to the program in the SPIR-V generator.
vkd3d-shader/spirv: Do not store duplicate references to the signatures.
vkd3d-shader/spirv: Do not steal the instruction array from the vsir program.
vkd3d-shader: Represent descriptor information in the vsir program.
tests: Mark a queue synchronization test as buggy on MoltenVK.
tests: Mark an early depth stencil test as buggy on MoltenVK.
vkd3d-shader/ir: Validate register id and index for RESOURCE registers.
vkd3d-shader/ir: Validate register id and index for UAV registers.
vkd3d-shader/ir: Validate register id and index for SAMPLER registers.
vkd3d-shader/ir: Validate register id and index for CONSTBUFFER registers.
tests: Mark a number of test failures as buggy on macOS before Sequoia.
ci: Disable testing with DXC on macOS.
tests: Mark a todo as resolved on MoltenVK 1.2.12.
vkd3d-shader/msl: Set the prefix to "unknown" for unhandled shader types in msl_generator_init().
tests/d3d12: Always set descriptor heaps.
tests/shader_runner: Always set descriptor heaps.
tests/shader_runner_metal: Handle multisampled 2D texture arrays properly.
tests/shader_runner_metal: Do not use shared buffers.
vkd3d-shader/msl: Access descriptors with a type-erased array.
tests/shader_runner_d3d11: Do not create CPU-readable multisample resolution textures.
tests: Create structured buffers with the appropriate stride.
vkd3d-shader: Represent resource data types as vkd3d_data_type in struct vkd3d_shader_descriptor_info1.
vkd3d-shader/d3d-asm: Expose the raw value if unknown in shader_dump_resource_type().
vkd3d-shader/d3d-asm: Expose the raw value if unknown in shader_dump_data_type().
vkd3d-shader/d3d-asm: Include the program descriptors when tracing vsir code.
vkd3d-shader/d3d-asm: Trace register names for I/O declarations.
vkd3d-shader: Describe the resource data types of samplers as NONE.
vkd3d-shader/ir: Validate descriptor types in vsir programs.
vkd3d-shader/ir: Validate descriptor resource types in vsir programs.
vkd3d-shader/ir: Validate descriptor resource data types in vsir programs.
vkd3d-shader/ir: Validate descriptor counts in vsir programs.
tests/shader_runner_d3d9: Request the adapter specified on the command line.
tests/hlsl: Do not test 16-bit out-of-bound SRV buffer reads.
tests/hlsl: Do not test 16-bit out-of-bound UAV writes.
tests/hlsl: Remove a test in which a function reads an "out" argument.
tests/hlsl: Do not test 16-bit out-of-bound varyings.
tests/hlsl: Do not test dst() on integer arguments with SM6.
tests/hlsl: Fix the precision for a 16-bit arithmetic test.
tests/hlsl: Do not test the implicit passthrough control point phase for SM6.
vkd3d-shader/ir: Validate that DEPTHOUT registers aren't used as sources.
vkd3d-shader/ir: Validate that DEPTHOUTGE registers aren't used as sources.
vkd3d-shader/ir: Validate that DEPTHOUTLE registers aren't used as sources.
tests/d3d12: Set the descriptor heap when clearing UAVs.
tests/d3d12: Check that B5G6R5_UNORM and B5G5R5A1_UNORM are supported before testing them.
tests/d3d12: Do not allow texture creation to fail when testing UAV uint clears.
tests/d3d12: Do not test out-of-bound UAV uint clears.
tests/d3d12: Do not validate the semantic of uint-clearing R11G11B10_FLOAT resources.
tests/d3d12: Skip testing NULL VBVs on NVIDIA on Windows.
vkd3d-shader/msl: Introduce msl_print_src().
vkd3d-shader/msl: Introduce msl_print_bitcast().
vkd3d-shader/msl: Use the standard helper to print bitcasts.
vkd3d-shader/dxil: Create vsir registers from DXIL handles when needed.
vkd3d-shader/dxil: Have sm6_parser_emit_reg_composite_construct() accept an array of registers.
vkd3d-shader/dxil: Introduce a uniform interface to synthesize a register from a SM6 value.
vkd3d-shader/dxil: Move the VSIR register in the SM6 value outside of the union.
vkd3d-shader/dxil: Generate SSA values in sm6_parser_get_value_idx_by_ref().
vkd3d-shader/dxil: Generate SSA values in instruction_dst_param_init_ssa_vector().
vkd3d-shader/dxil: Generate SSA values in instruction_dst_param_init_ssa_scalar().
vkd3d-shader/dxil: Generate SSA values in sm6_parser_emit_atomicrmw().
vkd3d-shader/dxil: Generate SSA values in sm6_parser_emit_binop().
vkd3d-shader/dxil: Do not encode the offset twice for structured TGSM loads.
vkd3d-shader/dxil: Generate SSA values in sm6_parser_emit_dx_atomic_binop().
vkd3d-shader/dxil: Generate SSA values in sm6_parser_emit_dx_sincos().
vkd3d-shader/dxil: Generate SSA values in sm6_parser_emit_cmpxchg().
vkd3d-shader/dxil: Generate SSA values in sm6_parser_emit_phi().
vkd3d-shader/dxil: Generate UNDEFINED values in sm6_parser_constants_init().
vkd3d-shader/dxil: Generate INVALID values in sm6_parser_constants_init().
vkd3d-shader/dxil: Generate INVALID values in sm6_parser_emit_unhandled().
vkd3d-shader/dxil: Rename VALUE_TYPE_ICB to VALUE_TYPE_DATA.
vkd3d-shader/dxil: Generate ICB values in sm6_parser_declare_icb().
vkd3d-shader/dxil: Generate IDXTEMP values in sm6_parser_declare_indexable_temp().
vkd3d-shader/dxil: Generate GROUPSHAREDMEM values in sm6_parser_declare_tgsm_raw().
vkd3d-shader/dxil: Generate GROUPSHAREDMEM values in sm6_parser_declare_tgsm_structured().
vkd3d-shader/dxil: Call register_get_float_value() directly in sm6_value_get_constant_float().
tests: Expect success when creating resources in certain cases.
tests: Allow creating GPU upload heaps.
tests: Check that shader-visible descriptor heaps have a valid GPU descriptor handle start.
Henri Verbeet (58):
vkd3d-shader/dxbc: Update the vkd3d_shader_parse_input_signature() documentation for dxbc-dxil shaders.
vkd3d-shader/dxil: Avoid using the I/O signatures from the DXBC container.
vkd3d-shader/dxbc: Do not extract I/O signatures for DXIL shaders.
tests: Add a signature reflection test for arrayed inputs and outputs.
vkd3d-shader: Handle arrayed elements in vkd3d_shader_signature_from_shader_signature().
vkd3d: Avoid vkd3d_shader_parse_input_signature().
vkd3d-shader/dxbc: Set the "elements_capacity" field as well in shader_parse_signature().
vkd3d-shader/dxbc: Output messages for invalid semantic name references in shader_parse_signature().
vkd3d-shader/dxbc: Validate component types in shader_parse_signature().
vkd3d-shader/dxil: Generate I/O signatures with 16-bit component types for native 16-bit shaders.
tests: Add a shader model 6 signature reflection test for different types.
vkd3d-shader: Enable DXIL support in the default configuration.
vkd3d-shader/fx: Use vkd3d_string_buffer_print_f32() in parse_fx_4_numeric_value().
ci: Install libjson-perl.
vkd3d-shader/spirv: Do not sign-extend *ptr in vkd3d_spirv_build_string().
vkd3d-shader/fx: Output error messages for invalid sizes.
vkd3d-shader/fx: Handle parser failures in fx_parse().
vkd3d-shader/spirv: Implement outputting instruction offsets.
vkd3d-shader/spirv: Implement outputting opcode names.
vkd3d-shader/spirv: Handle "IdRef" operands.
vkd3d-shader/spirv: Handle "IdResult" operands.
vkd3d-shader/spirv: Handle "IdResultType" operands.
vkd3d-shader/spirv: Handle "LiteralInteger" operands.
vkd3d-shader/spirv: Handle "LiteralString" operands.
vkd3d-shader/spirv: Handle "ValueEnum" operands.
vkd3d-shader/spirv: Handle "BitEnum" operands.
build: Get rid of some redundant instances of "checking" in AC_MSG_CHECKING messages.
demos: Add copyright headers to the HLSL shaders.
tests/hlsl: Add another constant folding test.
vkd3d-shader/hlsl: Do not collect expressions across different operations in hlsl_normalize_binary_exprs().
vkd3d-shader/glsl: Implement VKD3DSIH_XOR.
build: Add @DL_LIBS@ to tests_vkd3d_shader_api_LDADD.
demos: Add basic DPI handling.
demos: Get rid of some unused includes.
demos: Move the vkd3d parts of demo_xcb.h into a separate header.
tests/shader_runner: Get rid of enum texture_data_type.
vkd3d-shader/d3d-asm: Include the I/O signatures when tracing vsir code.
vkd3d-shader/spirv: We can parse up to SPIR-V 1.6.
build: Do not add libvkd3d-shader.la to DEMOS_LDADD twice.
ci: Install mingw-w64-tools in the Linux image.
demos: Split demo_win32.h.
demos: Make the demos work in the Windows build.
vkd3d: Introduce struct vkd3d_null_event.
vkd3d: Introduce d3d12_fence_add_waiting_event().
tests/d3d12: Test ID3D12Device1_SetEventOnMultipleFenceCompletion().
vkd3d: Validate the fence count in d3d12_device_SetEventOnMultipleFenceCompletion().
vkd3d: Handle single fence waits in d3d12_device_SetEventOnMultipleFenceCompletion().
vkd3d: Handle multiple fence ALL waits in d3d12_device_SetEventOnMultipleFenceCompletion().
vkd3d: Handle multiple fence ANY waits in d3d12_device_SetEventOnMultipleFenceCompletion().
vkd3d: Handle multiple fence NULL event waits in d3d12_device_SetEventOnMultipleFenceCompletion().
demos: Make the demos work in the macOS build.
demos: Avoid objc_msgSend_fpret() on ARM64 macOS.
ci: Build the demos on macOS.
demos: Build with -fno-lto.
build: Sort the $(vkd3d_shader_tests) list.
vkd3d-shader/dxil: Document the supported dxbc-dxil transformations.
build: Add the SPIR-V grammar JSON to the distribution.
build: Add the Objective-C API JSON to the distribution.
Nikolay Sivov (23):
vkd3d-shader/preproc: Do not attempt to load empty included files.
vkd3d-shader/fx: Implement parsing complex value and index expressions.
vkd3d-shader/fx: Improve state object nesting for the fx -> text output.
vkd3d-shader/fx: Fix condition when printing literal constant arguments.
vkd3d-shader/fx: Parse technique and pass blocks for fx_2_0.
vkd3d-shader/fx: Add support for parsing fx_2_0 annotations.
vkd3d-shader/fx: Fix const strings array types.
vkd3d-shader/fx: Add support for parsing fx_2_0 parameters.
vkd3d-shader/fx: Add support for parsing numeric states in fx_2_0 passes.
vkd3d-shader/fx: Output object initialiser IDs for fx_2_0.
vkd3d-shader/fx: Print string object entries for fx_2_0.
vkd3d-shader/fx: Add a helper to escape printed strings.
vkd3d-shader/fx: Read fx_2_0 assignment data outside of its dumping helper.
vkd3d-shader/fx: Add support for parsing fx_2_0 sampler states.
vkd3d-shader/fx: Add support for dumping fx_2_0 shader blobs.
vkd3d-shader/fx: Dump complex state value blobs for fx_2_0.
vkd3d-shader/fx: Support dumping parameter and array selector assignments for fx_2_0.
vkd3d-shader/fx: Pad fx_2_0 object data blobs with zeroes.
vkd3d-shader/fx: Set GeometryShader state type as an object type.
vkd3d-shader/fx: Accept int(0) as well as uint(0) constant value for object-type states.
tests: Add a fx_4_1 compilation test for the BlendState states.
vkd3d-shader/fx: Use the same BlendState states description for both fx_4_1 and fx_5_0.
vkd3d-shader/fx: Use appropriate BlendState description when tracing.
Petrichor Park (1):
tests/shader_runner: Allow controlling which shader models to run via command line.
Shaun Ren (44):
vkd3d-shader/tpf: Write non-zero static offsets in relative addressing mode in sm4_write_register_index().
vkd3d-shader/glsl: Implement support for indirect constant buffer addressing.
vkd3d-shader/hlsl: Allow uint1-typed deref path nodes.
vkd3d-shader/hlsl: Allow non-constant indices in register_deref_usage().
vkd3d-shader/hlsl: Support patch arrays in hlsl_reg_from_deref().
vkd3d-shader/hlsl: Support indirect addressing of uniforms in sm4_generate_vsir_reg_from_deref().
vkd3d-shader/hlsl: Introduce simplify_exprs().
vkd3d-shader/hlsl: Introduce component_index_from_deref_path_node().
vkd3d-shader/hlsl: Rename init_deref() to hlsl_init_deref().
vkd3d-shader/hlsl: Implement copy-propagation of derefs with a non-constant index.
tests/hlsl: Add dynamic addressing copy-propagation tests.
vkd3d-shader/hlsl: Parse the maxvertexcount attribute.
vkd3d-shader/hlsl: Parse primitive type modifiers in geometry shaders.
vkd3d-shader/hlsl: Validate and record input primitive types in geometry shaders.
vkd3d-shader/hlsl: Validate stream output object declarations.
vkd3d-shader/hlsl: Validate stream output parameters in geometry shaders.
vkd3d-shader/hlsl: Forbid output parameters in geometry shaders.
tests/hlsl: Add geometry shader syntax tests.
vkd3d-shader/hlsl: Remove the unused hlsl_array_type_to_string() declaration.
vkd3d-shader/hlsl: Support input primitive arrays in geometry shaders.
vkd3d-shader/hlsl: Implement input semantics for geometry shaders.
vkd3d-shader/hlsl: Store geometry shader properties in struct vsir_program.
vkd3d-shader/tpf: Emit geometry shader property declarations.
tests: Add a signature reflection test for geometry shader inputs.
vkd3d-shader/hlsl: Divert written uniform derefs to temps before copy-propagation passes.
vkd3d-shader/hlsl: Ensure that uniform objects are never written to in copy_propagation_transform_object_load().
tests/hlsl: Add a test for copy-propagation of uniform texture object writes.
vkd3d-shader/hlsl: Use dcl_output_siv for patch constant function sysval outputs.
vkd3d-shader/hlsl: Free all allocators in allocate_semantic_registers().
vkd3d-shader/hlsl: Prioritize smaller writemasks for all allocators in allocate_semantic_registers().
vkd3d-shader/tpf: Support SV_RenderTargetArrayIndex/SV_ViewportArrayIndex sysvals in tessellation shaders.
tests: Add signature reflection tests for register allocation rules in tessellation shaders.
vkd3d-shader/hlsl: Add special allocation rules for patch constant data.
vkd3d-shader/hlsl: Support HLSL_CLASS_STREAM_OUTPUT in hlsl type helpers.
vkd3d-shader/hlsl: Parse the Append() method for stream outputs.
vkd3d-shader/hlsl: Parse the RestartStrip() method for stream outputs.
vkd3d-shader/hlsl: Introduce HLSL_REGSET_STREAM_OUTPUTS regset.
vkd3d-shader/hlsl: Allocate registers for stream output objects.
vkd3d-shader/hlsl: Validate and record stream output objects.
tests/hlsl: Add geometry shader stream output syntax tests.
vkd3d-shader/hlsl: Use a block in append_output_copy*().
vkd3d-shader/hlsl: Append output copies for stream output Append() invocations.
vkd3d-shader/hlsl: Validate maximum output size in geometry shaders.
vkd3d-shader/hlsl: Generate vsir instructions for stream output operations.
Victor Chiletto (3):
tests/shader_runner_d3d12: Pass the structure byte stride for SRVs.
tests/hlsl: Attempt to deduce the data type of unspecified type texture data.
tests/hlsl: Add tests for SRV structured buffers.
```
The Wine development release 10.8 is now available.
What's new in this release:
- User handles in shared memory for better performance.
- Improvements to TIFF image support.
- More work on the new PDB backend.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/10.x/wine-10.8.tar.xz>
Binary packages for various distributions will be available
from the respective [download sites][1].
You will find documentation [here][2].
Wine is available thanks to the work of many people.
See the file [AUTHORS][3] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/wikis/Download
[2]: https://gitlab.winehq.org/wine/wine/-/wikis/Documentation
[3]: https://gitlab.winehq.org/wine/wine/-/raw/wine-10.8/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 10.8 (total 18):
- #37813 Defiance fails to connect to login Server
- #51248 UrlGetPart produces different results from Windows
- #54995 msys2-64/cygwin64: git clone fails with 'Socket operation on non-socket'
- #56723 Vegas Pro 14: crash upon creating the main window
- #56983 UI: Application using ModernWPF crashes, Windows.UI.ViewManagement.UISettings not implemented
- #57148 cmd,for: ghidraRun.bat shows: Syntax error: unexpected IN
- #57397 Apps hang when trying to show tooltip
- #57424 msys2-64/cygwin64: mintty.exe not able to show bash.exe output.
- #57575 dmsynth: incorrect condition for buffer underrun in synthsink.c:synth_sink_write_data
- #57805 Wine CoreMIDI: Extra program change event on sending program change through MIDI Output from winmm
- #57941 Build broken with libglvnd <=1.3.3
- #57986 Final Fantasy XI Online window borders and content behave strangely
- #58067 comctl32/edit: Unable to enter values in Adobe Lightroom Classic 10.4
- #58085 foobar2000. Columns UI user interface error listing fonts using DirectWrite
- #58185 Country Siblings: EXCEPTION_ACCESS_VIOLATION related with D3D11
- #58191 dwrite tests fail to compile with mingw-gcc 15 due to attempt to link to truncf
- #58207 Caret gets broken in Edit (incl Combobox) when using long texts
- #58212 boost::interprocess::named_mutex does not work
### Changes since 10.7:
```
Adam Markowski (1):
po: Update Polish translation.
Akihiro Sagawa (5):
d2d1: Fix a crash in Clear method if no target is set.
d2d1: Fix a crash in DrawBitmap method family if no target is set.
d2d1: Fix a crash in DrawGeometry method family if no target is set.
d2d1: Fix a crash in FillGeometry method family if no target is set.
d2d1: Fix a crash in DrawGlyphRun method family if no target is set.
Alex Henrie (5):
dsound/tests: Allocate right amount of memory in test_secondary8 (ASan).
opcservices: Fix string comparison in opc_part_uri_get_rels_uri.
mfmediaengine/tests: Mark a refcount test in test_SetCurrentTime as flaky.
quartz: Clamp MediaSeeking_GetCurrentPosition to the stop position.
quartz/tests: Increase the timeout of a pause test in test_media_event.
Alexandre Julliard (16):
shell32/tests: Remove leftover file that hides succeeding tests.
tools: Add support for syscalls with a custom entry point.
ntdll: Define NtQueryInformationProcess as a custom syscall.
ntdll: Don't require syscall flag on Zw functions.
ntdll/tests: Add a test for syscall numbering.
dbghelp: Fix wrong variable used in EX case.
mountmgr: Remove redundant casts.
odbc32: Remove redundant casts.
opengl32: Remove redundant casts.
winebth.sys: Remove redundant casts.
winegstreamer: Remove redundant casts.
wineps: Remove redundant casts.
winedmo: Remove redundant casts.
ntdll: Use the appropriate type for the xstate_features_size variable.
include: Add some fields to the user shared data.
include: Fix the name of the user shared data structure.
Alexandros Frantzis (2):
winewayland: Use ARGB buffers for shaped windows.
winex11: Initialize ex_style_mask output parameter.
Alfred Agrell (9):
ntdll: Fix RtlUTF8ToUnicodeN for expected output ending with a surrogate pair that doesn't fit.
include: Fix a typoed vtable call macro.
include: Fix some typoed vtable call macros.
include: Fix a typoed vtable call macro.
include: Fix a typoed vtable call macro.
include: Fix some typoed vtable call macros.
include: Fix some typoed comments.
include: Fix some typoed vtable call macros.
include: Fix some typoed vtable call macros.
Alistair Leslie-Hughes (6):
odbc32: SQLColAttributesW accept field id SQL_COLUMN_NAME.
include: Add ApplicationRecoveryInProgress/Finished prototype.
include: Add InitNetworkAddressControl prototype.
include: Add some SHARD_* defines.
include: Add some ENDSESSION_* defines.
include: Add IHTMLOptionButtonElement interface.
Andrew Nguyen (1):
wine.inf: Add BootId value for Session Manager\Memory Management\PrefetchParameters key.
Aurimas Fišeras (1):
po: Update Lithuanian translation.
Bernhard Übelacker (1):
server: Improve returned value in member WriteQuotaAvailable.
Brendan McGrath (3):
winegstreamer: Only align the first plane in gst_video_info_align.
winegstreamer: Allow decodebin to eliminate caps that don't use system memory.
mfreadwrite: Use stream_index from ASYNC_SAMPLE_READY command.
Brendan Shanks (5):
winemac: Set the OpenGL backbuffer size to the size in window DPI.
winhttp: Use GlobalAlloc for the result of WinHttpDetectAutoProxyConfigUrl.
winhttp: Add a cache to WinHttpDetectAutoProxyConfigUrl().
nsiproxy: Set the name of internal threads.
nsiproxy: Implement change notifications for NSI_IP_UNICAST_TABLE on macOS.
Connor McAdams (6):
d3dx9: Make functions for pixel copying/conversion/filtering static.
d3dx9: Move code for format conversion of a single pixel into a common helper function.
d3dx9/tests: Add some color key tests.
d3dx9: Set all color channels to zero when color keying.
d3dx9: Calculate a range of color key channel values in d3dx_load_pixels_from_pixels() if necessary.
d3dx9: Don't color key compressed pixel formats on 32-bit d3dx9.
Dmitry Timoshkov (3):
combase: Find correct apartment in ClientRpcChannelBuffer_SendReceive().
user32/tests: Add a message test for listbox redrawing after LB_SETCOUNT.
ldap: Use correct SPN when authenticating to Kerberos DC.
Eric Pouech (17):
dbghelp: Introduce a cache for loading blocks in new PDB reader.
winedump: Dump some symbols for managed code.
dbghelp: Silence symbol for managed code.
dbghelp: Silence FIXME when dealing with empty hash table.
dbghelp: Fix using Start parameter in TI_FINDCHILDREN request.
dbghelp: Get rid of code quality warning.
dbghelp: Return method_result from pdb_reader_request_cv_typeid.
dbghelp: Load global symbols from DBI.
dbghelp: Beef up reading compiland header helper.
dbghelp: Build compiland table for new PDB reader.
dbghelp: Create all symt* from new PDB reader.
dbghelp: Workaround SAST false positive.
dbghelp: Skip compilands without MSF stream (new PDB).
dbghelp: Add method to query backend for symbol by address.
dbghelp: Add method to query symbols by name.
dbghelp: Add method to enumerate symbols.
dbghelp: Load compilands on demand (new PDB).
Gabriel Ivăncescu (29):
mshtml: Ignore setting non-writable external props.
mshtml: Don't redefine deleted props in dispex_define_property.
jscript: Properly fill the builtin props.
mshtml: Expose "arguments" from host functions in IE9+ modes.
mshtml: Expose "caller" from host functions in IE9+ modes.
mshtml: Expose "arguments" and "caller" from host constructors in IE9+ modes.
mshtml: Get rid of useless "iter" member in the attribute collection enum.
mshtml/tests: Test iframe window navigation resetting props.
mshtml: Fill the props in the host method instead of enumerating next prop.
mshtml: Only fill the external props once, unless they are volatile.
mshtml: Properly fill the prototype's "constructor" prop.
mshtml: Properly fill the constructor's "prototype" prop.
mshtml: Properly fill the window's constructors.
mshtml: Properly fill the window's script vars.
mshtml: Enumerate all own custom props if requested.
mshtml: Implement nodeType prop for attributes.
mshtml: Implement attributes prop for attributes.
mshtml: Implement ownerDocument prop for attributes.
mshtml: Implement cloneNode for attributes.
mshtml: Implement appendChild for attributes.
mshtml: Implement insertBefore for attributes.
mshtml: Implement hasChildNodes for attributes.
mshtml: Implement childNodes prop for attributes.
mshtml: Implement firstChild prop for attributes.
mshtml: Implement lastChild prop for attributes.
mshtml: Implement previousSibling prop for attributes.
mshtml: Implement nextSibling prop for attributes.
mshtml: Implement replaceChild for attributes.
mshtml: Implement removeChild for attributes.
Georg Lehmann (1):
winevulkan: Update to VK spec version 1.4.315.
Hans Leidekker (2):
winedump: Improve formatting of CLR metadata.
wldap32: Don't map errors from ldap_set_optionW().
Jacek Caban (2):
mshtml: Add CSSStyleDeclaration::content property implementation.
ntdll/tests: Initialize out buffer in threadpool tests.
Jinoh Kang (2):
include: Fix ARM64EC acq/rel barrier to match ARM64.
user32/tests: Test BeginPaint() clipbox of cropped window with CS_PARENTDC.
Mike Swanson (1):
notepad: Restructure menus and make hot-keys unique.
Mohamad Al-Jaf (6):
windows.ui: Implement IUISettings4 stub.
windows.ui: Implement IUISettings5 stub.
coremessaging: Add IDispatcherQueueControllerStatics stub.
coremessaging/tests: Add IDispatcherQueueControllerStatics::CreateOnDedicatedThread() tests.
coremessaging/tests: Add CreateDispatcherQueueController() tests.
coremessaging: Partially implement CreateDispatcherQueueController().
Nikolay Sivov (17):
windowscodecs/tests: Use wide-char literals in tests.
windowscodecs/converter: Add 48bppRGBHalf -> 32bppBGRA conversion path.
windowscodecs/converter: Add 48bppRGBHalf -> 128bppRGBFloat conversion path.
windowscodecs/tests: Add a test for 24bpp TIFF with separate sample planes.
windowscodecs/tiff: Add support for files with separate planes.
windowscodecs: Fix information strings for the Ico decoder.
windowscodecs: Fix information strings for the Jpeg decoder.
windowscodecs: Fix information strings for the Tiff decoder.
libs: Enable JPEG codec in libtiff.
windowscodecs/tiff: Use libjpeg for colorspace conversion YCbCr -> RGB.
windowscodecs/tests: Add some tests for multi-frame tiffs vs SUBFILETYPE tag.
windowscodecs/tiff: Skip frames marked with SUBFILETYPE(0x1).
comctl32/edit: Remove change notifications on Ctrl+A selections.
user32/edit: Reset internal capture state on WM_CAPTURECHANGED.
comctl32/edit: Reset internal capture state on WM_CAPTURECHANGED.
windowscodecs/tiff: Zero-initialize decoder structure.
gdi32/uniscribe: Do not limit the number of items in ScriptStringAnalyse().
Paul Gofman (10):
win32u: Don't redraw window in expose_window_surface() if window has surface.
win32u: Don't inflate rect in expose_window_surface().
shell32: Avoid writing past end of xlpFile or lpResult in SHELL_FindExecutable().
ntdll: Bump current build number to 19045 (Win10 22H2).
services: Create ImagePath registry value with REG_EXPAND_SZ type.
ntdll: Allocate output string if needed for REG_EXPAND_SZ in RTL_ReportRegistryValue().
user32: Add stub for IsWindowArranged().
msvcp: Use _beginthreadex() in _Thrd_start().
kernel32/tests: Add test for removing completion port association with job.
server: Support removing completion port association with job.
Piotr Caban (12):
netapi32: Validate bufptr argument before accessing it.
netapi32: Fix WOW64 server_getinfo thunk.
netapi32: Fix WOW64 share_add thunk.
netapi32: Fix WOW64 wksta_getinfo thunk.
netapi32: Use correct allocators for buffers returned by NetServerGetInfo and NetWkstaGetInfo.
netapi32: Add NetShareGetInfo implementation for remote machines.
ntdsapi: Add DsMakeSpnA implementation.
ntdsapi: Fix referrer handling in DsMakeSpnW function.
msado15: Don't return early in _Recordset_Open if there are no columns.
msado15: Initialize columns in ADORecordsetConstruction_put_Rowset.
msado15: Fix Fields object refcounting.
msado15/tests: Fix some memory leaks.
Rémi Bernon (37):
winebus: Ignore mouse / keyboard hidraw devices by default.
server: Remove const qualifier from shared memory pointers.
include: Implement ReadAcquire64.
server: Use NTUSER_OBJ constants for user object types.
server: Allocate a session shared memory header structure.
server: Move the user object handle table to the shared memory.
win32u: Use the session shared object to implement is_window.
win32u: Use the session shared object for user handle entries.
winewayland: Implement window surface shape and color keying.
windows.gaming.input: Move async impl interfaces to a dedicated IDL.
windows.media.speech: Sync async impl with windows.gaming.input.
cryptowinrt: Sync async impl with windows.gaming.input.
windows.devices.enumeration: Sync async impl with windows.gaming.input.
windows.security.credentials.ui.userconsentverifier: Sync async impl with windows.gaming.input.
server: Remove unused get_window_info atom reply parameter.
win32u: Read the windows full handle from the shared memory.
win32u: Use the session user entries for is_current_thread_window.
win32u: Use the session user entries for is_current_process_window.
win32u: Read window tid / pid from the session shared memory.
wineandroid: Get rid of now unnecessary function loading.
winex11: Get rid of now unnecessary function loading.
winemac: Get rid of now unnecessary function loading.
winewayland: Get rid of now unnecessary function loading.
win32u: Pass thread id to next_process_user_handle_ptr.
win32u: Get rid of struct WND tid member.
win32u: Get rid of struct user_object.
gitlab: Run ntoskrnl tests with win64 architecture.
windows.devices.enumeration: Factor DeviceWatcher creation in a device_watcher_create helper.
windows.devices.enumeration: Implement DeviceWatcher::get_Status.
windows.devices.enumeration: Implement DeviceWatcher async state changes.
windows.devices.enumeration: Split setupapi device enumeration to a separate helper.
windows.media.speech/tests: Make refcount tests results deterministic.
win32u: Don't load the display drivers in service processes.
win32u: Rename set_window_style to set_window_style_bits.
win32u: Add NtUserAlterWindowStyle syscall stub.
win32u: Implement and use NtUserAlterWindowStyle.
winebus: Skip device stop if it wasn't started.
Tim Clem (2):
ntdll: Treat TokenElevationTypeDefault tokens in the admin group as elevated.
advapi32/tests: Skip a token elevation test if OpenProcess fails.
Vibhav Pant (8):
windows.devices.enumeration/tests: Add conformance tests for FindAllAsync().
windows.devices.enumeration: Add a stubbed implementation for FindAllAsync() and DeviceInformationCollection.
windows.devices.enumeration: Add a stubbed IDeviceInformation implementation for device interfaces.
windows.devices.enumeration: Create IDeviceInformation objects from all present device interfaces.
windows.devices.enumeration: Add tests for initial device enumeration in DeviceWatcher.
windows.devices.enumeration: Implement IDeviceInformationStatics::CreateWatcher.
windows.devices.enumeration: Implement EnumerationCompleted handler for DeviceWatcher.
windows.devices.enumeration: Implement initial device enumeration for DeviceWatcher::Start().
Yeshun Ye (3):
dssenh: Add 'CRYPT_VERIFYCONTEXT | CRYPT_NEWKEYSET' support for CPAcquireContext.
dssenh/tests: Add test for CryptAcquireContextA.
find: Support switch /i or /I.
Yuxuan Shui (3):
win32u: Fix potential use of uninitialized variables.
msvcrt: Use _LDOUBLE type in exported functions.
ntdll: Also relocate entry point for builtin modules.
Zhiyi Zhang (4):
windows.ui: Implement IWeakReferenceSource for IUISettings.
windows.ui: Implement weak_reference_source_GetWeakReference().
include: Add windows.ui.viewmanagement.core.idl.
include: Add ID3D11FunctionLinkingGraph.
Ziqing Hui (11):
shell32/tests: More use of check_file_operation helper in test_copy.
shell32: Fail if wildcards are in target file names.
shell32: Introduce file_entry_{init,destroy} helpers.
shell32: Remove a useless index variable in parse_file_list.
shell32: Rework FO_COPY operation.
shell32: Remove useless bFromRelative member.
shell32: Add overwrite confirmation for FO_COPY.
shell32/tests: Add more wildcard target tests.
shell32: Introduce has_wildcard helper.
shell32: Handle invalid parameter correctly for SHFileOperationW.
shell32: Introduce parse_target_file_list helper.
```
The Wine development release 10.7 is now available.
What's new in this release:
- User fault fd support to improve write watches performance.
- Support for Float format conversions in WindowsCodecs.
- More work on the new PDB backend.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/10.x/wine-10.7.tar.xz>
Binary packages for various distributions will be available
from the respective [download sites][1].
You will find documentation [here][2].
Wine is available thanks to the work of many people.
See the file [AUTHORS][3] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/wikis/Download
[2]: https://gitlab.winehq.org/wine/wine/-/wikis/Documentation
[3]: https://gitlab.winehq.org/wine/wine/-/raw/wine-10.7/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 10.7 (total 14):
- #18803 PokerStars windows disappear on alert
- #18926 In Winamp, the "send to..." submenu in the playlist menu does not appear
- #20172 Button "Alt Gr" triggers access violation in Teach2000
- #31775 Misaligned icons in icon bar
- #33624 winhelp: Popups appear with bogus scrollbars which disappear when you click them
- #37706 ScrollWindowEx() returns ERROR if the window is not visible (in the Windows API sense); real Windows returns NULLREGION
- #38379 Barnham Junction fails to start "Cannot create file C\users\username\Temp\BBC*.tmp\Sim Resources\Barnham Junction\Nameboard.bmp"
- #48792 HeidiSQL: some icons completely grayed out
- #50226 Native Access 1.13.5 Setup PC.exe Installer installs infinitely
- #50851 The procedure entry point RasClearConnectionStatistics could not be located in the dynamic link library RASAPI32.dll
- #56107 Comdlg32/Color - Cross not painted
- #57684 Games do not receive keyboard input in virtual desktop mode
- #58072 LVSCW_AUTOSIZE does not include the size of the state imagelist
- #58082 Race condition in GlobalMemoryStatusEx() implementation
### Changes since 10.6:
```
Adam Markowski (1):
po: Update Polish translation.
Akihiro Sagawa (3):
cmd: Use the OEM code page if GetConsoleOutputCP fails.
cmd/tests: Add updated code page test in batch file.
cmd: Use the console output code page to read batch files.
Alex Henrie (2):
gdi32: Limit source string length in logfont_AtoW (ASan).
gdi32: Ensure null termination in logfont_AtoW.
Alexander Morozov (3):
ntoskrnl.exe/tests: Test some Io functions with FDO and PDO.
ntoskrnl.exe/tests: Test that calling some Io functions does not result in receiving IRP_MN_QUERY_ID.
ntoskrnl.exe: Fix getting DevicePropertyEnumeratorName.
Alexandre Julliard (25):
ntdll: Round the virtual heap size to a page boundary.
kernel32/tests: Don't use _ReadWriteBarrier on ARM platforms.
configure: Default to MSVC mode with LLVM cross-compilers.
configure: Move cross-compiler checks before header checks.
configure: Make the missing PE compiler notice a warning.
configure: Use a standard pkg-config check for Alsa.
include: Use pragma push/pop.
tools: Use pragma push/pop.
dlls: Use pragma push/pop.
programs: Use pragma push/pop.
configure: Re-enable pragma pack warnings.
urlmon/tests: Run the ftp tests against test.winehq.org.
wininet/tests: Run the ftp tests against test.winehq.org.
include: Avoid long types on the Unix side.
ntdll: Remove redundant casts.
win32u: Remove redundant casts.
winex11: Remove redundant casts.
winemac: Remove redundant casts.
wineandroid: Remove redundant casts.
winewayland: Remove redundant casts.
tools: Fix tracing of empty strarray.
tools: Use booleans where appropriate.
tools: Generate syscall macros directly with the right offset.
tools: Add a platform-independent name for the ALL_SYSCALLS macros.
ntdll: Add a test for invalid syscall numbers.
Alexandros Frantzis (3):
winewayland: Support building with older EGL headers.
winewayland: Always check the role to determine whether a surface is a toplevel.
winewayland: Introduce helper to check whether a surface is toplevel.
Attila Fidan (1):
winewayland: Require wl_pointer for pointer constraints.
Aurimas Fišeras (2):
po: Update Lithuanian translation.
po: Update Lithuanian translation.
Bernhard Übelacker (4):
ntoskrnl.exe/tests: Remove unused function pointers.
spoolss: Avoid buffer-overflow when setting numentries (ASan).
d3d11/tests: Add broken to test_nv12.
gdi32/tests: Remove one test for NtGdiMakeFontDir.
Billy Laws (2):
ntdll: Allow mem{cpy,move} optimisation now -fno-builtins is used.
ntdll: Check arm64ec TEB frames are valid before popping them.
Brendan McGrath (3):
mf: Update state and start clock for both paused and stopped.
mf: Reset audio client on flush.
winegstreamer: Handle the Stream Group Done event.
Brendan Shanks (2):
win32u: Enter font_lock in NtGdiMakeFontDir.
win32u: Raise realized font handle limit to 5000.
Charlotte Pabst (1):
mfplat/tests: Don't assume video processor MFT can provide samples.
Dmitry Timoshkov (3):
user32/tests: Add more ScrollWindowEx() tests.
win32u: Fix return value of ScrollWindowEx() for invisible windows.
windowscodecs: Also initialize FlipRotator.bpp field.
Elizabeth Figura (4):
wined3d/glsl: Move clip distance enabling to shader_glsl_apply_draw_state().
wined3d/glsl: Move GL_FRAMEBUFFER_SRGB application to shader_glsl_apply_draw_state().
wined3d: Move SRGB write enable to wined3d_extra_ps_args.
wined3d: Move the clip plane mask to wined3d_extra_vs_args.
Eric Pouech (9):
dbghelp: Move typedef handling to the new PDB backend.
dbghelp: Add user field to function and inline sites.
dbghelp: Move reading inlinee line number information to PDB backend.
dbghelp: Directly store compiland's name in symt_compiland.
dbghelp: Use symref_t to describe a symbol's container.
cmd: Factor out code_page when searching for a label.
conhost: Add support for ESC in win32 edit mode.
conhost: Handle ctrl-break unconditionally.
conhost: Handle ctrl-c from unix console in ReadConsoleW + control.
Esme Povirk (7):
oleaut32: Use apartment-less WIC.
oleaut32: Copy palette from WIC source for indexed formats.
gdiplus: Limit clip region calculation to device rectangle.
gdiplus: Don't trace old values in GdipSetMatrixElements.
appwiz.cpl: Report addon download failures.
comctl32: Implement EVENT_OBJECT_STATECHANGE for progress control.
comctl32: Implement EVENT_OBJECT_VALUECHANGE for progress bars.
Francisco Casas (1):
d2d1: Compile shaders on device creation instead of device context creation.
Gabriel Ivăncescu (9):
mshtml: Rename struct constructor to stub_constructor.
mshtml: Consolidate the functional constructors into a common struct implementation.
mshtml: Define the constructor's prototype on mshtml side.
mshtml: Define "create" from XMLHttpRequest constructor as a jscript prop in IE9+ modes.
mshtml: Return proper string from functional constructors' toString in IE9+ modes.
mshtml: Store the object_id of the last object in the prototype chain that contains the needed prop.
mshtml: Validate builtin host functions in IE9+ using prototype_id rather than tid where possible.
mshtml: Use designated initializers for the Location dispex data.
mshtml: Remove unused struct mutation_observer_ctor.
Hans Leidekker (3):
odbc32: Fix replicating unixODBC data sources.
include: Fix typos in exclusiveto attributes.
msv1_0: Drop the ntlm_auth check.
Jinoh Kang (4):
Revert "kernel32/tests: Don't use _ReadWriteBarrier on ARM platforms."
kernel32/tests: Don't use _ReadWriteBarrier() on clang.
kernel32/tests: Run store_buffer_litmus_test() in a single-iteration loop.
kernel32/tests: Shorten time for negative half of litmus test for FlushProcessWriteBuffers().
Keno Fischer (1):
ntdll: Make server requests robust to spurious short writes.
Louis Lenders (1):
combase: Add stub for RoOriginateErrorW.
Marc-Aurel Zent (4):
server: Store process base priority separately.
server: Use process base priority in set_thread_base_priority.
ntdll: Implement ProcessBasePriority class in NtSetInformationProcess.
ntdll/tests: Add tests for setting process base priority.
Michael Stefaniuc (2):
maintainers: Remove myself as the Stable maintainer.
dmsynth: Don't report an underrun when current equals write position.
Mohamad Al-Jaf (4):
windows.media.mediacontrol: Fix a memory leak.
windows.devices.enumeration: Guard against WindowsDuplicateString() failure.
windows.system.profile.systemid/tests: Add ISystemIdentificationInfo::get_Id() tests.
windows.system.profile.systemid: Implement ISystemIdentificationInfo::get_Id().
Nikolay Sivov (23):
include: Add newer winhttp option constants.
comctl32/tests: Add a column width test for LVSCW_AUTOSIZE with a state imagelist.
comctl32/listview: Use state icon width when autosizing columns.
winedump: Fix a crash in 'dump' command.
include: Change the schannel.h guard name.
include: Add WINHTTP_SECURITY_INFO type.
windowscodecs/tests: Remove A->W test data conversion.
windowscodecs/tests: Add some tests for encoder info.
windowscodecs: Fix JPEG encoder information strings.
windowscodecs: Fix TIFF encoder information strings.
shell32: Simplify error handling when FolderItemVerbs object is created.
shell32: Fix use-after-free at FolderItemVerbs creation (ASan).
windows.ui/tests: Remove tests for exact color values.
uiautomationcore: Fix BSTR buffer overrun (ASan).
comdlg32/colordlg: Fix color picker cursor painting.
windowscodecs/png: Fix byte-swapping mode usage in the encoder.
windowscodecs/tests: Add a test for big-endian TIFF image data handling.
windowscodecs/tiff: Remove unnecessary image data byte-swaping.
windowscodecs/converter: Add 24bppBGR -> 128bppRGBAFloat conversion path.
windowscodecs/converter: Add 32bppBGRA - > 128bppRGBAFloat conversion path.
windowscodecs/converter: Add 128bppRGBAFloat -> 32bppBGRA conversion path.
windowscodecs/converter: Add 96bppRGBFloat -> 128bppRGBFloat conversion path.
windowscodecs/converter: Add 96bppRGBFloat -> 32bppBGRA conversion path.
Pali Rohár (2):
win87em: Fix __FPMATH symbol name.
krnl386: Set carry flag for unimplemented DPMI 0800h call (Physical Address Mapping).
Paul Gofman (6):
opengl32: Don't distinguish WGL_SWAP_EXCHANGE_ARB and WGL_SWAP_UNDEFINED_ARB when filtering in wglChoosePixelFormatARB().
kernel32/tests: Add more tests for write watches.
ntdll: Use UFFD for write watches support if available.
wbemprox: Implement Win32_CacheMemory table.
netapi32: Fix service names in NetStatisticsGet().
ntdll: Make sure NT flag is not set before iretq in wine_syscall_dispatcher_return on x86-64.
Piotr Caban (18):
msvcr110/tests: Link to msvcr110.
msvcr70/tests: Link to msvcr70.
msvcr71/tests: Link to msvcr71.
include: Add _FCbuild() declaration.
include: Add vsscanf declaration.
include: Add function declarations used in msvcr120 tests.
msvcr120/tests: Link to msvcr120.
msvcrt: Fix memory leaks in create_locinfo.
makefiles: Use -fno-builtin for CRT tests.
msvcr80/tests: Link to msvcr80.
include: Add functions used by msvcr90 tests.
msvcr90/tests: Link to msvcr90.
msvcrt: Avoid dynamic allocation when storing locale name.
msvcrt: Use LC_MAX constant in create_locinfo.
secur32/tests: Make NTLM server challenge blob human-readable.
secur32/tests: Use one copy of server challenge reply in NTLM tests.
secur32/tests: Fix NTLM tests on Windows 11 by accepting NTLMv2 in test server response.
secur32/tests: Don't accept NTLMv1 type 3 message in NTLM tests.
Rastislav Stanik (1):
kernelbase: Fix race condition in GlobalMemoryStatusEx().
Rémi Bernon (12):
d3d9/tests: Skip some d3d12 tests instead of crashing.
win32u: Use the driver_funcs interface for osmesa pixel formats.
win32u: Add an opengl_driver_funcs entry to implement wglGetProcAddress.
opengl32: Generate error messages in null functions.
opengl32: Pass null GL funcs to __wine_get_wgl_driver.
win32u: Add procedure loading to generic OpenGL code.
win32u: Add a generic wglSwapBuffers implementation.
wineandroid: Use the generic wglSwapBuffers implementation.
winemac: Use the generic wglSwapBuffers implementation.
winewayland: Use the generic wglSwapBuffers implementation.
winex11: Use the generic wglSwapBuffers implementation.
win32u: Add nulldrv swap_buffers implementation.
Stefan Dösinger (3):
odbc32: Don't call wcslen in debugstr_sqlwstr.
odbc32: Retlen may be NULL in SQLGetData.
msvcrt: Add truncf to the import library.
Tim Clem (1):
comctl32: Track initial taskdialog layout on a per-dialog basis.
Yuxuan Shui (1):
winegstreamer: Make sure WMSyncReader never reads in the background.
```