The vkd3d team is proud to announce that release 1.15 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:
- Much more complete support for tessellation shaders in the HLSL compiler.
- Improved function overload resolution in the HLSL compiler.
- Miscellaneous bug fixes.
The source is available from the following location:
<https://dl.winehq.org/vkd3d/source/vkd3d-1.15.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.15
### 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’.
### Changes since vkd3d 1.14:
```
Anna (navi) Figueiredo Gomes (6):
vkd3d-shader/hlsl: Implement cast from bool to int for SM1.
tests/hlsl: Add GatherCmp() tests.
vkd3d-shader/hlsl: Implement the GatherCmp() methods.
tests/shader_runner: Add a "mesa<23.3" tag.
tests/hlsl: Add mixed argument size tests.
vkd3d-shader/hlsl: Consider conversions across all parameters in function_compare().
Conor McCarthy (29):
vkd3d: Store only a single vkd3d descriptor type in each Vulkan descriptor set.
vkd3d: Introduce struct vkd3d_vk_descriptor_pool_array.
vkd3d: Introduce vkd3d_vk_descriptor_pool_array_push_array().
vkd3d: Introduce vkd3d_vk_descriptor_pool_array_push().
vkd3d: Introduce vkd3d_vk_descriptor_pool_array_pop().
vkd3d: Introduce vkd3d_vk_descriptor_pool_array_destroy_pools().
vkd3d: Create separate descriptor pools for each vkd3d descriptor type.
vkd3d: Create descriptor pools of geometrically increasing size.
tests/hlsl: Add float64 wave op tests.
tests/hlsl: Add uint64 wave op tests.
tests/hlsl: Add int64 wave op tests.
vkd3d-shader/dxil: Implement DX intrinsic EvalSampleIndex.
vkd3d-shader/dxil: Implement DX intrinsic EvalCentroid.
vkd3d: Return the correct depth/stencil plane format from GetCopyableFootprints().
vkd3d: Return correctly aligned depth/stencil sizes from GetCopyableFootprints().
vkd3d: Do not require the ALLOW_DEPTH_STENCIL flag for depth/stencil formats in GetCopyableFootprints().
tests/hlsl: Add a test for SV_RenderTargetArrayIndex.
vkd3d-shader/dxil: Handle SV_RenderTargetArrayIndex.
tests/hlsl: Pass a profile string instead of a shader type to dxc_compiler_compile_shader().
tests/hlsl: Add some arithmetic uint16 shader tests.
tests/hlsl: Add more arithmetic uint16 tests.
tests/hlsl: Add arithmetic int16 tests.
tests/hlsl: Add arithmetic float16 tests.
tests/hlsl: Add a numeric types 16-bit test.
tests/hlsl: Add constant buffer 16-bit tests.
tests/hlsl: Add GetDimensions() 16-bit tests.
tests/hlsl: Add typed buffer UAV 16-bit tests.
tests/hlsl: Add a raw buffer UAV 16-bit test.
tests/hlsl: Add structured buffer UAV 16-bit tests.
Elizabeth Figura (65):
vkd3d-shader/spirv: Handle SSA registers in spirv_compiler_get_register_info().
vkd3d-shader/ir: Allow controlling fog through parameters.
vkd3d-shader/ir: Add a couple of traces for signature remapping.
vkd3d-shader/ir: Allow controlling the fog source through a parameter.
vkd3d-shader/ir: Implement exponential fog.
vkd3d-shader/hlsl: Do not abort when modifying a const expression.
vkd3d-shader/hlsl: Do not abort parsing when invalid modifiers are used.
vkd3d-shader/hlsl: Move the numeric type check to add_constructor().
vkd3d-shader/hlsl: Return an error expression when a function is used as a variable.
vkd3d-shader/hlsl: Translate invalid implicit-size arrays to an error type.
vkd3d-shader/d3dbc: Omit unnecessary instruction maximum versions.
vkd3d-shader/d3dbc: Mark some more instructions as version-limited.
vkd3d-shader: Fix the disassembly names of IFC and BREAKC.
vkd3d-shader: Correct the disassembly for POSITIONT.
tests: Add a reflection test for shader model 4.0.
vkd3d-shader/hlsl: Remove unused expr ops.
vkd3d-shader/ir: Always initialise "*control_point_count" in vsir_signature_from_register_type().
vkd3d-shader/hlsl: Document matrix swizzles.
vkd3d-shader/hlsl: Use a structure for matrix swizzles.
vkd3d-shader/hlsl: Use swizzle helpers in more places.
vkd3d-shader/hlsl: Store swizzles in vsir format.
tests/shader_runner: Use is_todo instead of separate shader states.
tests/shader_runner: Use a separate variable for shader type.
tests/shader_runner: Don't bother distinguishing directive substrings.
vkd3d-shader/d3dbc: Use struct vkd3d_shader_dst_param instead of struct sm1_dst_register.
vkd3d-shader/d3dbc: Use struct vkd3d_shader_src_param instead of struct sm1_src_register.
vkd3d-shader/d3dbc: Use struct vkd3d_shader_instruction instead of struct sm1_instruction.
tests/shader_runner: Record HLSL todo/fail state for each shader model.
tests/shader_runner: Test HLSL compilation in a separate pass.
tests/shader_runner: Test versions where the compilation result changes.
tests: Use fail(sm<5) instead of [require] for uav-atomics.
vkd3d-shader/spirv: Correctly implement DTOF.
vkd3d-shader/spirv: Correctly implement DTOI.
vkd3d-shader/spirv: Correctly implement DTOU.
tests/d3d12: Make the dtof test a bit more interesting.
vkd3d-shader: Explicitly translate between d3dbc and vsir register types.
vkd3d-shader/d3dbc: Normalize to a single VKD3DSPR_CONST register set when reading.
vkd3d-shader/d3d-asm: Define register names in a table.
vkd3d-shader/ir: Separate VKD3DSPR_ADDR and VKD3DSPR_TEXTURE.
vkd3d-shader/ir: Separate VKD3DSPR_OUTPUT and VKD3DSPR_TEXCRDOUT.
vkd3d-shader/d3dbc: Introduce d3dbc_parse_register().
vkd3d-shader/hlsl: Avoid some uses of the default case when switching over hlsl_base_type.
vkd3d-shader/d3dbc: Do not access the type dimensions for non-numeric types.
vkd3d-shader/hlsl: Move the "dimx" and "dimy" fields to the type-specific union.
tests: Adjust angle-unit.shader_test to pass with 1.x.
tests: Adjust arithmetic-float.shader_test to pass with 1.x.
tests: Adjust arithmetic-float-uniform.shader_test to pass with 1.x.
tests: Adjust arithmetic-int.shader_test to pass with 1.x.
tests: Adjust array-parameters.shader_test to pass with 1.x.
tests: Adjust array-size-expr.shader_test to pass with 1.x.
tests: Adjust abs.shader_test to pass with 1.x.
tests: Add another unrolling test.
vkd3d-shader/hlsl: Implement broadcasts in constant folding.
vkd3d-utils: Fix matrix packing precedence in D3DCompile2VKD3D().
vkd3d-shader/hlsl: Use the casted value in exp().
tests: Add some stress tests for scope and variable definition.
vkd3d-shader/hlsl: Do not define a separate scope for function parameters.
vkd3d-shader/hlsl: Factor out the error message into hlsl_add_var().
vkd3d-shader/hlsl: Do not abort on variable redefinition.
vkd3d-shader/hlsl: Handle error instructions in add_shader_compilation().
vkd3d-shader/hlsl: Add an add_switch() helper.
vkd3d-shader/hlsl: Handle error instructions in add_switch().
vkd3d-shader/hlsl: Pass the block to add_zero_mipmap_level().
vkd3d-shader/hlsl: Use a block in prepend_input_var_copy().
vkd3d-shader/hlsl: Use a block in hlsl_normalize_binary_exprs().
Feifan He (46):
vkd3d-shader/msl: Implement VKD3DSIH_ADD.
vkd3d-shader/msl: Implement support for VKD3DSPR_IMMCONST registers.
vkd3d-shader/msl: Implement support for VKD3DSPSM_ABS modifiers.
vkd3d-shader/msl: Implement VKD3DSIH_AND.
vkd3d-shader/msl: Implement VKD3DSIH_NEU.
vkd3d-shader/msl: Implement support for VSIR_DIMENSION_VEC4 immediate constants.
vkd3d-shader/msl: Implement VKD3DSIH_MUL.
vkd3d-shader/msl: Implement VKD3DSIH_INE.
vkd3d-shader/msl: Implement VKD3DSIH_OR.
vkd3d-shader/msl: Implement VKD3DSIH_DIV.
vkd3d-shader/msl: Implement support for VKD3DSPSM_NEG modifiers.
vkd3d-shader/msl: Implement VKD3DSIH_GEO.
vkd3d-shader/msl: Implement VKD3DSIH_FRC.
vkd3d-shader/msl: Implement VKD3DSIH_MOVC.
vkd3d-shader/msl: Implement VKD3DSIH_ITOF.
vkd3d-shader/msl: Implement VKD3DSIH_FTOI.
vkd3d-shader/msl: Implement VKD3DSIH_UTOF.
vkd3d-shader/msl: Implement VKD3DSIH_FTOU.
vkd3d-shader/msl: Implement VKD3DSIH_ROUND_PI.
vkd3d-shader/msl: Implement VKD3DSIH_ROUND_Z.
tests/shader_runner_metal: Implement depth texture and state.
tests/shader_runner_metal: Implement clears.
vkd3d-shader/msl: Implement support for the VKD3DSPR_DEPTHOUT register.
vkd3d-shader/msl: Implement VKD3DSIH_DP3.
vkd3d-shader/msl: Implement VKD3DSIH_DP4.
vkd3d-shader/msl: Implement VKD3DSIH_DP2.
vkd3d-shader/msl: Implement VKD3DSIH_SQRT.
vkd3d-shader/msl: Handle the VKD3DSIM_LINEAR interpolation modifier on inputs.
vkd3d-shader/msl: Implement VKD3DSIH_IEQ.
vkd3d-shader/msl: Implement VKD3DSIH_EXP.
vkd3d-shader/msl: Implement VKD3DSIH_LTO.
vkd3d-shader/msl: Implement VKD3DSIH_ROUND_NI.
vkd3d-shader/msl: Implement VKD3DSIH_IF and VKD3DSIH_ENDIF.
vkd3d-shader/msl: Implement VKD3DSIH_ROUND_NE.
vkd3d-shader/msl: Handle SV_IS_FRONT_FACE inputs.
vkd3d-shader/msl: Implement VKD3DSIH_LOG.
vkd3d-shader/msl: Implement VKD3DSIH_MAX.
vkd3d-shader/msl: Implement VKD3DSIH_MIN.
vkd3d-shader/msl: Implement VKD3DSIH_RSQ.
vkd3d-shader/msl: Implement VKD3DSIH_NOT.
vkd3d-shader/msl: Implement VKD3DSIH_ELSE.
vkd3d-shader/msl: Implement support for VKD3DSPDM_SATURATE modifiers.
vkd3d-shader/msl: Implement VKD3DSIH_MAD.
vkd3d-shader/msl: Implement VKD3DSIH_ISHL.
vkd3d-shader/msl: Implement VKD3DSIH_ISHR.
vkd3d-shader/msl: Implement VKD3DSIH_USHR.
Francisco Casas (55):
vkd3d-shader/tpf: Remove HLSL_IR_SWIZZLE handling.
vkd3d-shader/hlsl: Store SM4 stores in the vsir program.
vkd3d-shader/hlsl: Store SM4 loads in the vsir program.
vkd3d-shader/hlsl: Store SM4 resource stores in the vsir program.
tests: Test signature reflection for PRIMID, RTINDEX and VPINDEX.
vkd3d-shader/hlsl: Add special allocation rules for PRIMID, RTINDEX, and VPINDEX.
tests: Test allocation rules for FFACE and SAMPLE.
vkd3d-shader/hlsl: Add special allocation rules for FFACE and SAMPLE.
vkd3d-shader/hlsl: Store SM4 HLSL_RESOURCE_LOADs in the vsir program.
vkd3d-shader/hlsl: Store SM4 HLSL_RESOURCE_SAMPLEs in the vsir program.
vkd3d-shader/hlsl: Store SM4 HLSL_RESOURCE_GATHERs in the vsir program.
vkd3d-shader/hlsl: Store SM4 HLSL_RESOURCE_SAMPLE_INFOs in the vsir program.
vkd3d-shader/hlsl: Store SM4 HLSL_RESOURCE_RESINFOs in the vsir program.
vkd3d-shader/hlsl: Store SM4 jumps in the vsir program.
vkd3d-shader/tpf: Apply extra bits to all conditional ops.
vkd3d-shader/hlsl: Migrate SM4 control flow instructions to the vsir program.
vkd3d-shader/hlsl: Remove hlsl_ir_vsir_instruction_ref, again.
vkd3d-shader/dxbc: Parse the SFI0 ROV requirement.
vkd3d-shader/hlsl: Store ROV feature requirement in the vsir_program.
vkd3d-shader/hlsl: Store the global flags in the vsir program.
vkd3d-shader/hlsl: Store SM4 sampler declarations in the vsir program.
vkd3d-shader/hlsl: Store SM4 texture declarations in the vsir program.
tests: Add additional sampler allocation tests for SM1.
tests: Test sampler array allocation.
vkd3d-shader/hlsl: Lower separated samplers for SM1.
vkd3d-shader/hlsl: Support combined samplers from texture arrays.
vkd3d-shader/hlsl: Allocate samplers by decreasing bind count in SM1.
vkd3d-shader/hlsl: Allow lowering separate sampler arrays on deref offset 0.
vkd3d-shader/hlsl: Store SM4 constant buffer declarations in vsir program.
vkd3d-shader/hlsl: Generate RDEF outside tpf_compile().
vkd3d-shader/hlsl: Generate CTAB outside sm1_generate_vsir().
vkd3d-shader/hlsl: Store hull and domain shader properties in vsir_program.
vkd3d-shader/tpf: Remove hlsl_ctx from tpf_compiler.
vkd3d-shader/hlsl: Lower sample lods for SM1.
vkd3d-shader/ir: Properly lower texldb.
tests/hlsl: Test tex2Dproj().
vkd3d-shader/ir: Properly lower texldp.
vkd3d-shader: Avoid passing NULL to memcpy(). (ubsan)
vkd3d-shader: Avoid passing NULL to qsort(). (ubsan)
vkd3d-shader: Avoid passing NULL to memset(). (ubsan)
vkd3d-shader: Avoid left shifting signed integers. (ubsan)
tests: Test SampleGrad() on ps_3_0.
vkd3d-shader/hlsl: Lower separate SampleGrad() for SM1.
vkd3d-shader/hlsl: Don't lower separate samples with texel offsets.
tests: Test casting negative floats to int.
vkd3d-shader/hlsl: Properly lower casts to int for negative numbers.
vkd3d-shader/hlsl: Specialize lowering SM1 casts to int for vertex shaders.
tests/hlsl: Add lhs cast tests.
tests/hlsl: Test partial assignments due to lhs casts.
tests/hlsl: Add more function cast tests.
vkd3d-shader/hlsl: Delay lowering complex casts until after parse time.
vkd3d-shader/hlsl: Support non-size-changing lhs casts.
vkd3d-shader/hlsl: Don't count cast to param type on IN as part of OUT var's lhs.
vkd3d-shader/hlsl: Don't forbid first base type cast on var assignments.
tests/shader_runner: Pass the correct buffer size to swprintf() in dxc_compiler_compile_shader().
Giovanni Mascellani (87):
vkd3d-shader/ir: Validate the semantic index for tessellation system values.
vkd3d-shader/ir: Check that semantic indices for tessellation system values are not duplicated.
vkd3d-shader/ir: Keep track of the tessellator domain in struct vsir_program.
vkd3d-shader/ir: Validate tessellation system values for the given tessellator domain.
vkd3d-shader/ir: Check that tessellation system values only appear in the patch constant signature.
vkd3d-shader/ir: Validate index count for PRIMID registers.
vkd3d-shader/ir: Validate index count for OUTPOINTID registers.
vkd3d-shader/ir: Validate index count for FORKINSTID registers.
vkd3d-shader/ir: Validate index count for JOININSTID registers.
vkd3d-shader/ir: Validate index count for TESSCOORD registers.
vkd3d-shader/ir: Validate index count for THREADID registers.
vkd3d-shader/ir: Validate index count for THREADGROUPID registers.
vkd3d-shader/ir: Validate index count for LOCALTHREADID registers.
vkd3d-shader/ir: Validate index count for LOCALTHREADINDEX registers.
vkd3d-shader/ir: Check that all tessellation system values appear in the patch constant signature.
vkd3d-shader/ir: Check that tessellation system value registers are consecutive.
vkd3d-shader/ir: Validate index count for COVERAGE registers.
vkd3d-shader/ir: Validate index count for SAMPLEMASK registers.
vkd3d-shader/ir: Validate index count for GSINSTID registers.
vkd3d-shader/ir: Validate index count for WAVELANECOUNT registers.
vkd3d-shader/ir: Validate index count for WAVELANEINDEX registers.
vkd3d-shader/ir: Validate index count for OUTSTENCILREF registers.
vkd3d-shader/dxil: Emit register SAMPLEMASK for output sysval SV_Coverage.
vkd3d-shader/ir: Validate the register type for DCL_INPUT instructions.
vkd3d-shader/ir: Validate the register type for DCL_INPUT_SIV instructions.
vkd3d-shader/ir: Validate the register type for DCL_INPUT_SGV instructions.
vkd3d-shader/ir: Validate the register type for DCL_INPUT_PS instructions.
vkd3d-shader/ir: Validate the register type for DCL_INPUT_PS_SIV instructions.
vkd3d-shader/ir: Validate the register type for DCL_INPUT_PS_SGV instructions.
vkd3d-shader/ir: Validate the register type for DCL_OUTPUT instructions.
vkd3d-shader/ir: Validate the register type for DCL_OUTPUT_SIV instructions.
vkd3d-shader/ir: Synthesize the default control point phase in the HS control point I/O normaliser.
vkd3d-shader/ir: Evaluate OUTCONTROLPOINT usage in the patch constant phase directly.
tests: Use plain skip() when skipping a test in the shader runner.
tests: Print the file name instead of the test name in test logs.
vkd3d-shader/spirv: Merge emitting input and output registers.
vkd3d-shader/ir: Encode I/O declarations in vsir_program.
vkd3d-shader/ir: Remove I/O declarations before I/O normalisation.
vkd3d-shader/ir: Remove I/O declarations before normalising hull shader control point I/O.
vkd3d-shader/ir: Remove I/O declarations before flattening hull shader phases.
vkd3d-shader/ir: Merge removing I/O declarations in the general instruction lowering pass.
vkd3d-shader/ir: Validate the control point index when it is statically known.
vkd3d: Do not use more than a few million descriptors in Vulkan heap set layouts.
vkd3d-shader/ir: Validate the array index when it is statically known.
vkd3d-shader/ir: Validate the register type for registers used as relative addresses.
vkd3d-shader/ir: Introduce a helper function to determine the signature for a register type.
vkd3d-shader/ir: Validate the DCL_INDEX_RANGE instruction.
vkd3d-shader/ir: Check that DCL_INDEX_RANGE ranges do not overlap with unrelated signature elements.
vkd3d-shader/spirv: Introduce a SPIR-V parser.
vkd3d-shader/spirv: Parse the SPIR-V magic number.
vkd3d-shader/spirv: Parse the SPIR-V version number.
vkd3d-shader/spirv: Parse the SPIR-V generator magic number.
vkd3d-shader/spirv: Parse the SPIR-V id bound.
vkd3d-shader/spirv: Parse the SPIR-V instruction schema.
vkd3d-shader/ir: Check that the DCL_INDEX_RANGE effective mask stabilizes after one iteration.
vkd3d-shader/ir: Check that signature element masks are left-aligned with in a DCL_INDEX_RANGE.
vkd3d-shader/ir: Validate the register index and count for signature elements.
vkd3d-shader/ir: Validate the signature element stream index.
vkd3d-shader/ir: Validate the signature element register index, for some sysvals.
vkd3d-shader/ir: Check that signature elements do not conflict with each other.
vkd3d-shader/ir: Give more meaningful names to I/O normalisation levels.
vkd3d-shader/d3dbc: Normalise I/O register write masks when not disassembling.
vkd3d-shader/ir: Represent information about I/O registers with a table.
vkd3d-shader/ir: Validate INPUT destination parameters using a uniform helper.
vkd3d-shader/ir: Validate PATCHCONST destination parameters using a uniform helper.
vkd3d-shader/ir: Validate OUTPUT destination parameters.
vkd3d-shader/ir: Validate INCONTROLPOINT destination parameters.
vkd3d-shader/ir: Validate OUTCONTROLPOINT destination parameters.
vkd3d-shader/ir: Remove a redundant assignment.
vkd3d-shader/ir: Simplify shader_register_normalise_arrayed_addressing().
tests/hlsl: Add tests for the EvaluateAttribute*() intrinsics.
tests/hlsl: Add some clip/cull distance tests.
vkd3d-shader/ir: Disallow array signature elements for normalisation levels < SM6.
vkd3d-shader/ir: Validate OUTPUT source parameters using a uniform helper.
vkd3d-shader/ir: Validate PATCHCONST source parameters using a uniform helper.
vkd3d-shader/ir: Validate INPUT source parameters.
vkd3d-shader/ir: Validate INCONTROLPOINT source parameters.
vkd3d-shader/ir: Validate OUTCONTROLPOINT source parameters.
vkd3d: Log the requested feature levels for D3D12_FEATURE_FEATURE_LEVELS.
vkd3d: Describe DXGI_UNKNOWN as having one plane.
vkd3d: Only call d3d12_fence_garbage_collect_vk_semaphores_locked() when using binary semaphores.
vkd3d: Release queued fences when stopping the fence worker.
vkd3d: Support signalling a fence once all outstanding work is submitted to Vulkan.
vkd3d: Explicitly call the appropriate waiting function in the fence worker.
vkd3d-shader/spirv: Interpret the write mask as a destination swizzle for double comparison operations.
vkd3d-common: Write a thread id in the log on macOS too.
ci: Explicitly install SPIRV-Tools in the macOS CI environment.
Henri Verbeet (31):
tests: Get rid of some redundant "glsl" todo's.
vkd3d-shader/hlsl: Use hlsl_error() instead of hlsl_fixme() for ambiguous function calls.
vkd3d-shader/hlsl: Introduce hlsl_dump_type().
vkd3d-shader/hlsl: Introduce hlsl_dump_ir_function_decl().
vkd3d-shader/hlsl: Output the candidates for ambiguous function calls.
vkd3d: Introduce d3d12_descriptor_set_layout_init().
vkd3d-shader/spirv: Parse SPIR-V instructions.
vkd3d: Drop smaller pools in d3d12_command_allocator_reset_descriptor_pool_array().
tests: Add yet more overload resolution tests.
vkd3d-shader/hlsl: Prefer overload candidates without component count narrowing.
vkd3d-shader/hlsl: Prefer overload candidates with matching component type classes.
vkd3d-shader/hlsl: Prefer overload candidates with matching component types.
vkd3d-shader/hlsl: Prefer overload candidates without component type narrowing.
vkd3d-shader/hlsl: Prefer overload candidates without component count widening.
vkd3d-shader/d3dbc: Separate writing the comment bytecode from write_sm1_uniforms().
vkd3d-shader/hlsl: Move CTAB generation to hlsl_codegen.c.
tests/shader_runner: Ignore the "backcompat" option for shader model 5.1+.
vkd3d-shader/hlsl: Make sm4_get_interpolation_mode() static.
vkd3d-shader/hlsl: Move sm4_get_extern_resources() to hlsl_codegen.c.
vkd3d-shader/hlsl: Move sm4_free_extern_resources() to hlsl_codegen.c.
tests/shader_runner: Do not use skip() for shader model requirements.
vkd3d-shader/hlsl: Move RDEF generation to hlsl_codegen.c.
demos: Use the assembler to embed HLSL sources.
vkd3d-shader/msl: Get rid of a stray vkd3d_string_buffer_printf() in the VEC4 UINT immediate constant handling.
vkd3d: Avoid freeing the input signature twice on error paths in d3d12_pipeline_state_init_graphics().
vkd3d-compiler: Store the target type as a struct target_type_info pointer.
vkd3d-compiler: Store the source type as a struct source_type_info pointer.
vkd3d-compiler: Introduce "dxbc-fx" as a source type.
include: Add vkd3d_shader_scan_hull_shader_tessellation_info to the list of chained compilation structures.
include: Add missing VKD3D_FORCE_32_BIT_ENUM enum elements.
vkd3d-shader/ir: Remove vForkInstanceId and vJoinInstanceId declarations in vsir_program_flatten_hull_shader_phases().
Nikolay Sivov (5):
vkd3d-shader/hlsl: Add parser support for stream-output object types.
vkd3d-shader/fx: Implement parsing inline shader blobs.
vkd3d-shader/fx: Remove newlines from the parser error messages.
vkd3d-compiler: Support fx_4_0 sources embedded in DXBC containers.
vkd3d-shader/hlsl: Implement the isinf() intrinsic.
Shaun Ren (43):
vkd3d-shader/dxil: Allow zero domain input control point count.
vkd3d-shader: Implement scanning hull shader tessellation information.
tests/shader_runner_vulkan: Enable patch list topology support.
tests/shader_runner_gl: Implement tessellation support.
vkd3d-shader/hlsl: Implement normalization of binary expressions.
vkd3d-shader/hlsl: Collect together terms with constant coefficients.
tests/shader_runner_vulkan: Check if create_shader_stage() fails in create_compute_pipeline().
tests/shader_runner_gl: Add "opengl" tag.
tests/shader_runner_gl: Bind buffer UAVs for compute shaders.
tests/hlsl: Add a test for UAV InterlockedCompareExchange().
tests/hlsl: Add tests to check the types of the value arguments of atomic ops.
tests/hlsl: Add tests to check the void return type of atomic ops.
tests/hlsl: Add tests for valid destination types of atomic operations.
vkd3d-shader/hlsl: Implement the InterlockedAdd() intrinsic.
vkd3d-shader/hlsl: Implement the InterlockedAnd() intrinsic.
vkd3d-shader/hlsl: Implement the InterlockedCompareExchange() intrinsic.
vkd3d-shader/hlsl: Implement the InterlockedCompareStore() intrinsic.
vkd3d-shader/hlsl: Implement the InterlockedExchange() intrinsic.
vkd3d-shader/hlsl: Implement the InterlockedMax() intrinsic.
vkd3d-shader/hlsl: Implement the InterlockedMin() intrinsic.
vkd3d-shader/hlsl: Implement the InterlockedOr() intrinsic.
vkd3d-shader/hlsl: Implement the InterlockedXor() intrinsic.
vkd3d-shader/spirv: Emit the tessellator domain for domain shaders.
vkd3d-shader/hlsl: Forbid declaring parameters as both out and const.
tests: Test invalid out const parameters.
vkd3d-shader/d3d-asm: Print vocp registers with subscript.
vkd3d-shader/hlsl: Forbid declaring const variables with no initializer.
tests/hlsl: Test invalid const variables with no initializer.
vkd3d-shader/hlsl: Parse InputPatch and OutputPatch objects.
vkd3d-shader/hlsl: Validate and record InputPatch/OutputPatch types.
tests/hlsl: Test the syntax of InputPatch/OutputPatch variables.
tests/hlsl: Test passthrough hull shader control point function.
tests/hlsl: Test hull shader control point function output parameters.
tests/hlsl: Test OutputPatch usage in patch constant functions.
vkd3d-shader/hlsl: Add an "is_patch_constant_func" field to struct hlsl_ctx.
vkd3d-shader/hlsl: Implement input semantic variable copies for patch variables.
vkd3d-shader/tpf: Improve readability of compat mapping in sm4_sysval_semantic_from_semantic_name().
vkd3d-shader/hlsl: Generate vsir signature entries for patch variables.
vkd3d-shader/hlsl: Declare semantics for patch variables in vsir.
vkd3d-shader/hlsl: Allocate semantic registers for patch variables.
tests/shader_runner: Support the negation of tag matches.
vkd3d-shader/hlsl: Generate vsir registers from patch variable derefs.
tests: Test signature reflection for patch inputs in hull/domain shaders.
Victor Chiletto (10):
tests: Add more function overloading tests.
vkd3d-shader/hlsl: Explicitly track the copy propagation state stack.
vkd3d-shader/hlsl: Allow copy propagation to be stopped early.
vkd3d-shader/hlsl: Constant fold casts to boolean.
vkd3d-shader/hlsl: Run copy propagation incrementally during loop unrolling.
vkd3d-shader/hlsl: Do not clone the entire program for loop unrolling.
vkd3d-shader/hlsl: Remove loop_unrolling_find_unrollable_loop().
vkd3d-shader/hlsl: Partially defer continue resolution.
vkd3d-shader/hlsl: Unroll loops with conditional jumps.
vkd3d-shader/hlsl: Drop the _ir_ infix from enum hlsl_loop_unroll_type.
```
The Wine development release 10.1 is now available.
What's new in this release:
- A wide range of changes that were deferred during code freeze.
- Root certificates fixes for Battle.net.
- Print Provider improvements.
- More progress on the Bluetooth driver.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/10.x/wine-10.1.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.1/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 10.1 (total 35):
- #27245 Internet Settings security zones not i18n-ed
- #35981 Battlefield: Bad Company 2 (Russian locale) updater has missing glyphs
- #39576 Sound in StarCraft 2 breaks after
- #39733 OpenGL Extensions Viewer 4.x (.NET 4.0 app) fails to start with Wine-Mono
- #41342 Build with winegcc is not reproducible
- #46580 HoMM3 WOG: can't enter russian text speaking with sphynx
- #46702 GNUTLS_CURVE_TO_BITS not found
- #52221 GameMaker 8: Missing sound effects
- #53644 vbscript can not compile classes with lists of private / public / dim declarations
- #54752 RUN Moldex3D Viewer will Crash
- #55155 Telegram can not be run in latest version wine, but ok in wine6.0.4
- #56530 Final Fantasy XI Online: Memory leak when Wine is built with CFLAGS="-g -mno-avx".
- #56559 iologo launcher cannot download setup program
- #56658 When using Kosugi for vertical writing, some punctuation marks are not placed correctly.
- #56703 Crash when installing Rhinoceros 8.6
- #56876 Paint Tool SAIv2 VirtualAlloc invalid address on commit
- #57191 Flickering image on Video-surveilance-Software
- #57338 wine-gecko/wine-mono don't cache their installers if using a username with unicode characters
- #57360 Wrong Combobox dropdown in 7zFM
- #57529 reMarkable application crash on new winehq-devel 10 RC1
- #57563 vbscript: mid() throws when passed VT_EMPTY instead of returning empty string
- #57626 SteuerErklarung 2025 halts: windows 8 is not compatible
- #57650 osu! stable: Insert key to minimize to tray does not hide game window (regression)
- #57664 New problems with SudoCue under Win 10.0 rc5
- #57675 err:virtual:virtual_setup_exception stack overflow 3072 bytes addr 0x7bd5b54c stack 0x81100400
- #57689 Menus misplaced on X11 when using dual monitor with right monitor as primary
- #57690 .NET Framework 4.8 installer hangs
- #57692 No context menu in Reason (DAW)
- #57698 Reason's (DAW) dialog windows stopped registering mouse events and open at screen's right edge
- #57704 Compile Error since 10.0rc5+
- #57710 Cannot open main menu via keyboard in Reason (DAW)
- #57711 The 32-bit wpcap program has a stack leakage issue
- #57766 Win3_BIOS most likely should be Win32_BIOS instead
- #57787 Final Fantasy XI Online crashes with unhandled page fault on launch
- #57794 WinHTTP implementation assumes HTTP response has a status text
### Changes since 10.0:
```
Akihiro Sagawa (2):
gdi32/tests: Add tests for script-independent vertical glyph lookup.
win32u: Use the first vertical alternates table regardless of script.
Alex Henrie (20):
concrt140: Annotate allocators with __WINE_(ALLOC_SIZE|DEALLOC|MALLOC).
msvcirt: Annotate allocators with __WINE_(ALLOC_SIZE|DEALLOC|MALLOC).
msvcp60: Annotate allocators with __WINE_(ALLOC_SIZE|DEALLOC|MALLOC).
msvcp90: Annotate allocators with __WINE_(ALLOC_SIZE|DEALLOC|MALLOC).
msvcrt: Annotate allocators with __WINE_(ALLOC_SIZE|DEALLOC|MALLOC).
ntdll: Return an error if count is zero in NtRemoveIoCompletionEx.
shell32/tests: Add tests for StrRetToStrN null termination.
shlwapi: Correct return value of StrRetToBuf on an invalid type.
shell32: Use StrRetToBuf instead of reimplementing it.
comdlg32: Use StrRetToBuf instead of reimplementing it.
hhctrl: Fix spelling of "local" in OnTopicChange.
tapi32: Use wide character string literals.
winhlp32: Use wide character string literals.
shlwapi: Use wide character string literals.
cryptui: Use wide character string literals.
hhctrl: Use wide character string literals.
urlmon: Make security zone names and descriptions translatable.
ieframe: Use wide character string literals.
hhctrl: Fix window class name in HH_CreateHelpWindow.
hhctrl: Make "Select Topic" window title translatable.
Alexandre Julliard (39):
shell32: Move some function prototypes to shlwapi.h.
winedump: Dump MUI resources.
wrc: Remove the unused res_count structure.
include: Mark global asm functions as hidden.
kernel32: Implement RegisterWaitForInputIdle().
wineps: Don't store the glyph name or encoding for individual glyphs.
wineps: Don't parse the glyph name or encoding when loading AFM files.
wineps: Remove some unused AFM values.
wineps: Use simple strings for glyph names.
win32u: Implement NtUserDestroyCaret().
win32u: Implement NtUserReleaseCapture().
win32u: Implement NtUserGetThreadState().
win32u: Implement NtUserCreateMenu() and NtUserCreatePopupMenu().
win32u: Implement NtUserEnumClipboardFormats().
win32u: Implement NtUserMessageBeep().
win32u: Implement NtUserPostQuitMessage().
win32u: Implement NtUserRealizePalette().
win32u: Implement NtUserReplyMessage().
win32u: Implement NtUserSetCaretBlinkTime().
win32u: Implement NtUserSetCaretPos().
win32u: Implement NtUserSetProcessDefaultLayout().
win32u: Implement NtUserGetClipCursor().
win32u: Implement NtUserArrangeIconicWindows().
win32u: Implement NtUserDrawMenuBar().
win32u: Implement NtUserGetWindowContextHelpId().
win32u: Implement NtUserSetProgmanWindow() and NtUserSetTaskmanWindow().
win32u: Implement NtUserEnableWindow().
win32u: Implement NtUserSetWindowContextHelpId().
win32u: Implement NtUserShowOwnedPopups().
win32u: Implement NtUserUnhookWindowsHook().
win32u: Implement NtUserValidateRgn().
winedbg: Remove unneeded wrap around checks.
winegcc: Always specify the output file name when there's no spec file.
kernel32/tests: Remove some workarounds for old Windows versions.
kernel32/tests: Add tests for language-specific manifest lookup.
ntdll: Implement language-specific manifest lookup.
server: Do not allow creating mailslots with zero access.
server: Do not allow creating named pipes with zero access.
server: Skip non-accessible threads in NtGetNextThread().
Alexandros Frantzis (1):
winewayland: Round the Wayland refresh rate to calculate the win32 display frequency.
Arkadiusz Hiler (1):
jscript: Fix JSON.stringify for arrays longer than 10.
Bernhard Übelacker (1):
kernel32/tests: Match the value in the debug message the test condition.
Billy Laws (1):
ntdll: Detect kernel support before using ARM64 ID regs.
Brendan McGrath (2):
mfplat/tests: Add audio tests for MFInitMediaTypeFromAMMediaType.
mfplat: Add support for audio with NULL format to MFInitMediaTypeFromAMMediaType.
Brendan Shanks (2):
winemac: [NSWindow setAlphaValue:] must be called from the main thread.
winemac: [NSWindow contentView] must be called from the main thread.
Conor McCarthy (2):
mfsrcsnk: Release object queue objects on destruction.
mfsrcsnk: Release the async request popped sample after sending it.
Damjan Jovanovic (1):
user32: Copy the clipboard format iterator's position when cloning it.
Daniel Lehman (4):
msvcp140/tests: Add more tests for _Mtx_t.
msvcp140: Fix field order in _Mtx_t.
include: Add signbit declarations for c++.
msvcp140: Add padding to _Cnd_t.
Dean M Greer (2):
documentation: Mac OS X became macOS from 10.12.
readme: Update mac info section.
Dmitry Timoshkov (31):
wldap32: Avoid crashes in interact_callback() if defaults is NULL.
wldap32: Add stub for ldap_get_option(LDAP_OPT_GETDSNAME_FLAGS).
wldap32: Add stub for ldap_set_option(LDAP_OPT_GETDSNAME_FLAGS).
wldap32: Add stub for ldap_set_option(LDAP_OPT_PROMPT_CREDENTIALS).
wldap32: Add stub for ldap_set_option(LDAP_OPT_REFERRAL_CALLBACK).
prntvpt: Also initialize dmDefaultSource field.
prntvpt: Forward BindPTProviderThunk to PTOpenProviderEx.
prntvpt: Forward UnbindPTProviderThunk to PTCloseProvider.
prntvpt: Implement ConvertDevModeToPrintTicketThunk2.
prntvpt: Implement GetPrintCapabilitiesThunk2.
prntvpt: Implement ConvertPrintTicketToDevModeThunk2.
prntvpt: Prefer builtin.
prntvpt: Add version resource.
kerberos: Update sizes to match modern implementations.
secur32: Update max token size for Negotiate.
prntvpt: Implement writing PageMediaSize capabilities.
prntvpt: Implement writing PageImageableSize capabilities.
crypt32: Add support for CryptMsgControl(CMSG_CTRL_ADD_CERT) to a being decoded message.
crypt32: Add szOID_APPLICATION_CERT_POLICIES to the list of supported critical extensions.
crypt32: Ignore CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG and CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG in CryptFindOIDInfo().
crypt32: Add support for CryptMsgControl(CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR) to a being decoded message.
crypt32: Add support for CryptMsgGetParam(CMSG_ENCRYPTED_DIGEST) to a being decoded signed message.
crypt32: Add support for CryptMsgControl(CMSG_CTRL_DEL_CERT) to a being decoded message.
crypt32: CertVerifyCertificateChainPolicy() extensions are registered under "EncodingType 0" key.
crypt32: Do not reject key usage data longer than 1 byte.
compstui: Add more string resources.
netapi32: Add stubs for DsGetDcOpenA/W.
wldap32: Use correct host when connecting to Kerberos DC.
wldap32: ldap_init() should resolve NULL hostname to default Kerberos DC.
wldap32/tests: Add some tests for LDAP authentication to a Kerberos DC.
prntvpt: Use Windows 10 version numbers.
Ekaterine Papava (1):
po: Update Georgian translation.
Elizabeth Figura (21):
msi: Fix a spelling error in the name of MigrateFeatureStates.
wined3d: Feed WINED3D_RS_POINTSIZE through a push constant buffer.
wined3d: Implement point size in the HLSL FFP pipeline.
wined3d: Implement vertex blending in the HLSL FFP pipeline.
wined3d: Feed bumpenv constants through a push constant buffer.
wined3d: Implement bumpenv mapping in the HLSL FFP pipeline.
wined3d: Implement colour keying in the HLSL FFP pipeline.
wined3d: Bind the right push constant buffers when FFP is toggled.
wined3d: Use ps_compile_args in shader_spirv_compile_arguments.
wined3d/spirv: Implement flat shading.
wined3d/glsl: Move legacy alpha test to shader_glsl_apply_draw_state().
wined3d: Feed alpha ref through a push constant buffer.
wined3d/spirv: Implement alpha test.
d3d9: Fix IUnknown delegation in IDirect3DDevice9On12.
wined3d: Do not disable point sprite in wined3d_context_gl_apply_blit_state().
wined3d: Do not toggle point sprite.
wined3d: Remove the redundant per_vertex_point_size from vs_compile_args.
wined3d: Remove FOGVERTEXMODE handling from find_ps_compile_args().
d3d11/tests: Remove the workaround for RTVs in test_nv12().
wined3d: Use the correct pitch when downloading Vulkan textures.
wined3d: Factor out a get_map_pitch() helper.
Eric Pouech (3):
include: Add some new definitions for dbghelp.h.
include: Add a couple of definitions to mscvpdb.h.
include: Use flexible array-member in some structure declarations.
Esme Povirk (5):
gdiplus: AddClosedCurve always starts a new subpath.
gdiplus: GdipAddPathPie always starts a new figure.
appwiz.cpl: Account for unicode characters in XDG_CACHE_HOME.
user32/tests: Move a todo into the message sequence.
user32/tests: Account for Wine sometimes duplicating WM_PAINT.
Etaash Mathamsetty (3):
wine.inf: Add UBR key.
winecfg: Add support for UBR key.
twinapi.appcore/tests: Fix broken registry query.
Fabian Maurer (4):
mlang: In GetFontCodePages add another null check (Coverity).
include: Add IConnectionProfile2.
windows.networking.connectivity: Add IConnectionProfile2 stubs.
windows.networking.connectivity: Fake success for IsWwanConnectionProfile and IsWlanConnectionProfile.
Francis De Brabandere (1):
vbscript: Support multiple class declarations on a single line.
Georg Lehmann (1):
winevulkan: Update to VK spec version 1.4.307.
Hans Leidekker (9):
xcopy: Fix handling of quoted filenames.
wpcap: Fix callback signature.
wine.inf: Pass command line arguments to msiexec.
wbemprox: Read Win32_PnPEntity values from the registry.
wbemprox: Implement Win32_PnPEntity.Service.
wbemprox/tests: Fix typo.
wbemprox: Fix allocation size.
ntdll: Stub NtQuerySystemInformation(SystemLeapSecondInformation).
winhttp: Accept server response without status text.
Herman Semenov (1):
msvcrt: Add missing TRACE_ON check.
Jacek Caban (1):
wdscore: Don't export C++ symbols.
Jactry Zeng (7):
include: Don't import .idl when DO_NO_IMPORTS is defined.
wintypes/tests: Add interface tests.
wintypes: Reimplement Windows.Foundation.Metadata.{ApiInformation,PropertyValue} separately.
wintypes: Stub of Windows.Storage.Streams.DataWriter runtimeclass.
wintypes: Return S_OK from data_writer_activation_factory_ActivateInstance().
wintypes: Stub of Windows.Storage.Streams.RandomAccessStreamReference runtimeclass.
wintypes: Stub of IRandomAccessStreamReferenceStatics interface.
Jeff Smith (2):
windowscodecs: Make values returned from CanConvert consistent.
windowscodecs: Simplify png_decoder_get_metadata_blocks using realloc.
Jinoh Kang (3):
ntoskrnl.exe: Fix IRQL mismatch between cancel spin lock acquire and release.
kernel32/tests: Use win_skip() for missing PrefetchVirtualMemory API.
ntdll: Fix syscall_cfa offset in user_mode_abort_thread for ARM64.
Makarenko Oleg (2):
dinput/tests: Add more tests for force feedback.
dinput: Clamp FFB effect report value to the field range.
Marc-Aurel Zent (1):
server: Use setpriority to update thread niceness when safe.
Mohamad Al-Jaf (10):
windows.networking.hostname: Guard against WindowsDuplicateString() failure.
windows.ui: Stub IUISettings3::add_ColorValuesChanged().
windows.ui: Stub IUISettings3::remove_ColorValuesChanged().
windows.ui.xaml: Add stub dll.
windows.ui.xaml: Add IColorHelperStatics stub interface.
windows.ui.xaml/tests: Add IColorHelperStatics::FromArgb() tests.
windows.ui.xaml: Implement IColorHelperStatics::FromArgb().
include: Add d3d9on12.idl file.
d3d9: Implement Direct3DCreate9On12().
d3d9/tests: Add Direct3DCreate9On12() tests.
Nikolay Sivov (43):
oleaut32/tests: Use correct constants for IStream::Seek().
windowscodecs/tests: Use correct constants for IStream::Seek().
windowscodecs/metadata: Use correct constants for IStream::Seek().
windowscodecs/ddsformat: Use correct constants for IStream::Seek().
d2d1: Use correct constants for IStream::Seek().
dmloader: Use correct constants for IStream::Seek().
kernel32/tests: Use correct constants for SetFilePointer().
wintrust: Use correct constants for SetFilePointer().
storage: Use correct constants for SetFilePointer().
krnl386: Use correct constants for SetFilePointer().
shell32: Use correct constants for SetFilePointer().
dmloader: Use correct constants for SetFilePointer().
include: Update with newer Direct2D types.
include: Update with newer DirectWrite types.
propsys/tests: Add some tests for PropVariantChangeType(VT_UI4).
propsys: Implement PropVariantToStringAlloc(VT_UI2).
propsys: Implement PropVariantToStringAlloc(VT_I4).
propsys: Implement PropVariantToStringAlloc(VT_I2).
propsys: Implement PropVariantToStringAlloc(VT_I1).
propsys: Implement PropVariantToStringAlloc(VT_UI1).
propsys: Implement PropVariantToStringAlloc(VT_UI4).
propsys: Implement PropVariantToStringAlloc(VT_I8).
propsys: Implement PropVariantToStringAlloc(VT_UI8).
propsys: Remove FIXME() from PropVariantChangeType().
windowscodecs/metadatahandler: Implement GetPersistOptions().
windowscodecs/metadatahandler: Implement GetStream().
windowscodecs/metadata: Add registration information for the Gps reader.
windowscodecs/metadata: Add registration information for the Exif reader.
windowscodecs/metadata: Add initial implementation of the App1 reader.
po: Update some Russian strings.
windowscodecs: Move component info registry key cleanup to a common failure path.
windowscodecs: Move an hkey handle to the component info base structure.
windowscodecs: Add a stub for IWICMetadataWriterInfo.
windowscodecs/metadata: Add registration information for the "Unknown" writer.
windowscodecs/metadata: Add a stub for WICUnknownMetadataWriter.
windowscodecs/metadata: Add a stub for WICGpsMetadataWriter.
windowscodecs/metadata: Add a stub for WICExifMetadataWriter.
windowscodecs/metadata: Add a stub for WICIfdMetadataWriter.
windowscodecs: Fix a typo in metadata readers registration helper.
windowscodecs: Remove redundant guid-to-string conversion when writing readers registration entries.
winhttp: Check for the end of the text when stripping trailing newlines from headers (ASan).
gdiplus/tests: Extend a GdipGetPathGradientBlend() test with excessive output buffer size.
gdiplus: Use actual blend count for output copies in GdipGetPathGradientBlend() (ASan).
Paul Gofman (37):
crypt32: Factor out CRYPT_RegDeleteFromReg().
crypt32: Factor out CRYPT_SerializeContextToReg().
crypt32: Don't output the whole chains from check_and_store_certs().
crypt32: Do not use temporary store for updating root certificates.
crypt32: Do not delete root certs which were not imported from host in sync_trusted_roots_from_known_locations().
crypt32/tests: Add more tests for VerifyCertChainPolicy().
crypt32: Fix some error codes in verify_ssl_policy().
crypt32: Check CERT_TRUST_REVOCATION_STATUS_UNKNOWN instead of CERT_TRUST_IS_OFFLINE_REVOCATION in verify_ssl_policy().
crypt32: Favour CERT_CHAIN_POLICY_IGNORE_END_REV_UNKNOWN_FLAG in verify_ssl_policy().
crypt32: Only mind end certificate when checking revocation status in verify_ssl_policy().
crypt32: Favour CERT_CHAIN_POLICY_IGNORE_WRONG_USAGE_FLAG in verify_ssl_policy().
crypt32: Use correct tag for OCSP basic response extensions.
crypt32: Use correct tag for OCSP single response extensions.
cryptnet: Retry OCSP request with POST if GET failed.
cryptnet: Do not perform OCSP requests with CERT_VERIFY_CACHE_ONLY_BASED_REVOCATION flag.
ntdll: Add NtConvertBetweenAuxiliaryCounterAndPerformanceCounter() function.
kernelbase: Add ConvertAuxiliaryCounterToPerformanceCounter() / ConvertPerformanceCounterToAuxiliaryCounter().
wine.inf: Add Explorer\FileExts registry key.
win32u: Generate mouse events in the server when releasing capture.
server: Don't send WM_MOUSEMOVE for zero movement in queue_mouse_message().
crypt32: Release cert context in CertDeleteCertificateFromStore().
crypt32: Factor out memstore_free_context() function.
crypt32: Don't try to release zero-refcount context in MemStore_addContext().
crypt32: Release existing cert context in add_cert_to_store().
crypt32: Only remove cert from mem store list when deleting it.
crypt32/tests: Add a test for deleting and adding certs during enumeration.
crypt32: Don't assert in Context_Release() on invalid refcount.
win32u: Nullify surface hwnd when detaching Vulkan surface.
win32u: Check for NULL hwnd before calling vulkan_surface_presented() driver callback.
win32u: Don't invalidate existing Vulkan surface when a new one is created for window.
winex11: Attach currently active Vulkan onscreen surface in vulkan_surface_update_offscreen().
crypt32/tests: Avoid use after free in testEmptyStore().
win32u: Implement NtUserGetCurrentInputMessageSource().
winex11: Update window shape before putting surface image.
winex11.drv: Pass visual to is_wxrformat_compatible_with_visual.
winex11.drv: Choose alpha-enabled xrender format for argb drawables.
ntdll: Zero terminate return string for NtQueryInformationProcess( ProcessImageFileName[Win32] ).
Piotr Caban (10):
propsys: Add PropVariantGetStringElem implementation.
ole32: Support all PROPVARIANT vector types in propertystorage_get_elemsize.
ole32: Update read offset in propertystorage_read_scalar helper.
ole32: Pass MemoryAllocator class to PropertyStorage_ReadProperty.
ole32: Support more vector datatypes when reading property storage.
ole32: Add support for reading VT_VECTOR|VT_VARIANT property.
ole32: Add support for reading VT_R4 property.
ole32: Fix IPropertyStorage::ReadMultiple return value when some properties are missing.
ole32: Set property storage clsid on creation.
msvcr120: Remove MSVCR120_ prefix from creal().
Piotr Morgwai Kotarbinski (2):
wined3d: Add Nvidia RTX30xx series desktop models data.
wined3d: Add Nvidia RTX40xx series desktop models data.
Rémi Bernon (5):
winex11: Allow Withdrawn requests to override Iconic <-> Normal transitions.
winex11.drv: Use get_win_data directly in X11DRV_GetDC.
server: Introduce new set_thread_priority helper.
ntdll: Set RLIMIT_NICE to its hard limit.
server: Check wineserver privileges on init with -20 niceness.
Sebastian Scheibner (2):
wineboot: Add dummy entry for SystemBiosDate.
explorerframe: Return S_OK in more ITaskbarList3 functions.
Shaun Ren (6):
sapi: Adding missing interfaces for SpStream.
sapi: Implement ISpStream::Set/GetBaseStream.
sapi: Implement ISpStream::Close.
sapi: Implement ISpStream::GetFormat.
sapi: Implement IStream methods for SpStream.
sapi: Remove some unnecessary traces.
Stefan Dösinger (6):
wined3d: Support WINED3DFMT_B5G5R5A1_UNORM in the Vulkan backend.
wined3d: Use VK_FORMAT_R4G4B4A4_UNORM_PACK16 for WINED3DFMT_B4G4R4A4_UNORM.
gdi32: Windows adds an extra 4 bytes to EMREXTCREATEPEN.
gdi32: Set EMREXTCREATEPEN offBmi and offBits.
gdi32: EMREXTCREATEPEN contains a 32 bit EXTLOGPEN.
gdi32/tests: Add an EMREXTCREATEPEN test.
Stéphane Bacri (4):
msvcr120: Fix _Cbuild signature.
msvcr120: Add cimag() implementation.
msvcr120: Add _FCbuild() implementation.
msvcr120: Add crealf() and cimagf() implementation.
Tim Clem (1):
imm32: Always validate the IME UI window when painting.
Vibhav Pant (6):
bluetoothapis/tests: Add tests for BluetoothGetRadioInfo.
bluetoothapis: Implement BluetoothGetRadioInfo.
bluetoothapis: Add stubs for BluetoothIsConnectable, BluetoothIsDiscoverable.
bluetoothapis/tests: Add tests for BluetoothIsConnectable, BluetoothIsDiscoverable.
bluetoothapis: Implement BluetoothIsConnectable.
bluetoothapis: Implement BluetoothIsDiscoverable.
William Horvath (2):
ntdll/tests: Add tests for NtDelayExecution and Sleep(Ex).
ntdll: Fix the return value of NtDelayExecution.
Yuxuan Shui (2):
dmime: Handle IStream EOF correctly in MIDI parser.
dmime: Connect default collection to MIDI bandtrack.
Zhiyi Zhang (32):
d2d1/tests: Add ID2D1Device2_GetDxgiDevice() tests.
d2d1: Remove an unnecessary cast in d2d_device_context_init().
d2d1: Implement d2d_device_GetDxgiDevice().
include: Add splay link tree helpers.
ntdll: Implement RtlSubtreePredecessor().
ntdll/tests: Add RtlSubtreePredecessor() tests.
ntdll: Implement RtlSubtreeSuccessor().
ntdll/tests: Add RtlSubtreeSuccessor() tests.
ntdll: Implement RtlRealPredecessor().
ntdll/tests: Add RtlRealPredecessor() tests.
ntdll: Implement RtlRealSuccessor().
ntdll/tests: Add RtlRealSuccessor() tests.
win32u: Allocate a separate user buffer when packing a large WM_COPYDATA message for user32.
user32/tests: Add tests for WM_COPYDATA.
ntdll: Implement RtlSplay().
ntdll/tests: Add RtlSplay() tests.
ntdll: Implement RtlDeleteNoSplay().
ntdll/tests: Add RtlDeleteNoSplay() tests.
ntdll: Implement RtlDelete().
ntdll/tests: Add RtlDelete() tests.
light.msstyles: Use light blue as hot tracking color instead of grey.
include: Fix PRTL_GENERIC_ALLOCATE_ROUTINE prototype.
ntdll/tests: Add RtlInitializeGenericTable() tests.
ntdll/tests: Add RtlNumberGenericTableElements() tests.
ntdll: Implement RtlIsGenericTableEmpty().
ntdll/tests: Add RtlIsGenericTableEmpty() tests.
ntdll: Implement RtlInsertElementGenericTable().
ntdll: Implement RtlDeleteElementGenericTable().
ntdll/tests: Add RtlInsertElementGenericTable() tests.
ntdll/tests: Add RtlDeleteElementGenericTable() tests.
ntdll: Implement RtlLookupElementGenericTable().
ntdll/tests: Add RtlLookupElementGenericTable() tests.
Zsolt Vadasz (1):
ntdll: Add a character map name for Shift JIS.
```
The Wine team is proud to announce that the stable release Wine 10.0
is now available.
This release represents a year of development effort and over 6,000
individual changes. It contains a large number of improvements that
are listed below. The main highlights are the new ARM64EC
architecture and the high-DPI scaling support.
The source is available at <https://dl.winehq.org/wine/source/10.0/wine-10.0.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.0/AUTHORS
## What's new in Wine 10.0
### ARM64
- The ARM64EC architecture is fully supported, with feature parity with the
ARM64 support.
- Hybrid ARM64X modules are fully supported. This allows mixing ARM64EC and
plain ARM64 code into a single binary. All of Wine can be built as ARM64X
by passing the `--enable-archs=arm64ec,aarch64` option to configure. This
still requires an experimental LLVM toolchain, but it is expected that the
upcoming LLVM 20 release will be able to build ARM64X Wine out of the box.
- The 64-bit x86 emulation interface is implemented. This takes advantage of
the ARM64EC support to run all of the Wine code as native, with only the
application's x86-64 code requiring emulation.
No emulation library is provided with Wine at this point, but an external
library that exports the emulation interface can be used, by specifying
its name in the `HKLM\Software\Microsoft\Wow64\amd64` registry key. The
[FEX emulator][4] implements this interface when built as ARM64EC.
- It should be noted that ARM64 support requires the system page size to be
4K, since that is what the Windows ABI specifies. Running on kernels with
16K or 64K pages is not supported at this point.
[4]: https://fex-emu.com
### Graphics
- High-DPI support is implemented more accurately, and non-DPI aware windows
are scaled automatically, instead of exposing high-DPI sizes to
applications that don't expect it.
- Compatibility flags are implemented to override high-DPI support, either
per-application or globally in the prefix.
- Vulkan child window rendering is supported with the X11 backend, for
applications that need 3D rendering on child windows. This was supported
with OpenGL already, and the Vulkan support is now on par.
- The Vulkan driver supports up to version 1.4.303 of the Vulkan spec. It
also supports the Vulkan Video extensions.
- Font linking is supported in GdiPlus.
### Desktop integration
- A new opt-in modesetting emulation mechanism is available. It is very
experimental still, but can be used to force display mode changes to be
fully emulated, instead of actually changing the display settings.
The windows are being padded and scaled if necessary to fit in the
physical display, as if the monitor resolution were changed, but no actual
modesetting is requested, improving user experience.
- A new Desktop Control Panel applet `desk.cpl` is provided, to inspect and
modify the display configuration. It can be used as well to change the
virtual desktop resolution, or to control the new emulated display
settings.
- Display settings are restored to the default if a process crashes without
restoring them properly.
- System tray icons can be completely disabled by setting `NoTrayItemsDisplay=1`
in the `HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer`
key.
- Shell launchers can be disabled in desktop mode by setting `NoDesktop=1`
in the `HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer`
key.
### Direct3D
- The GL renderer now requires GLSL 1.20, `EXT_framebuffer_object`, and
`ARB_texture_non_power_of_two`. The legacy ARB shader backend is no longer
available, and the `OffscreenRenderingMode` setting has been removed.
- Shader stencil export is implemented for the GL and Vulkan renderers.
- A HLSL-based fixed function pipeline for Direct3D 9 and earlier is
available, providing support for fixed function emulation for the Vulkan
renderer. It can also be used for the GL renderer, by setting the D3D
setting `ffp_hlsl` to a nonzero value using the registry or the
`WINE_D3D_CONFIG` environment variable.
- The Vulkan renderer uses several dynamic state extensions, if available,
with the goal of reducing stuttering in games.
- An alternative GLSL shader backend using vkd3d-shader is now available,
and can be selected by setting the D3D setting `shader_backend` to
`glsl-vkd3d`. Current vkd3d-shader GLSL support is incomplete relative to
the built-in GLSL shader backend, but is being actively developed.
### Direct3D helper libraries
- Initial support for compiling Direct3D effects is implemented using
vkd3d-shader.
- D3DX 9 supports many more bump-map and palettized formats.
- D3DX 9 supports saving palettized surfaces to DDS files.
- D3DX 9 supports mipmap generation when loading volume texture files.
- D3DX 9 supports reading 48-bit and 64-bit PNG files.
### Wayland driver
- The Wayland graphics driver is enabled by default, but the X11 driver
still takes precedence if both are available. To force using the Wayland
driver in that case, make sure that the `DISPLAY` environment variable is
unset.
- Popup windows should be positioned correctly in most cases.
- OpenGL is supported.
- Key auto-repeat is implemented.
### Multimedia
- A new opt-in FFmpeg-based backend is introduced, as an alternative to the
GStreamer backend. It is intended to improve compatibility with Media
Foundation pipelines. It is still in experimental stage though, and more
work will be needed, especially for D3D-aware playback. It can be enabled
by setting the value `DisableGstByteStreamHandler=1` in the
`HKCU\Software\Wine\MediaFoundation` registry key.
- Media Foundation multimedia pipelines are more accurately implemented, for
the many applications that depend on the individual demuxing and decoding
components to be exposed. Topology resolution with demuxer and decoder
creation and auto-plugging is improved.
- DirectMusic supports loading MIDI files.
### Input / HID devices
- Raw HID devices with multiple top-level collections are correctly parsed,
and exposed as individual devices to Windows application.
- Touchscreen input and events are supported with the X11 backend, and basic
multi-touch support through the `WM_POINTER` messages is
implemented. Mouse window messages such as `WM_LBUTTON*`, `WM_RBUTTON*`,
and `WM_MOUSEMOVE` are also generated from the primary touch events.
- A number of USER32 internal structures are stored in shared memory, to
improve performance and reduce Wine server load by avoiding server
round-trips.
- An initial version of a Bluetooth driver is implemented, with some basic
functionality.
- The Joystick Control Panel applet `joy.cpl` enables toggling some advanced
settings.
- The Dvorak keyboard layout is properly supported.
### Internationalization
- Locale data is generated from the Unicode CLDR database version 46. The
following additional locales are supported: `kaa-UZ`, `lld-IT`, `ltg-LV`,
and `mhn-IT`.
- Unicode character tables are based on version 16.0.0 of the Unicode
Standard.
- The timezone data is based on version 2024a of the IANA timezone database.
### Internet and networking
- The JavaScript engine supports a new object binding interface, used by
MSHTML to expose its objects in a standard-compliant mode. This eliminates
the distinction between JavaScript objects and host objects within the
engine, allowing scripts greater flexibility when interacting with MSHTML
objects.
- Built-in MSHTML functions are proper JavaScript function objects, and
other properties use accessor functions where appropriate.
- MSHTML supports prototype and constructor objects for its built-in
objects.
- Function objects in legacy MSHTML mode support the `call` and `apply`
methods.
- The JavaScript garbage collector operates globally across all script
contexts within a thread, improving its accuracy.
- JavaScript ArrayBuffer and DataView objects are supported.
### RPC / COM
- RPC/COM calls are fully supported on ARM platforms, including features
such as stubless proxies and the typelib marshaler.
- All generated COM proxies use the fully-interpreted marshaling mode on all
platforms.
### C runtime
- C++ exceptions and Run-Time Type Information (RTTI) are supported on ARM
platforms.
- The ANSI functions in the C runtime support the UTF-8 codepage.
### Kernel
- Process elevation is implemented, meaning that processes run as a normal
user by default but can be elevated to administrator access when required.
- Disk labels are retrieved from DBus when possible instead of accessing the
raw device.
- Mailslots are implemented directly in the Wine server instead of using a
socketpair, to allow supporting the full Windows semantics.
- Asynchronous waits for serial port events are reimplemented. The previous
implementation was broken by the PE separation work in Wine 9.0.
- The full processor XState is supported in thread contexts, enabling
support for newer vector extensions like AVX-512.
### macOS
- When building with Xcode >= 15.3 on macOS, the preloader is no longer
needed.
- Syscall emulation for applications doing direct NT syscalls is supported
on macOS Sonoma and later.
### Builtin applications
- The input parser of the Command Prompt tool `cmd` is rewritten, which
fixes a number of long-standing issues, particularly with variable
expansion, command chaining, and FOR loops.
- The Wine Debugger `winedbg` uses the Capstone library to enable
disassembly on all supported CPU types.
- The File Comparison tool `fc` supports comparing files with default
options.
- The `findstr` application supports regular expressions and case
insensitive search.
- The `regsvr32` and `rundll32` applications can register ARM64EC modules.
- The `sort` application is implemented.
- The `where` application supports searching files with default options.
- The `wmic` application supports an interactive mode.
### Miscellaneous
- The ODBC library supports loading Windows ODBC drivers, in addition to
Unix drivers that were already supported through libodbc.so.
- Optimal Asymmetric Encryption Padding (OAEP) is supported for RSA
encryption.
- Network sessions are supported in DirectPlay.
### Development tools
- The IDL compiler generates correct format strings in interpreted stubs
mode (`/Oicf` in midl.exe) on all platforms. Interpreted mode is now the
default, the old mixed-mode stub generation can be selected with `widl
-Os`.
- The IDL compiler can generate typelibs in the old SLTG format with the
`--oldtlb` command-line option.
- The `winegcc` and `winebuild` tools can create hybrid ARM64X modules with
the `-marm64x` option.
- The `winedump` tool supports dumping minidump tables, C++ exception data,
CLR tables, and typelib resources.
### Build infrastructure
- The `makedep` tool generates a standard-format `compile_commands.json`
file that can be used with various IDEs.
- Using `.def` files as import libraries with `winegcc` is no longer
supported, all import libraries need to be in the standard `.a` format. If
necessary, it is possible to convert a `.def` library to `.a` format using
`winebuild --implib -E libfoo.def -o libfoo.a`.
- Static analysis is supported using the Clang Static Analyzer. It can be
enabled by passing the `--enable-sast` option to configure. This is used
to present Code Quality reports with the Gitlab CI.
### Bundled libraries
- The Capstone library version 5.0.3 is bundled and used for disassembly
support in the Wine Debugger, to enable disassembly of ARM64 code. This
replaces the bundled Zydis library, which has been removed.
- Vkd3d is updated to the upstream release [1.14][5].
- Faudio is updated to the upstream release 24.10.
- FluidSynth is updated to the upstream release 2.4.0.
- LDAP is updated to the upstream release 2.5.18.
- LCMS2 is updated to the upstream release 2.16.
- LibJpeg is updated to the upstream release 9f.
- LibMPG123 is updated to the upstream release 1.32.9.
- LibPng is updated to the upstream release 1.6.44.
- LibTiff is updated to the upstream release 4.7.0.
- LibXml2 is updated to the upstream release 2.12.8.
- LibXslt is updated to the upstream release 1.1.42.
- Zlib is updated to the upstream release 1.3.1.
[5]: https://gitlab.winehq.org/wine/vkd3d/-/releases/vkd3d-1.14
### External dependencies
- The FFmpeg libraries are used to implement the new Media Foundation
backend.
- A PE cross-compiler is required for 32-bit ARM builds, pure ELF builds are
no longer supported (this was already the case for 64-bit ARM).
- Libunwind is no longer used on ARM platforms since they are built as
PE. It's only used on x86-64.
The Wine development release 10.0-rc6 is now available. This is
expected to be the last release candidate before the final 10.0.
What's new in this release:
- Bug fixes only, we are in code freeze.
The source is available at <https://dl.winehq.org/wine/source/10.0/wine-10.0-rc6.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.0-rc6/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 10.0-rc6 (total 18):
- #47036 C&C Red Alert 2 Yuri's Revenge missing graphical elements
- #48501 U.S. Naval Observatory MICA2 software has annoying error message upon closing
- #50398 Microsoft Office XP 2002 installer shows "Error 25504. Failed to set Feature xyz to the install state of Feature xyz for mode 2." message boxes since Wine 2.12
- #53567 The Medium crashes when starting new game
- #53891 user32:msg - test_swp_paint_regions() fails on Windows 7
- #55263 Boulder Remake doesn't recognise arrow keys (other keys work)
- #56452 Wingdings font seems not to be found; regression test done
- #57019 wineboot crashes in create_bios_processor_values() on 2013 Mac Pro
- #57076 Harmony Assistant 9.9.8d (64 bit) reports missing stoccata.ttf font on startup
- #57077 Micrografx Window Draw 4.0a crashes when backspacing while editing freeform text object
- #57179 File uploads in Hotline Client 1.2.3 hang after about 200 KB
- #57312 Rebuild 3: Broken texture filtering
- #57579 Deformed symbols in LTSpice
- #57610 No windows are shown when using a dual monitor setup
- #57632 fallout 3 radio broke with gstreamer 1.24.10 (9.22 silent, 10rc4 stalls)
- #57652 Some windows have cut bottom and right sides
- #57657 Null pointer dereference in traces
- #57661 Port Royale 2: black screen during intro videos
### Changes since 10.0-rc5:
```
Alexandre Julliard (3):
ieframe/tests: Fix more property change errors for the new test.winehq.org server.
wshom.ocx/tests: Mark a failing tests as todo.
winebth.sys: Don't print an error when Bluetooth is not available.
Bernhard Übelacker (2):
gdiplus/tests: Fix use-after-free of a graphics object (ASan).
kernel32/tests: Avoid stack buffer overflow in get_com_dir_size (ASan).
Elizabeth Figura (2):
msi/tests: Test msidbFeatureAttributesDisallowAdvertise.
msi: Set features to absent if advertising is disallowed.
Esme Povirk (1):
gdiplus/tests: Trace locked bitmap data on failure.
Rémi Bernon (5):
gdi32: Avoid crashing when tracing NULL xform.
configure: Use per-architecture cross flags if they are provided.
winex11: Adjust requested visible rect relative to the previous position.
winex11: Always blit offscreen over any other onscreen clients.
mf/topology_loader: Avoid modifying downstream media type when attempting to connect.
Santino Mazza (1):
gdiplus: Check for MapFont result in generate_font_link_info.
Zhiyi Zhang (1):
winex11.drv: Fix display name in X11DRV_UpdateDisplayDevices().
```
The Wine development release 10.0-rc5 is now available.
What's new in this release:
- Bug fixes only, we are in code freeze.
The source is available at <https://dl.winehq.org/wine/source/10.0/wine-10.0-rc5.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.0-rc5/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 10.0-rc5 (total 31):
- #38975 Alpha Protocol launcher: menu options hidden behind grey boxes
- #48737 Microsoft Golf 2.0 demo crashes on startup
- #52542 NVIDIA GeForceNow Installer fails due to rundll32 problems
- #53352 Redefinition of typedef ‘D2D1_PROPERTY_BINDING’ breaks compilation with gcc 4.3.4
- #54717 dbghelp:dbghelp - SymRefreshModuleList() sometimes returns STATUS_INFO_LENGTH_MISMATCH on Windows
- #56205 The Egyptian Prophecy: The Fate of Ramses: text displayed without transparency
- #56474 Crowns and Pawns: Graphic bugs
- #56523 The Dark Pictures Anthology: Man of Medan hangs/crashes after company logo
- #56605 V-Rally 4 crashes right before starting a race
- #56627 Direct3D applications run out of memory on Windows XP
- #56770 Geneforge 4: stuttering in character and mouse movement
- #56886 Wincatalog can't scan folders
- #57207 Fallout 3: Regression spams console with errors
- #57274 Regression causing Obduction to hang and exit
- #57306 Multiple programs crash due to memory corruption since 5924ab4c515 (Nikon NX studio, Profit, Falcosoft's Soundfont Midi Player, IBExpert)
- #57333 Civilization IV fails to start (XML load Error)
- #57409 Interactivity The Interactive Experience from itch.io deadlocks (regression)
- #57476 Methods arguments attributes are missing from dwrite.idl
- #57522 Voltage sources have the wrong shapes in Micro-Cap 12.2.0.5 on Wine 9.21 and later
- #57549 Fighter Factory 3: Window Graphics don't display correctly after prolonged use.
- #57550 Geneforge 4 complains about resolution and crashes when run in virtual desktop
- #57551 10-rc2 regression: MS Office 2007/2010: some dialogs are only ~1/4 visible
- #57558 joy.cpl xinput joysticks circles are cropped by 1px on the bottom
- #57566 Silent crash for application attempting to use RSA
- #57582 Eschalon Book I: launcher menu flickering
- #57583 Truncated popup
- #57584 8-bit color mode is broken in Wine 9.11 and later
- #57599 HyperBall Shareware: black screen (regression)
- #57601 Touchscreen input broken for x11drv/mouse.c
- #57636 Black screen in menu until button click in Age of Empires
- #57649 call .bat doesn't propagate errorlevel
### Changes since 10.0-rc4:
```
Alexandre Julliard (7):
shell32: Look for the file name without extension also for the path search case.
dnsapi/tests: Update DNS names for the new test.winehq.org server.
wininet/tests: Update certificate for the new test.winehq.org server.
secur32/tests: Update expected results for the new test.winehq.org server.
winhttp/tests: Allow some more notifications for the new test.winehq.org server.
ieframe/tests: Allow more property changes with the new test.winehq.org server.
win32u: Fix stack corruption in NtUserScrollDC.
Anton Baskanov (2):
ddraw/tests: Test that releasing a primary surface invalidates the window.
ddraw: Invalidate the window when the primary surface is released.
Bernhard Übelacker (2):
d3dx9_36/tests: Fix test data buffer underflow (ASan).
gdi32: Explicitly check for negative text length in GetTextExtentExPointW().
Billy Laws (1):
ntdll: Emulate mrs xN, CurrentEL instructions.
Brendan McGrath (1):
mfmediaengine: Fix maths in scaling check.
Brendan Shanks (2):
wineboot: Correctly handle SMBIOS tables older than v3.0.
ntdll: On macOS, only use actual SMBIOS tables if they are v2.5 or higher.
Connor McAdams (1):
quartz/dsoundrender: Restart the render thread when clearing EOS in dsound_render_sink_end_flush().
Conor McCarthy (1):
mf: Do not clean up a session op if it was submitted to a work queue.
Dmitry Timoshkov (4):
rsaenh/tests: Add some tests for RC4 salt.
rsaenh/tests: Add a test for RC4 session key.
rsaenh/tests: Make RC4 tests more distinct.
rsaenh: CPGenKey() shouldn't generate RC4 key salt if not requested.
Elizabeth Figura (13):
Revert "win32u: Forward to Rectangle() if the ellipse width or height is zero.".
Revert "win32u: Do not convert back to integer before finding intersections.".
Revert "win32u: Correctly handle transforms which flip in get_arc_points().".
Revert "win32u: Normalize inverted rectangles in dibdrv_RoundRect().".
Revert "win32u: Always select the point that's closer to the ellipse.".
Revert "win32u: Allocate the whole max_points for the top_points array.".
Revert "win32u: Implement drawing transformed round rectangles.".
Revert "win32u: Implement drawing transformed arcs.".
gdi32: Trace more functions.
gdi32/tests: Add some arc tests.
ddraw/tests: Test preservation of the X channel when clearing.
wined3d: Separate a cpu_blitter_clear_texture() helper.
ddraw: Clear sysmem textures on the CPU.
Eric Pouech (4):
cmd/tests: Add more tests.
cmd: Skip trailing white spaces in FOR's option.
cmd: Fix some CALL errorlevel propagation.
cmd: Don't return syntax error code on empty lines.
Esme Povirk (1):
gdiplus: Use font linking only for missing glyphs.
Francis De Brabandere (3):
vbscript/tests: Refactor Mid() error tests.
vbscript: Fix Mid() empty and null handling.
vbscript: Remove trailing semicolon in parser.
Gabriel Ivăncescu (1):
winex11: Respect swp_flags when syncing window position.
Jactry Zeng (1):
po: Update Simplified Chinese translation.
Lauri Kenttä (2):
documentation: Update Linux and Mac OS X versions.
po: Update Finnish translation.
Nikolay Sivov (1):
include: Fix method arguments annotations in dwrite.idl.
Paul Gofman (5):
ddraw/tests: Test state application on multiple devices.
ddraw: Factor out d3d_device_apply_state().
ddraw: Correctly apply state when multiple devices are used.
winex11: Flush display when presenting offcreen drawable from wglFlush / wglFinish.
winex11: Call glFinish() when presenting offscreen drawable from wglFlush.
Rémi Bernon (5):
winex11: Check window region instead of forcing offscreen on parent.
winebus: Ignore unsupported hidraw touchscreen devices.
winex11: Map mouse/touch event coordinates even without a hwnd.
win32u: Initialize dibdrv info from the surface color bitmap.
winex11: Always fill the window surface color info.
Santino Mazza (1):
mmdevapi/tests: Fix audio clock adjustment tests failing in testbot.
William Horvath (1):
winex11: Use the win32 client rect in needs_client_window_clipping.
```
The Wine development release 10.0-rc4 is now available.
What's new in this release:
- Bug fixes only, we are in code freeze.
The source is available at <https://dl.winehq.org/wine/source/10.0/wine-10.0-rc4.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.0-rc4/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 10.0-rc4 (total 13):
- #37372 Unexpected order of results in wildcard expansion
- #48877 Melodyne crashes when using the Pitch tool
- #51656 Gaea Installer crashes in riched when pressing enter
- #52447 64-bit .NET framework 2.0 installer hangs while generating/installing native images of 'System.Windows.Forms' assembly into GAC
- #53405 Into The Breach freezes when enabling fullscreen
- #54342 ws2_32:sock - test_WSARecv() sometimes fails with "got apc_count 1." on Windows
- #56531 Final Fantasy XI Online: Some textures are transparent, malformed, or misplaced.
- #56533 Final Fantasy XI Online: Incorrect/corrupt textures shown on models.
- #56885 WinCatalog has a crash at startup
- #57248 Rhinoceros 8.11 installer crashes on start
- #57568 Arcanum (and many other titles) crashes on start
- #57577 Minimised applications are restored with -4 vertical pixels.
- #57587 10.0-rc1 regression (dsoundrender): no audio or hangs in some videos
### Changes since 10.0-rc3:
```
Alexandre Julliard (3):
Update copyright info for 2025.
ntdll: Set the processor architecture variable from the current arch.
xml: Disable the non-determinist schema check.
André Zwing (6):
bluetoothapis/tests: Don't test functions directly when reporting GetLastError().
kernel32/tests: Don't test functions directly when reporting GetLastError().
iphlpapi/tests: Don't test functions directly when reporting GetLastError().
msvcr120/tests: Don't test function directly when reporting GetLastError().
msvcp140/tests: Don't test function directly when reporting GetLastError().
msvcp120/tests: Don't test function directly when reporting GetLastError().
Bernhard Übelacker (7):
mfplat/tests: Fix copy-paste release calls.
dwrite: Avoid stack-buffer-overflow in arabic_setup_masks.
comctl32/tests: Fix test array size (ASan).
comctl32/tests: Use sufficient user data buffer in the Tab tests (ASan).
comctl32/tests: Mark a test as broken on Windows.
dwrite: Fix off-by-one clustermap indexing (ASan).
uiautomationcore: Fix a double-free of advisers array (ASan).
Elizabeth Figura (1):
qasf/dmowrapper: Acquire new output samples for each ProcessOutput() call.
Eric Pouech (1):
kernelbase: Don't free pathname if query failed.
Etaash Mathamsetty (1):
nsiproxy: Set rcv/xmit speed to 1000000 on linux.
Floris Renaud (1):
po: Update Dutch translation.
Jinoh Kang (1):
user32/tests: Force window to be visible in subtest_swp_paint_regions.
Piotr Caban (2):
msvcr120/tests: Skip _fsopen tests if file can't be created.
msvcp120/tests: Skip _Fiopen tests if file can't be created.
Rémi Bernon (6):
winex11: Improve GetWindowStateUpdates traces.
win32u: Check window state updates again after applying new state.
win32u: Don't overwrite dummy vulkan window.
win32u: Always update the surface regions in apply_window_pos.
server: Remove now unnecessary needs_update member.
winex11: Don't re-create the GL drawable if pixel format didn't change.
Zhiyi Zhang (2):
d2d1/tests: Remove a duplicate test.
dxgi: Support more feature levels in debug_feature_level().
```
The Wine development release 10.0-rc3 is now available.
What's new in this release:
- Bug fixes only, we are in code freeze.
The source is available at <https://dl.winehq.org/wine/source/10.0/wine-10.0-rc3.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.0-rc3/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 10.0-rc3 (total 15):
- #11674 Dual-core unsupported in WoW and SC2
- #49473 Chaos Legion videos are played upside down
- #52738 No keyboard input in "STREET CHAVES - O LUTADOR DA VILA"
- #56319 Parallel Port Tester won't start (fails to locate driver "System32\Drivers\inpoutx64.sys", but changing to absolute path works)
- #56348 Bricks: moving a brick causes it to rapidly alternate positions
- #56471 starting of native program with "start /unix ..." is broken
- #56632 Explorer cannot run any files in Windows ME compatibility mode (or below)
- #56714 Startopia is stuck on a black screen on launch
- #57227 IL-2 1946 crash at startup
- #57286 Dark Age of Camelot - camelot.exe required igd10umd32.dll but the .dll file is not found.
- #57319 Painting in a proprietary application is broken with vulkan renderer
- #57515 desktop mode did not show taskbar anymore
- #57523 PokerTracker 4: cannot launch anymore
- #57525 Systray icons cannot be interacted with
- #57541 CMake doesn't find toolchain
### Changes since 10.0-rc2:
```
Akihiro Sagawa (1):
po: Update Japanese translation.
Alanas Tebuev (1):
comctl32/tests: Initialize hwnd to NULL before calling rebuild_toolbar().
Alexandre Julliard (6):
ntdll: Align heap virtual allocations to a multiple of the page size.
shell32: Don't call AW functions internally.
shell32: Return the file itself without extension if it exists.
propsys/tests: Fix a test that fails on some Windows versions.
win32u/tests: Mark the foreground thread test as flaky.
advapi32/tests: Use the correct key handle in the notify thread.
Alistair Leslie-Hughes (1):
msxml3: Correct looping of Document Element node map.
Bernhard Übelacker (4):
server: Avoid crash when handle table is allocated but not yet filled.
crypt32: Avoid stack-use-after-scope in CSignedEncodeMsg_GetParam (ASan).
d3dx9_36/tests: Fix logging of expected bytes in check_vertex_components. (ASan).
xmllite/tests: Avoid buffer overflow by using LONG_PTR (ASan).
Elizabeth Figura (2):
wined3d: Add nop state entries for states now invalidated on the client side.
Revert "wined3d: Use bindless textures for GLSL shaders if possible.".
Eric Pouech (3):
cmd/tests: Add more tests about variable expansion.
cmd: Fix regression in variable search in expansion.
winedump: Fix variable overwrite when dumping exception.
Esme Povirk (1):
gdiplus: GdipPathAddRectangle should close the path.
Gerald Pfeifer (1):
capstone: Avoid GCC being treated as old VisualStudio.
Jacek Caban (1):
mshtml: Ignore Gecko events on detached nodes.
Louis Lenders (1):
kernelbase: Don't try to print the path in the FIXME in GetTempPath2.
Nikolay Sivov (9):
windowscodecs/tests: Added some tests for Exif and Gps IFDs embedded in App1 blob.
windowscodecs/tests: Add some tests for CreateMetadataWriterFromReader().
windowscodecs/tests: Add some tests for CreateMetadataWriter().
windowscodecs/tests: Add some tests for metadata stream objects handling.
windowscodecs/tests: Add loading tests for the writers.
windowscodecs/tests: Check persist options after Load().
windowscodecs: Fix a typo in interface name.
include: Add methods arguments annotations for DirectWrite types.
dwrite/tests: Allocate test inline objects dynamically.
Owen Rudge (2):
odbc32: Avoid crashing if str is null in debugstr_sqlstr.
odbc32: Add null pointer checks to update_result_lengths helpers.
Paul Gofman (2):
winex11: Use NtUserReleaseDC() with hdc.
server: Cleanup all the global hooks owned by terminating thread.
Rémi Bernon (5):
winex11: Sync gl drawable outside of the win_data mutex.
winex11: Use DCX_USESTYLE when checking DC clipping regions.
winex11: Move GL/VK offscreen if the clipping region is NULLREGION.
dinput: Copy the device format if the user format is a subset of it.
dinput: Check that the device format data fits in the user format data.
```
The Wine development release 10.0-rc2 is now available.
What's new in this release:
- Bug fixes only, we are in code freeze.
The source is available at <https://dl.winehq.org/wine/source/10.0/wine-10.0-rc2.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.0-rc2/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 10.0-rc2 (total 21):
- #28861 Final Fantasy XI hangs after character selection
- #47640 No Man's Sky (Beyond) does not start anymore: Unable to initialize Vulkan (vkEnumerateInstanceExtensionProperties failed)
- #51998 Unable to start CloneCD
- #53453 Command & Conquer 3: Tiberium Wars - fails to start (splash screen not even shown)
- #54437 ntoskrnl.exe:ntoskrnl breaks test_rawinput() [(RIM|WM)_INPUT] in user32:input for non-English locales on Windows 7
- #55583 d3d8:device - test_wndproc() often is missing a WM_WINDOWPOSCHANGING in Wine
- #56056 Exiting IrfanView full screen mode creates a redundant task bar "Untitled window" item which is not clickable
- #56325 Prefix path string in wineboot dialog is cut off
- #56940 vs_community.exe halts:"The application cannot find one of its required files, possibly because it was unable to create it in the folder."
- #57216 Mouse wheel input in IL-2 1946 is not applied consistently to UI elements and throttle
- #57285 Foxit Reader - maximized view don't work properly
- #57384 The shareware installer for Daytona (16-bit) hangs at the end of installing.
- #57418 PlayOnline Viewer throws an application error at launch.
- #57442 Several applications: abnormal input delay with Wine
- #57481 Prey (2016) X11 fullscreen fails in 9.22
- #57503 World in conflict has a frozen screen - updating only when alt-tabbing out and in
- #57504 Possible regression with Unity3D games: Framedrops when moving cursor.
- #57506 Wine doesn't show any window
- #57524 Commit c9592bae7f475c1b208de0a72ed29e94e3017094 breaks VKB Gladiator HIDRAW support
- #57527 Drop-down list appears behind the main window
- #57530 Regression: Tiny extra form displays in Delphi programs
### Changes since 10.0-rc1:
```
Alexandre Julliard (7):
user32: Fixup forwarded functions on 32-bit.
ntoskrnl: Support relative driver paths.
ntoskrnl: Fix off-by-one error in buffer size.
wineboot: Always wrap the wait dialog text.
wineboot: Resize the wait dialog to accommodate the text size.
wineboot: Scale the wait dialog icon with the dialog size.
winetest: Filter out color escapes for junit output.
Eric Pouech (2):
dbghelp: Fix error handling in PDB/FPO unwinder.
dbghelp: Lower vector allocation for local variables.
Esme Povirk (1):
mscoree: Use correct variable for codebase path.
Gabriel Ivăncescu (1):
mshtml: Remove unused MutationObserver DISPID and related hook.
Gerald Pfeifer (1):
webservices: Rename a struct member from bool to boolean.
Jacek Caban (1):
configure: Define _load_config_used symbol in the cross-compiler test program.
Louis Lenders (1):
shell32: Remove trailing spaces in SHELL_execute.
Marcus Meissner (1):
ucrtbase/tests: Use correct size to GetEnvironmentVariableW.
Nikolay Sivov (8):
windowscodecs/tests: Use test context in a few metadata tests.
windowscodecs/tests: Add some tests for GetContainerFormats().
windowscodecs/tests: Use a helper instead of a macro.
windowscodecs/tests: Remove endianess compile time checks from the tests.
windowscodecs/tests: Move IFD data tests to a helper.
windowscodecs/tests: Run data test on the Exif reader.
windowscodecs/tests: Add some tests for the Gps reader.
windowscodecs/tests: Add some tests for the App1 reader.
Piotr Caban (1):
msvcrt: Don't leak find handle or error in _findfirst().
Rémi Bernon (17):
win32u: Skip updating the cache on driver load if we're already updating it.
win32u: Release the Win16 mutex when yielding in peek_message.
win32u: Copy the shape from the old surface when surface is recreated.
server: Force surface region update when window region is modified.
win32u: Extend display_lock CS around winstation check.
server: Add a winstation monitor update serial counter.
win32u: Use the winstation monitor update serial to detect updates.
winex11: Request window config when it needs to be raised.
winebus: Wait until the device is started before processing reports.
dmloader: Remove redundant flag.
winex11: Fixup window config size back to 0x0 if we've requested 1x1.
winex11: Always check if the GL drawable offscreen state needs to be changed.
winex11: Skip offscreening if the children don't require clipping.
dinput: Queue the relative wheel motion as event data.
explorer: Avoid hiding the taskbar if it's enabled.
server: Allow merging WM_MOUSEMOVE across internal messages.
winex11: Fix inconsistent coordinates when reparenting host window.
Vibhav Pant (3):
winebth.sys: Fix new bluetooth events being incorrect set due to variable shadowing.
winebth.sys: Set the Information field in the IRP's STATUS_BLOCK after handling IOCTL_BTH_GET_LOCAL_INFO.
winebth.sys: Use the correct byte-ordering for setting the radio's address property.
William Horvath (2):
include: Use inline assembly on Clang MSVC mode in YieldProcessor().
win32u: Check for driver events more often.
Zhiyi Zhang (1):
win32u: Use width and height to check if the display mode is vertical.
```
The Wine development release 10.0-rc1 is now available.
This is the first release candidate for the upcoming Wine 10.0. It
marks the beginning of the yearly code freeze period. Please give this
release a good testing and report any issue that you find, to help us
make the final 10.0 as good as possible.
What's new in this release:
- Bundled vkd3d upgraded to version 1.14.
- Mono engine updated to version 9.4.0.
- Initial version of a Bluetooth driver.
- UTF-8 support in the C runtime functions.
- Support for split debug info using build ids.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/10.0/wine-10.0-rc1.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.0-rc1/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 10.0-rc1 (total 17):
- #43172 IDirectPlay4::EnumConnections needs to support wide string in DPNAME structure
- #56109 Broken Radiobutton navigation (Up/Down, Accelerators) in several InnoSetup installers
- #56709 PackTouchHitTestingProximityEvaluation not located in USER32.dll when attempting to run Clip Studio Paint 3.0
- #56838 FL Studio 21 gui problem
- #57064 Bloodrayne 2 (legacy and Terminal Cut): graphical issue (foggy screen)
- #57308 Cannot load split debug symbols under /usr/lib/debug
- #57401 Dragon Unpacker crashes on both wine devel and staging
- #57411 Heroes of the Storm: screen sporadically flickers black
- #57431 Links 2003 Crashes
- #57437 PStart isn't showing a menu in the tray bar
- #57453 Regression: TWM: Cursor position offset in *some* programs.
- #57457 Mathcad 15 crashes when enter trace tab
- #57463 winebus always crashing with unknown since 8b41c2cfddba1f9973246f61e39d4a4d92912da5
- #57472 Systray support is broken in Wine 9.22
- #57474 Windows disappear irreversibly when are not shown on a virtual desktop
- #57477 After commit of 484c61111ef32d75dcf5cf1656b4469b4de3ec37 game could not launch with dxvk
- #57493 Mathcad 15 crashes on startup due to unhandled domdoc MaxElementDepth property
### Changes since 9.22:
```
Aida Jonikienė (6):
dsound: Handle NaN values in the 3D code.
dsound: Add an angle check for SetOrientation().
dsound/tests: Add NaN tests for floating-point 3D functions.
dsound: Add non-NaN value tests for SetOrientation().
winevulkan: Mirror function handling in vk_is_available_instance_function32().
winevulkan: Use WINE_UNIX_LIB instead of WINE_VK_HOST.
Alexandre Julliard (20):
ntdll: Initial version of NtContinueEx().
ntdll: Always return the handle from NtCreateIoCompletion().
server: Do not allow to open an existing mailslot in NtCreateMailslotFile.
server: Fix a token reference leak.
ntdll/tests: Remove some workarounds for old Windows versions.
ntdll/tests: Add tests for opening objects with zero access.
vkd3d: Import upstream release 1.14.
server: Use the correct handle allocation pattern for all object types.
win32u: Add some access rights when creating a desktop object.
server: Make CurrentControlSet a symlink in new prefixes.
ntdll: Make a debug channel dynamically settable only if there's no specified class.
taskmgr: Only list dynamically settable debug channels.
server: Only store a Unix name for regular files.
widl: Avoid unused variable warning.
configure: Correctly check the --enable-build-id option.
winegcc: Remove support for .def files as import libraries.
winebuild: Remove support for .def files as import libraries.
wrc: Use the correct error function for syntax errors.
server: Print signal names in traces.
ntdll: Move update_hybrid_metadata() to the ARM64EC backend.
Alfred Agrell (2):
dsound/tests: Add nonlooping SetNotificationPositions test.
dsound: Fix SetNotificationPositions at end of nonlooping buffer.
Alistair Leslie-Hughes (3):
include: Add _WIN32_WINNT_ version defines.
include: Add DB_VARNUMERIC struct.
include: Add SQL_C_TCHAR define.
Andrew Nguyen (1):
msxml3: Accept the domdoc MaxElementDepth property.
Anton Baskanov (2):
dplayx/tests: Test client side of GetMessageQueue() separately.
dplayx: Support DPMESSAGEQUEUE_RECEIVE in GetMessageQueue().
Billy Laws (5):
msi: Dynamically determine supported package architectures.
ntdll: Test more ARM64 brk instruction exception behaviour.
ntdll: Fix reported exception code for some brk immediates.
ntdll: Add arm64ec_get_module_metadata helper.
ntdll: Force redirect all ARM64EC indirect calls until the JIT is ready.
Brendan McGrath (2):
mfmediaengine: Implement the Simple Video Renderer.
mfmediaengine: Fallback to sample copy if scaling is required.
Brendan Shanks (3):
include: Use %fs/%gs prefixes instead of a separate .byte 0x64/.byte 0x65.
ntdll: Use %fs/%gs prefixes instead of a separate .byte 0x64/.byte 0x65.
ntdll: Use sched_getcpu instead of the getcpu syscall.
Conor McCarthy (12):
winegstreamer: Handle null transform in video IMediaObject::Flush().
winegstreamer: Handle null transform in video IMFTransform::ProcessMessage() DRAIN.
winegstreamer: Handle null transform in video IMFTransform::ProcessMessage() FLUSH.
winegstreamer: Handle null transform in WMA IMediaObject::Flush().
winegstreamer: Return the result code from media_source_Pause().
mf/tests: Add tests for shutting down a media source used in a session.
mf: Handle media source EndGetEvent() failure due to shutdown.
mf: Handle media source BeginGetEvent() failure due to shutdown.
mf: Handle media source event subscription failure due to source shutdown.
mf: Handle media source Start() failure due to source shutdown.
mf: Introduce IMFMediaShutdownNotify for notification of media source shutdown.
winegstreamer: Send media source shutdown notification via IMFMediaShutdownNotify.
Daniel Lehman (5):
msvcr120/tests: Add tests for _fsopen.
msvcp120/tests: Add tests for _Fiopen.
ucrtbase/tests: Add tests for _fsopen.
msvcp140/tests: Add tests for _Fiopen.
msvcp140: Call into fopen from _Fiopen.
Dmitry Timoshkov (1):
ntdll: Add NtFlushBuffersFileEx() semi-stub.
Dāvis Mosāns (1):
ntdll/tests: Unify APC test functions.
Elizabeth Figura (14):
wined3d: Use wined3d_texture_download_from_texture() even if the dst texture map binding is not valid.
wined3d: Beginnings of an HLSL FFP pixel shader implementation.
wined3d: Implement pretransformed varyings in the HLSL FFP pipeline.
wined3d: Take the depth buffer into account for HLSL pretransformed draws.
wined3d: Implement lighting in the HLSL FFP pipeline.
wined3d: Implement vertex fog in the HLSL FFP pipeline.
quartz/dsoundrender: Always treat samples as continuous if they are late or out of order.
quartz/dsoundrender: Remove the unused "tStop" argument to send_sample_data().
quartz/dsoundrender: Play non-discontinuous samples consecutively.
quartz/tests: Test whether the DirectSound renderer provides a position.
quartz/dsoundrender: Do not provide time to the passthrough.
quartz/dsoundrender: Do not ignore preroll samples.
quartz/dsoundrender: Queue samples and render them on a separate thread.
quartz/dsoundrender: Use send_sample_data() to fill the buffer with silence at EOS.
Eric Pouech (11):
kernel32: Add tests for checking the exit code of default ctrl-c handlers.
kernelbase: Fix exit code for default ctrl-c handler.
ntdll/tests: Fix format warning with clang.
configure: Properly test clang for dwarf support.
winegcc: Remap build-id linker option for clang.
configure: Use -Wl,--build-id unconditionally if requested.
configure: Don't add -Wl,--build-id linker option to CFLAGS.
dbghelp: Extend search for buildid in system directories.
dbghelp: Search debug info with buildid for RSDS debug entry w/o filenames.
server: Ensure in pending delete on close that path to unlink are unique.
winedbg: Add support for dynamic debug channel.
Esme Povirk (1):
mscoree: Update Wine Mono to 9.4.0.
Evan Tang (2):
kernelbase: Properly return 0 from EnumSystemFirmwareTable on error.
kernelbase: Add test for EnumSystemFirmwareTables on missing provider.
Fabian Maurer (8):
dplayx: Add a few more locks (Coverity).
comctl32/tests: Add tests for radio button WM_SETFOCUS.
comctl32: Send parent BN_CLICKED notification when a radio button get focused.
user32/tests: Add tests for radio button WM_SETFOCUS.
user32: Send parent BN_CLICKED notification when a radio button get focused.
oleaut32: Make OleCreateFontIndirect return error if font name is missing.
oleaut32: Remove unneeded null checks.
d3dx9: Remove superfluous null check (Coverity).
Gabriel Ivăncescu (38):
mshtml: Move htmlcomment.c contents into htmltextnode.c.
mshtml: Add an internal IWineHTMLCharacterData interface and forward text node methods to it.
mshtml: Expose the props from the IWineHTMLCharacterData interface for CharacterDataPrototype.
mshtml: Don't expose toString from text nodes in IE9+ mode.
mshtml: Expose IHTMLCommentElement2 interface for comment elements.
mshtml: Don't expose 'atomic' prop from comment nodes in IE9+ modes.
mshtml: Don't expose element props from comment nodes in IE9+ modes.
mshtml: Implement get_data for legacy DOCTYPE comment elements.
mshtml: Expose ie9_char as char for KeyboardEvent.
mshtml: Make PageTransitionEvents only available in IE11 mode.
mshtml: Make ProgressEvent constructor only available in IE10+ modes.
mshtml: Expose respective props from Element prototype.
mshtml: Don't expose fireEvent from elements in IE11 mode.
mshtml: Don't expose onmspointerhover from elements in IE11 mode.
mshtml: Move toString from HTMLElement to HTMLAnchorElement or HTMLAreaElement in IE9+ modes.
mshtml: Move hasAttributes from HTMLElement to HTMLDOMNode in IE9+ modes.
mshtml: Move normalize from HTMLElement to HTMLDOMNode in IE9+ modes.
mshtml: Don't expose onpage from elements in IE9+ modes.
mshtml: Don't expose expression methods from elements in IE9+ modes.
mshtml: Don't expose some props from elements in IE10+ modes.
mshtml: Don't expose some props from elements in IE11 mode.
mshtml: Move HTMLTableDataCellElement prototype props to the HTMLTableCellElement prototype.
mshtml: Add IHTMLDOMNode2 in every mode in node's init_dispex_info.
mshtml: Get rid of HTMLELEMENT_TIDS.
mshtml: Move HTMLDocument prototype props to the Document prototype.
mshtml: Use DocumentPrototype as the document's prototype for modes prior to IE11.
mshtml: Expose the right props from document fragments.
mshtml: Don't expose some props from document prototype depending on mode.
mshtml/tests: Add more tests for the style aliased prop names.
mshtml: Expose respective props from MSCSSPropertiesPrototype.
mshtml: Prefer builtins for style aliases that have the same name.
mshtml: Move 'filter' prop to MSCSSPropertiesPrototype in IE9 mode.
mshtml: Don't expose 'behavior' prop from styles in IE11 mode.
mshtml: Don't expose the clip* props from style declaration or properties in IE9+ modes.
mshtml: Don't expose the *Expression methods from styles in IE9+ modes.
mshtml: Don't expose toString from styles in IE9+ modes.
mshtml: Expose respective props from StyleSheetPrototype.
mshtml: Get rid of unused HTMLElement_toString_dispids.
Georg Lehmann (1):
winevulkan: Update to VK spec version 1.4.303.
Gerald Pfeifer (3):
win32u: Don't use bool as member of a union type.
msi: Use mybool instead of bool as variable name.
winhlp32: Drop unused member of struct lexret.
Giovanni Mascellani (2):
user32/tests: Check that message-only windows ignore WS_EX_TOPMOST.
win32u/window: Ignore changing WS_EX_TOPMOST for message-only windows.
Hans Leidekker (2):
msi: Assume PLATFORM_INTEL if the template property is missing.
bcrypt: Trace returned handles.
Haoyang Chen (1):
gdiplus: Use the FormatID of the source image when cloning.
Henri Verbeet (3):
d3dcompiler/tests: Clean up tests fixed by vkd3d merges.
d3d10_1/tests: Clean up tests fixed by vkd3d merges.
d3dx11/tests: Clean up tests fixed by vkd3d merges.
Jacek Caban (18):
msvcrt/tests: Silence -Wformat-security Clang warning in test_snprintf.
include: Apply LONG_PTR format hack only to Wine build.
include: Use LONG_PTR format hack on Clang in MSVC mode.
include: Use format attribute on Clang in MSVC mode.
d3d11/tests: Always use a format string in winetest_push_context calls.
ddraw/tests: Always use a format string in winetest_push_context calls.
imagehlp: Cast AddressOfData to size_t in debug traces.
mmdevapi/tests: Use %u format for unsigned int arguments.
include: Enable format attributes for debug traces in Clang MSVC mode.
gdiplus: Cast enums to unsigned type when validating its value.
jscript: Avoid unused variable warning.
msi: Avoid unused variable warning.
msxml: Avoid unused variable warning.
vbscript: Avoid unused variable warning.
wbemprox: Avoid unused variable warning.
include: Use inline assembly on Clang MSVC mode in exception helpers.
jscript: Move property allocation to update_external_prop.
jscript: Add support for deleting host properties.
Louis Lenders (1):
msvcp140: Add a version resource.
Marc-Aurel Zent (8):
ntdll: Implement NtGetCurrentProcessorNumber for macOS on x86_64.
server: Do not suspend mach task in read_process_memory.
server: Use mach_vm_read_overwrite in read_process_memory.
server: Do not suspend mach task in get_selector_entry.
server: Use mach_vm_read_overwrite in get_selector_entry.
server: Do not suspend mach task in write_process_memory.
server: Do not page-align address in write_process_memory.
server: Work around macOS W^X limitations in write_process_memory.
Matteo Bruni (5):
d3dcompiler/tests: Clean up further tests fixed by vkd3d merges.
d3dx9_43: Generate an import library.
d3dx9/tests: Add d3dx9_43 tests.
d3dx9/tests: Test the 'double' HLSL data type.
d3dcompiler/tests: Test the 'double' HLSL data type.
Mohamad Al-Jaf (5):
windows.networking.connectivity: Add stub dll.
windows.networking.connectivity: Add INetworkInformationStatics stub interface.
windows.networking.connectivity: Implement INetworkInformationStatics::GetInternetConnectionProfile().
windows.networking.connectivity/tests: Add some INetworkInformationStatics::GetInternetConnectionProfile() tests.
windows.networking.connectivity: Implement IConnectionProfile::GetNetworkConnectivityLevel().
Nikolay Sivov (6):
d2d1/effect: Improve handling of blob properties.
windowscodecs/tests: Use string literals in the metadata tests.
windowscodecs/tests: Add some tests for CreateMetadataReader().
windowscodecs/tests: Add a basic test for CreateComponentEnumerator().
windowscodecs/metadata: Add a helper to iterate over components.
windowscodecs: Implement CreateMetadataReader().
Orin Varley (3):
msxml3/tests: Add indentation test.
comctl32/tests: Add tests for a small number of items but big size to the combobox dropdown size tests.
comctl32: Make CBS_NOINTEGRALHEIGHT only set minimum combobox height.
Paul Gofman (1):
explorer: Prevent apps from showing Wine specific shell tray window with no icons.
Piotr Caban (43):
include: Add ___lc_codepage_func() declaration.
msvcp60: Improve wcsrtombs implementation.
msvcp60/tests: Add wcsrtombs tests.
msvcrt: Call _wmkdir in _mkdir function.
msvcrt: Call _wrmdir in _rmdir function.
msvcrt: Call _wchdir in _chdir function.
msvcrt: Call _wgetcwd in _getcwd function.
msvcrt: Call _wgetdcwd in _getdcwd function.
msvcrt: Call _wfullpath in _fullpath function.
ole32: Fix unsupported vector elements detection in PropertyStorage_ReadProperty.
ole32/tests: Add FMTID_UserDefinedProperties property storage tests.
ole32: Read property storage section from correct location.
ole32/tests: Add more FMTID_UserDefinedProperties property storage tests.
msvcrt: Prepare _fsopen to handle UTF-8 strings.
msvcrt: Call _wunlink in _unlink function.
msvcrt: Call _waccess in _access function.
msvcrt: Call _wchmod in _chmod function.
msvcrt: Call _unlink in remove function.
msvcrt: Call _wunlink in _wremove function.
msvcrt: Prepare _mktemp to handle UTF-8 strings.
msvcrt: Prepare _mktemp_s to handle UTF-8 strings.
msvcrt: Call _wstat64 in _stat64 function.
msvcrt: Call _wrename in rename function.
msvcrt: Call _wtempnam in _tempnam function.
msvcrt: Don't return success on GetFullPathName error in _wsearchenv_s.
msvcrt: Prepare _searchenv_s() for utf-8 encoded filename.
include: Cleanup corecrt_io.h file and use it in io.h.
msvcrt: Call _wfindfirst32 in _findfirst32 function.
msvcrt: Call _wfindnext32 in _findnext32 function.
msvcrt: Call _wfindfirst64 in _findfirst64 function.
msvcrt: Call _wfindnext64 in _findnext64 function.
msvcrt: Call _wfindfirst64i32 in _findfirst64i32 function.
msvcrt: Call _wfindnext64i32 in _findnext64i32 function.
msvcrt: Add putenv() utf-8 tests.
msvcrt: Return error on NULL path parameter in _wsopen_dispatch.
msvcrt: Prepare _sopen_dispatch to handle utf-8 encoded path.
msvcrt: Prepare freopen to handle utf-8 encoded path.
msvcrt: Prepare _loaddll to handle utf-8 encoded path.
msvcrt: Prepare _spawnl to handle utf-8 encoded arguments.
msvcrt: Prepare _execle to handle utf-8 encoded arguments.
msvcrt: Prepare remaining process creation functions to handle utf-8 encoded arguments.
ucrtbase: Enable utf8 support.
ucrtbase: Always use CP_ACP when converting environment block.
Roman Pišl (1):
kernel32: Use a proper import for HeapFree.
Rémi Bernon (45):
winebus: Ignore reports with unexpected IDs.
winex11: Read _NET_SUPPORTED atom list on process attach.
winex11: Only request the supported _NET_WM_STATE atoms.
winevulkan: Add missing wine_vkGetPhysicalDeviceSurfaceFormatsKHR manual wrapper.
win32u: Use PFN_* typedefs for vulkan function pointers.
winevulkan: Get rid of the instance/device funcs structs.
winevulkan: Generate ALL_VK_(DEVICE|INSTANCE)_FUNCS in wine/vulkan.h.
winevulkan: Move vulkan_client_object header to wine/vulkan_driver.h.
winevulkan: Name wine_instance parameters and variables more consistently.
winevulkan: Hoist physical device array and client instance handle.
winevulkan: Introduce a new vulkan_instance base structure.
winevulkan: Introduce a new vulkan_physical_device base structure.
winevulkan: Name wine_device parameters and variables more consistently.
winevulkan: Introduce a new vulkan_device base structure.
winevulkan: Restore some wine_*_from_handle helpers.
winevulkan: Introduce a new vulkan_queue base structure.
winevulkan: Introduce a new vulkan_surface base structure.
winevulkan: Introduce a new vulkan_swapchain base structure.
winevulkan: Use a vulkan_object header for other wrappers.
winevulkan: Use the result to decide if creation failed.
winevulkan: Introduce a new vulkan_object_init helper.
winevulkan: Fix incorrect client queue pointers.
winevulkan: Avoid changing client command buffer pointer.
winevulkan: Get rid of unnecessary *to_handle helpers.
winevulkan: Use the vulkan object as the wrapper tree node.
winevulkan: Keep the host function pointers in devices and instances.
win32u: Move surface and swapchain wrappers from winevulkan.
winex11: Don't update Win32 window position for offscreen windows.
winex11: Do not use desired_state when computing state updates.
winex11: Set a non-transparent window background pixel color.
win32u: Let fullscreen windows cover entire monitors, keeping aspect ratio.
winex11: Use bilinear filtering in xrender_blit.
quartz/dsoundrender: Rename "This" to "filter".
quartz/dsoundrender: Add missing static qualifier to IDispatch methods.
quartz/dsoundrender: Make brace placement consistent.
quartz/dsoundrender: Use a consistent style for method names.
quartz/dsoundrender: Make trace messages more consistent.
win32u: Add a force parameter to lock_display_devices.
win32u: Implement update_display_cache with lock_display_devices.
win32u: Remove recursive lock_display_devices calls.
win32u: Hold the display_lock when checking the cache update time.
mfmediaengine: Implement D3D-aware video frame sink.
windows.networking.connectivity: Use %I64d instead of %llu.
winex11: Move the _NET_SUPPORTED information to the thread data.
winex11: Listen to root window _NET_SUPPORTED property changes.
Santino Mazza (2):
mmdevapi/tests: Test for IAudioClockAdjustment.
mmdevapi: Do not modify buffer size after sample rate change.
Sven Baars (1):
win32u: Allow unsetting the user driver.
Tim Clem (3):
explorer: Apply a default admin token when running for the desktop.
Revert "win32u: Create explorer with the thread effective access token.".
kernelbase: Improve logging of information classes in GetTokenInformation.
Tingzhong Luo (3):
dwrite/tests: Add a test for DrawGlyphRun() bounds.
dwrite/gdiinterop: Always return valid bounds from DrawGlyphRun on success.
dwrite/gdiinterop: Apply dpi scaling to the whole target transform.
Torge Matthies (2):
advapi32/tests: Add test for CurrentControlSet link.
loader: Add Default, Failed, and LastKnownGood values to HKLM\System\Select.
Vibhav Pant (15):
winebth.sys: Add base winebth.sys driver.
winebth.sys: Add a basic unixlib stub using DBus.
winebth.sys: Create radio PDOs from the list of org.bluez.Adapter1 objects on BlueZ.
winebth.sys: Derive a unique hardware ID for radio PDOs from their corresponding BlueZ object path.
winebth.sys: Register and enable BTHPORT_DEVICE and BLUETOOTH_RADIO interfaces for radio PDOs.
bluetoothapis/tests: Fix potential test failure from memcmp'ing uninitialized bytes.
bluetoothapis/tests: Add tests for BluetoothFindFirstRadio.
bluetoothapis/tests: Add tests for BluetoothFindNextRadio.
bluetoothapis/tests: Add tests for BluetoothFindRadioClose.
bluetoothapis: Implement BluetoothFindFirstRadio, BluetoothFindNextRadio, BluetoothFindRadioClose.
winebth.sys: Set radio PDO properties from the device's corresponding org.bluez.Adapter1 object properties.
winebth.sys: Create new radio PDOs on receiving InterfacesAdded for objects that implement org.bluez.Adapter1.
winebth.sys: Remove the corresponding radio PDO on receiving InterfacesRemoved for a org.bluez.Adapter1 object.
winebth.sys: Update radio PDO properties on receiving PropertiesChanged for an org.bluez.Adapter1 object.
winebth.sys: Implement IOCTL_BTH_GET_LOCAL_INFO.
Vijay Kiran Kamuju (2):
user32: Add PackTouchHitTestingProximityEvaluation stub.
user32: Add EvaluateProximityToRect stub.
Vladislav Timonin (1):
comctl32/edit: Scroll caret on Ctrl+A.
Zhiyi Zhang (2):
appwiz.cpl: Fix wine_get_version() function pointer check.
uxtheme: Check DrawThemeEdge() content rectangle pointer.
Ziqing Hui (5):
qasf: Return S_FALSE for flushing in dmo_wrapper_sink_Receive.
qasf/tests: Test dmo_wrapper_sink_Receive if downstream fail to receive.
qasf: Return failure in dmo_wrapper_sink_Receive if process_output fails.
qasf/tests: Add more tests for dmo_wrapper_sink_Receive.
qasf: Correctly return failure in process_output.
```
The Wine development release 9.22 is now available.
What's new in this release:
- Support for display mode virtualization.
- Locale data updated to Unicode CLDR 46.
- More support for network sessions in DirectPlay.
- Wayland driver enabled in default configuration.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.22.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-9.22/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.22 (total 19):
- #42606 wine doesn't *fully* respect locale settings in some corner cases
- #52105 Cygwin setup hangs (handle to \Device\NamedPipe\ used as the RootDirectory for NtCreateNamedPipeFile)
- #53019 MusicBee: inconsistent CJK/non-Latin support with Tahoma, no support on any other font.
- #53321 snakeqr: Unhandled page fault on write access in A_SHAFinal (needs NtdllDefWindowProc_A)
- #56466 Dark souls remastered crashing with winewayland when trying to open "pc settings" in game
- #56790 wine binds dedicatedServer.exe to "lo" adapter
- #56833 Installer of LabOne 24.04 stops with error " ... setup wizard ended prematurely ..."
- #57072 Window is flashing when painting transluent effects
- #57277 Wine 9.19 fails to compile
- #57290 String Substitution not working
- #57325 MS Office 2007 and MS Office 2013 setup fails
- #57334 FL Studio - huge graphical glitch when moving windows inside the app
- #57341 Heidisql 7.0 crashes
- #57370 The Steam systray icon does not respond to mouse clicks.
- #57382 World Of Warcraft no longer start
- #57388 Major perf loss with blocking ReadFile() & OVERLAPPED
- #57391 FSCTL_DISMOUNT_VOLUME does not work on drives with spaces in path
- #57407 Windows Movie Maker hangs in Win7 mode (regression)
- #57423 Active window no longer receives keyboard input after losing and regaining focus (only in virtual desktop)
### Changes since 9.21:
```
Agustin Principe (1):
d2d1: Accept DXGI_FORMAT_R8G8B8A8_UNORM format for WIC targets.
Alexandre Julliard (63):
user32: Add an ANSI version of the desktop window proc.
user32: Add an ANSI version of the icon title window proc.
user32: Add an ANSI version of the menu window proc.
user32: All builtin window procs are now dual A/W.
ntdll/tests: Use the function pointer for NtWow64QueryInformationProcess64.
server: Fix a thread reference leak.
ntdll: Add support for the builtin window procs table.
user32: Use the ntdll definitions for builtin windows procs.
user32: Use the ntdll function table for builtin window procs.
user32: Make the builtin window procs table layout compatible with Windows.
ntdll/tests: Add tests for the builtin window procs table.
user32/tests: Add tests for ntdll builtin window procs.
user32/tests: Remove some obsolete winproc tests.
kernel32/tests: Add some tests for EnumSystemFirmwareTables().
ntdll: Implement BIOS table enumeration.
kernelbase: Implement EnumSystemFirmwareTables().
tools: Download all Unicode data files before generating anything.
nls: Update locale data to CLDR version 46.
mpg123: Import upstream release 1.32.9.
fluidsynth: Import upstream release 2.4.0.
rundll32: Don't bother cleaning up at process exit.
rundll32: Use crt allocation functions.
rundll32: Rewrite command line parsing.
rundll32: Restart itself if the dll is for a different architecture.
ntdll: Always return 0 length on failure in SystemFirmwareTableInformation.
ntdll/tests: Fix a test failure on 64-bit Windows.
server: Print a warning if page size isn't 4k.
server: Move the generated part of request.h to a separate header.
server: Move the generated part of trace.c to a separate header.
server: Simplify updating the protocol version.
server: Use an explicit union instead of a typedef for APC calls.
server: Use an explicit union instead of a typedef for APC results.
server: Use an explicit struct instead of a typedef for user APCs.
server: Use an explicit struct instead of a typedef for async I/O data.
server: Use an explicit union instead of a typedef for message data.
server: Use an explicit union instead of a typedef for hardware input.
server: Use an explicit union instead of a typedef for debug event data.
server: Use an explicit union instead of a typedef for IRP params.
server: Use an explicit union instead of a typedef for select operations.
win32u: Implement NtUserBuildPropList().
win32u: Implement NtUserBuildNameList().
user32: Move PostQuitMessage() implementation to win32u.
user32: Move support for posting a DDE message to win32u.
user32: Don't use server data types in clipboard.c.
win32u: Implement NtUserQueryWindow().
server: Use an explicit struct instead of a typedef for generic access mappings.
server: Use an explicit struct instead of a typedef for process startup info.
server: Use an explicit struct instead of a typedef for PE image info.
server: Use an explicit struct instead of a typedef for window property data.
server: Use an explicit struct instead of a typedef for cursor positions.
win32u: Implement the remaining arguments of NtUserBuildHwndList().
user32: Reimplement the enum window functions using NtUserBuildHwndList().
user32: Reimplement GetDlgItem() using NtUserBuildHwndList().
user32: Reimplement WIN_ListChildren() using NtUserBuildHwndList().
user32: Move GetLastActivePopup() implementation to win32u.
user32: Move GetLastInputInfo() implementation to win32u.
server: Add a new request to find sibling windows by class name.
win32u: Reimplement list_window_children() using NtUserBuildHwndList().
server: Use an explicit union instead of a typedef for TCP connections.
server: Use an explicit union instead of a typedef for UDP endpoints.
server: Use an explicit struct instead of a typedef for object locators.
server: Use an explicit struct instead of a typedef for register contexts.
server: Use an explicit struct instead of a typedef for rectangles.
Alistair Leslie-Hughes (1):
user32: Implement GetDpiAwarenessContextForProcess.
Anton Baskanov (27):
dplayx/tests: Add missing pragma pack directives.
dplayx/tests: Check that groups from SUPERENUMPLAYERSREPLY are added to the session.
dplayx: Add group to the parent group in DP_CreateGroup().
dplayx: Set group data in DP_CreateGroup().
dplayx: Return HRESULT from DP_CreateGroup().
dplayx: Inform the SP about group creation in DP_CreateGroup().
dplayx: Add groups from SUPERENUMPLAYERSREPLY to the session.
dplayx: Respect enumeration flags in EnumGroups().
dplayx: Always set the data size in GetGroupData().
dplayx: Factor out a function for adding player to a group.
dplayx: Add group players from SUPERENUMPLAYERSREPLY to the group.
dplayx/tests: Test client side of AddPlayerToGroup() separately.
dplayx: Queue DPSYS_ADDPLAYERTOGROUP in DP_AddPlayerToGroup().
dplayx: Send ADDPLAYERTOGROUP in AddPlayerToGroup().
dplayx/tests: Test that group data is updated from GROUPDATACHANGED.
dplayx: Enter the critical section when accessing the group list.
dplayx: Handle GROUPDATACHANGED, update the group data and queue DPSYS_SETPLAYERORGROUPDATA.
dplayx: Factor out a function for reading service providers.
dplayx: Convert connection name to UNICODE when enumerating through UNICODE interface.
dplayx/tests: Test UNICODE version of EnumSessions().
dplayx: Convert session name and password to UNICODE when enumerating through UNICODE interface.
dplayx: Forward IDirectPlay3A to IDirectPlay4A.
dplayx: Cache connections.
dplayx: Read connection name from descriptionW and descriptionA when available.
dplayx: Use DP_GetRegValueW() to read SP GUID.
dplayx: Reimplement DirectPlayEnumerateAW() using DP_GetConnections().
dplayx: Reimplement DP_LoadSP() using DP_GetConnections().
Aurimas Fišeras (1):
po: Update Lithuanian translation.
Bernhard Übelacker (4):
msvcrt: Do not create a separate heap in newer msvcrt versions.
kernel32/tests: Remove todo_wine from now succeeding heap test.
include: Add ucrt _sprintf_l declaration.
wineps.drv: Use locale aware variants _sprintf_l and _sscanf_l (ASan).
Billy Laws (1):
msi: Also set x64 properties for arm64 hosts.
Biswapriyo Nath (1):
include: Add UI Automation Annotation Type ID definitions.
Brendan McGrath (2):
mf: Retry PROCESSINPUTNOTIFY if TRANSFORM_TYPE_NOT_SET is returned.
mf: Send MEError when IMFStreamSink_ProcessSample fails.
Brendan Shanks (1):
Add .gitattributes file to mark generated files.
Charlotte Pabst (2):
jscript: Handle star and opt operators while matching global regex properly.
jscript/tests: Add tests for star and opt operators in global regex.
Connor McAdams (6):
d3dx9/tests: Include ddraw.h in surface.c for DDS header flag definitions.
d3dx9: Don't attempt to save palettized surfaces in D3DXSaveSurfaceToFileInMemory().
d3dx9/tests: Add more tests for saving surfaces as DDS files.
d3dx9: Improve save_dds_surface_to_memory().
d3dx9: Set the DDSCAPS_ALPHA flag when saving DDS files with a pixel format containing an alpha channel.
d3dx9: Add support for saving paletted surfaces to DDS files.
Daniel Lehman (2):
kernel32/tests: Add some tests for Thai and Mongolian codes.
nls: Set alpha bit on some Thai and Mongolian codes.
Elias Norberg (4):
wintrust: Implement CryptCATAdminAcquireContext2().
wintrust/tests: Add CryptCATAdminAcquireContext2() tests.
wintrust: Implement CryptCATAdminCalcHashFromFileHandle2().
wintrust/tests: Add CryptCATAdminCalcHashFromFileHandle2() tests.
Elizabeth Figura (17):
winevulkan: Use extend() instead of passing two separate roots to functions.
winevulkan: Use the correct logger method.
wined3d: Do not clamp fog in the VS.
wined3d: Calculate the texture matrix solely from the vertex declaration.
wined3d: Rewrite the comment in compute_texture_matrix().
wined3d: Clear caps to zero in shader caps query functions.
wined3d: Initialize max_blend_stages in the SPIRV fragment pipe.
wined3d: Move shader_trace().
wined3d: Move shader parsing to shader_set_function().
wined3d: Create stub FFP pixel shaders.
wined3d: Create stub FFP vertex shaders.
wined3d: Account for HLSL FFP shaders in find_ps_compile_args().
wined3d: Allow using the HLSL FFP replacement with GL.
wined3d: Use the FFP HLSL pipeline for pretransformed draws as well.
wined3d: Beginnings of an HLSL FFP vertex shader implementation.
include: Add dxvahd.idl.
dxva2: Stub DXVAHD_CreateDevice().
Eric Pouech (17):
kernel32/tests: Don't hardcode page size in buffer size.
advapi32/tests: Fix typo in manifest constant.
advapi32: Test some other cases of process access rights mapping.
server: Amend process rights mapping.
cmd/tests: Add tests about substring substitution in variable expansion.
cmd: Fix substring substitution in variable expansion.
cmd: Implement 'touch' equivalent in COPY builtin.
cmd/tests: Add test about IF EXIST.
cmd: Modifiers in tilde variable expansion are case insensitive.
cmd: Fix 'IF EXIST DIRECTORY' test condition evaluation.
dbghelp: Don't try to load PDB for a RSDS debug directory in .buildid section.
dbghelp: Only WARN on stripped PE images.
dbghelp/tests: Improve SymSrvGetFileIndexInfo tests.
dbghelp: Fill-in data in SymSrvGetFileIndexIndo if BAD_EXE_FORMAT.
dbghelp/tests: Add retry wrapper around SymRefreshModuleList().
dbghelp/tests: Add tests for SymRefreshModuleList().
dbghelp: Implement SymRefreshModuleList().
Etaash Mathamsetty (1):
explorer: Enable the Wayland driver.
Fabian Maurer (9):
net/tests: Add test for stopping non existing service.
net: Correct error code for stopping non existing service.
msi/tests: Add more tests for MsiSummaryInfoPersist.
msi: Make MsiGetSummaryInformationW open database as direct instead of transacted.
ieframe: Add IERefreshElevationPolicy stub.
comctl32/listbox: Close a few leaked window handles.
comctl32/combo: Add tests for keypresses showing search functionality.
comctl32/listbox: Add tests for keypresses showing search functionality.
msxml3: Undo removal of xmlThrDefTreeIndentString.
Floris Renaud (1):
po: Update Dutch translation.
Gabriel Ivăncescu (18):
mshtml: Reset builtin function props to their default values when deleted.
mshtml: Throw invalid action for IE8 window prop deletion.
jscript: Add basic semi-stub implementation of GetMemberProperties.
mshtml: Use BSTR to store global prop's name.
mshtml: Override window's element prop directly rather than using GLOBAL_DISPEXVAR.
mshtml: Check if window global prop still exists before returning its id.
mshtml: Forward deletion for GLOBAL_SCRIPTVAR to the script's object.
jscript: Delete external props before redefining them.
jscript: Make most builtin global objects configurable.
mshtml: Use actual referenced prop flags for window script props.
mshtml: Don't use cycle collection for nsChannel.
mshtml: Enumerate all own builtin props from host object's NextProperty.
mshtml/tests: Add initial tests for prototype chain props.
mshtml: Expose ownerDocument from NodePrototype.
mshtml: Don't expose removeNode from NodePrototype.
mshtml: Don't expose replaceNode from NodePrototype.
mshtml: Don't expose swapNode from NodePrototype.
mshtml: Set the name of the non-function constructors to the same as the object.
Georg Lehmann (1):
winevulkan: Update to VK spec version 1.3.302.
Gerald Pfeifer (3):
dpwsockx: Don't use true as a variable name.
msi: Don't use bool as a variable name.
jscript: Don't use bool as a variable name.
Hans Leidekker (3):
wininet: Accept UTC as the equivalent of GMT.
wininet: Use InternetTimeToSystemTimeW() to convert header values.
iphlpapi: Sort adapters by route metric in GetAdaptersAddresses().
Haoyang Chen (5):
winhttp/tests: Add some tests for WinHttpRequestOption_SslErrorIgnoreFlags in IWinHttpRequest_{put,get}_Option.
winhttp: Add support WinHttpRequestOption_SslErrorIgnoreFlags in IWinHttpRequest_put_Option.
winhttp: Add support WinHttpRequestOption_SslErrorIgnoreFlags in IWinHttpRequest_get_Option.
winex11: Fix URL encoding for non-ASCII characters.
wined3d: Fix a memory leak.
Jacek Caban (6):
configure: Use -ffunction-sections for PE targets.
winegcc: Pass -fms-hotpatch to the linker.
configure: Use -fms-hotpatch when available.
configure: Preserve original CFLAGS when adding LLVM flags.
ntdll: Use proper format string for ULONG type.
windowscodecs/tests: Always use a format string in winetest_push_context calls.
Jinoh Kang (2):
server: Don't crash when opening null path with a console handle as RootDirectory.
server: Don't crash when opening null path with a console server as RootDirectory.
John Chadwick (2):
wintab32: Align WTPACKET for 32/64-bit archs.
winex11: Remove stub tablet_get_packet wow64 thunk.
Marc-Aurel Zent (5):
winemac.drv: Allow symbol vkeys to match on Mac virtual key codes.
winemac.drv: Add Mac virtual key code information to the German layout.
winemac.drv: Add additional French symbol vkeys mappings.
include: Add Japanese IME virtual key codes to kbd.h.
winex11: Include kbd.h instead of ime.h.
Matteo Bruni (1):
wined3d: Allow reusing current GL context without a current RT.
Michael Müller (2):
ntdll: Implement HashLinks field in LDR module data.
ntdll: Use HashLinks when searching for a dll using the basename.
Mohamad Al-Jaf (3):
icmui: Add stub dll.
icmui: Add SetupColorMatchingW() stub.
icmui/tests: Add some SetupColorMatchingW() tests.
Nikolay Sivov (4):
dwrite/layout: Skip to the next typography range when current one has no features.
comctl32/listview: Initialize hot cursor handle.
comctl32/listview: Send LVN_HOTTRACK in response to mouse moves.
d2d1/tests: Add some tests for WIC target formats.
Paul Gofman (4):
kernel32/tests: Factor out is_old_loader_struct().
kernel32/tests: Add tests for module hash links.
server: Don't update cursor pos in set_window_pos() if window wasn't moved.
opengl: Avoid infinite recursion in bezier_approximate() in case of degraded curve.
Piotr Caban (2):
services: Sort services start order by start type.
wine.inf: Set MountMgr service start option to SERVICE_BOOT_START.
Pétur Runólfsson (1):
wtsapi32: Handle WTSSessionInfo class in WTSQuerySessionInformationW().
Rémi Bernon (63):
d3d9/tests: Avoid creating visible windows concurrently.
d3d9/tests: Use static class for the dummy window.
d3d8/tests: Avoid creating visible windows concurrently.
d3d8/tests: Use static class for the dummy window.
wined3d: Cast format_id when comparing it to the last format index.
winewayland: Fix surface scaling with HiDPI compositor.
win32u: Offset the new display modes relative to the primary source.
server: Use the monitor infos to map points from raw to virt.
win32u: Compute monitors raw DPI from the physical / current mode ratio.
win32u: Introduce a new registry setting to emulate modesetting.
desk.cpl: Expose the modesetting emulation registry setting.
winex11: Avoid requesting unnecessary _NET_WM_STATE changes.
winex11: Avoid requesting unnecessary window config changes.
winex11: Avoid updating _NET_WM_STATE on iconic windows.
winex11: Simplify the control flow in WM_STATE handlers.
winex11: Simplify the control flow in ConfigureNotify handlers.
winex11: Reset embedded window position to 0x0 before docking it.
winex11: Reset the window relative position when it gets reparented.
winex11: Introduce a new host_window_send_configure_events helper.
winex11: Retrieve the HWND for the host window's child window.
winex11: Avoid overriding previously received ConfigureNotify events.
winex11: Generate ConfigureNotify events for the children tree.
winex11: Always generate ConfigureNotify events for embedded windows.
winex11: Ignore focus changes during WM_STATE transitions.
winex11: Use the new window state tracker to get _NET_WM_STATE value.
winex11: Use the new window state tracker to get WM_STATE value.
winex11: Introduce a new window_update_client_state helper.
winex11: Introduce a new window_update_client_config helper.
winebus: Always return success from PID effect control.
winebus: Enable all PID effect types for wheel devices.
winebus: Build HID report descriptors on device creation.
winebus: Lookup device HID usage and usage page on the PE side.
winebus: Count HID buttons and pass it to is_hidraw_enabled.
winebus: Enable hidraw by default for various HOTAS controllers.
dinput: Assume that clipping the cursor uses the requested rectangle.
dinput: Only call SetCursorPos if ClipCursor fails.
winex11: Listen to PropertyNotify events on the virtual desktop window.
winex11: Don't expect WM_STATE events on override-redirect windows.
winex11: Wait for pending _NET_WM_STATE before updating the client state.
winex11: Wait for pending ConfigureNotify before updating the client state.
winex11: Update the window client config on window state changes.
winex11: Request window state updates asynchronously.
d3d9/tests: Flush events after minimizing and restoring focus window.
evr: Use D3DCREATE_MULTITHREADED device creation flag.
winex11: Use the state tracker to decide if changes can be made directly.
winex11: Update other window state properties within window_set_wm_state.
winex11: Call window_set_wm_state when unmapping embedded windows.
winex11: Get rid of the now unnecessary iconic field.
winex11: Get rid of the now unnecessary mapped field.
kernel32/tests: Check for the _SW_INVALID bit presence only.
gitlab: Wait for the fvwm process to start.
win32u: Check if parent is the desktop window in get_win_monitor_dpi.
win32u: Map cursor pos to raw DPI before calling drivers SysCommand.
secur32/tests: Update the tests to expect HTTP/2 headers.
urlmon/tests: Expect "Upgrade, Keep-Alive" connection string.
wininet: Parse multi-token Connection strings for Keep-Alive.
winex11: Introduce a new get_window_state_updates helper.
winex11: Generate GravityNotify events instead of ConfigureNotify.
winex11: Avoid sending WM_WINDOWPOSCHANGING when applying window manager config.
winex11: Delay window config request when restoring from fullscreen/maximized.
user32/tests: Workaround a FVWM maximized window state bug.
winex11: Update the Win32 window state outside of event handlers.
winex11: Remove now unnecessary WindowPosChanged re-entry guards.
Vibhav Pant (5):
setupapi: Add stub for SetupDiGetDevicePropertyKeys.
setupapi/tests: Add tests for SetupDiGetDevicePropertyKeys.
setupapi: Implement SetupDiGetDevicePropertyKeys.
threadpoolwinrt: Fix potential NULL dereference in QueryInterface for IAsyncAction.
threadpoolwinrt: Associate work items with the appropriate callback environment.
Vitor Ramos (2):
include: Add cpp header guard to the pathcch.h.
include: Use enum for PATHCCH_ options.
Yuxuan Shui (1):
dinput: Keep the module around while input thread is running.
Zhiyi Zhang (14):
urlmon: Support Uri_HOST_IDN.
urlmon: Support Uri_DISPLAY_NO_FRAGMENT.
urlmon: Support Uri_PUNYCODE_IDN_HOST.
urlmon: Support Uri_DISPLAY_IDN_HOST.
urlmon/tests: Test flags for getting properties.
ntdll/tests: Add NtSetIoCompletionEx() tests.
ntdll: Implement NtSetIoCompletionEx().
wintypes: Implement RoParseTypeName().
wintypes/tests: Add RoParseTypeName() tests.
win32u: Print the correct index when source_enum_display_settings() fails.
ntdll/tests: Remove a workaround for older systems.
ntdll/tests: Add more NtSetInformationFile() tests.
server: Set overlapped fd to signaled after setting completion information.
kernel32: Add GetCurrentPackageInfo() stub.
Ziqing Hui (6):
propsys: Add PropVariantToBSTR stub.
propsys/tests: Test PropVariantToBSTR.
propsys/tests: Test truncating for PropVariantToString.
propsys: Implement PropVariantToBSTR.
propsys: Use debugstr_variant for the trace in VariantToPropVariant.
propsys: Support converting to BSTR for PropVariantToVariant.
```