The vkd3d team is proud to announce that release 1.13 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:
- Basic loop unrolling support in the HLSL compiler.
- Effects compiler support for several version 4.0+ state objects.
- Miscellaneous bug fixes.
The source is available from the following location:
<https://dl.winehq.org/vkd3d/source/vkd3d-1.13.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.13
### libvkd3d
- The ID3D12CommandList6 interface is supported.
- Block-compressed textures can be created with unaligned dimensions. This
corresponds to
D3D12_FEATURE_D3D12_OPTIONS8.UnalignedBlockTexturesSupported.
- Some minor issues pointed out by the Vulkan validation layers have been
addressed. These are not known to affect applications in practice, but
should make libvkd3d slightly more well-behaved.
### libvkd3d-shader
- New features for the HLSL source type:
- Basic loop unrolling support. Some of the more complicated cases like
loops containing conditional jumps are still unsupported.
- Initialisation values for global variables, function parameters, and
annotation variables are parsed and stored in output formats supporting
them.
- Shader model 5.1 register spaces are supported when using the
corresponding target profiles, as well as shader model 5.1 reflection
data.
- Register reservations support expressions as offsets. For example:
‘float f : register(c0[1 + 1 * 2]);’
- The tex1D(), tex2D(), tex3D(), and texCUBE() intrinsic function variants
with explicit derivatives are supported.
- The following intrinsic functions are supported:
- asint()
- f16tof32()
- faceforward()
- GetRenderTargetSampleCount()
- rcp()
- tex2Dbias()
- tex1Dgrad(), tex2Dgrad(), tex3Dgrad(), and texCUBEgrad()
- The sin() and cos() intrinsic functions are supported in shader model
1-3 profiles. These were already supported in shader model 4+ profiles.
- The following features specific to effects target profiles:
- Types supported in version 4.0+:
- BlendState
- ComputeShader, DomainShader, GeometryShader, and HullShader
- DepthStencilState
- RasterizerState
- State application functions implemented for version 4.0+ effects:
- OMSetRenderTargets()
- SetBlendState()
- SetComputeShader(), SetDomainShader(), SetGeometryShader(),
SetHullShader(), SetPixelShader(), and SetVertexShader()
- SetDepthStencilState()
- SetRasterizerState()
- String types. These are mainly used for annotations.
- Annotations on global variables.
- Support for the ‘Texture’ field of the ‘SamplerState’ type.
- Support for NULL values.
- Stores to swizzled matrix variables.
- The ‘unsigned’ type modifier is supported. (For example,
‘unsigned int’.) Note that ‘uint’ and related types were already
supported.
- ‘ConstantBuffer<>’ types.
- The ‘SV_Coverage’ output semantic for fragment shaders.
- The experimental DXIL source type supports quad group operations.
- The Direct3D shader model 2-3 ‘texldb’ instruction is correctly disassembled
when outputting Direct3D shader assembly.
- New interfaces:
- The vkd3d_shader_parameter_info structure extends the
vkd3d_shader_compile_info structure, and can be used to specify shader
parameters. This is a more generic version of the shader parameter
interface for SPIR-V targets in struct vkd3d_shader_spirv_target_info.
- The VKD3D_SHADER_PARAMETER_DATA_TYPE_FLOAT32 enumeration value specifies
that a shader parameter contains 32-bit floating-point data.
- The VKD3D_SHADER_PARAMETER_NAME_ALPHA_TEST_FUNC shader parameter
specifies the alpha test function.
- The VKD3D_SHADER_PARAMETER_NAME_ALPHA_TEST_REF shader parameter
specifies the alpha test reference value.
- The VKD3D_SHADER_PARAMETER_NAME_FLAT_INTERPOLATION shader parameter
specifies the interpolation mode for colour inputs in Direct3D shader
model 1-3 fragment shaders.
- The VKD3D_SHADER_PARAMETER_TYPE_BUFFER enumeration value specifies that
the value of a shader parameter is provided at run-time through a buffer
resource.
### Changes since vkd3d 1.12:
```
Anna (navi) Figueiredo Gomes (6):
vkd3d-shader/ir: Periodically flush buffers when tracing blocks.
Add a .editorconfig file.
vkd3d: Use D3D12_SHADER_VISIBILITY_ALL for 32-bit root constants when using vk_heaps.
vkd3d-shader/spirv: Avoid decorating variables multiple times with NonReadable.
vkd3d-shader/spirv: Use unique SPIR-V variables for descriptors where visibility differs.
vkd3d-shader/spirv: Avoid decorating variables multiple times with Coherent.
Atharva Nimbalkar (2):
vkd3d-shader/glsl: Implement VKD3DSIH_MOV.
vkd3d-shader/glsl: Implement support for VKD3DSPR_TEMP registers.
Conor McCarthy (16):
vkd3d-shader/dxil: Implement DX intrinsic QuadOp.
vkd3d-shader/spirv: Implement the QUAD_READ_ACROSS_* instructions.
vkd3d-shader/dxil: Implement DX intrinsic QuadReadLaneAt.
vkd3d-shader/spirv: Implement the QUAD_READ_LANE_AT instruction.
tests/d3d12: Check for unaligned block texture support in test_create_committed_resource().
vkd3d: Allow block compressed textures to have unaligned width and height.
tests/d3d12: Test a null vertex buffer 'views' pointer on multiple slots.
vkd3d: Interpret a null vertex buffer 'views' pointer as a null buffer.
tests/shader-runner: Set the correct flag and format for raw UAVs.
tests/shader-runner: Create a new runner object for the shader model 6 tests.
vkd3d: Create a descriptor pool for static samplers when Vulkan-backed heaps are used.
tests: Add a test for clearing a large buffer UAV.
vkd3d: Limit the workgroup X count for buffer UAV clears to the supported max.
vkd3d: Add support for the ID3D12CommandList6 interface.
vkd3d-shader/spirv: Free the spirv parameter info.
vkd3d: Free descriptor range information on error paths in d3d12_root_signature_info_from_desc(). (Valgrind)
Elizabeth Figura (39):
vkd3d-shader/hlsl: Add a hlsl_fixme() for 5.1 resource arrays.
vkd3d-shader/hlsl: Put constant buffers into the extern_resources struct.
vkd3d-shader: Write SM5.1 register indices.
vkd3d-shader/hlsl: Allocate register spaces for constant buffers.
vkd3d-shader/hlsl: Allocate register spaces for objects.
vkd3d-shader: Write SM5.1 register spaces.
vkd3d-shader/hlsl: Write SM5.1 binding reflection data.
tests: Add reflection tests for register space.
vkd3d-shader/hlsl: Always initialize $$ when parsing modifiers from an arbitrary string.
tests: Stop probing all pixels when drawing a uniform colour.
tests: Run combined-samplers.shader_test on sm1 as well.
tests: Add another combined sampler test.
vkd3d-shader/hlsl: Respect the coords writemask in write_sm1_resource_load().
vkd3d-shader/hlsl: Only allocate the aligned size for uniforms.
vkd3d-shader/hlsl: Separate an "array" rule.
vkd3d-shader/d3dbc: Use enum vkd3d_shader_register_type in struct sm1_instruction.
tests/shader_runner: Use resource->width instead of resource->size for buffer width.
tests/shader_runner: Factor out a resource_desc structure.
tests: Implement multisampling in the Vulkan renderer.
tests: Implement multisampling in the GL renderer.
vkd3d-shader/hlsl: Implement the GetRenderTargetSampleCount() intrinsic.
vkd3d-shader/hlsl: Implement output SV_Coverage.
vkd3d-shader: Introduce struct vkd3d_shader_parameter_info and struct vkd3d_shader_parameter1.
include: Document shader parameters.
vkd3d-shader/spirv: Support passing shader parameters through uniform buffers.
tests: Add a test for the vkd3d_shader_parameter APIs.
vkd3d-shader/spirv: Respect VKD3D_SHADER_CONDITIONAL_OP_Z when discard has a bool argument.
vkd3d-shader: Allow controlling alpha test through vkd3d-shader parameters.
tests: Offset the viewport by 0.5 when running d3dbc shaders.
tests: Factor out a set_default_target() helper.
tests: Test alpha test.
vkd3d-shader/spirv: Allocate output_info after normalization.
vkd3d-shader: Factor out a vsir_program_get_parameter() helper.
vkd3d-shader/spirv: Pass a vkd3d_data_type to spirv_compiler_emit_shader_parameter().
vkd3d-shader: Do not make the alpha test ref parameter VSIR_DIMENSION_VEC4.
vkd3d-shader: Use the program parameters in spirv_compiler_alloc_spec_constant_id().
vkd3d-shader: Allow controlling d3d color shade mode through vkd3d-shader parameters.
tests: Test shade mode.
vkd3d-shader: Use an extended version of vkd3d_shader_immediate_constant in vkd3d_shader_parameter1.
Francisco Casas (52):
vkd3d-shader/hlsl: Record default values for uniforms and constant buffers.
vkd3d-shader/hlsl: Initialize default values with braceless initializers.
tests: Test default values using reflection.
vkd3d-shader/tpf: Write default values for SM4.
vkd3d-shader/d3dbc: Write default values for SM1.
tests: Test matrix default value initializers.
vkd3d-shader/hlsl: Fix numeric register offset for matrix components.
vkd3d-shader/hlsl: Reorder default values for matrices for SM4.
tests: Test register reservations on unused variables.
vkd3d-shader/hlsl: Only error out on bind_count register reservation overlaps for SM1.
vkd3d-shader/d3dbc: Split hlsl_sm1_write().
vkd3d-shader/hlsl: Generate CTAB outside d3dbc_compile().
vkd3d-shader/d3dbc: Introduce struct d3dbc_compiler.
vkd3d-shader/d3dbc: Use program->shader_version instead of ctx->profile.
vkd3d-shader/d3dbc: Don't require a hlsl_semantic to get register and usage.
vkd3d-shader/d3dbc: Use vsir_program I/O signatures to write dcls.
vkd3d-shader/d3dbc: Don't write inconsequential MOVs.
vkd3d-shader/hlsl: Free array sizes on function parameters (Valgrind).
tests: Separate the valid stateblock function names test from the string arg test.
vkd3d-shader/hlsl: Parse function call syntax on state blocks.
tests: Test whether valid state block function names are case-sensitive.
vkd3d-shader/hlsl: Validate state block function calls.
vkd3d-shader/hlsl: Add missing src1 and src2 constants to sincos on SM2.
tests: Test string escape sequences.
vkd3d-shader/hlsl: Parse string constants.
vkd3d-shader/hlsl: Parse string escape sequences.
vkd3d-shader/hlsl: Parse string type.
tests: Add missing double precission require directives.
tests: Report tests skipped because of missing capabilities.
tests/shader-runner: Add missing trace for wave_ops caps.
tests: Introduce VKD3D_TEST_DETAILED for the test driver.
vkd3d-shader/hlsl: Avoid dereferencing rel_offset if it is NULL.
tests: Add additional non-constant array indexing tests.
vkd3d-shader/hlsl: Lower non-constant array loads for SM1.
vkd3d-shader/hlsl: Remove SM1 fixme for matrix writemasks.
vkd3d-shader/hlsl: Lower non-constant row_major matrix loads for SM1.
tests: Add additional string tests.
vkd3d-shader/hlsl: Parse string default values.
vkd3d-shader/hlsl: Skip writing string default values.
vkd3d-shader/hlsl: Always work with the extern resource's component type.
vkd3d-shader: Avoid div by zero on assert in vkd3d_calloc() (ubsan).
tests: Add additional tests for function calls in state block rhs.
tests: Test shader compilation within function definitions.
tests: Test compile syntax on effects.
tests: Test shader compilation within braces.
tests: Test shader compilation with default values.
tests/shader_runner: Require explicit formats for UAV resources.
tests/shader_runner: Move parse_format() up.
tests/shader_runner: Replace spaces with dashes in format names.
tests/shader_runner: Don't skip shader compilation on missing caps.
tests/shader_runner: Explicitly require UAV load support.
tests/test-driver: Avoid double space when printing details.
Giovanni Mascellani (57):
tests: Mark some root signature unbounded range failures as todo on MoltenVK.
vkd3d: Do not request VK_EXT_debug_marker if debug is disabled.
vkd3d: Enable VK_KHR_portability_subset if available.
vkd3d: Do not synchronize with the geometry shader stage if it's not enabled.
ci: Assume an Apple Silicon-based environment for the macOS CI job.
tests: Skip sampling cube textures on Qualcomm.
tests: Transition resources to PIXEL_SHADER_RESOURCE in test_sample_c_lz().
tests: Check that depth/stencil formats are supported before using them.
vkd3d: Do not synchronize with the tessellation shader stages if they're not enabled.
tests: Improve feedback when enabling d3d12 debug layers.
tests: Enable the d3d12 debug layer message callbacks.
tests: Support using the Agility SDK in the crosstests.
vkd3d: Propagate a failure in d3d12_descriptor_heap_init().
tests: Define WIDL macros in utils.h.
vkd3d: Allocate temporary arrays on the stack in d3d12_command_list_update_push_descriptors().
tests: Pad the constant buffer in test_update_compute_descriptor_tables() to 256 bytes.
tests: Terminate the Agility SDK path with a slash.
vkd3d: Document how to install "Graphics Tools" to use the Agility SDK.
vkd3d: Rebuild the vkd3d_physical_device_info chain before creating the device.
vkd3d: Remove the temporary pointers in vkd3d_physical_device_info_init().
vkd3d: Propagate errors out of d3d12_root_signature_append_vk_binding().
vkd3d: Disable WARN_ON() when VKD3D_NO_DEBUG_MESSAGES is defined.
vkd3d: Disable FIXME_ONCE() when VKD3D_NO_DEBUG_MESSAGES is defined.
vkd3d: Allow disabling ERR() by defining VKD3D_NO_ERROR_MESSAGES.
vkd3d: Introduce debug severity MESSAGE.
vkd3d: Introduce a softer form of assertion.
vkd3d: Allow aborting on ERR().
vkd3d: Emit an ERR() when reaching unreachable code.
ci: Abort on assertions on the CI.
tests: Test register conflicts in a root signature.
vkd3d: Replace assert() with VKD3D_ASSERT() in command.c.
vkd3d: Replace assert() with VKD3D_ASSERT() in resource.c.
vkd3d: Replace assert() with VKD3D_ASSERT() in state.c.
vkd3d: Replace assert() with VKD3D_ASSERT() in utils.c.
vkd3d: Replace assert() with VKD3D_ASSERT() in vkd3d_private.h.
vkd3d-common: Remove an assertion in vkd3d_dbg_printf().
vkd3d-shader: Replace assert() with VKD3D_ASSERT() in checksum.c.
vkd3d-shader: Replace assert() with VKD3D_ASSERT() in d3d_asm.c.
vkd3d-shader: Replace assert() with VKD3D_ASSERT() in d3dbc.c
vkd3d-shader: Replace assert() with VKD3D_ASSERT() in dxbc.c.
tests: Mark a couple of tests as working on recent NVIDIA GPUs.
vkd3d-shader: Replace assert() with VKD3D_ASSERT() in dxil.c.
vkd3d-shader: Replace assert() with VKD3D_ASSERT() in fx.c.
vkd3d-shader: Replace assert() with VKD3D_ASSERT() in hlsl_codegen.c.
vkd3d-shader: Replace assert() with VKD3D_ASSERT() in hlsl_constant_ops.c.
vkd3d-shader: Replace assert() with VKD3D_ASSERT() in hlsl.c.
vkd3d-shader: Replace assert() with VKD3D_ASSERT() in hlsl.h.
vkd3d-shader: Replace assert() with VKD3D_ASSERT() in hlsl.y.
vkd3d-shader: Replace assert() with VKD3D_ASSERT() in ir.c.
vkd3d-shader: Replace assert() with VKD3D_ASSERT() in preproc.h.
vkd3d-shader: Replace assert() with VKD3D_ASSERT() in preproc.l.
vkd3d-shader: Replace assert() with VKD3D_ASSERT() in preproc.y.
vkd3d: Check the entire root signature for register conflicts.
vkd3d-shader: Replace assert() with VKD3D_ASSERT() in spirv.c.
vkd3d-shader: Replace assert() with VKD3D_ASSERT() in tpf.c.
vkd3d-shader: Replace assert() with VKD3D_ASSERT() in vkd3d_shader_main.c.
vkd3d-shader: Replace assert() with VKD3D_ASSERT() in vkd3d_shader_private.h.
Henri Verbeet (9):
vkd3d-shader/ir: Rename the "handler_idx" field of struct vkd3d_shader_instruction to "opcode".
vkd3d: Always use UINT views to clear UAVs with integer formats.
vkd3d-shader/ir: Remove VKD3DSIH_DCL instructions.
vkd3d-shader/ir: Remove VKD3DSIH_DCL_SAMPLER instructions.
vkd3d-common: Replace assert() with VKD3D_ASSERT().
vkd3d-shader/fx: Replace assert() with VKD3D_ASSERT().
vkd3d: Do not include assert.h.
build: Actually run bitwise-assignment.shader_test.
vkd3d-shader/spirv: Decorate non-array descriptor variables as well.
Nikolay Sivov (66):
vkd3d-shader/hlsl: Handle "unsigned int" type.
tests: Add some basic tests for ConstantBuffer type.
tests: Add a few tests for the NULL value.
vkd3d-shader/fx: Do not write shared buffers block when not compiling as a child effect.
vkd3d-shader/hlsl: Implement tex2Dbias().
vkd3d-shader/asm: Output 'bias' flag for 'texld'.
vkd3d-shader/d3dbc: Write load instruction for tex2Dbias().
vkd3d-shader/hlsl: Store original semantic name.
vkd3d-shader/fx: Use original full semantic name.
vkd3d-shader/fx: Set EXPLICIT_BIND_POINT flag for packoffset() reservations as well.
vkd3d-shader/fx: Fix variable buffer offset value.
vkd3d-shader/hlsl: Add support for ConstantBuffer<> type.
vkd3d-shader/fx: Cast state block field values to target type.
vkd3d-shader/fx: Add support for writing DepthStencilState objects.
vkd3d-shader/hlsl: Add RasterizerState type.
vkd3d-shader/fx: Add support for writing RasterizerState objects.
vkd3d-shader: Implement tex*() functions variants with gradient arguments.
vkd3d-shader/hlsl: Implement tex*grad() functions.
vkd3d-shader/fx: Fix structure type data written for fx_4.
vkd3d-shader/fx: Write default numeric values.
vkd3d-shader/fx: Fix packed size for fx_4+ types.
vkd3d-shader/fx: Preserve parsing order of initializer components.
vkd3d-shader/fx: Add missing fields for structure types on fx_5_0.
vkd3d-shader/hlsl: Do not crash on initialization of a redefined variable.
vkd3d-shader/hlsl: Set default values for annotations variables.
vkd3d-shader/fx: Write annotations for fx_4+ profiles.
tests: Add some fx profiles tests for structure types containing objects.
vkd3d-shader: Disallow object structure fields for fx profiles.
vkd3d-shader/fx: Do not output empty strings for missing semantics for fx_2_0.
vkd3d-shader/hlsl: Allow annotations on global variables.
vkd3d-shader/fx: Correct empty pass check.
vkd3d-shader/fx: Set total pass count for fx_2_0.
vkd3d-shader/fx: Correct one of the object counters in the fx_2_0 header.
vkd3d-shader/fx: Decompose function-style state assignments to individual states.
vkd3d-shader/fx: Handle SetRasterizerState().
vkd3d-shader/hlsl: Add parser support for ComputeShader, DomainShader, and HullShader types.
vkd3d-shader/fx: Fix state block entry array shifting when decomposing.
vkd3d-shader/fx: Add support for SetDomainShader(), SetComputeShader(), and SetHullShader() states.
vkd3d-shader/fx: Handle "Texture" field of the sampler state objects.
vkd3d-shader/fx: Use more descriptive names for FX-specific types.
vkd3d-shader/fx: Add an array size field to the states description table.
vkd3d-shader/fx: Add support for the OMSetRenderTargets() state.
vkd3d-shader/hlsl: Add parser support for GeometryShader type.
vkd3d-shader/fx: Check destination array index when checking for duplicate state entries.
vkd3d-shader/hlsl: Add parser support for BlendState type.
vkd3d-shader/fx: Enable writing BlendState variables.
vkd3d-shader/fx: Run full set of constants passes on state block entries values.
vkd3d-shader/fx: Handle states of a BlendState object.
vkd3d-shader/fx: Explicitly handle bool values in state entries.
vkd3d-shader/fx: Turn assignments to arrays to element assignments for certain states.
vkd3d-shader/hlsl: Check MS texture declaration without sample count only for used variables.
vkd3d-shader/hlsl: Handle NULL constants.
vkd3d-shader/hlsl: Add a test for assigning to DSV and RTV variables.
vkd3d-shader/hlsl: Tokenize 'String' the same as 'string'.
vkd3d-shader/hlsl: Treat "string" type name as case-insensitive.
vkd3d-shader/fx: Enable writing string objects for fx_4+.
vkd3d-shader/fx: Support string annotations for fx_4+.
vkd3d-shader/fx: Handle SetBlendState().
vkd3d-shader/fx: Handle SetPixelShader() and SetVertexShader().
vkd3d-shader/hlsl: Adjust NULL type properties to make it usable in transformations.
vkd3d-shader/fx: Support NULL constants for object fields.
vkd3d-shader/fx: Resolve NULL values for SamplerState.Texture field.
vkd3d: Fix a few typos in the comments.
vkd3d-shader/glsl: Fix a typo in a few messages.
include: Fix a few typos in the IDL files.
vkd3d-shader/fx: Fix the matrix type class for fx_2_0.
Petrichor Park (5):
vkd3d-shader/hlsl: Implement the faceforward() intrinsic.
vkd3d-shader/hlsl: Implement tests for the rcp() intrinsic.
vkd3d-shader/hlsl: Implement the rcp() intrinisic.
vkd3d-shader/tpf: Implmenent HLSL_OP1_RCP.
vkd3d-shader/hlsl: Factor out add_binary_expr() and use it for assignment operators.
Shaun Ren (6):
vkd3d-shader/ir: Lower SM1 SINCOS to SM4 SINCOS.
vkd3d-shader/hlsl: Implement sin/cos for SM1.
vkd3d-shader/d3dbc: Implement HLSL_OP3_MAD for SM1.
vkd3d-shader/hlsl: Allocate registers for HLSL_OP1_{COS,SIN}_REDUCED with the required writemasks.
vkd3d-shader/d3dbc: Implement HLSL_OP1_{COS,SIN}_REDUCED for SM1.
vkd3d-shader/hlsl: Support default values for function parameters.
Stefan Dösinger (2):
include: Get rid of the RB_FOR_EACH* macros.
vkd3d: Pass a proper struct shader_cache_key * to rb_put() in vkd3d_shader_cache_add_entry().
Victor Chiletto (20):
tests: Add more register reservations tests.
vkd3d-shader/hlsl: Support expressions as register offsets.
vkd3d-shader/hlsl: Pass a pointer to struct hlsl_reg_reservation in parse_reservation_index.
vkd3d-shader/hlsl: Ignore bracket offsets for 'b' register types prior to SM 5.1.
vkd3d-shader/hlsl: Do not immediately fail parsing for malformed 'b' register reservations.
vkd3d-shader/hlsl: Validate cbuffer register allocations.
vkd3d-shader/hlsl: Reserve register slots for unused buffers.
tests: Add reflection tests for register expressions.
vkd3d-shader/d3dbc: Fix implicit enum conversion warning.
tests/hlsl: Add a test for dynamically indexed multisampled texture loads.
vkd3d-shader/hlsl: Use a switch in validate_static_object_references().
vkd3d-shader/hlsl: Defer bounds checks to after copy propagation.
vkd3d-shader/hlsl: Pull evaluate_static_expression_as_uint() upwards.
vkd3d-shader/hlsl: Parse loop and unroll loop attributes.
vkd3d-shader/hlsl: Allow cloned blocks to contain external references.
vkd3d-shader/hlsl: Implement loop unrolling.
tests/hlsl: Test loop unrolling edge cases.
vkd3d-shader/hlsl: Implement the asint() intrinsic.
vkd3d-shader/hlsl: Push a new scope when compiling internal functions.
vkd3d-shader/hlsl: Implement f16tof32 intrinsic.
Yuxuan Shui (2):
tests: Pass the correct buffer size to vsnprintf() in vkd3d_test_push_context().
vkd3d-shader/hlsl: Implement storing to a swizzled matrix.
```
The Wine development release 9.16 is now available.
What's new in this release:
- Initial Driver Store implementation.
- Pbuffer support in the Wayland driver.
- More prototype objects in MSHTML.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.16.tar.xz>
Binary packages for various distributions will be available
from <https://www.winehq.org/download>
You will find documentation on <https://www.winehq.org/documentation>
Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.16/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.16 (total 25):
- #30938 Update a XIM candidate position when cursor location changes
- #37732 Corel Paint Shop Pro X7 Installer fails
- #41607 Piggi 2 Demo version fails to start and throws runtime and fatal error
- #42997 Opera Neon Installation throws backtrace
- #43251 Anarchy Online Login Window Play and Settings button disapper after minimising and maximising window
- #44516 Anarchy Online doesn't start in Windows7 prefix
- #45105 heap-buffer overflow in gdi32 (CVE-2018-12932)
- #45106 OOB write in gdi32 (CVE-2018-12933)
- #45455 Multiple DIFxApp-based USB hardware driver installers fail due to missing 'setupapi.dll.DriverStoreFindDriverPackageW' stub (Cetus3D-Software UP Studio 2.4.x, Plantronics Hub 3.16)
- #46375 Vietcong: game save thumbnails (screenshots) have corrupted colors
- #48521 StaxRip 2.0.6.0 (.NET 4.7 app) reports 'System.ComponentModel.Win32Exception (0x80004005): Invalid function' when converting AVI (PowerRequest stubs need to return success)
- #53839 Anarchy Online (Old Engine) Installer hangs after downloading game files
- #54587 GMG-Vision - ShellExecuteEx failed: Bad EXE format for install.exe.
- #55841 Lotus Approach: print "Properties" button ignored
- #56622 Systray icons now have black background without compositor, and on some panels can be misaligned or don't redraw, becoming invisible
- #56825 Unable to see screen for Harmony Assistant version 9.9.8d (64 bit)
- #56884 FoxitPDFReaderUpdateService shows crash dialog
- #57003 Naver Line tray icon is always gray since 9.13
- #57036 Splashtop RMM client crashes on Wine 9.14
- #57055 Window surfaces are empty
- #57059 Regression - UI broken with winewayland
- #57070 cnc-ddraw OpenGL performance regression in Wine 9.15
- #57071 Incorrect window drawing
- #57073 StaxRip 2.0.6.0 crashes inside gdiplus
- #57083 ClickStamper: stamp circle is missing.
### Changes since 9.15:
```
Aida Jonikienė (1):
win32u: Initialize parent_rect variables in window.c.
Akihiro Sagawa (5):
oleaut32/tests: Add OLE Picture object tests using DIB section.
oleaut32: Convert 32-bit or 16-bit color bitmaps to 24-bit color DIBs when saving.
oleaut32: Initialize reserved members before saving.
gdiplus/metafile: Fix DrawEllipse record size if compressed.
gdiplus/metafile: Fix FillEllipse record size if compressed.
Alex Henrie (3):
rpcrt4/tests: Correct a comment in test_pointer_marshal.
rpcrt4/tests: Test whether Ndr(Get|Free)Buffer calls StubMsg.pfn(Allocate|Free).
rpcrt4/tests: Allocate stub buffers with NdrOleAllocate.
Alexandre Julliard (15):
ntdll: Avoid nested ARM64EC notifications.
ntdll: Support STATUS_EMULATION_SYSCALL exception on ARM64EC.
ntdll: Add a test for BeginSimulation().
wow64: Fetch the initial thread context from the CPU backend.
wow64: Only update necessary registers when raising exceptions.
include: Unify the syscall thunk on x86-64.
include: Clean up formatting of long asm statements.
ntdll: Allocate the ARM64EC code map in high memory.
ntdll: Allocate the x64 context on the asm side of KiUserExceptionDispatcher.
ntdll: Pass the full exception record to virtual_handle_fault().
ntdll: Implement Process/ThreadManageWritesToExecutableMemory.
ntdll: Implement NtSetInformationVirtualMemory(VmPageDirtyStateInformation).
ntdll/tests: Add tests for Process/ThreadManageWritesToExecutableMemory.
ntdll: Read the Chpev2ProcessInfo pointer before accessing the data.
shell32/tests: Delete a left-over file.
Alexandros Frantzis (5):
winewayland: Store all window rects in wayland_win_data.
winewayland: Support WGL_ARB_pbuffer.
winewayland: Support WGL_ARB_render_texture.
winewayland: Advertise pbuffer capable formats.
winewayland: Fix off-by-one error in format check.
Alfred Agrell (2):
mountmgr.sys: Read and use disk label from dbus.
kernelbase: Delete now-inaccurate 'FS volume label not available' message.
Alistair Leslie-Hughes (4):
odbccp32: Support driver config in SQLGet/WritePrivateProfileStringW.
odbccp32: Correctly hanndle ODBC_BOTH_DSN in SQLWritePrivateProfileStringW.
odbccp32: Fall back to ConfigDSN when ConfigDSNW cannot be found.
kernel32: Return a valid handle in PowerCreateRequest.
Anders Kjersem (2):
reg/tests: Wait for process termination.
wscript: Implement Sleep.
Andrey Gusev (1):
wined3d: Fix return for WINED3D_SHADER_RESOURCE_TEXTURE_2DMSARRAY.
Bernhard Übelacker (1):
userenv: Avoid crash in GetUserProfileDirectoryW.
Billy Laws (4):
include: Move arm64ec_shared_info to winternl and point to it in the PEB.
ntdll: Initialize dll search paths before WOW64 init.
ntdll: Call the exception preparation callback on ARM64EC.
configure: Don't use CPPFLAGS for PE cross targets.
Brendan McGrath (3):
mf/tests: Test video processor with 2D buffers.
mf/tests: Test 1D/2D output on 2D buffers.
mf/tests: Test 2D buffers can override stride.
Daniel Lehman (3):
odbc32: Support {}'s in Driver connection string.
msvcr120: Add feholdexcept stub.
msvcr120: Implement feholdexcept.
Danyil Blyschak (4):
win32u: Don't check ansi_cp when adding fallback child font.
win32u: Include Microsoft Sans Serif as a child font.
win32u: Include Tahoma and its linked fonts in child font list.
mlang: Use larger destination buffer with WideCharToMultiByte().
Dmitry Timoshkov (10):
gdiplus: Add a couple of missing gdi_dc_release().
msv1_0: Make buffer large enough to hold NTLM_MAX_BUF bytes of base64 encoded data.
secur32/tests: Don't load secur32.dll dynamically.
secur32/tests: Avoid assigning a 4-byte status to an 1-byte variable.
secur32/tests: Don't use fake user/domain/password in NTLM tests.
secur32/tests: Fix a typo.
secur32/tests: Separate NTLM signature and encryption tests.
secur32/tests: Make NTLM encryption tests work on newer Windows versions.
kernel32/tests: Fix compilation with a PSDK compiler.
kernel32: EnumCalendarInfo() should ignore CAL_RETURN_NUMBER flag.
Elizabeth Figura (17):
widl: Explicitly check for top-level parameters before adding FC_ALLOCED_ON_STACK.
widl: Get rid of the write_embedded_types() helper.
widl: Ignore strings in is_embedded_complex().
widl: Propagate attrs to inner pointer types.
setupapi: Move INF installation functions to devinst.c.
setupapi: Separate a copy_inf() helper.
setupapi: Add an any_version_is_compatible() helper.
setupapi: Implement DriverStoreAddDriverPackage().
setupapi: Implement DriverStoreDeleteDriverPackage().
setupapi: Implement DriverStoreFindDriverPackage().
setupapi: Uninstall from the driver store in SetupUninstallOEMInf().
setupapi: Install to the driver store in SetupCopyOEMInf().
setupapi: Add stub spec entries for DriverStoreEnumDriverPackage().
setupapi/tests: Add Driver Store tests.
winevulkan: Strip the name tail when parsing members.
winevulkan: Add video interfaces.
winevulkan: Fix pointer arithmetic in debug utils callback marshalling.
Eric Pouech (1):
winedump: Get rid of GCC warning.
Esme Povirk (5):
user32: Implement EVENT_OBJECT_STATECHANGE for BM_SETSTYLE.
user32: Implement EVENT_SYSTEM_DIALOGEND.
user32: Implement EVENT_OBJECT_CREATE for listboxes.
user32: Implement EVENT_OBJECT_DESTROY for listboxes.
user32: Implement MSAA events for LB_SETCURSEL.
Etaash Mathamsetty (1):
netapi32: Move some implementations to netutils.
Fabian Maurer (1):
printdlg: Allow button id psh1 for "Properties" button.
Gabriel Ivăncescu (6):
mshtml: Avoid calling remove_target_tasks needlessly.
mshtml: Don't return default ports from location.host in IE10+ modes.
mshtml: Implement EmulateIE* modes for X-UA-Compatible.
mshtml/tests: Accept rare return value from ReportResult on native.
jscript: Don't use call frame for indirect eval calls for storing variables.
jscript: Restrict the allowed escape characters of JSON.parse in html mode.
Hans Leidekker (18):
odbc32: Add locking around driver calls.
odbc32: Remove unused Unix calls.
odbc32: Try the DRIVER attribute if the DSN attribute is missing.
odbc32: Fail freeing an object while child objects are alive.
odbc32: Call the driver function in SQLBindCol().
odbc32: Add support for descriptor handles in SQLGet/SetStmtAttr().
odbc32: Parse incoming connection string in SQLBrowse/DriverConnct().
odbc32: Set win32_funcs on the descriptors returned from SQLGetStmtAttr().
odbc32: Implicit descriptors can be retrieved but not set.
odbc32: Connection string keywords are case insensitive.
odbccp32: Respect config mode in SQLGet/WritePrivateProfileString().
odbccp32: Use wide character string literals.
odbccp32/tests: Get rid of a workaround for XP.
odbccp32: Handle NULL DSN in SQLValidDSN().
odbc32: Handle missing SQLSetConnect/EnvAttr().
odbc32: Set initial login timeout to 15 seconds.
odbc32: Map SQLColAttributes() to SQLColAttribute().
odbc32: Map SQLGetDiagRec() to SQLError().
Ilia Docin (3):
comctl32/tests: Add rebar chevron visibility test.
comctl32/tests: Add LVM_GETNEXTITEM test.
comctl32/listview: Do not return items count on getting next item for last one.
Ivo Ivanov (3):
winebus.sys: Pass each input report regardless of report ID to the pending read IRQ.
winebus.sys: Add devtype parameter to get_device_subsystem_info().
winebus.sys: Read vendor/product/serial strings from the usb subsystem.
Jacek Caban (33):
mshtml: Add support for MSEventObj prototype objects.
mshtml: Add support for Event prototype objects.
mshtml: Add support for UIEvent prototype objects.
mshtml: Add support for mouse event prototype objects.
mshtml: Add support for keyboard event prototype objects.
mshtml: Add support for page transition event prototype objects.
mshtml: Add support for custom event prototype objects.
mshtml: Add support for message event prototype objects.
mshtml: Add support for progress event prototype objects.
mshtml: Add support for storage event prototype objects.
mshtml: Add support for screen prototype objects.
mshtml: Add support for history prototype objects.
mshtml: Add support for plugins collection prototype objects.
mshtml: Add support for MIME types collection prototype objects.
mshtml: Add support for performance timing prototype objects.
mshtml: Add support for performance navigation prototype objects.
mshtml: Add support for performance prototype objects.
mshtml: Add support for namespace collection prototype objects.
mshtml: Add support for console prototype objects.
mshtml: Add support for media query list prototype objects.
mshtml: Add support for client rect list prototype objects.
mshtml: Add support for DOM token list prototype objects.
mshtml: Add support for named node map prototype objects.
mshtml: Add support for element collection prototype objects.
mshtml: Add support for node list prototype objects.
mshtml: Add support for text range prototype objects.
mshtml: Add support for range prototype objects.
mshtml: Add support for selection prototype objects.
mshtml: Increase buffer size in dispex_to_string.
mshtml: Add support for unknown element prototype objects.
mshtml: Add support for comment prototype objects.
mshtml: Add support for attribute prototype objects.
mshtml: Add support for document fragment prototype objects.
Jacob Czekalla (4):
comctl32/tests: Add tests for progress bar states.
comctl32/progress: Add states for progress bar.
comctl32/tests: Add test to check if treeview expansion can be denied.
comctl32/treeview: Allow treeview parent to deny treeview expansion.
Louis Lenders (3):
kernel32: Fake success in PowerCreateRequest.
kernel32: Fake success in PowerSetRequest.
kernel32: Fake success in PowerClearRequest.
Martin Storsjö (1):
ucrtbase: Export powf on i386.
Nikolay Sivov (7):
include: Add IWICStreamProvider definition.
windowscodecs/tests: Add a helper to check for supported interfaces.
windowscodecs/tests: Remove noisy traces from the test stubs.
windowscodecs/tests: Add some tests for IWICStreamProvider interface availability.
windowscodecs/metadata: Add a stub for IWICStreamProvider.
windowscodecs/metadata: Reset the handler on LoadEx(NULL).
windowscodecs/tests: Add some more tests for the IWICStreamProvider methods.
Paul Gofman (25):
qcap/tests: Fix test failure in testsink_Receive() on some hardware.
qcap/tests: Add a test for simultaneous video capture usage.
quartz: Propagate graph start error in MediaControl_Run().
qcap: Delay setting v4l device format until stream start.
gdi32/tests: Add test for Regular TTF with heavy weight.
win32u: Always set weight from OS/2 header in freetype_set_outline_text_metrics().
win32u: Do not embolden heavy weighted fonts.
kernelbase: Better match Windows behaviour in PathCchStripToRoot().
kernelbase: Better match Windows behaviour in PathCchRemoveFileSpec().
kernelbase: Better match Windows behaviour in PathCchIsRoot().
kernelbase: Reimplement PathIsRootA/W() on top of PathCchIsRoot().
kernelbase: Reimplement PathStripToRootA/W() on top of PathCchStripToRoot().
kernelbase: Remimplement PathRemoveFileSpecA/W().
kernelbase/tests: Add more tests for some file manipulation functions.
shell32: Register ShellItem coclass.
include: Add some shell copy engine related constants.
shell32/tests: Add tests for IFileOperation_MoveItem.
shell32/tests: Add tests for IFileOperation_MoveItem notifications.
shell32: Implement file_operation_[Un]Advise().
shell32: Store operation requested in file_operation_MoveItem().
shell32: Partially implement MoveItem file operation execution.
shell32: Implement directory merge for MoveItem.
shell32: Support sink notifications for file MoveItem operation.
ws2_32/tests: Test UDP broadcast without SO_BROADCAST.
server: Support IPV4 UDP broadcast on connected socket without SO_BROADCAST.
Piotr Caban (6):
ntdll: Accept UNC paths in LdrGetDllPath.
ntdll: Accept UNC paths in LdrAddDllDirectory.
msi: Fix msi_add_string signature.
msi: Fix row index calculation when stringtable contains empty slots.
vcruntime140_1: Handle empty catchblock type_info in validate_cxx_function_descr4.
vcruntime140_1: Store exception record in ExceptionInformation[6] during unwinding.
Rozhuk Ivan (1):
wineoss: Store the OSS device in midi_dest.
Rémi Bernon (59):
win32u: Don't request a host window surface for child windows.
win32u: Avoid crashing with nulldrv when creating offscreen surface.
mfplat/tests: Add more tests for MFCreateMediaBufferFromMediaType.
mfplat: Implement MFCreateMediaBufferFromMediaType for video formats.
mf/tests: Cleanup the video processor test list.
win32u: Introduce a new window rects structure.
win32u: Use window_rects struct in set_window_pos.
win32u: Use window_rects struct in update_window_state.
win32u: Use window_rects struct in NtUserCreateWindowEx.
win32u: Pass a window_rects struct to calc_winpos helper.
winex11: Check whether the window surface needs to be re-created.
win32u: Fix CreateWindowSurface call when updating layered surfaces.
winex11: Avoid moving embedded windows in the systray dock.
winex11: Don't call X11DRV_SET_DRAWABLE with invalid drawable.
win32u: Split driver side window bits move to a separate entry.
win32u: Use window_rects structs in apply_window_pos.
win32u: Pass window_rects structs to create_window_surface.
win32u: Pass a window_rects struct to WindowPosChanged driver entry.
win32u: Pass a window_rects struct to WindowPosChanging driver entry.
win32u: Pass a window_rects struct to MoveWindowBits driver entry.
win32u: Introduce new get_(client|window)_rect_rel helpers.
win32u: Pass a window_rects struct from get_window_rects helper.
win32u: Pass a window_rects struct to calc_ncsize helper.
win32u: Keep a window_rects struct in the WND structure.
winebus.sys: Always parse uevent PRODUCT= line on input subsystem.
mfplat/tests: Add missing todo_wine for MFCreateMediaBufferFromMediaType.
mf/tests: Load MFCreateMediaBufferFromMediaType dynamically.
win32u: Get visible and client rects in parent-relative coordinates.
winex11: Discard previous surface when window is directly drawn to.
win32u: Flush window surface after UpdateLayeredWindow.
winex11: Remove now unnecessary window surface flushes.
winemac: Remove unused unminimized window surface.
winemac: Remove unnecessary window surface invalidation.
winex11: Fix the exposed window surface region combination.
win32u: Introduce a new NtUserExposeWindowSurface call.
wineandroid: Remove now unnecessary window surface pointer.
winemac: Remove now unnecessary window surface pointer.
winex11: Remove now unnecessary window surface pointer.
win32u: Allocate and initialize window surface in window_surface_create.
wineandroid: Keep a window_rects struct in the driver window data.
winemac: Remove unnecessary window data rects update.
winemac: Keep a window_rects struct in the driver window data.
winemac: Use the window rects to convert host visible to window rect.
winemac: Use the window rects to convert window to host visible rect.
win32u: Keep SetIMECompositionWindowPos with other IME entries.
winex11: Keep a window_rects struct in the driver window data.
winex11: Use the driver rects to convert from host visible to window rect.
winemac: Return a macdrv_window_features from get_cocoa_window_features.
win32u: Move visible rect computation out of the drivers.
win32u: Move the "Decorated" driver registry option out of the drivers.
mfplat: Add MFCreateLegacyMediaBufferOnMFMediaBuffer stub.
mfplat/tests: Test MFCreateLegacyMediaBufferOnMFMediaBuffer.
mfplat: Implement MFCreateLegacyMediaBufferOnMFMediaBuffer.
user32: Pass a free_icon_params struct to User16CallFreeIcon.
user32: Pass a thunk_lock_params struct to User16ThunkLock.
user32: Introduce a generic KeUserDispatchCallback kernel callback.
user16: Use NtUserDispatchCallback instead of User16ThunkLock.
winevulkan: Route kernel callbacks through user32.
opengl32: Route kernel callbacks through user32.
Sven Püschel (11):
dssenh/tests: Remove skipping sign tests.
dssenh/tests: Remove unnecessary verify test cases.
dssenh/tests: Move test loop out of sub function.
dssenh/tests: Remove redundant hash test.
dssenh: Finish hash in the SignHash function.
dssenh/tests: Fix signLen usage.
dssenh/tests: Set 0xdeadbeef last error before function execution.
dssenh/tests: Remove redundant signature verification.
dssenh/tests: Separate the public key export from the signhash test.
dssenh/tests: Add test for VerifySignatureA.
dssenh: Swap the endianness of the signature.
Tim Clem (1):
winemac.drv: Better detect whether to unminimize a window when the app becomes active.
Tom Helander (4):
httpapi: Add tests for HttpResponseSendEntityBody.
http.sys: Skip clean up if HTTP_SEND_RESPONSE_FLAG_MORE_DATA is set.
httpapi: Handle HTTP_SEND_RESPONSE_FLAG_MORE_DATA flag.
httpapi: Implement HttpSendResponseEntityBody.
Torge Matthies (1):
wineandroid: Route kernel callbacks through user32.
Zhiyi Zhang (6):
riched20: Release IME input context when done using it.
user32/tests: Add more display DC bitmap tests.
win32u: Use a full size bitmap for display device contexts.
win32u: Support setting host IME composition window position for ImmSetCompositionWindow().
win32u: Set host IME composition window position in set_caret_pos().
win32u: Set host IME composition window position in NtUserShowCaret().
```
The Wine development release 9.15 is now available.
What's new in this release:
- Prototype and constructor objects in MSHTML.
- More support for ODBC Windows drivers.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.15.tar.xz>
Binary packages for various distributions will be available
from <https://www.winehq.org/download>
You will find documentation on <https://www.winehq.org/documentation>
Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.15/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.15 (total 18):
- #35991 WinProladder v3.x crashes during 'PLC connect check' (async event poll worker writes to user event mask buffer whose lifetime is limited)
- #39513 Desperados: input lag after resuming from pause
- #51704 Final Fantasy XI Online: Short Freezes / Stutters Every Second
- #53531 FTDI Vinculum II IDE gets "Out of memory" error on startup
- #54861 UK's Kalender: Crashes when adding or changing event category - comctl32 related
- #56140 ListView with a custom column sorter produces wrong results
- #56494 Splashtop RMM v3.6.6.0 crashes
- #56811 Jade Empire configuration tool fails to show up (only in virtual desktop mode)
- #56984 Star Wars: Knights of the Old Republic (Steam, GOG): broken rendering when soft shadows enabled
- #56989 Doom 3: BFG Edition fails to start in virtual desktop
- #56993 Can not change desktop window resolution (pixel size)
- #57005 Wine segfaults on macOS when run from install
- #57008 _fdopen(0) does not return stdin after it was closed
- #57012 Astra 2 needs kernel32.SetFirmwareEnvironmentVariableA
- #57026 compile_commands.json change causes segmentation faults when running configure.
- #57028 LTSpice will not print with WINE 9.xx on Ubuntu 24.04
- #57033 ChessBase 17 crashes after splash screen again
- #57042 rsaenh RSAENH_CPDecrypt crashes when an application tries to decrypt an empty string
### Changes since 9.14:
```
Alex Henrie (2):
atl: Correct comment above AtlModuleRegisterTypeLib function.
atl: Only warn in AtlModuleGetClassObject if the class was not found.
Alexandre Julliard (2):
makedep: Don't add empty cflags to a compile command.
dnsapi/tests: Update tests for winehq.org DNS changes.
Alistair Leslie-Hughes (2):
include: Add *_SHIFT macros.
include: Forward declare all gdiplus classes.
Billy Laws (1):
configure: Test PE compilers after setting their target argument.
Brendan Shanks (5):
include: Ensure that x86_64 syscall thunks have a consistent length when built with Clang.
ntdll: Use environ/_NSGetEnviron() directly rather than caching it in main_envp.
ntdll: Use _NSGetEnviron() instead of environ when spawning the server on macOS.
msv1_0: Use _NSGetEnviron() instead of environ on macOS.
mmdevapi: Remove unused critical section from MMDevice.
Connor McAdams (9):
d3dx9/tests: Add tests for D3DXLoadSurfaceFromMemory() with a multisampled surface.
d3dx9: Return success in D3DXLoadSurfaceFromMemory() for multisampled destination surfaces.
d3dx9: Return failure from D3DXLoadSurfaceFromMemory() if d3dx_load_pixels_from_pixels() fails.
d3dx9/tests: Add d3dx filter argument value tests.
d3dx9: Introduce helper function for retrieving the mip filter value in texture from file functions.
d3dx9: Further validate filter argument passed to D3DXFilterTexture().
d3dx9: Validate filter argument in D3DXLoadVolumeFrom{Volume,FileInMemory,Memory}().
d3dx9: Validate filter argument in D3DXLoadSurfaceFrom{Surface,FileInMemory,Memory}().
d3dx9: Validate filter argument in texture from file functions.
Dmitry Timoshkov (1):
sechost: Check both lpServiceName and lpServiceProc for NULL in StartServiceCtrlDispatcher().
Elizabeth Figura (14):
wined3d: Invalidate push constant flags only for the primary stateblock.
wined3d: Feed the material through a push constant buffer.
wined3d: Move get_projection_matrix() to glsl_shader.c.
wined3d: Feed the projection matrix through a push constant buffer.
wined3d: Do not use the normal or modelview matrices when drawing pretransformed vertices.
wined3d: Feed modelview matrices through a push constant buffer.
wined3d: Pass d3d_info and stream_info pointers to wined3d_ffp_get_[vf]s_settings().
wined3d: Feed the precomputed normal matrix through a push constant buffer.
wined3d: Store the normal matrix as a struct wined3d_matrix.
wined3d: Hardcode 1.0 point size for shader model >= 4.
wined3d: Feed point scale constants through a push constant buffer.
d3d9/tests: Test position attribute W when using the FFP.
wined3d: Use 1.0 for position W when using the FFP.
d3d9/tests: Add comprehensive fog tests.
Eric Pouech (1):
cmd: Fix test failures for SET /P command.
Esme Povirk (6):
comctl32: Handle WM_GETOBJECT in tab control.
gdi32: Fix out-of-bounds write in EMR_ALPHABLEND handling.
win32u: Implement EVENT_SYSTEM_CAPTURESTART/END.
user32: Implement EVENT_OBJECT_STATECHANGE for BST_PUSHED.
user32: Implement EVENT_OBJECT_STATECHANGE for BM_SETCHECK.
gdi32: Bounds check EMF handle tables.
Fabian Maurer (5):
kernel32: Add SetFirmwareEnvironmentVariableA stub.
odbc32: In get_drivers prevent memory leak in error case (coverity).
odbc32: In get_drivers simplify loop condition.
iphlpapi: Add stub for SetCurrentThreadCompartmentId.
win32u: Remove superflous null check (coverity).
Gabriel Ivăncescu (1):
jscript: Implement arguments.caller.
Gerald Pfeifer (1):
nsiproxy.sys: Fix the build on non-Apple, non-Linux systems.
Hans Leidekker (25):
odbc32: Forward SQLGetConnectAttr() to the Unicode version if needed.
odbc32: Forward SQLGetConnectOption() to the Unicode version if needed.
odbc32: Forward SQLGetCursorName() to the Unicode version if needed.
odbc32: Forward SQLGetDescField() to the Unicode version if needed.
odbc32: Forward SQLGetDescRec() to the Unicode version if needed.
odbc32: Forward SQLGetDescField() to the Unicode version if needed.
odbc32: Forward SQLGetInfo() to the Unicode version if needed.
odbc32: Forward SQLGetStmtAttr() to the Unicode version if needed.
odbc32: Forward SQLGetTypeInfo() to the Unicode version if needed.
odbc32: Forward SQLNativeSql() to the Unicode version if needed.
odbc32: Forward SQLPrepare() to the Unicode version if needed.
odbc32: Forward SQLPrimaryKeys() to the Unicode version if needed.
odbc32: Forward SQLProcedureColumns() to the Unicode version if needed.
odbc32: Forward SQLProcedures() to the Unicode version if needed.
odbc32: Make the driver loader thread-safe.
odbc32: Return an error when a required driver entry point is missing.
odbc32: Forward SQLSetConnectAttr() to the Unicode version if needed.
odbc32: Forward SQLSetConnectOption() to the Unicode version if needed.
odbc32: Forward SQLSetCursorName() to the Unicode version if needed.
odbc32: Forward SQLSetDescField() to the Unicode version if needed.
odbc32: Forward SQLSetStmtAttr() to the Unicode version if needed.
odbc32: Forward SQLSpecialColumns() to the Unicode version if needed.
odbc32: Forward SQLStatistics() to the Unicode version if needed.
odbc32: Forward SQLTablePrivileges() to the Unicode version if needed.
odbc32: Forward SQLTables() to the Unicode version if needed.
Herman Semenov (1):
gdiplus: Fixed order of adding offset and result ternary operator.
Jacek Caban (83):
mshtml: Use dispex_next_id in NextProperty implementation.
jscript: Ensure that external property is still valid in jsdisp_next_prop.
mshtml: Use host object script bindings for storage objects.
mshtml: Use host object script bindings for frame elements.
mshtml: Use host object script bindings for iframe elements.
mshtml: Introduce get_outer_iface and use it instead of get_dispatch_this.
jscript: Allow host objects to specify an outer interface.
mshtml: Return E_UNEXPECTED for unknown ids in JSDispatchHost_CallFunction.
mshtml: Use get_prop_descs for window object.
mshtml: Use host object script bindings for Window object.
mshtml: Introduce get_script_global and use it instead of get_compat_mode.
mshtml: Use HTMLPluginContainer for DispatchEx functions in object element.
mshtml: Store property name in HTMLPluginContainer.
mshtml: Use host object script bindings for object elements.
mshtml: Use host object script bindings for select elements.
mshtml: Use host object script bindings for HTMLRect.
mshtml: Use host object script bindings for DOMTokenList.
mshtml: Use dispex_index_prop_desc for HTMLFiltersCollection.
mshtml: Use host object script bindings for HTMLAttributeCollection.
mshtml: Use dispex_index_prop_desc for HTMLElementCollection.
mshtml: Use host object script bindings for HTMLDOMChildrenCollection.
mshtml: Use host object script bindings for HTMLStyleSheetsCollection.
mshtml: Use host object script bindings for HTMLStyleSheet.
mshtml: Use host object script bindings for HTMLStyleSheetRulesCollection.
mshtml: Use host object script bindings for HTMLStyleSheetRule.
mshtml: Use get_prop_desc for legacy function object implementation.
mshtml: Use host object script bindings for style objects.
mshtml: Add initial constructor implementation.
mshtml: Store vtbl in dispex_data_t.
mshtml: Split ensure_dispex_info.
mshtml: Factor out init_dispatch_from_desc.
mshtml: Add initial support for MSHTML prototype objects.
mshtml: Don't expose prototype properties directly from object instances.
mshtml: Store name in dispex_data_t.
mshtml: Use proper prototype names.
jscript: Allow using MSHTML constructors in instanceof expressions.
maintainers: Remove shdocvw from WebBrowser control section.
mshtml: Add support for navigator prototype objects.
mshtml: Add support for HTMLBodyElement object.
mshtml: Add initial support for prototype chains.
mshtml: Add support for Element and Node prototype objects.
mshtml: Add support for Storage prototype objects.
mshtml: Add support for document prototype objects.
mshtml: Add support for window prototype objects.
include: Always declare _setjmp in setjmp.h on i386 targets.
mshtml: Add support for image element prototype objects.
jscript: Introduce HostConstructor function type.
mshtml: Use host constructor script bindings for Image constructor object.
mshtml: Use host constructor script bindings for XMLHttpRequest constructor object.
mshtml: Add support for option element prototype objects.
mshtml: Use host object script bindings for Option constructor object.
mshtml: Add support for MutationObserver consturctor and prototype objects.
include: Add DECLSPEC_CHPE_PATCHABLE definition.
mshtml/tests: Use winetest.js helpers in xhr.js.
mshtml: Add support for anchor element prototype objects.
mshtml: Add support for area element prototype objects.
mshtml: Add support for form element prototype objects.
mshtml: Add support for frame elements prototype objects.
mshtml: Add support for head elements prototype objects.
mshtml: Add support for input elements prototype objects.
mshtml: Add support for link element prototype objects.
mshtml: Add support for object and embed element prototype objects.
mshtml: Add support for script element prototype objects.
mshtml: Add support for select element prototype objects.
mshtml: Add support for style element prototype objects.
mshtml: Add support for table and tr element prototype objects.
mshtml: Add support for td element prototype objects.
mshtml: Add support for textarea element prototype objects.
mshtml: Add support for svg element prototype objects.
mshtml: Add support for circle SVG element prototype objects.
mshtml: Add support for tspan SVG element prototype objects.
mshtml: Add support for document type node prototype objects.
mshtml: Add support for text node prototype objects.
mshtml: Get object name from its ID when possible.
mshtml: Add support for computed style prototype objects.
mshtml: Add support for style prototype objects.
mshtml: Add support for current style prototype objects.
mshtml: Add support for style sheet prototype objects.
mshtml: Add support for style sheet list prototype objects.
mshtml: Add support for CSS rule list prototype objects.
mshtml: Add support for CSS rule prototype objects.
mshtml: Add support for rect prototype objects.
mshtml: Make mutation_observer_ctor_dispex_vtbl const.
Jacob Czekalla (6):
comctl32/tests: Add test for listview sorting order.
comctl32: Fix sorting for listview.
comctl32/tests: Add test for propsheet page creation when propsheet gets initialized.
comctl32/propsheet: Create pages with PSP_PREMATURE on initialization.
comctl32/tests: Add test for PSN_QUERYINITIALFOCUS for the propsheet.
comctl32: Add handling for PSN_QUERYINITIALFOCUS in prop.c.
Jactry Zeng (1):
ntdll: Try to use page size from host_page_size() for macOS.
Jakub Petrzilka (1):
rsaenh: Don't crash when decrypting empty strings.
Kieran Geary (1):
shell32: Make SHGetStockIconInfo() attempt to set icon.
Martino Fontana (2):
dinput/tests: Update tests for DIPROP_SCANCODE.
dinput: Implement DIPROP_SCANCODE.
Matteo Bruni (1):
d3dx9: Don't silently ignore d3dx_calculate_pixel_size() errors.
Matthias Gorzellik (3):
hidparse: Pre-process descriptor to find TLCs.
winebus: Store pending reads per report-id.
hidclass: Create a child PDO for each HID TLC.
Nikolay Sivov (3):
d3dx9/effect: Document one remaining header field.
d3dx9/tests: Add some tests for D3DXEFFECT_DESC fields.
d3dx9/effect: Return creator string from GetDesc().
Paul Gofman (11):
nsiproxy.sys: Only get owning pid when needed in udp_endpoint_enumerate_all().
mmdevapi: Return stub interface from ASM_GetSessionEnumerator().
mmdevapi: Add implementation for IAudioSessionEnumerator.
mmdevapi/tests: Add test for IAudioSessionEnumerator.
ntdll: Stub NtQuerySystemInformation[Ex]( SystemProcessorIdleCycleTimeInformation ).
kernel32: Implement QueryIdleProcessorCycleTime[Ex]().
ntdll: Implement NtQuerySystemInformationEx( SystemProcessorIdleCycleTimeInformation ) on Linux.
ntdll: Raise exception on failed CS wait.
mmdevapi: Unlock session in create_session_enumerator().
mmdevapi: Implement control_GetSessionIdentifier().
mmdevapi: Implement control_GetSessionInstanceIdentifier().
Piotr Caban (4):
msvcrt: Reuse standard streams after they are closed.
ntdll: Optimize NtReadVirtualMemory for in-process reads.
kernel32/tests: Test ReadProcessMemory on PAGE_NOACCESS memory.
wineps.drv: Fix EMR_SETPIXELV record playback.
Rémi Bernon (27):
win32u: Simplify offscreen surface previous surface reuse check.
winex11: Rely on win32u previous surface reuse.
wineandroid: Rely on win32u previous surface reuse.
winewayland: Rely on win32u previous surface reuse.
winemac: Remove unnecessary old window surface bounds copy.
winemac: Rely on win32u previous surface reuse.
win32u: Avoid sending WM_PAINT to layered window surfaces.
win32u: Merge drivers CreateLayeredWindow with CreateWindowSurface.
dinput/tests: Add more tests reading multiple TLCs reports.
hidparse: Use ExFreePool to free preparsed data.
hidclass: Keep HID device desc on the FDO device.
hidclass: Start PDO thread in IRP_MN_START_DEVICE.
hidclass: Allocate child PDOs array dynamically.
win32u: Force updating the display cache when virtual desktop state changes.
hidclass: Use poll_interval == 0 for non-polled devices.
hidclass: Read reports with the largest input report size over TLCs.
hidclass: Use a single lock for PDO queues and removed flag.
hidclass: Pass HIDP_DEVICE_DESC to find_report_with_type_and_id.
hidclass: Start the HID device thread with the FDO.
win32u: Always use the dummy surface if a surface isn't needed.
win32u: Fix a typo in read_source_from_registry.
win32u: Always enumerate the primary source first.
win32u: Remove unnecessary UpdateLayeredWindow driver entry args.
wineandroid: Remove now unnecessary WindowPosChanging checks.
winemac: Remove now unnecessary WindowPosChanging checks.
winewayland: Remove now unnecessary WindowPosChanging checks.
winex11: Remove now unnecessary WindowPosChanging checks.
Spencer Wallace (2):
shell32/tests: Add tests for moving dir(s) to destination(s) with conflicting dir.
shell32: Fix FO_MOVE when destination has conflicting directory.
Sven Baars (1):
ntdll: Use the module debug channel in virtual_map_builtin_module().
Vijay Kiran Kamuju (4):
include: Add more Task Scheduler Trigger interface definitions.
include: Add ISessionStateChangeTrigger declaration.
include: Added IEventTrigger declaration.
include: Add gdiplus effect parameter structs.
Ziqing Hui (14):
propsys: Add stubs for variant conversion functions.
propsys/tests: Add tests for VariantToPropVariant.
propsys: Initially implement VariantToPropVariant.
include: Fix name of CODECAPI_AVDecVideoAcceleration_H264.
include: Add video encoder statistical guids.
include: Add video encoder header guids.
include: Add video encoder chroma defines.
include: Add video encoder color defines.
include: Add video encode guids.
include: Add video encoder max guids.
include: Add video encoder inverse telecine guids.
include: Add video encoder source defines.
include: Add more video encoder codec api guids.
winegstreamer/quartz_parser: Handle 0 size in read_thread.
Đorđe Mančić (1):
kernelbase: Implement GetTempPath2A() and GetTempPath2W().
```
The Wine development release 9.14 is now available.
What's new in this release:
- Mailslots reimplemented using server-side I/O.
- More support for ODBC Windows drivers.
- Still more user32 data structures in shared memory.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.14.tar.xz>
Binary packages for various distributions will be available
from <https://www.winehq.org/download>
You will find documentation on <https://www.winehq.org/documentation>
Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.14/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.14 (total 20):
- #11268 Civilization I for Windows (16-bt) incorrectly displays some dialogues
- #32679 cmd.exe Add support for || and &&
- #48167 1000 Mots V4.0.2 freeze when 3 words are pronounced - Underrun of data
- #48455 Multiple .inf driver installers hang due to missing handling of architecture-specific SourceDisks{Names,Files} .inf sections (Native Instruments Native Access 1.9, WinCDEmu 4.1)
- #49944 Multiple games fail to detect audio device (Tom Clancy's Splinter Cell: Conviction, I Am Alive)
- #50231 Ys: Origin shows black screen during video playback
- #54735 AOL (America Online) Desktop Beta fails when installing .net 4.8
- #54788 AOL 5.0 Installation fails
- #55662 Different behaviour of "set" command
- #55798 Unreal Engine 5.2: Wine minidumps take hours to load into a debugger
- #56751 New WoW64 compilation fails on Ubuntu Bionic
- #56861 Background color of selected items in ListView(or ListCtrl) is white
- #56954 Regression causes wine to generate ntlm_auth <defunct> processes
- #56956 MSVC cl.exe 19.* fails to flush intermediate file
- #56957 CEF application (BSG Launcher) freezes on mouse hover action
- #56958 ChessBase 17 crashes after splash screen
- #56969 Act of War (Direct Action, High Treason) crashes in wined3d when loading the mission
- #56972 Warlords III: Darklords Rising shows empty screen in virtual desktop
- #56977 accept()-ed socket fds are never marked as cacheable
- #56994 mbstowcs for UTF8, with an exact (not overallocated) output buffer size fails
### Changes since 9.13:
```
Alex Henrie (1):
shell32: Put temp directory in %LOCALAPPDATA%\Temp by default.
Alexandre Julliard (3):
ntdll: Implement KiUserEmulationDispatcher on ARM64EC.
urlmon/tests: Fix a test that fails after WineHQ updates.
ntdll: Always clear xstate flag on collided unwind.
Alexandros Frantzis (2):
winex11: Query proper GLX attribute for pbuffer bit.
opengl32: Fix match criteria for WGL_DRAW_TO_PBUFFER_ARB.
Alistair Leslie-Hughes (5):
odbc32: Handle NULL handles in SQLError/W.
odbc32: Fake success for SQL_ATTR_CONNECTION_POOLING in SQLSetEnvAttr.
odbc32: Handle NULL EnvironmentHandle in SQLTransact.
msado15: Fake success in _Recordset::CancelUpdate.
msado15: Report we support all options in _Recordset::Supports.
Arkadiusz Hiler (1):
ntdll: Use the correct io callback when writing to a socket.
Billy Laws (1):
ntdll: Map PSTATE.SS to the x86 trap flag on ARM64EC.
Biswapriyo Nath (1):
include: Fix return type of IXAudio2MasteringVoice::GetChannelMask in xaudio2.idl.
Brendan Shanks (1):
wine.inf: Don't register wineqtdecoder.dll.
Connor McAdams (14):
d3d9/tests: Add tests for IDirect3DDevice9::UpdateSurface() with a multisampled surface.
d3d9: Return failure if a multisampled surface is passed to IDirect3DDevice9::UpdateSurface().
ddraw/tests: Add tests for preserving d3d scene state during primary surface creation.
d3d9/tests: Add a test for device reset after beginning a scene.
d3d8/tests: Add a test for device reset after beginning a scene.
wined3d: Clear scene state on device state reset.
d3dx9/tests: Make some test structures static const.
d3dx9/tests: Reorder test structure members.
d3dx9/tests: Add more D3DXCreateCubeTextureFromFileInMemory{Ex}() tests.
d3dx9: Refactor texture creation and cleanup in D3DXCreateCubeTextureFromFileInMemoryEx().
d3dx9: Cleanup texture value argument handling in D3DXCreateCubeTextureFromFileInMemoryEx().
d3dx9: Use d3dx_image structure inside of D3DXCreateCubeTextureFromFileInMemoryEx().
d3dx9: Add support for specifying which array layer to get pixel data from to d3dx_image_get_pixels().
d3dx9: Add support for loading non-square cubemap DDS files into cube textures.
Daniel Lehman (3):
odbc32: Handle NULL attribute in SQLColAttribute[W].
odbc32: Return success for handled attributes in SQLSetConnectAttrW.
mshtml: Add application/pdf MIME type.
Dmitry Timoshkov (3):
odbc32: Correct 'WINAPI' placement for function pointers.
light.msstyles: Use slightly darker color for GrayText to make text more readable.
dwrite: Return correct rendering and gridfit modes from ::GetRecommendedRenderingMode().
Elizabeth Figura (32):
setupapi/tests: Add more tests for SetupGetSourceFileLocation().
setupapi: Correctly interpret the INFCONTEXT parameter in SetupGetSourceFileLocation().
setupapi: Return the file's relative path from SetupGetSourceFileLocation().
setupapi: Use SetupGetIntField() in SetupGetSourceFileLocation().
ddraw: Call wined3d_stateblock_texture_changed() when the color key changes.
wined3d: Store all light constants in a separate structure.
wined3d: Store the cosines of the light angle in struct wined3d_light_constants.
wined3d: Feed light constants through a push constant buffer.
wined3d: Sort light constants by type.
wined3d: Transform light coordinates by the view matrix in wined3d_device_apply_stateblock().
setupapi: Use SetupGetSourceFileLocation() in get_source_info().
setupapi: Use SetupGetSourceInfo() in get_source_info().
setupapi/tests: Test installing an INF file with architecture-specific SourceDisks* sections.
setupapi: Fix testing for a non-empty string in get_source_info().
ntoskrnl/tests: Remove unnecessary bits from add_file_to_catalog().
setupapi/tests: Make function pointers static.
setupapi/tests: Move SetupCopyOEMInf() tests to devinst.c.
setupapi/tests: Use a randomly generated directory and hardcoded file paths in test_copy_oem_inf().
setupapi/tests: Use a signed catalog file in test_copy_oem_inf().
wined3d: Avoid division by zero in wined3d_format_get_float_color_key().
wined3d: Don't bother updating the colour key if the texture doesn't have WINED3D_CKEY_SRC_BLT.
wined3d: Move clip plane constant loading to shader_glsl_load_constants().
wined3d: Correct clip planes for the view transform in wined3d_device_apply_stateblock().
wined3d: Pass stream info to get_texture_matrix().
wined3d: Do not use the texture matrices when drawing pretransformed vertices.
wined3d: Feed texture matrices through a push constant buffer.
server: Make pipe ends FD_TYPE_DEVICE.
kernel32/tests: Add more mailslot tests.
server: Treat completion with error before async_handoff() as error.
ntdll: Respect the "options" argument to NtCreateMailslotFile.
server: Reimplement mailslots using server-side I/O.
ntdll: Stub NtQueryInformationToken(TokenUIAccess).
Eric Pouech (20):
winedump: Protect against corrupt minidump files.
winedump: Dump comment streams in minidump.
cmd: Add success/failure tests for pipes and drive change.
cmd: Set success/failure for change drive command.
cmd: Run pipe LHS & RHS outside of any batch context.
cmd: Better test error handling for pipes.
cmd: Enhance CHOICE arguement parsing.
cmd: Implement timeout support in CHOICE command.
include/mscvpdb.h: Use flexible array members for all trailing array fields.
include/msvcpdb.h: Use flexible array members for codeview_fieldtype union.
include/mscvpdb.h: Use flexible array members for codeview_symbol union.
include/mscvpdb.h: Use flexible array members for codeview_type with variable.
include/mscvpdb.h: Use flexible array members for the rest of structures.
cmd: Some tests about tampering with current batch file.
cmd: Link env_stack to running context.
cmd: Split WCMD_batch() in two functions.
cmd: Introduce helpers to find a label.
cmd: No longer pass a HANDLE to WCMD_ReadAndParseLine.
cmd: Save and restore file position from BATCH_CONTEXT.
cmd: Don't keep batch file opened.
Esme Povirk (3):
win32u: Implement EVENT_OBJECT_DESTROY.
win32u: Implement EVENT_OBJECT_STATECHANGE for WS_DISABLED.
win32u: Implement EVENT_OBJECT_VALUECHANGE for scrollbars.
Fabian Maurer (1):
ntdll: Prevent double close in error case (coverity).
Fan WenJie (1):
win32u: Fix incorrect comparison in add_virtual_modes.
Francisco Casas (2):
quartz: Emit FIXME when the rendering surface is smaller than the source in VMR9.
quartz: Properly copy data to render surfaces of planar formats in VMR9.
François Gouget (1):
wineboot: Downgrade the wineprefix update message to a trace.
Gabriel Ivăncescu (11):
mshtml: Make sure we aren't detached before setting interactive ready state.
jscript: Make JS_COUNT_OPERATION a no-op.
mshtml: Implement event.cancelBubble.
mshtml: Implement HTMLEventObj's cancelBubble on top of the underlying event's cancelBubble.
mshtml: Fix special case between stopImmediatePropagation and setting cancelBubble to false.
mshtml: Use bitfields for the event BOOL fields.
mshtml: Don't use -moz prefix for box-sizing CSS property.
mshtml/tests: Add more tests with invalid CSS props for (get|set)PropertyValue.
mshtml: Compactify the style_props expose tests for each style object into a single function.
mshtml: Implement style msTransition.
mshtml: Implement style msTransform.
Hans Leidekker (27):
odbc32: Fix a couple of spec file entries.
odbc32: Use LoadLibraryExW() instead of LoadLibraryW().
odbc32: Forward SQLDriverConnect() to the Unicode version if needed.
odbc32: Forward SQLGetDiagRec() to the Unicode version if needed.
odbc32: Forward SQLBrowseConnect() to the Unicode version if needed.
odbc32: Forward SQLColAttributes() to the Unicode version if needed.
odbc32: Forward SQLColAttribute() to the Unicode version if needed.
odbc32: Properly handle string length in traces.
winhttp/tests: Mark a test as broken on old Windows versions.
winhttp/tests: Fix test failures introduced by the server upgrade.
odbc32: Forward SQLColumnPrivileges() to the Unicode version if needed.
odbc32: Forward SQLColumns() to the Unicode version if needed.
odbc32: Forward SQLConnect() to the Unicode version if needed.
odbc32: Forward SQLDescribeCol() to the Unicode version if needed.
odbc32: Forward SQLError() to the Unicode version if needed.
odbc32: Handle missing Unicode driver entry points.
odbc32: Forward SQLExecDirect() to the Unicode version if needed.
odbc32: Forward SQLForeignKeys() to the Unicode version if needed.
odbc32: Avoid a clang warning.
odbc32: Get rid of the wrappers for SQLGetDiagRecA() and SQLDataSourcesA().
odbc32/tests: Add tests for SQLTransact().
odbc32: Fix setting the Driver registry value.
odbc32: Find the driver filename through the ODBCINST.INI key.
secur32: Handle GNUTLS_MAC_AEAD.
secur32/tests: Switch to TLS 1.2 for connections to test.winehq.org.
winhttp/tests: Mark more test results as broken on old Windows versions.
secur32/tests: Mark some test results as broken on old Windows versions.
Herman Semenov (3):
dbghelp: Fix misprint access to struct with invalid case.
dplayx: Fix check structure before copy.
gdiplus: Fixed order of adding offset and result ternary operator.
Jacek Caban (32):
mshtml: Use host object script bindings for Attr class.
mshtml: Use host object script bindings for event objects.
mshtml: Use host object script bindings for PluginArray class.
mshtml: Use host object script bindings for MimeTypeArray class.
mshtml: Use host object script bindings for MSNamespaceInfoCollection class.
mshtml: Use host object script bindings for MSEventObj class.
mshtml: Use host object script bindings for XMLHttpRequest class.
mshtml: Directly use dispex_prop_put and dispex_prop_get in HTMLElement implementation.
mshtml: Factor out dispex_next_id.
mshtml: Don't use BSTR in find_dispid.
mshtml: Don't use BSTR in lookup_dispid.
mshtml: Don't use BSTR in get_dispid.
mshtml: Factor out dispex_get_id.
mshtml: Use dispex_prop_put in HTMLDOMAttribute_put_nodeValue.
mshtml: Factor out dispex_prop_name.
jscript: Check if PROP_DELETED is actually an external property in find_prop_name.
mshtml: Use host object script bindings for DOM nodes.
mshtml: Use dispex_get_id in JSDispatchHost_LookupProperty.
mshtml: Introduce get_prop_desc call.
mshtml: Use host object script bindings for HTMLRectCollection.
jscript: Make sure to use the right name for a prototype reference in find_prop_name_prot.
jscript: Fixup prototype references as part of lookup.
jscript: Use a dedicated jsclass_t entry for host objects.
jscript: Improve invoke_prop_func error handling.
mshtml: Explicitly specify case insensitive search in GetIDsOfNames.
jscript: Treat external properties as volatile.
jscript: Suport deleting host object properties.
jscript: Support configuring host properties.
jscript: Allow host objects to implement fdexNameEnsure.
mshtml: Use host object script bindings for HTMLFormElement.
mshtml: Use ensure_real_info in dispex_compat_mode.
mshtml: Use host object script bindings for document nodes.
Jinoh Kang (1):
server: Mark the socket as cacheable when it is an accepted or accepted-into socket.
Nikolay Sivov (2):
winhttp/tests: Add some more tests for string options in WinHttpQueryOption().
winhttp: Handle exact buffer length match in WinHttpQueryOption().
Paul Gofman (2):
mshtml: Check get_document_node() result in get_node().
dxdiagn: Fill szHardwareId for sound render devices.
Piotr Caban (4):
ucrtbase: Fix mbstowcs on UTF8 strings.
msvcrt: Use thread-safe functions in _ctime64_s.
msvcrt: Use thread-safe functions in _ctime32_s.
msvcrt: Don't access input string after NULL-byte in mbstowcs.
Rémi Bernon (16):
ddraw/tests: Make sure the window is restored after some minimize tests.
winex11: Reset empty window shape even without a window surface.
server: Expose the thread input keystate through shared memory.
win32u: Introduce a new NtUserGetAsyncKeyboardState call.
win32u: Use the thread input shared memory in GetKeyboardState.
win32u: Use the desktop shared memory in get_async_keyboard_state.
server: Make the get_key_state request key code mandatory.
server: Expose the thread input keystate lock through shared memory.
win32u: Use the thread input shared memory for GetKeyState.
winemac: Use window surface shape for color key transparency.
winemac: Use window surface shape for window shape region.
winevulkan: Fix incorrect 32->64 conversion of debug callbacks.
winevulkan: Use integer types in debug callbacks parameter structs.
winevulkan: Serialize debug callbacks parameter structures.
opengl32: Use integer types in debug callbacks parameter structs.
opengl32: Serialize debug callbacks message string.
Santino Mazza (1):
gdiplus: Support string alignment in GdipMeasureString.
Tim Clem (2):
nsiproxy.sys: Use the pcblist64 sysctl to enumerate TCP connections on macOS.
nsiproxy.sys: Use the pcblist64 sysctl to enumerate UDP connections on macOS.
Vijay Kiran Kamuju (1):
cmd: Do not set enviroment variable when no input is provided by set /p command.
Zhiyi Zhang (3):
light.msstyles: Add Explorer::ListView subclass.
comctl32/tests: Add more treeview background tests.
comctl32/treeview: Use window color to fill background.
Ziqing Hui (5):
include: Add encoder codec type guids.
include: Add encoder common format guids.
include: Add encoder common attribute defines.
include: Add H264 encoder attribute guids.
include: Add video encoder output frame rate defines.
```
The Wine development release 9.13 is now available.
What's new in this release:
- Support for loading ODBC Windows drivers.
- More user32 data structures in shared memory.
- More rewriting of the CMD.EXE engine.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.13.tar.xz>
Binary packages for various distributions will be available
from <https://www.winehq.org/download>
You will find documentation on <https://www.winehq.org/documentation>
Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.13/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.13 (total 22):
- #21344 Buffer overflow in WCMD_run_program
- #35163 Victoria 2: A House Divided crashes on start with built-in quartz
- #39206 Lylian demo hangs after intro video
- #44315 Buffer maps cause CPU-GPU synchronization (Guild Wars 2, The Witcher 3)
- #44888 Wrong texture in Assassin's Creed : Revelations
- #45810 WINEPATH maximums
- #52345 Unclosed right-side double quote in if command breaks wine cmd
- #52346 Filename completion is not supported in cmd
- #54246 Full Metal Daemon Muramasa stuck at black screen at boot
- #54499 Native ODBC drivers should be able be used.
- #54575 False positive detection of mmc reader as hard drive since kernel 6.1
- #55130 IF EXIST fails when its argument ends on a slash
- #55401 CMD 'for loop' params are not recognized
- #56575 CUERipper 2.2.5 Crashes on loading WMA plugin
- #56600 MEGA TECH Faktura Small Business: Access violation in module kernelbase.dll
- #56617 Photoshop CC 2024: crashes after a short period (Unimplemented function NETAPI32.dll.NetGetAadJoinInformation)
- #56882 ConEmu errors: Injecting hooks failed
- #56895 So Blonde (demo): font display bug (regression)
- #56938 msiexec crashes with stack overflow when installing python 3.11+ dev.msi
- #56945 Multiple UI elements in builtin programs is missing (taskbar in Virtual Desktop, right-click menu in RegEdit)
- #56948 Intel Hardware Accelerated Execution Manager needs unimplemented function ntoskrnl.exe.KeQueryGroupAffinity
- #56952 PS installer crashes inside msi (regression)
### Changes since 9.12:
```
Alex Henrie (11):
msi: Initialize size argument to RegGetValueW.
shell32: Pass size in bytes to RegGetValueW.
twinapi.appcore: Initialize size argument to RegGetValueW.
mscoree: Pass size in bytes to RegGetValueW.
wineboot: Correct size argument to SetupDiSetDeviceRegistryPropertyA.
advapi32/tests: Test RegGetValue[AW] null termination.
advapi32/tests: Drop security test workarounds for Windows <= 2000.
windowscodecs: Use RegQueryValueExW in ComponentInfo_GetStringValue.
kernelbase: Ensure null termination in RegGetValue[AW].
ntdll: Double-null-terminate registry multi-strings in RtlQueryRegistryValues.
ntdll/tests: Remove unused WINE_TODO_DATA flag.
Alexandre Julliard (26):
kernelbase: Mask extra protection flags in WriteProcessMemory.
wow64: Call pre- and post- memory notifications also in the current process case.
wow64: Add more cross-process notifications.
ntdll/tests: Add tests for in-process memory notifications on ARM64.
wow64: Add a helper to get the 32-bit TEB.
ntdll: Always set the dll name pointer in the 32-bit TEB.
wow64: Fix NtMapViewOfSection CPU backend notifications.
wow64: Add NtReadFile CPU backend notifications.
wow64cpu: Simplify the Unix call thunk.
xtajit64: Add stub dll.
ntdll: Load xtajit64.dll on ARM64EC.
ntdll/tests: Add some tests for xtajit64.
ntdll: Create the cross-process work list at startup on ARM64EC.
ntdll: Support the ARM64EC work list in RtlOpenCrossProcessEmulatorWorkConnection.
ntdll: Call the processor information callback on ARM64EC.
ntdll: Load the processor features from the emulator on ARM64EC.
ntdll: Call the flush instruction cache callback on ARM64EC.
ntdll: Call the memory allocation callbacks on ARM64EC.
ntdll: Call the section map callbacks on ARM64EC.
ntdll: Call the read file callback on ARM64EC.
ntdll: Implement ProcessPendingCrossProcessEmulatorWork on ARM64EC.
wininet/tests: Update issuer check for winehq.org certificate.
wow64: Fix prototype for the NtTerminateThread CPU backend notification.
wow64: Add NtTerminateProcess CPU backend notifications.
ntdll: Call the terminate thread callback on ARM64EC.
ntdll: Call the terminate process callback on ARM64EC.
Alexandros Frantzis (4):
opengl32: Add default implementation for wglChoosePixelFormatARB.
winex11: Remove driver wglChoosePixelFormatARB implementation.
winewayland: Support WGL_ARB_pixel_format.
winewayland: Support WGL_ARB_pixel_format_float.
Alfred Agrell (10):
include: Fix typo in DXGI_DEBUG_APP.
include: Fix typo in IID_IDWriteStringList.
include: Fix typo in IID_IAudioLoudness.
include: Fix typo in GUID_DEVCLASS_1394DEBUG.
include: Fix typo in IID_IRemoteDebugApplication.
include: Fix typos in MF_MT_VIDEO_3D and MF_MT_AUDIO_FOLDDOWN_MATRIX.
include: Fix typos in IID_IMimeWebDocument and IID_IMimeMessageCallback.
include: Fix typos in IID_IPropertyEnumType2 and CLSID_PropertySystem.
include: Fix typo in MEDIASUBTYPE_P408.
include: Fix typo in CLSID_WICXMPMetadataReader.
Austin English (2):
netapi32: Add NetGetAadJoinInformation stub.
ntoskrnl.exe: Add a stub for KeQueryGroupAffinity.
Biswapriyo Nath (5):
include: Add flags for ID3D11ShaderReflection::GetRequiresFlags method in d3d11shader.h.
include: Add macros for d3d12 shader version in d3d12shader.idl.
include: Add new names in D3D_NAME enum in d3dcommon.idl.
include: Fix typo with XINPUT_DEVSUBTYPE_FLIGHT_STICK name in xinput.h.
include: Fix typo with X3DAUDIO_EMITTER structure in x3daudio.h.
Brendan McGrath (3):
winegstreamer: Use process affinity to calculate thread_count.
winegstreamer: Use thread_count to determine 'max-threads' value.
winegstreamer: Set 'max_threads' to 4 for 32-bit processors.
Connor McAdams (14):
d3dx9/tests: Move the images used across multiple test files into a shared header.
d3dx9/tests: Add more D3DXLoadVolumeFromFileInMemory() tests.
d3dx9: Use shared code in D3DXLoadVolumeFromFileInMemory().
d3dx9/tests: Add more tests for D3DXCreateVolumeTextureFromFileInMemoryEx().
d3dx9: Refactor texture creation and cleanup in D3DXCreateVolumeTextureFromFileInMemoryEx().
d3dx9: Cleanup texture value argument handling in D3DXCreateVolumeTextureFromFileInMemoryEx().
d3dx9: Use d3dx_image structure inside of D3DXCreateVolumeTextureFromFileInMemoryEx().
d3dx9: Add support for mipmap generation to D3DXCreateVolumeTextureFromFileInMemoryEx().
d3dx9/tests: Add tests for DDS skip mip level bits.
d3dx9: Apply the DDS skip mip level bitmask.
d3dx9/tests: Add more DDS header tests for volume texture files.
d3dx9: Check the proper flag for DDS files representing a volume texture.
d3dx9/tests: Add more DDS header tests for cube texture files.
d3dx9: Return failure if a cubemap DDS file does not contain all faces.
Dmitry Timoshkov (3):
msv1_0: Add support for SECPKG_CRED_BOTH.
kerberos: Add support for SECPKG_CRED_BOTH.
crypt32: Make CertFindCertificateInStore(CERT_FIND_ISSUER_NAME) work.
Elizabeth Figura (19):
d3dcompiler/tests: Use the correct interfaces for some COM calls.
mfplat/tests: Use the correct interfaces for some COM calls.
d3dx9: Use the correct interfaces for some COM calls.
d3dx9/tests: Define COBJMACROS.
mfplat/tests: Add more tests for compressed formats.
winegstreamer: Check the version before calling wg_format_from_caps_video_mpeg1().
winegstreamer: Implement MPEG-4 audio to wg_format conversion.
winegstreamer: Implement H.264 to wg_format conversion.
winegstreamer: Implement H.264 to IMFMediaType conversion.
winegstreamer: Implement AAC to IMFMediaType conversion.
winegstreamer: Implement WMV to IMFMediaType conversion.
winegstreamer: Implement WMA to IMFMediaType conversion.
winegstreamer: Implement MPEG-1 audio to IMFMediaType conversion.
wined3d: Invalidate the FFP VS when diffuse presence changes.
wined3d: Destroy the push constant buffers on device reset.
wined3d: Feed the fragment part of WINED3D_RS_SPECULARENABLE through a push constant buffer.
wined3d: Feed the FFP color key through a push constant buffer.
wined3d: Reorder light application in wined3d_device_apply_stateblock().
wined3d: Feed WINED3D_RS_AMBIENT through a push constant buffer.
Eric Pouech (49):
cmd: Add success/failure tests for file related commands.
cmd: Set success/failure return code for TYPE command.
cmd: Set success/failure return code DELETE command.
cmd: Set success/failure return code for MOVE command.
cmd: Set success/failure return code for RENAME command.
cmd: Set success/failure return code for COPY command.
cmd: Add success/failure tests for dir related commands.
cmd: Add success/failure return code for MKDIR/MD commands.
cmd: Set success/failure return code for CD command.
cmd: Set success/failure return code for DIR command.
cmd: Set success/failure return code for PUSHD command.
cmd: Add some more tests for success/failure.
cmd: Return tri-state for WCMD_ReadParseLine().
cmd: Improve return code / errorlevel handling.
cmd: Set success/failure return_code for POPD command.
cmd: Set success/failure return code for RMDIR/RD command.
cmd: Don't set ERRORLEVEL in case of redirection error.
cmd/tests: Test success / failure for more commands.
cmd: Set success/failure return code for SETLOCAL/ENDLOCAL commands.
cmd: Set success/failure return code for DATE/TIME commands.
cmd: Set success/failure return code for VER command.
cmd: Set success/failure return code for VERIFY command.
cmd: Set success/failure return code for VOL command.
cmd: Set success/failure return code for LABEL command.
cmd/tests: Add more tests for success/failure.
cmd: Set success/failure return code of PATH command.
cmd: Set success/failure return code for SET command.
cmd: Set success/failure return code for ASSOC,FTYPE commands.
cmd: Set success/failure return code for SHIFT command.
cmd: Set success/failure return code for HELP commands.
cmd: Set success/failure return_code for PROMPT command.
cmd: Add tests for screen/interactive builtin commands.
cmd: Set success/failure return code for CLS command.
cmd: Set success/failure return code for COLOR command.
cmd: Set success/failure return code for TITLE command.
cmd: Use the correct output handle in pipe command.
cmd: Set success/failure return code for CHOICE command.
cmd: Set success/failure return code for MORE command.
cmd: Set success/failure return code for PAUSE command.
cmd: Get rid of CTTY command.
cmd: Add more tests for return codes in builtin commands.
cmd: Set success/failure return code for MKLINK command.
cmd: Set success/failure return code for START command.
cmd: Move empty batch command handling to WCMD_batch() callers.
cmd: Improve return code/errorlevel support for external commands.
cmd: Cleanup transition bits.
cmd: Get rid for CMD_COMMAND structure.
cmd: When parsing, dispose created objects on error path.
cmd: Fix a couple of issues with redirections.
Fabian Maurer (6):
cmd: Close file opened with popen with correct function (coverity).
mlang/tests: Add test for GetGlobalFontLinkObject allowing IID_IMultiLanguage2.
mlang/tests: Add tests showing which interface is returned by GetGlobalFontLinkObject.
mlang: Return the correct interface in GetGlobalFontLinkObject.
d3dx9: Remove superflous nullcheck (coverity).
msv1_0: Set mode in ntlm_check_version.
Hans Leidekker (25):
msi: Avoid infinite recursion while processing the DrLocator table.
odbc32: Turn SQLBindParam() into a stub.
odbc32: Replicate Unix data sources to the ODBC Data Sources key.
odbc32: Reimplement SQLDrivers() using registry functions.
odbc32: Reimplement SQLDataSources() using registry functions.
odbc32: Introduce a Windows driver loader and forward a couple of functions.
odbc32: Forward more functions to the Windows driver.
odbc32: Forward yet more functions to the Windows driver.
odbc32: Forward the remaining functions to the Windows driver.
odbc32/tests: Add tests.
msi: Handle failure from MSI_RecordGetInteger().
msi: Load DrLocator table in ITERATE_AppSearch().
winhttp: Implement WinHttpQueryOption(WINHTTP_OPTION_URL).
odbc32: Implement SQLSetEnvAttr(SQL_ATTR_ODBC_VERSION).
odbc32: Implement SQLGet/SetConnectAttr(SQL_ATTR_LOGIN_TIMEOUT).
odbc32: Implement SQLGet/SetConnectAttr(SQL_ATTR_CONNECTION_TIMEOUT).
odbc32: Stub SQLGetEnvAttr(SQL_ATTR_CONNECTION_POOLING).
odbc32: Handle options in SQLFreeStmt().
odbc32: Default to ODBC version 2.
odbc32: Implement SQLGetInfo(SQL_ODBC_VER).
odbc32: Factor out helpers to create driver environment and connection handles.
odbc32: Accept SQL_FETCH_NEXT in SQLDataSources/Drivers() if the key has not been opened.
odbc32: Set parent functions before creating the environment handle.
odbc32: Use SQLFreeHandle() instead of SQLFreeEnv/Connect().
odbc32: Use SQLSetConnectAttrW() instead of SQLSetConnectAttr() if possible.
Ilia Docin (1):
comctl32/rebar: Hide chevron if rebar's band is resized back to full size with gripper.
Jacek Caban (38):
jscript: Factor out find_external_prop.
jscript: Rename PROP_IDX to PROP_EXTERN.
jscript: Introduce lookup_prop callback.
jscript: Factor out lookup_dispex_prop.
jscript: Introduce next_property callback.
jscript: Factor out handle_dispatch_exception.
jscript: Use to_disp in a few more places.
mshtml: Factor out dispex_prop_put.
mshtml: Factor out dispex_prop_get.
mshtml: Factor out dispex_prop_call.
jscript: Allow objects to have their own addref and release implementation.
jscript: Introduce IWineJSDispatch insterface.
mshtml: Allow external properties to have arbitrary names.
jscript: Introduce HostObject implementation.
jscript: Support converting host objects to string.
jscript: Support host objects in disp_cmp.
jscript: Use jsdisp_t internally for host objects that support it.
mshtml: Implement jscript IWineJSDispatchHost.
mshtml: Pass an optional script global window to init_dispatch.
mshtml: Support using IWineJSDispatch for DispatchEx implementation.
mshtml: Use IWineJSDispatch for screen object script bindings.
jscript: Factor out native_function_string.
jscript: Add support for host functions.
mshtml/tests: Make todo_wine explicit in builtin_toString tests.
mshtml: Use host object script bindings for DOMImplementation class.
mshtml: Use host object script bindings for History class.
mshtml: Use host object script bindings for PerformanceNavigation class.
mshtml: Use host object script bindings for PerformanceTiming class.
mshtml: Use host object script bindings for Performance class.
mshtml: Store document node instead of GeckoBrowser in DOMImplementation.
mshtml/tests: Add script context test.
mshtml: Store script global object pointer in document object.
mshtml: Use host object script bindings for MediaQueryList class.
mshtml: Use host object script bindings for Navigator class.
mshtml: Use host object script bindings for Selection class.
mshtml: Use host object script bindings for TextRange class.
mshtml: Use host object script bindings for Range class.
mshtml: Use host object script bindings for Console class.
Marc-Aurel Zent (4):
ntdll: Prefer futex for thread-ID alerts over kqueue.
ntdll: Use USE_FUTEX to indicate futex support.
ntdll: Simplify futex interface from futex_wake() to futex_wake_one().
ntdll: Implement futex_wait() and futex_wake_one() on macOS.
Matthias Gorzellik (2):
winebus.sys: Fix rotation for angles < 90deg.
winebus.sys: Align logical max of angles to physical max defined in dinput.
Mohamad Al-Jaf (7):
include: Add windows.data.json.idl file.
windows.web: Add stub DLL.
windows.web: Implement IActivationFactory::ActivateInstance().
include: Add IJsonValueStatics interface definition.
windows.web: Add IJsonValueStatics stub interface.
windows.web/tests: Add IJsonValueStatics::CreateStringValue() tests.
windows.web: Implement IJsonValueStatics::CreateStringValue().
Nikolay Sivov (2):
winhttp/tests: Add some tests for querying string options with NULL buffer.
winhttp: Fix error handling when returning string options.
Paul Gofman (14):
ntdll: Report the space completely outside of reserved areas as allocated on i386.
psapi/tests: Add tests for QueryWorkingSetEx() with multiple addresses.
ntdll: Validate length in get_working_set_ex().
ntdll: Factor OS-specific parts out of get_working_set_ex().
ntdll: Iterate views instead of requested addresses in get_working_set_ex().
ntdll: Limit vprot scan range to the needed interval in get_working_set_ex().
ntdll: Fill range of output in fill_working_set_info().
ntdll: Buffer pagemap reads in fill_working_set_info().
winhttp/tests: Add test for trailing spaces in reply header.
winhttp: Construct raw header from the parse result in read_reply().
winhttp: Skip trailing spaces in reply header names.
win32u: Use FT_LOAD_PEDANTIC on first load try in freetype_get_glyph_outline().
ntdll: Better track thread pool wait's wait_pending state.
ntdll: Make sure wakeups from already unset events are ignored in waitqueue_thread_proc().
Piotr Caban (9):
ucrtbase: Store exception record in ExceptionInformation[6] during unwinding.
xcopy: Exit after displaying help message.
xcopy: Exit on invalid command line argument.
xcopy: Strip quotes only from source and destination arguments.
xcopy: Introduce get_arg helper that duplicates first argument to new string.
xcopy: Handle switch options concatenated with path.
xcopy: Add support for parsing concatenated switches.
kernel32/tests: Fix CompareStringW test crash when linguistic compressions are used.
ucrtbase: Fix FILE no buffering flag value.
Rémi Bernon (60):
server: Move thread message queue masks to the shared mapping.
win32u: Read the thread message queue masks from the shared memory.
server: Move thread message queue bits to the shared mapping.
win32u: Use the thread message queue shared memory in get_input_state.
win32u: Use the thread message queue shared memory in NtUserGetQueueStatus.
win32u: Use the thread message queue shared memory in wait_message_reply.
mf/session: Don't update transform output type if not needed.
mf/session: Implement D3D device manager propagation.
winegstreamer: Translate GstCaps directly to MFVIDEOFORMAT / WAVEFORMATEX in wg_transform.
winegstreamer: Translate MFVIDEOFORMAT / WAVEFORMATEX directly to GstCaps in wg_transform.
winegstreamer: Create transforms from MFVIDEOFORMAT / WAVEFORMATEX.
winegstreamer: Only use pool and set buffer meta for raw video frames.
winegstreamer: Use a new wg_video_buffer_pool class to add buffer meta.
winegstreamer: Keep the input caps on the transform.
winegstreamer: Use video info stride in buffer meta rather than videoflip.
winegstreamer: Normalize both input and output media types stride at once.
winegstreamer: Normalize video processor and color converter apertures.
winegstreamer: Respect video format padding for input buffers too.
server: Move the desktop flags to the shared memory.
win32u: Use the shared memory to read the desktop flags.
server: Create a thread input shared mapping.
server: Move active window to input shared memory.
server: Move focus window to input shared memory.
server: Move capture window to input shared memory.
server: Move caret window and rect to input shared memory.
win32u: Use input shared memory for NtUserGetGUIThreadInfo.
win32u: Move offscreen window surface creation fallback.
win32u: Split a new create_window_surface helper from apply_window_pos.
win32u: Pass the window surface rect for CreateLayeredWindow.
win32u: Pass whether window is shaped to drivers WindowPosChanging.
win32u: Introduce a new window surface helper to set window shape.
win32u: Use a 1bpp bitmap to store the window surface shape bits.
win32u: Update the window surface shape with color key and alpha.
win32u: Pass the shape bitmap info and bits to window_surface flush.
mfreadwrite/reader: Look for a matching output type if setting it failed.
winex11: Reset window shape whenever window surface is created.
mf/tests: Remove static specifier on variables referencing other variables.
win32u: Allocate heap in peek_message only when necessary.
win32u: Use the thread message queue shared memory in peek_message.
win32u: Simplify the logic for driver messages polling.
ddraw/tests: Make sure the window is restored after some minimize tests.
ddraw/tests: Flush messages and X11 events between some tests.
server: Add a foreground flag to the thread input shared memory.
server: Add cursor handle and count to desktop shared memory.
win32u: Use the thread input shared memory for NtUserGetForegroundWindow.
win32u: Use the thread input shared memory for NtUserGetCursorInfo.
win32u: Use the thread input shared memory for NtUserGetGUIThreadInfo.
server: Use a shared_object_t for the dummy object.
win32u: Check the surface layered nature when reusing window surface.
win32u: Update the window state when WS_EX_LAYERED window style changes.
win32u: Update the layered surface attributes in apply_window_pos.
winex11: Rely on win32u layered window surface attribute updates.
wineandroid: Rely on win32u layered window surface attribute updates.
winemac: Rely on win32u layered window surface attribute updates.
winegstreamer/video_decoder: Generate timestamps relative to the first input sample.
mfreadwrite/reader: Send MFT_MESSAGE_NOTIFY_START_OF_STREAM on start or seek.
mf/tests: Reduce the mute threshold for the transform tests.
win32u: Fix initial value when checking whether WS_EX_LAYERED changes.
win32u: Use the dummy surface for empty layered window surfaces.
maintainers: Remove MF GStreamer section.
Shaun Ren (1):
dinput: Call handle_foreground_lost() synchronously in cbt_hook_proc().
Stefan Dösinger (1):
ddraw: Set dwMaxVertexCount to 2048.
Zhiyi Zhang (1):
winemac.drv: Remove the clear OpenGL views to black hack.
Ziqing Hui (18):
winegstreamer/video_encoder: Implement GetInputAvailableType.
winegstreamer/video_encoder: Implement SetInputType.
winegstreamer/video_encoder: Implement GetInputCurrentType.
mf/tests: Add more tests for h264 encoder type attributes.
winegstreamer/video_encoder: Introduce create_input_type.
winegstreamer/video_encoder: Check more attributes in SetInputType.
winegstreamer/video_encoder: Implement GetInputStreamInfo.
winegstreamer/video_encoder: Implement GetOutputStreamInfo.
winegstreamer/video_encoder: Rename create_input_type to video_encoder_create_input_type.
winegstreamer/video_encoder: Clear input type when setting output type.
winegstreamer/video_encoder: Create wg_transform.
winegstreamer/video_encoder: Implement ProcessInput.
winegstreamer/video_encoder: Implement ProcessMessage.
winegstreamer/video_encoder: Use MF_ATTRIBUTES_MATCH_INTERSECTION to compare input type.
winegstreamer/video_encoder: Set output info cbSize in SetOutputType.
winegstreamer/wg_transform: Introduce transform_create_decoder_elements.
winegstreamer/wg_transform: Introduce transform_create_converter_elements.
winegstreamer/wg_transform: Support creating encoder transform.
```
The Wine development release 9.12 is now available.
What's new in this release:
- Initial support for user32 data structures in shared memory.
- Mono engine updated to version 9.2.0.
- Rewrite of the CMD.EXE engine.
- Fixed handling of async I/O status in new WoW64 mode.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.12.tar.xz>
Binary packages for various distributions will be available
from <https://www.winehq.org/download>
You will find documentation on <https://www.winehq.org/documentation>
Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.12/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.12 (total 24):
- #43337 Conditional command with parentheses not working.
- #44063 Parentheses cause cmd.exe failing to recognize '2>&1'
- #47071 Nest or mixed "FOR" and "IF" command sometimes get different result in Wine and Windows.
- #47798 Incorrect substring result using enableDelayedExpansion
- #49993 CUERipper 2.1.x does not work with Wine-Mono
- #50723 Can't recognize ... as an internal or external command, or batch script
- #52344 Can't substitute variables as a command
- #52879 ESET SysInspector 1.4.2.0 crashes on unimplemented function wevtapi.dll.EvtCreateRenderContext
- #53190 cmd.exe incorrectly parses a line with nested if commands
- #54935 Rewrite (VN): black screen videos with WMP backend and gstreamer
- #55947 Serial port event waits should use async I/O
- #56189 quartz:vmr7 - test_default_presenter_allocate() fails on Windows 7
- #56389 Assassin's Creed & Assassin's Creed: Revelations do not run under new WoW64
- #56698 SuddenStrike 3 crashes when opening the intro movie
- #56763 Firefox 126.0.1 crashes on startup
- #56769 Death to Spies: intro videos have audio only but no video
- #56771 Receiving mail in BeckyInternetMail freezes
- #56827 Window borders disappear
- #56836 Assassin's Creed III stuck on loading screen (Vulkan renderer)
- #56838 FL Studio 21 gui problem
- #56839 App packager from Windows SDK (MakeAppx.exe) 'pack' command crashes due to unimplemented functions in ntdll.dll
- #56840 Apps don't launch with wayland driver
- #56841 virtual desktop "explorer.exe /desktop=shell,1920x1080" broken
- #56871 The 32-bit wpcap program is working abnormally
### Changes since 9.11:
```
Aida Jonikienė (1):
ntdll: Fix params_mask type in NtRaiseHardError().
Alex Henrie (6):
ntdll: Fix multi-string callbacks in RtlQueryRegistryValues.
ntdll: Double-null-terminate multi-strings when using RTL_QUERY_REGISTRY_DIRECT.
ntdll: Fix handling of non-string types with RTL_QUERY_REGISTRY_DIRECT.
ntdll: Don't write partial strings with RTL_QUERY_REGISTRY_DIRECT.
ntdll: Fix type and size of expanded strings in RtlQueryRegistryValues.
ntdll: Don't special-case default values in RtlQueryRegistryValues.
Alexandre Julliard (28):
ntdll/tests: Add test for cross-process notifications on ARM64EC.
kernel32/tests: Add some tests for WriteProcessMemory/NtWriteVirtualMemory.
kernelbase: Make memory writable in WriteProcessMemory if necessary.
kernelbase: Send cross process notifications in WriteProcessMemory on ARM64.
kernelbase: Send cross process notifications in FlushInstructionCache on ARM64.
kernelbase: Don't use WRITECOPY protection on anonymous mappings.
ntdll: Add helper macros to define syscalls on ARM64EC.
ntdll: Send cross-process notification in memory functions on ARM64EC.
ntdll: Fix the fake 32-bit %cs value on ARM64EC.
ntdll: Don't set the TEB ExceptionList to -1 on 64-bit.
ntdll: Simplify preloader execution using HAVE_WINE_PRELOADER.
ntdll: Export a proper function for RtlGetNativeSystemInformation.
ntdll: Move RtlIsProcessorFeaturePresent implementation to the CPU backends.
ntdll: Move the IP string conversion functions to rtlstr.c.
makedep: Add a helper to get a root-relative directory path.
makefiles: Hardcode the fonts directory.
makefiles: Hardcode the nls directory.
makefiles: Hardcode the dll directory.
makefiles: Generate rules to build makedep.
tools: Add helper functions to get the standard directories.
ntdll: Build relative paths at run-time instead of depending on makedep.
loader: Build relative paths at run-time instead of depending on makedep.
server: Build relative paths at run-time instead of depending on makedep.
makefiles: No longer ignore makedep.c.
configure: Disable non-PE import libraries if compiler support is missing.
makedep: Remove the -R option.
makedep: Generate rules for make depend.
makedep: Generate a compile_commands.json file.
Alexandros Frantzis (5):
opengl32: Add default implementation for wglGetPixelFormatAttribivARB.
opengl32: Add default implementation for wglGetPixelFormatAttribfvARB.
winex11: Update describe_pixel_format coding style.
winex11: Pass wgl_pixel_format to describe_pixel_format.
winex11: Use default wglGetPixelFormatAttribivARB implementation.
Alfred Agrell (10):
quartz: Implement AMT/WMT differences for WMV media type.
winegstreamer: Implement AM_MEDIA_TYPE to wg_format converter for Cinepak video.
winegstreamer: Make AVI splitter use end of previous frame if the current frame doesn't have a timestamp.
quartz/tests: Add Cinepak test to avi splitter.
iccvid: Reject unsupported output types.
msvfw32/tests: Test that Cinepak rejects unsupported output types.
quartz: Allow concurrent calls to AVI decoder qc_Notify and Receive.
quartz/tests: Test that avi_decompressor_source_qc_Notify does not deadlock if called from a foreign thread during IMemInput_Receive.
winegstreamer: Recalculate alignment and bytes per second, instead of copying from input.
mf/tests: Clobber the alignment and bytes per second, to test if the DMO fixes it.
Alistair Leslie-Hughes (11):
oledb32: Support multiple values when parsing the property Mode.
oledb32: When creating a Data Source, handle non fatal errors.
msado15: Use the correct version when loading the typelib.
odbccp32: Look at the Setup key to find the driver of ODBC config functions.
odbccp32: SQLConfigDataSource/W fix crash with passed NULL attribute parameter.
msado15: Implement _Recordset get/put CacheSize.
msado15: Implement _Recordset get/put MaxRecords.
msado15: Support interface ADOCommandConstruction in _Command.
msado15: Implement _Command::get_Parameters.
msado15: Implement Parameters interface.
msado15: Implement _Command::CreateParameter.
Arkadiusz Hiler (2):
bcp47langs: Add stub dll.
apisetschema: Add api-ms-win-appmodel-runtime-internal-l1-1-1.
Aurimas Fišeras (3):
po: Update Lithuanian translation.
po: Update Lithuanian translation.
po: Update Lithuanian translation.
Biswapriyo Nath (6):
include: Add Windows.Graphics.Capture.IGraphicsCaptureSession2 definition.
include: Add Windows.Graphics.Capture.IGraphicsCaptureSession3 definition.
include: Add windows.graphics.idl file.
include: Add Windows.Graphics.Capture.GraphicsCaptureItem runtimeclass.
include: Add Windows.Graphics.Capture.Direct3D11CaptureFrame runtimeclass.
include: Add Windows.Graphics.Capture.Direct3D11CaptureFramePool runtimeclass.
Brendan McGrath (3):
mf/tests: Add additional tests for MESessionClosed event.
mf: Handle MediaSession Close when state is SESSION_STATE_RESTARTING_SOURCES.
mf: Handle an error during Media Session Close.
Brendan Shanks (9):
dbghelp: Add ARM/ARM64 machine types for Mach-O.
ntdll: Make __wine_syscall_dispatcher_return a separate function to fix Xcode 16 build errors.
configure: Don't build wineloader on macOS with '-pie'.
configure: Remove warning when not using preloader on macOS.
configure: Rename wine_can_build_preloader to wine_use_preloader, and also use it for Linux.
configure: Define HAVE_WINE_PRELOADER when the preloader is being built.
loader: Use zerofill sections instead of preloader on macOS when building with Xcode 15.3.
winemac.drv: Fix warning in [WineWindow grabDockIconSnapshotFromWindow:force:].
winemac.drv: Fix warning in [WineContentView viewWillDraw].
Connor McAdams (8):
d3dx9/tests: Add tests for the source info argument of D3DXCreateTextureFromFileInMemoryEx().
d3dx9/tests: Add more tests for loading files with multiple mip levels into textures.
d3dx9: Refactor texture creation and cleanup in D3DXCreateTextureFromFileInMemoryEx().
d3dx9: Use d3dx_image structure inside of D3DXCreateTextureFromFileInMemoryEx().
d3dx9: Use struct volume inside of struct d3dx_image for storing dimensions.
d3dx9: Add support for specifying a starting mip level when initializing a d3dx_image structure.
d3dx9: Cleanup texture value argument handling in D3DXCreateTextureFromFileInMemoryEx().
d3dx9: Add support for specifying which mip level to get pixel data from to d3dx_image_get_pixels().
Daniel Lehman (3):
odbc32: Handle both directions for SQLBindParameter().
odbc32: Numeric attribute pointer may be null if not a numeric type in SQLColAttribute().
odbc32: StrLen_or_Ind passed to SQLBindCol can be NULL.
Danyil Blyschak (1):
gdi32/uniscribe: Ensure the cache is initialised.
Davide Beatrici (7):
mmdevapi: Set the default period to a minimum of 10 ms.
winepulse: Don't set a floor for the period(s).
mmdevapi: Return errors early in adjust_timing().
mmdevapi: Introduce helper stream_init().
mmdevapi: Complete IAudioClient3_InitializeSharedAudioStream.
mmdevapi: Complete IAudioClient3_GetSharedModeEnginePeriod.
mmdevapi: Implement IAudioClient3_GetCurrentSharedModeEnginePeriod.
Elizabeth Figura (41):
server: Check for an existing serial wait ioctl within the ioctl handler.
server: Directly wake up wait asyncs when the serial mask changes.
ntdll/tests: Use NtReadFile to test WoW64 IOSB handling.
ntdll/tests: Test IOSB handling for a synchronous write which cannot be satisfied immediately.
ntdll/tests: Test IOSB handling with NtFlushBuffersFile.
maintainers: Remove myself as a winegstreamer maintainer.
ntdll: Remove the redundant filling of the IOSB in NtDeviceIoControlFile().
ntdll: Do not fill the IOSB or signal completion on failure in cdrom_DeviceIoControl().
ntdll: Do not fill the IOSB or signal completion on failure in serial_DeviceIoControl().
ntdll: Do not fill the IOSB or signal completion on failure in tape_DeviceIoControl().
ntdll: Do not fill the IOSB in NtFsControlFile() on failure.
ntdll: Do not queue an IOCP packet in complete_async() if an APC routine is specified.
ntdll: Move complete_async() to file.c and use it in NtWriteFileGather().
ntdll: Use file_complete_async() in tape_DeviceIoControl().
ntdll: Use file_complete_async() in cdrom_DeviceIoControl().
ntdll: Use file_complete_async() in serial_DeviceIoControl().
ntdll: Use file_complete_async() in NtFsControlFile().
quartz/tests: Handle the case where ddraw returns system memory.
ntdll: Do not set io->Status at the end of sock_ioctl().
ntdll: Factor filling the IOSB into set_async_direct_result().
ntdll: Move set_async_direct_result() to file.c.
widl: Do not allow "lu" as an integer suffix.
widl: Store the hexadecimal flag inside of the expr_t union.
widl: Use struct integer for the aNUM and aHEXNUM tokens.
widl: Respect u and l modifiers in expressions.
quartz/tests: Test IVMRWindowlessControl::GetNativeWindowSize() on the default presenter.
quartz: Implement IVMRWindowlessControl::GetNativeVideoSize().
wined3d: Precompute direction and position in wined3d_light_state_set_light().
wined3d: Pass the primary stateblock to wined3d_device_process_vertices().
wined3d: Use the primary stateblock state in wined3d_device_process_vertices() where possible.
wined3d: Pass the constant update mask to wined3d_device_context_push_constants().
wined3d: Feed WINED3D_TSS_CONSTANT through a push constant buffer.
wined3d: Feed WINED3D_RS_TEXTUREFACTOR through a push constant buffer.
ntdll: Introduce a sync_ioctl() helper.
ntdll: Handle WoW64 file handles in sync_ioctl().
ntdll: Always fill the 32-bit iosb for overlapped handles, for server I/O.
ntdll: Always fill the 32-bit iosb for overlapped handles, in file_complete_async().
ntdll: Always fill the 32-bit iosb for overlapped handles, in set_async_direct_result().
ntdll: Always fill the 32-bit iosb for overlapped handles, for regular read/write.
wined3d: Recheck whether a query is active after wined3d_context_vk_get_command_buffer().
wined3d: Implement wined3d_check_device_format_conversion().
Eric Pouech (36):
cmd: Add more tests about FOR loops.
cmd: Introduce helpers to handle FOR variables.
cmd: Introduce helpers to save and restore FOR loop contexts.
cmd: Enable '%0' through '%9' as valid FOR loop variables.
cmd: Introduce helpers to handle directory walk.
cmd: Split parsing from executing FOR loops for numbers (/L).
cmd: Fix delay expansion in FOR /L loops.
cmd: Split parsing from executing FOR loops for filesets (/F).
cmd: Fix delay expansion in FOR loop for filesets.
cmd: Split parsing from executing FOR loops for file walking.
cmd: Fix delayed expansion in FOR loop on file sets.
cmd: Remove old FOR loop related code.
cmd: Test input has been read before using it.
cmd: Introduce token-based syntax parser for building command nodes.
cmd: Use kernel32's error codes instead of literals.
cmd: Introduce return code to indicate abort of current instruction.
cmd/tests: Add tests for delayed substitution in IF command.
cmd: Expand delayed variables in IF operands.
cmd: Factorize code for reading a new line for parser.
cmd: Remove unrelated parameter to WCMD_show_prompt.
cmd: Move prompt handling into line reading.
cmd: Fix a couple of issues wrt. variable expansion.
cmd: Move depth count inside builder.
cmd: Add more tests about CALL and variable expansion.
cmd: Fix a couple of expansions issues.
cmd: Let redirections be handled by node instead of command.
cmd: Move code around to avoid forward declaration.
cmd: Let token errors be tranlatable.
cmd: Migrate IF/FOR instructions inside CMD_NODE.
cmd: Support help for IF and FOR commands.
cmd: Return sub-block return code for IF and FOR.
cmd: Use precedence in command chaining.
cmd: Add success/failure return code tests for CALL command.
cmd: Set success/failure return code for ECHO command.
cmd: Set success/failure return code for CALL command.
cmd: Implement semantic for chaining in ||, | and && operators.
Esme Povirk (2):
user32/tests: Fix spurious "Failed sequence" reports on Windows.
mscoree: Update Wine Mono to 9.2.0.
Fabian Maurer (1):
wow64: In wow64_NtSetInformationToken forward TokenIntegrityLevel.
Giovanni Mascellani (6):
wined3d: Compile the clear compute shaders at runtime.
d3d11/tests: Check the result of compiling HLSL shaders.
d3d11/tests: Check for NV12 texture support before testing them.
d3d11/tests: Do not check pitches.
d3d11/tests: Test NV12 textures without render target.
d3d11/tests: Test UpdateSubresource() for NV12 textures.
Hans Leidekker (2):
odbc32: Rebind parameters when the result length array is resized.
wpcap: Handle different layout of the native packet header structure on 32-bit.
Ilia Docin (2):
sane.ds: Add SANE option settable flag support.
sane.ds: Improve color mode and paper source detection.
Jacek Caban (12):
mshtml: Introduce IWineJSDispatchHost interface.
mshtml: Rename builtin function helpers.
mshtml: Add support for using call on builtin function objects.
mshtml: Add support for using apply on builtin function objects.
jscript: Fix PROP_DELETED handling in delete_prop.
jscript: Use designated initializers for builtin_info_t.
jscript: Use to_disp in a few more places.
jscript: Introduce to_jsdispex.
jscript: Consistently use jsdisp_addref and jsdisp_release.
jscript: Use default destructor for array objects.
jscript: Use default destructor for Object instances.
jscript: Always free jsdisp_t in jsdisp_free.
Marc-Aurel Zent (7):
winemac.drv: Handle length of dead keycodes in ToUnicodeEx correctly.
winemac.drv: Do not append " dead" to dead keycodes in GetKeyNameText.
winemac.drv: Uppercase single keys in GetKeyNameText.
winemac.drv: Use UCCompareText in char_matches_string.
winemac.drv: Resolve symbol vkeys first without modifiers.
winemac.drv: Add additional German symbol vkeys.
winemac.drv: Give dead keys a friendly name in GetKeyNameText.
Paul Gofman (8):
mmdevapi: Store device_name as a pointer in struct audio_client.
mmdevapi: Adjust timing after main loop start in client_Initialize().
mmdevapi: Stub AUDCLNT_STREAMFLAGS_LOOPBACK support.
winepulse.drv: Factor out wait_pa_operation_complete().
winepulse.drv: Implement pulse_get_loopback_capture_device().
mmdevapi/tests: Add test for capturing render loopback.
ddraw/tests: Add tests for preserving d3d state during primary surface creation.
ddraw: Preserve d3d device state in ddraw_surface_create().
Piotr Caban (3):
kernelbase: Add GetFileMUIInfo implementation.
kernel32/tests: Add GetFileMUIInfo tests.
kernel32/tests: Test GetFileMUIInfo on language resource file.
Rémi Bernon (59):
winewayland: Avoid crashing when the dummy window surface is used.
win32u: Avoid setting the SWP_NOSIZE flag on the initial WM_DISPLAYCHANGE.
win32u: Fix a deadlock when locking the same surface on different DCs.
dwrite/tests: Ignore macOS specific "flip" sbix format.
kernel32/tests: Break debugger loop on unexpected result.
win32u: Use the vulkan functions directly from d3dkmt.
winex11: Don't use the vulkan driver interface for xrandr.
server: Create a global session shared mapping.
include: Add ReadNoFence64 inline helpers.
server: Allocate shared session object for desktops.
server: Return the desktop object locator in (get|set)_thread_desktop.
win32u: Open the desktop shared object in NtUserSetThreadDesktop.
server: Move the cursor position to the desktop session object.
server: Move the last cursor time to the desktop session object.
win32u: Use the desktop shared data for GetCursorPos.
win32u: Remove now unused vulkan_funcs in d3dkmt.c.
winex11: Create a global vulkan instance for xrandr.
include: Add a couple of CRT function declarations.
include: Define frexpf as inline function in more cases.
server: Mark block as writable in mark_block_uninitialized.
server: Store the cursor clip rect in the shared data.
server: Get rid of the global cursor structure.
win32u: Use the shared memory for get_clip_cursor.
server: Use a separate variable to determine the message on Alt release.
server: Use separate functions to update the desktop and input keystates.
server: Move the desktop keystate to shared memory.
win32u: Use the shared data if possible for NtUserGetAsyncKeyState.
winex11: Move window surface creation functions to bitblt.c.
winemac: Move window surface creation functions to surface.c.
winewayland: Move window surface creation functions to window_surface.c.
winemac: Remove unused macdrv_get_surface_display_image copy_data parameter.
winemac: Create a provider for the surface and a HBITMAP wrapping it.
winemac: Create window surface CGImageRef on surface flush.
winemac: Push window surface image updates to the main thread.
winemac: Remove now unnecessary cocoa window surface pointer.
winemac: Remove unnecessary surface_clip_to_visible_rect.
server: Create a thread message queue shared mapping.
server: Keep a reference on the desktop the hook are registered for.
server: Move hooks struct initialization within add_hook.
server: Update the active hooks bitmaps when hooks are added / removed.
win32u: Read the active hooks count from the shared memory.
win32u: Remove now unnecessary thread info active_hooks cache.
server: Remove now unnecessary active_hooks from replies.
winex11: Only clip huge surfaces to the virtual screen rect.
wineandroid: Only clip huge surfaces to the virtual screen rect.
winemac: Clip huge surfaces to the virtual screen rect.
winewayland: Clip huge window surfaces to the virtual screen rect.
win32u: Move the surface rect computation out of the drivers.
win32u: Use the previous surface as default surface when compatible.
win32u: Use the default window surface when window is not visible.
win32u: Move layered surface attributes to the window_surface struct.
win32u: Introduce a new helper to update layered window surface attributes.
win32u: Pass BITMAPINFO and color bits to window surface flush.
win32u: Introduce a new helper to get surface color info and bits.
win32u: Get rid of the unnecessary offscreen window surface struct.
winemac: Remove now unnecessary driver surface BITMAPINFO.
wineandroid: Remove now unnecessary window surface BITMAPINFO.
winewayland: Remove now unnecessary window surface BITMAPINFO.
winex11: Remove now unnecessary window surface BITMAPINFO.
Santino Mazza (3):
mshtml/tests: Test for IMarkupServices.
mshtml: Implement MarkupServices_CreateMarkupContainer.
mshtml: Implement MarkupServices_ParseString.
Torge Matthies (4):
winegstreamer: Fix race between wg_parser_stream_en/disable and GST_EVENT_FLUSH_START/STOP.
winegstreamer: Don't only accept segment events when streams are enabled.
winegstreamer: Ignore an assert in wg_parser.
winegstreamer: Handle Gstreamer pipeline flushes gracefully in the media source.
Vijay Kiran Kamuju (4):
ntdll: Fix RtlEnumerateGenericTableWithoutSplaying function parameters.
ntdll: Add stub RtlEnumerateGenericTableWithoutSplayingAvl function.
ntdll: Add stub RtlNumberGenericTableElementsAvl function.
wevtapi: Add stub EvtCreateRenderContext().
Zhiyi Zhang (9):
profapi: Add stub dll.
kernel32: Add AppPolicyGetWindowingModel().
rometadata: Add initial dll.
include: Add some windows.foundation definitions.
include: Add some windows.system definitions.
include: Add windows.devices.input.idl.
include: Add windows.ui.input.idl.
include: Add some windows.ui.core definitions.
include: Add some windows.applicationmodel definitions.
Ziqing Hui (8):
mf/tests: Add tests for H264 encoder types.
winegstreamer: Implement stubs for h264 encoder.
winegstreamer/aac_decoder: Support clearing media types.
winegstreamer/color_converter: Support clearing media types.
mf/tests: Add more tests for h264 encoder type attributes.
winegstreamer/video_encoder: Implement GetOutputAvailableType.
winegstreamer/video_encoder: Implement SetOutputType.
winegstreamer/video_encoder: Implement GetOutputCurrentType.
```
The Wine development release 9.11 is now available.
What's new in this release:
- C++ exception handling on ARM platforms.
- More DPI Awareness support improvements.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.11.tar.xz>
Binary packages for various distributions will be available
from <https://www.winehq.org/download>
You will find documentation on <https://www.winehq.org/documentation>
Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.11/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.11 (total 27):
- #42270 Settlers 4 Gold - Hardware Rendering mode not working
- #49703 Ghost Recon fails to start
- #50983 Multiple games stuck playing cutscenes (The Long Dark, The Room 4: Old Sins, Saint Kotar)
- #51174 api-ms-win-core-version-l1-1-0: Missing GetFileVersionInfoW and GetFileVersionInfoSizeW
- #52585 Multiple applications need NtQueryDirectoryObject to return multiple entries (Cygwin shells, WinObj 3.01)
- #53960 ucrt has different struct layout than msvcrt
- #54615 dwrite:layout - test_system_fallback() gets unexpected "Meiryo UI" font name in Japanese and Chinese on Windows
- #55362 NeuralNote: Crashes and Rendering issues (alson in VST3 form)
- #55472 DTS Encoder Suite gets stuck with encode pending from Wine 8.14
- #56095 Clanbomber 1.05 starts after a long (30 seconds) delay
- #56397 Numlock status not recognized when using winewayland.drv
- #56451 catch block fetches bogus frame when using alignas with 32 or higher
- #56460 Multiple games have stutter issues (Overwatch 2, Aimbeast)
- #56591 Steam doesn't render individual game pages correctly
- #56606 PhysX installer fails to start
- #56640 Genshin Impact: The game-launcher cannot be started anymore
- #56744 Serial number in smbios system table is not filled on Linux in practice
- #56747 Steam won’t load in the new wow64 mode when using DXVK
- #56755 White textures in EverQuest (Unsupported Conversion in windowscodec/convert.c)
- #56764 Empire Earth Gold doesn't start in virtual desktop mode
- #56766 CDmage 1.01.5 does not redraw window contents fully
- #56781 srcrrun: Dictionary setting item to object fails
- #56788 ComicRackCE crashes when viewing "info" for a comic file
- #56800 Nomad Factory plugins GUI is broken
- #56813 Hard West 2 crashes before entering the main menu (OpenGL renderer)
- #56824 Postal 2 (20th Anniversary update) crashes when loading the map
- #56828 Moku.exe crashes on startup
### Changes since 9.10:
```
Adam Rehn (1):
wineserver: Report non-zero exit code for abnormal process termination.
Alex Henrie (12):
ntdll/tests: Delete the WineTest registry key when the tests finish.
ntdll/tests: Rewrite the RtlQueryRegistryValues tests and add more of them.
ntdll: Succeed in RtlQueryRegistryValues on direct query of nonexistent value.
ntdll: Don't call QueryRoutine if RTL_QUERY_REGISTRY_DIRECT is set.
ntdll: Don't call a null QueryRoutine in RtlQueryRegistryValues.
ntdll/tests: Remove unused WINE_CRASH flag.
ntdll: Copy the correct number of bytes with RTL_QUERY_REGISTRY_DIRECT.
ntdll: Calculate the default size even without RTL_QUERY_REGISTRY_DIRECT.
ntdll: Don't accept a query routine when using RTL_QUERY_REGISTRY_DIRECT.
ntdll: Set the string size when using RTL_QUERY_REGISTRY_DIRECT.
ntdll: Only allow string default values with RTL_QUERY_REGISTRY_DIRECT.
ntdll: Replace the whole string when using RTL_QUERY_REGISTRY_DIRECT.
Alexandre Julliard (40):
faudio: Import upstream release 24.06.
msvcrt: Share a helper macro to print an exception type.
msvcrt: Share the dump_function_descr() helper between platforms.
msvcrt: Fix the ip_to_state() helper for out of bounds values.
msvcrt: Don't use rva_to_ptr() for non-RVA values.
msvcrt: Use the copy_exception() helper in __CxxExceptionFilter.
msvcrt: Share the __CxxExceptionFilter implementation between platforms.
msvcrt: Share the common part of _fpieee_flt between platforms.
msvcrt: Consistently use the rtti_rva() helper.
winedump: Fix dumping of catchblocks for 32-bit modules.
msvcrt: The catchblock frame member isn't present on 32-bit.
msvcrt: Use pointer-sized types instead of hardcoding 64-bit in __CxxFrameHandler.
msvcrt: Share __CxxFrameHandler implementation with ARM platforms.
msvcrt: Add platform-specific helpers to call C++ exception handlers.
msvcrt: Add platform-specific helpers to retrieve the exception PC.
msvcrt: Use platform-specific handlers also for __CxxFrameHandler4.
ntdll: Fix stack alignment in __C_ExecuteExceptionFilter on ARM.
ntdll: Fix a couple of compiler warnings on ARM64EC.
ntdll: Fix inverted floating point masks on ARM64EC.
ntdll: Support x87 control word in __os_arm64x_get_x64_information().
kernel32/tests: Add test for FPU control words on ARM64EC.
msvcrt: Reimplement __crtCapturePreviousContext() based on RtlWalkFrameChain().
msvcrt: Use the __os_arm64x functions to get/set mxcsr on ARM64EC.
msvcrt: Implement asm sqrt functions on ARM platforms.
msvcrt: Disable SSE2 memmove implementation on ARM64EC.
kernelbase: Implement the GetProcAddress wrapper on ARM64EC.
kernel32: Implement the GetProcAddress wrapper on ARM64EC.
winex11: Fix build error when XShm is missing.
ntdll: Look for hybrid builtins in the PE directory for the host architecture.
ntdll: Remove some unnecessary asm macros on ARM plaforms.
winecrt0: Remove some unnecessary asm macros on ARM plaforms.
makedep: Build and install ARM64EC-only modules.
tests: Use ARM64 as architecture in manifests on ARM64EC.
ntdll: Also load arm64 manifests for amd64 architecture on ARM64EC.
ntdll: Reimplement __os_arm64x_check_call in assembly.
ntdll: Move some security Rtl functions to sec.c.
ntdll: Move some synchronization Rtl functions to sync.c.
ntdll: Move the error mode Rtl functions to thread.c.
ntdll: Move the PEB lock Rtl functions to env.c.
ntdll: Move the memory copy Rtl functions to string.c.
Alexandros Frantzis (4):
server: Pass desktop to get_first_global_hook.
server: Check message target process for raw input device flags.
server: Implement key auto-repeat request.
win32u: Implement keyboard auto-repeat using new server request.
Alistair Leslie-Hughes (2):
odbccp32: Check if a full path was supplied for Driver/Setup/Translator entries.
odbccp32: Stop handle leak on error paths.
Benjamin Mayes (1):
windowscodecs: Add conversions from PixelFormat32bppBGRA->PixelFormat16bppBGRA5551.
Brendan McGrath (4):
kernel32/tests: Test error code when FindFirstFileA uses file as directory.
ntdll/tests: Test error code when NtOpenFile uses file as directory.
server: Don't always return STATUS_OBJECT_NAME_INVALID on ENOTDIR.
ntdll: Treat XDG_SESSION_TYPE as special env variable.
Brendan Shanks (1):
ntdll: On macOS, check for xattr existence before calling getxattr.
Connor McAdams (7):
d3dx9: Refactor WIC GUID to D3DXIMAGE_FILEFORMAT conversion code.
d3dx9: Refactor WIC image info retrieval code in D3DXGetImageInfoFromFileInMemory().
d3dx9: Introduce d3dx_image structure for use in D3DXGetImageInfoFromFileInMemory().
d3dx9: Use d3dx_image structure in D3DXLoadSurfaceFromFileInMemory().
d3dx9: Introduce d3dx_load_pixels_from_pixels() helper function.
d3dx9: Use d3dx_pixels structure in decompression helper function.
d3dx9: Use d3dx_load_pixels_from_pixels() in D3DXLoadVolumeFromMemory().
Daniel Lehman (3):
secur32: Allow overriding GnuTLS debug level.
bcrypt: Allow overriding GnuTLS debug level.
crypt32: Allow overriding GnuTLS debug level.
Danyil Blyschak (4):
wineps.drv: Call ResetDCW() to update Devmode in the Unix interface.
opcservices: Provide memory allocator functions to zlib.
opcservices: Suppress unnecessary zlib deflate warnings.
opcservices: Check for memory allocation failure before deflating.
Dmitry Timoshkov (2):
server: Remove limitation for waiting on idle_event of the current process.
win32u: Limit GDI object generation to 128.
Elizabeth Figura (25):
widl: Assign to the right location variable.
widl: Allow using UDTs with the keyword even when the identifier is also a typedef.
widl: Invert "declonly".
widl: Factor out a define_type() helper.
widl: Update the type location in define_type().
widl: Do not write type definitions for types defined in an imported header.
include: Add more types to windows.networking.connectivity.idl.
wined3d: Update multisample state when the sample count changes.
wined3d: Invalidate the vertex shader when WINED3D_FFP_PSIZE is toggled.
wined3d: Just check the vertex declaration for point size usage.
wined3d: Just check the vertex declaration for colour usage.
wined3d: Just check the vertex declaration for normal usage.
wined3d: Just check the vertex declaration for texcoord usage.
wined3d: Default diffuse to 1.0 in the vertex shader.
server: Ignore attempts to set a mandatory label on a token.
server: Inherit the source token's label in token_duplicate().
advapi32/tests: Test token label inheritance.
wined3d: Handle a null vertex declaration in glsl_vertex_pipe_vdecl().
wined3d: Always output normalized fog coordinates from the vertex shader.
wined3d: Do not create a framebuffer with attachments whose clear is delayed.
wined3d: Use separate signature elements for oFog and oPts.
server: Don't set error in find_object_index if the object is not found.
ntdll: Implement reading multiple entries in NtQueryDirectoryObject.
server: Generalize get_directory_entries to single_entry case.
ntdll: Move IOCTL_SERIAL_WAIT_ON_MASK to the server.
Eric Pouech (13):
cmd: Introduce a helper to set std handles.
cmd: Introduce structure CMD_REDIRECTION.
cmd: Create helper to execute a command.
cmd: Let errorlevel be a signed integer.
cmd: Separate IF command parsing from execution.
kernelbase/tests: Fix typo in tests.
msvcrt/tests: Don't print a NULL string.
quartz/tests: Fix typo in tests.
quartz/tests: Add new tests about fullscreen handling.
quartz: Always expose that non fullscreen mode is supported and active.
quartz: Fix result in put_FullScreenMode().
conhost: Handle WM_CHAR for window console.
conhost: Support IME input in window mode.
Esme Povirk (4):
win32u: Send EVENT_OBJECT_FOCUS in more cases.
win32u: Implement EVENT_OBJECT_LOCATIONCHANGE.
gdiplus: Fix DIB stride calculation in GdipDrawImagePointsRect.
win32u: Implement EVENT_SYSTEM_MINIMIZESTART/END.
Fabian Maurer (7):
msvcrt: Fix _libm_sse2_sqrt_precise not using SSE2 sqrt.
mmdevapi/tests: Add tests for IAudioSessionControl2 GetDisplayName / SetDisplayName.
mmdevapi/tests: Add tests for IAudioSessionControl2 GetIconPath / SetIconPath.
mmdevapi/tests: Add tests for IAudioSessionControl2 GetGroupingParam / SetGroupingParam.
mmdevapi: Implement IAudioSessionControl2 GetDisplayName / SetDisplayName.
mmdevapi: Implement IAudioSessionControl2 GetIconPath / SetIconPath.
mmdevapi: Implement IAudioSessionControl2 GetGroupingParam SetGroupingParam.
Giovanni Mascellani (1):
d3d11/tests: Add a test for NV12 textures.
Hans Leidekker (8):
wmic: Sort the alias list.
wmic: Add csproduct and systemenclosure aliases.
ntdll: Provide fallback values for DMI fields only readable by root.
odbc32: Use a fixed size buffer for parameter bindings.
odbc32: Support SQLSetStmtAttr(SQL_ATTR_ROW_ARRAY_SIZE).
odbc32: Turn SUCCESS() into a static inline function.
odbc32/tests: Add tests for fetching multiple rows at once and parameter binding.
winscard: Pass ATR buffer to unixlib in SCardStatusA().
Jacek Caban (4):
mshtml: Use DispatchEx vtbl for document node GetDispID implementation.
mshtml: Use DispatchEx for document node InvokeEx implementation.
mshtml: Use DISPEX_IDISPATCH_IMPL macro for document object implementation.
mshtml: Use DispatchEx for exposing document node IDispatchEx interface.
Jacob Pfeiffer (1):
wininet: Unify timeout values closer to hInternet.
Jinoh Kang (2):
user32/tests: Print regions in test_swp_paint_regions failure cases.
wow64: Implement reading multiple entries in wow64_NtQueryDirectoryObject.
Lucas Chollet (1):
dnsapi: Add a stub for DnsServiceBrowse.
Mohamad Al-Jaf (3):
coremessaging: Add stub DLL.
include: Add dispatcherqueue.idl file.
coremessaging: Add CreateDispatcherQueueController() stub.
Nikolay Sivov (3):
scrrun/dictionary: Implement putref_Item() method.
dwrite/tests: Fix a test failure on some Win10 machines with CJK locales.
gdi32/text: Handle null partial extents pointer in GetTextExtentExPointW().
Paul Gofman (12):
ntdll: Fix test_NtQueryDirectoryFile() on Win11.
ntdll: Do not ignore trailing dots in match_filename().
ntdll/tests: Test NtQueryDirectoryFile() masks with more files.
ntdll: Ignore leading dots in hash_short_file_name().
ntdll: Mind all the wildcards in has_wildcard().
ntdll: Match wildcard recursively in match_filename().
ntdll: Add a special handling for .. in match_filename().
ntdll: Implement matching DOS_STAR in NtQueryDirectoryFile().
ntdll: Implement matching DOS_DOT in NtQueryDirectoryFile().
ntdll: Properly match DOS_QM in match_filename().
ntdll: Skip name search for wildcards in asterisk handling in match_filename().
kernelbase: Preprocess wildcarded mask and pass it with NtQueryDirectoryFile().
Piotr Caban (8):
wineps.drv: Don't use dynamic buffer when writing new page info.
wineps.drv: Write page orientation hint for every page.
wineps.drv: Take all pages into account when computing bounding box.
wineps.drv: Write PageBoundingBox for every page.
wineps.drv: Add partial support for changing page size.
msvcp140: Use _get_stream_buffer_pointers() to access FILE internal buffers.
ucrtbase: Fix _iobuf struct layout.
msvcrt: Don't use custom standard streams definition.
Rémi Bernon (65):
widl: Use mangled namespace names in typedef pointer types.
win32u: Move the window surface color bits to the common struct.
win32u: Pass BITMAPINFO and a HBITMAP to window_surface_init.
winex11: Simplify the XSHM extension function calls.
winex11: Create XImage before initializing the window surface.
winex11: Create a HBITMAP for the allocated surface pixels.
win32u: Create a HBITMAP backing the window surface pixels.
win32u: Restore surface rect, which may offsetted from the window rect.
win32u: Use a dedicated helper to move bits from a previous surface.
win32u: Don't map points to the parent window in move_window_bits_parent.
win32u: Get rid of move_window_bits_parent, using move_window_bits.
winemac: Merge RESET_DEVICE_METRICS and DISPLAYCHANGE internal messages.
win32u: Fix a restorer_str typo.
win32u: Send display change messages when host display mode changes.
win32u: Move desktop resize on WM_DISPLAYCHANGE out of the drivers.
gdi32: Use an internal NtUser call for D3DKMTOpenAdapterFromGdiDisplayName.
wineandroid: Always clear UpdateLayeredWindow target rectangle.
wineandroid: Use the surface bitmap directly in UpdateLayeredWindow.
winemac: Always clear UpdateLayeredWindow target rectangle.
winemac: Use the surface bitmap directly in UpdateLayeredWindow.
winemac: Blend alpha with NtGdiAlphaBlend instead of window opacity.
winex11: Always clear UpdateLayeredWindow target rectangle.
winex11: Use the surface bitmap directly in UpdateLayeredWindow.
win32u: Introduce a new CreateLayeredWindow driver entry.
win32u: Move UpdateLayeredWindow implementation out of the drivers.
server: Avoid calling set_event from within msg_queue_add_queue.
win32u: Introduce new helpers to convert server rectangle_t.
win32u: Introduce NtUserAdjustWindowRect call for AdjustWindowRect*.
win32u: Pass desired DPI to NtUserGet(Client|Window)Rect.
win32u: Introduce a new get_monitor_rect helper.
win32u: Pass the rect DPI to NtUserIsWindowRectFullScreen.
winex11: Wrap more window surface formats with NtGdiDdDDICreateDCFromMemory.
winex11: Fix some incorrect usage of NtGdiDdDDICreateDCFromMemory.
gdi.exe16: Fix some incorrect usage of NtGdiDdDDICreateDCFromMemory.
winegstreamer: Allow to clear video decoder input/output types.
winegstreamer: Enforce default stride value in the video decoder.
winegstreamer: Enforce default stride presence in the video processor.
winegstreamer: Rename allow_size_change to allow_format_change.
winegstreamer: Only report format changes when frontend supports it.
winegstreamer: Use a caps to store the desired output format.
winegstreamer: Request the new transform output format explicitly.
winevulkan: Remove some unnecessary casts.
winevulkan: Fix size mismatch when writing to return pointer.
include: Add and fix some WGL prototypes.
winewayland: Force the DPI context when restoring cursor clipping.
winex11: Force the DPI context when restoring cursor clipping.
win32u: Use get_monitor_rect in more places.
win32u: Parameterize get_clip_cursor dpi.
win32u: Parameterize get_monitor_info dpi.
win32u: Use window monitor DPI in get_windows_offset when dpi is 0.
winex11: Use NtUserMapWindowPoints instead of NtUserScreenToClient.
win32u: Call NtUserMapWindowPoints with per-monitor DPI from the drivers.
winemac: Force thread DPI awareness when calling NtUserSetWindowPos.
winewayland: Force thread DPI awareness when calling NtUserSetWindowPos.
winex11: Force thread DPI awareness when calling NtUserSetWindowPos.
winex11: Force thread DPI awareness when calling NtUserRedrawWindow.
winex11: Force thread DPI awareness when calling NtUserChildWindowFromPointEx.
win32u: Remove unused insert_after WindowPosChanging parameter.
wineandroid: Remove unnecessary visible_rect initialization.
winemac: Remove unnecessary visible_rect initialization.
winex11: Remove unnecessary visible_rect initialization.
win32u: Split WindowPosChanging driver call to a separate CreateWindowSurface.
winex11: Move layered window mapping to X11DRV_UpdateLayeredWindow.
winemac: Move layered window mapping to macdrv_UpdateLayeredWindow.
win32u: Move WM_WINE_DESKTOP_RESIZED into driver internal messages range.
Shengdun Wang (3):
ucrtbase/tests: Add FILE structure tests.
ucrtbase: Always use CRITICAL_SECTION for FILE locking.
ucrtbase: Fix FILE _flag values.
Tim Clem (1):
gitlab: Update configuration for the new Mac runner.
Zhiyi Zhang (2):
ws2_32/tests: Test fromlen for recvfrom().
ntdll: Don't zero out socket address in sockaddr_from_unix().
Ziqing Hui (7):
qasf/tests: Add more tests for dmo_wrapper_sink_Receive.
qasf/dmowrapper: Introduce get_output_samples.
qasf/dmowrapper: Introduce release_output_samples.
qasf/dmowrapper: Return failure in dmo_wrapper_sink_Receive if samples allocating fails.
qasf/dmowrapper: Allocate output samples before calling ProcessInput().
qasf/dmowrapper: Return VFW_E_WRONG_STATE in dmo_wrapper_sink_Receive.
qasf/dmowrapper: Sync Stop() and Receive() for dmo wrapper filter.
```
The Wine development release 9.10 is now available.
What's new in this release:
- Bundled vkd3d upgraded to version 1.12.
- DPI Awareness support improvements.
- C++ RTTI support on ARM platforms.
- More obsolete features removed in WineD3D.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.10.tar.xz>
Binary packages for various distributions will be available
from <https://www.winehq.org/download>
You will find documentation on <https://www.winehq.org/documentation>
Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.10/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.10 (total 18):
- #23434 Race management software hangs & jumps up to 100% processor load
- #34708 Silent Hill 4: The Room crashes after first videoscene when trying to go to the door.
- #45493 SRPG Studio games need proper DISPATCH_PROPERTYPUTREF implementation
- #46039 Paint.NET 4.1 (.NET 4.7 app) installer tries to run MS .NET Framework 4.7 installer (Wine-Mono only advertises as .NET 4.5)
- #46787 Notepad++ rather slow (GetLocaleInfoEx)
- #50196 can not copy words between wine apps and ubuntu apps
- #50789 Multiple .NET applications crash with unimplemented 'System.Security.Principal.WindowsIdentity.get_Owner' using Wine-Mono (Affinity Photo 1.9.1, Pivot Animator 4.2)
- #52691 FL Studio 20.9.1 Freezes on start-up
- #54992 EA app launcher does not render correctly
- #56548 reMarkable crashes on start
- #56582 vb3 combobox regression: single click scrolls twice
- #56602 DualShock 4 controller behaves incorrectly on Darwin with hidraw enabled
- #56666 BExAnalyzer from SAP 7.30 does not work correctly
- #56674 Multiple games fail to launch (Far Cry 3, Horizon Zero Dawn CE, Metro Exodus)
- #56718 Compilation fails on Ubuntu 20.04 with bison 3.5.1
- #56724 New chromium versions don't start under wine anymore
- #56730 Access violation in riched20.dll when running EditPad
- #56736 App packager from Windows SDK (MakeAppx.exe) 'pack' command crashes on unimplemented function ntdll.dll.RtlLookupElementGenericTableAvl
### Changes since 9.9:
```
Aida Jonikienė (2):
dxdiagn: Add bIsD3DDebugRuntime property.
dxdiagn: Add AGP properties.
Alexandre Julliard (52):
msvcrt: Add helpers to abstract RVA accesses to RTTI data.
msvcrt: Unify __RTtypeid implementation.
msvcrt: Unify __RTDynamicCast implementation.
msvcrt: Unify _CxxThrowException implementation.
msvcrt: Unify _is_exception_typeof implementation.
msvcrt: Unify __ExceptionPtrCopyException implementation.
msvcrt: Unify exception_ptr_from_record implementation.
msvcrt: Unify call_copy_ctor/call_dtor implementations.
msvcp: Unify __ExceptionPtrCopyException implementation.
msvcp: Unify __ExceptionPtrCurrentException implementation.
msvcp: Unify call_copy_ctor/call_dtor implementations.
msvcrt: Use RVAs in rtti and exception data on all platforms except i386.
msvcp: Use RVAs in rtti and exception data on all platforms except i386.
msvcrt/tests: Use function pointers to bypass builtin malloc/realloc.
msvcp/tests: Fix mangled names on ARM.
winecrt0: Initialize the Unix call dispatcher on first use.
ntdll: Make __wine_unix_call() an inline function.
wbemprox: Avoid unused function warning.
kernelbase: Fix the name of the default system locale.
wbemprox: Don't reference yysymbol_name on older bisons.
conhost: Fix a printf format warning.
winegcc: Don't print a potentially reallocated pointer.
adsldpc: Add correct C++ mangled names for all platforms.
dxtrans: Add correct C++ mangled names for all platforms.
msmpeg2vdec: Add correct C++ mangled names for all platforms.
vssapi: Add correct C++ mangled names for all platforms.
msvcrt: Fix bad_cast_copy_ctor spec entry on ARM.
msvcrt: Export all _ConcRT functions also on ARM.
msvcp120_app: Fix a typo in a C++ mangled name.
msvcp: Replace some stubs by exported functions that already exist for other platforms.
msvcp: Export the thiscall version of ios_base_Tidy.
msvcp140: Sort entry points by function instead of platform.
msvcp: Only export thiscall functions on i386.
msvcp: Only export stubs of thiscall functions on i386.
msvcrt: Only export thiscall functions on i386.
msvcrt: Only export stubs of thiscall functions on i386.
msvcrt: Add missing C++ mangled names for ARM.
msvcirt: Add missing C++ mangled names for ARM.
msvcp60: Add missing C++ mangled names for ARM.
msvcp70: Add missing C++ mangled names for ARM.
msvcp71: Add missing C++ mangled names for ARM.
msvcp80: Add missing C++ mangled names for ARM.
msvcp90: Add missing C++ mangled names for ARM.
msvcp100: Add missing C++ mangled names for ARM.
winedump: Print exported function names in the exception data.
winedump: Print the export or import name of exception handlers.
winedump: Dump exception data for known exception handlers.
vkd3d: Import upstream release 1.12.
msvcrt: Move common exception handling types to the header.
msvcrt: Share the find_caught_type() helper between platforms.
msvcrt: Share the copy_exception() helper between platforms.
msvcrt: Share a helper to find a catch block handler.
Alexandros Frantzis (15):
opengl32: Remove the wglDescribePixelFormat driver entry point.
win32u: Emit number characters for numpad virtual keys.
win32u: Allow drivers to send only the scan code for keyboard events.
win32u: Store the full KBD vkey information in kbd_tables_init_vsc2vk.
server: Send numpad virtual keys if NumLock is active.
user32/tests: Add tests for SendInput with numpad scancodes.
winewayland.drv: Populate vkey to wchar entry for VK_DECIMAL.
server: Fix handling of KEYEVENTF_UNICODE inputs with a non-zero vkey.
user32/tests: Add more test for unicode input with vkey.
user32/tests: Add tests for raw keyboard messages.
server: Use right-left modifier vkeys for hooks.
server: Apply modifier vkey transformations regardless of unicode flag.
server: Don't send raw input events for unicode inputs.
user32/tests: Check async key state in raw nolegacy tests.
server: Set VK_PACKET async state in raw input legacy mode.
Alistair Leslie-Hughes (10):
include: Complete __wine_uuidof for C++.
include: Add C++ support for IUnknown.
odbc32: Correct SQLSetConnectOptionW length parameter type.
include: Added sqlucode.h to sql.h.
include: Correct ListView_GetItemIndexRect macro.
include: Add IFACEMETHOD macros.
include: Add LOGFONTA/W typedef in shtypes.idl.
include: Add IPreviewHandler* interfaces.
include: Correct IRowsetNotify HROW parameter type.
include: Add missing TreeView_* defines.
Anton Baskanov (4):
quartz/tests: Use unaligned width in AVIDec tests to expose incorrect stride calculation.
quartz: Get output format from source, not sink in AVIDec.
quartz: Use the correct stride when calculating image size in AVIDec.
quartz: Hold the streaming lock while calling ICDecompressEnd.
Brendan Shanks (1):
ntdll: Don't warn on macOS and FreeBSD when xattr doesn't exist.
Connor McAdams (1):
uiautomationcore: NULL initialize SAFEARRAY variable passed to IRawElementProviderFragment::GetRuntimeId().
Daniel Lehman (1):
odbc32: Allow null handle for SQLSetEnvAttr.
Danyil Blyschak (3):
win32u: Remove external fonts from the registry before writing to it.
shcore: Check optional pointer in filestream_CopyTo() before writing to it.
wineps.drv: Only merge dmDefaultSource member of devmodes when a slot is found.
Davide Beatrici (6):
winealsa: Return minimum period in get_device_period if requested.
mmdevapi: Adjust timing in AudioClient_Initialize.
winealsa: Remove superfluous timing adjustment.
winecoreaudio: Remove superfluous timing adjustment.
wineoss: Remove superfluous timing adjustment.
winepulse: Remove superfluous timing adjustment.
Dmitry Timoshkov (2):
comctl32/tests: Create a fully updated ListView window.
user32/tests: Add a test to show that SendMessage(LB_SETCOUNT) adds a scrollbar.
Elizabeth Figura (21):
wined3d: Remove the no longer used STATE_SAMPLER.
wined3d: Remove the no longer used STATE_POINTSPRITECOORDORIGIN.
wined3d: Remove the FFP blitter.
wined3d: Remove some obsolete state invalidations.
wined3d: Remove the no longer needed fragment_caps.proj_control flag.
d3d9/tests: Remove leftover debugging code.
wined3d: Remove the no longer needed fragment_caps.srgb_texture flag.
wined3d: Remove the no longer needed fragment_caps.color_key flag.
wined3d: Remove the no longer needed wined3d_vertex_caps.xyzrhw flag.
wined3d: Remove the no longer needed wined3d_vertex_caps.ffp_generic_attributes flag.
wined3d: Remove the no longer used buffer conversion code.
wined3d: Remove the no longer used wined3d_context.fog_coord field.
wined3d: Remove the no longer used wined3d_context_gl.untracked_material_count field.
wined3d: Remove the no longer used wined3d_context.use_immediate_mode_draw field.
wined3d: Remove the no longer used WINED3D_SHADER_CAP_VS_CLIPPING flag.
wined3d: Remove the no longer used wined3d_context.namedArraysLoaded field.
wined3d: Remove the no longer used WINED3D_SHADER_CAP_SRGB_WRITE flag.
wined3d: Move the GL_EXTCALL() definition to wined3d_gl.h.
wined3d: Remove some no longer used wined3d_context fields.
wined3d: Remove no longer used "exponent" and "cutoff" precomputed fields.
wined3d: Remove the no longer used ignore_textype argument of wined3d_ffp_get_fs_settings().
Eric Pouech (4):
conhost: Fix display of font preview in 64-bit mode.
winedump: Dump correct handle information for minidump.
winedump: Don't dump twice.
winedump: Dump Memory64List streams in minidumps.
Esme Povirk (14):
gdiplus: Replace HDC check in GdipFlush.
gdiplus: Bracket HDC use in GdipMeasureCharacterRanges.
gdiplus: Bracket HDC use in GdipMeasureString.
gdiplus: Bracket HDC use in GdipDrawString.
gdiplus: Bracket HDC use in GDI32_GdipDrawDriverString.
gitlab: Add unzip to build image.
gdiplus: Replace HDC use in draw_driver_string.
gdiplus: Bracket HDC use in get_path_hrgn.
gdiplus: Bracket HDC use in gdi_transform_acquire/release.
gdiplus: Do not store HDC on HWND Graphics objects.
gdiplus: Don't call GetDeviceCaps for NULL dc.
user32/tests: Rename winevent_hook_todo to msg_todo.
user32/tests: Mark some Wine-todo messages.
win32u: Implement EVENT_SYSTEM_FOREGROUND.
Fabian Maurer (5):
oleaut32: Add test for invoking a dispatch get-only property with DISPATCH_PROPERTYPUT.
oleaut32: Handle cases where invoking a get-only property with INVOKE_PROPERTYPUT returns DISP_E_BADPARAMCOUNT.
userenv: Add CreateAppContainerProfile stub.
riched20: In para_set_fmt protect against out of bound cTabStop values.
user32/tests: Fix ok_sequence succeeding in todo block not giving a test failure.
Francis De Brabandere (1):
vbscript/tests: Fix error clear call.
Ilia Docin (1):
sane.ds: Add missing color modes setting support.
Jacek Caban (30):
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlobject.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlscript.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlselect.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlstorage.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlstyle.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlstyleelem.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlstylesheet.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmltable.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmltextarea.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmltextnode.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in mutation.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in omnavigator.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in range.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in selection.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in svg.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in xmlhttprequest.c.
ntdll: Use assembly wrapper for unixlib calls on ARM64EC.
d3d9/tests: Use GNU assembly syntax on clang x86_64 MSVC target.
d3d8/tests: Use GNU assembly syntax on clang x86_64 MSVC target.
d3d9: Use GNU assembly syntax on clang x86_64 MSVC target.
d3d8: Use GNU assembly syntax on clang x86_64 MSVC target.
ddraw: Use GNU assembly syntax on clang x86_64 MSVC target.
gitlab: Use --enable-werror for Clang builds.
mshtml: Return success in IHTMLWindow2::get_closed stub.
mshtml/tests: Add more custom properties tests.
mshtml: Factor out alloc_dynamic_prop.
mshtml: Use DispatchEx vtbl for elements as window property lookups.
mshtml: Use DispatchEx vtbl for all window properties.
mshtml: Use macro for window object IDispatch functions implementation.
mshtml: Move IDispatchEx forwarding implementation to outer window object.
Krzysztof Bogacki (7):
win32u: Use separate variable for inner loop.
win32u: Log Vulkan GPU's PCI IDs when matching against them.
win32u: Log Vulkan UUIDs when adding GPUs.
win32u: Remove unused variable from add_vulkan_only_gpus.
win32u: Use common name for fake GPUs and prefer Vulkan name over it.
win32u: Prefer Vulkan PCI IDs over empty ones.
win32u: Prefer Vulkan UUIDs over empty ones.
Marcus Meissner (1):
shell32/tests: Fixed sizeof to GetModuleFileName.
Myah Caron (1):
msvcrt: Fix _kbhit ignoring the last event.
Nikolay Sivov (3):
gdi32/text: Make GetTextExtentExPointW() return sizes consistent with ExtTextOutW().
d3dcompiler/fx: Write empty buffers for compiler versions 33-39.
d3dcompiler: Enable D3DCOMPILE_EFFECT_CHILD_EFFECT option.
Paul Gofman (4):
wine.inf: Add InstallationType field to CurrentVersion.
wine.inf: Add Explorer\Advanced registry key.
mf/tests: Add a test for MFEnumDeviceSources().
mf: Implement audio capture device enumeration in MFEnumDeviceSources().
Piotr Caban (1):
ntdll: Fix UNC path handling in alloc_module.
Rémi Bernon (57):
win32u: Fix default_update_display_devices return type to NTSTATUS.
win32u: Load the graphics driver vulkan functions lazily.
win32u: Keep a list of vulkan GPUS in the device manager context.
win32u: Match driver GPUs with vulkan GPUS from their ids, or index.
win32u: Query GPU memory from vulkan physical device.
win32u: Enumerate offscreen vulkan devices as GPU devices.
dinput: Dynamically allocate the internal device / event arrays.
server: Pass the adjusted vkey to send_hook_ll_message.
winegstreamer: Use DMO_MEDIA_TYPE in the WMA decoder.
winegstreamer: Implement WMA DMO Get(Input|Output)CurrentType.
win32u/tests: Introduce a new run_in_process helper.
win32u/tests: Add NtUser(Get|Set)ProcessDpiAwarenessContext tests.
win32u: Fix NtUserSetProcessDpiAwarenessContext.
user32/tests: Add some SetProcessDpiAwarenessContext tests.
user32/tests: Add more SetThreadDpiAwarenessContext tests.
user32: Fix SetProcessDpiAwarenessContext.
winegstreamer: Use a GstCaps for wg_parser current_format.
winegstreamer: Use a GstCaps instead of preferred_format.
winegstreamer: Rename get_preferred_format to get_current_format.
winegstreamer: Use a GstCaps for wg_parser_stream codec format.
win32u: Get rid of the drivers force_display_devices_refresh flag.
win32u: Update the display device cache after loading the driver.
win32u: Get rid of the UpdateDisplayDevices force parameter.
user32: Test and fix IsValidDpiAwarenessContext.
user32: Test and implement GetDpiFromDpiAwarenessContext.
user32/tests: Add more AreDpiAwarenessContextsEqual tests.
user32/tests: Add more GetAwarenessFromDpiAwarenessContext tests.
win32u: Use NtUserCallOnParam for SetThreadDpiAwarenessContext.
win32u: Return UINT from NtUserGetWindowDpiAwarenessContext.
win32u: Use NtGdiDdDDICreateDCFromMemory for gdi16 DIBDRV.
wineandroid: Fix NtUserSendHardwareInput parameter order.
wineandroid: Use DWORD for pixel pointers.
win32u: Flush window surface when it is fully unlocked.
win32u: Remove surface recursive locking requirement.
win32u: Stop using a recursive mutex for the offscreen surface.
wineandroid: Stop using a recursive mutex for the window surfaces.
winemac: Stop using a recursive mutex for the window surfaces.
winewayland: Stop using a recursive mutex for the window surfaces.
winex11: Stop using a recursive mutex for the window surfaces.
win32u: Get the thread DPI context instead of the awareness.
win32u: Pass the DPI awareness context in win_proc_params.
win32u: Fix SetThreadDpiAwarenessContext.
win32u: Only keep DPI awareness context with window objects.
win32u: Introduce a new window_surface_init helper.
win32u: Move the window surface mutex to the surface header.
win32u: Use helpers to lock/unlock window surfaces.
win32u: Move window surface bounds to the window_surface base struct.
winemac: Get rid of unnecessary blit_data / drawn surface members.
wineandroid: Hold the lock while reading window surface bits.
win32u: Use a helper to flush window surface, factor locking and bounds reset.
win32u: Initialize window surfaces with a hwnd.
win32u: Split update_surface_region into get_window_region helper.
server: Merge get_surface_region / get_window_region requests together.
win32u: Intersect the clipping region with the window shape region.
server: Update window surface regions when the window is shaped.
wineandroid: Remove now unnecessary set_surface_region calls.
win32u: Use a helper to set the window surface clipping, within the lock.
Vijay Kiran Kamuju (1):
ntdll: Add stub RtlLookupGenericTableAvl function.
Yuxuan Shui (2):
shell32: Make sure array passed to PathResolve is big enough.
shell32: Fix ShellExecute for non-filespec paths.
Zhiyi Zhang (4):
comctl32/tests: Add WM_SETFONT tests.
comctl32/syslink: Don't delete font when destroying the control.
comctl32/tooltips: Don't duplicate font when handling WM_SETFONT.
comctl32/ipaddress: Delete font when destroying the control.
```
The vkd3d team is proud to announce that release 1.12 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:
- The HLSL compiler can directly output SPIR-V and Direct3D shader assembly.
- Improved support for shader model 1-3 profiles in the HLSL compiler.
- Miscellaneous bug fixes and performance improvements.
The source is available from the following location:
<https://dl.winehq.org/vkd3d/source/vkd3d-1.12.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.12
### libvkd3d
- When the VK_EXT_fragment_shader_interlock extension is available, libvkd3d
supports rasteriser-ordered views.
- Compute pipeline state objects can be created from compute shaders with
embedded root signatures.
- When supported by the underlying Vulkan implementation, libvkd3d supports
the DXGI_FORMAT_B5G6R5_UNORM, DXGI_FORMAT_B5G5R5A1_UNORM, and
DXGI_FORMAT_B4G4R4A4_UNORM formats.
- The ID3D12ShaderCacheSession interface is supported.
- The ID3D12Device9 interface is supported.
- The CreateCommittedResource2(), CreatePlacedResource1(),
GetCopyableFootprints1(), and GetResourceAllocationInfo2() methods of the
ID3D12Device8 interface are implemented.
- Several new feature queries are supported:
- D3D12_FEATURE_D3D12_OPTIONS14
- D3D12_FEATURE_D3D12_OPTIONS15
- D3D12_FEATURE_D3D12_OPTIONS16
- D3D12_FEATURE_D3D12_OPTIONS17
- D3D12_FEATURE_D3D12_OPTIONS18
### libvkd3d-shader
- The experimental DXIL source type supports the majority of Direct3D shader
model 6.0 instructions and features. Note that this is currently still an
unsupported feature, enabled by building vkd3d with the
‘-DVKD3D_SHADER_UNSUPPORTED_DXIL’ preprocessor option. No API or ABI
stability guarantees are provided for experimental features.
- New features for the HLSL source type:
- Support for compiling directly to Direct3D shader assembly and SPIR-V
target types. This is primarily a convenience feature, as targeting
these could previously be achieved by going through either the ‘Legacy
Direct3D byte-code’ or ‘Tokenized Program Format’ formats as
intermediates.
- Improved support for shader model 1-3 profiles. In particular:
- The ternary, comparison, and logical operators are now supported for
these profiles.
- Support for integer and Boolean types has been improved.
- Shader constants are allocated in an order compatible with the
Microsoft implementation.
- More complex array size expressions. For example, matrix and vector
swizzles are allowed, as well as (constant) array dereferences.
- The following intrinsic functions are supported:
- cosh()
- determinant()
- refract()
- sinh()
- tanh()
- Reflection data for ‘Tokenized Program Format’ targets more accurately
reflects the source shader.
- Constant folding of expressions like ‘x + 0’ and ‘x * 1’.
- Support for the ‘single’ qualifier on constant buffer declarations.
- Parser support for annotations on constant buffer declarations.
- Parser support for effect state objects.
- When the SPV_EXT_fragment_shader_interlock extension is supported, SPIR-V
targets support rasteriser-ordered views.
- New interfaces:
- The VKD3D_SHADER_PARSE_DXBC_IGNORE_CHECKSUM flag indicates that
vkd3d_shader_parse_dxbc() should skip validating the checksum of the
DXBC blob. This allows otherwise valid blobs with a missing or invalid
checksum to be parsed.
- The VKD3D_SHADER_SPIRV_ENVIRONMENT_VULKAN_1_1 enumeration value
specifies the Vulkan 1.1 environment for SPIR-V targets. Most notably,
the Vulkan 1.1 environment implies support for SPIR-V 1.3, which is a
requirement for supporting Direct3D shader model 6 wave operations on
SPIR-V targets.
- The VKD3D_SHADER_SPIRV_EXTENSION_EXT_FRAGMENT_SHADER_INTERLOCK
enumeration value indicates support for the
SPV_EXT_fragment_shader_interlock extension in the SPIR-V target
environment.
- The VKD3D_SHADER_COMPILE_OPTION_FEATURE_WAVE_OPS flag indicates support
for Direct3D shader model 6 wave operations in the SPIR-V target
environment.
- The VKD3D_SHADER_COMPILE_OPTION_FORMATTING_IO_SIGNATURES flag indicates
that vkd3d_shader_compile() should include information about input,
output, and patch constant shader signatures when targeting Direct3D
shader assembly. Note that this is a libvkd3d-shader extension, and
potentially makes the output incompatible with other implementations.
- The VKD3D_SHADER_COMPILE_OPTION_CHILD_EFFECT compile option specifies
whether libvkd3d-shader should produce child effects for ‘fx_4_0’ and
‘fx_4_1’ HLSL target profiles.
- The VKD3D_SHADER_COMPILE_OPTION_INCLUDE_EMPTY_BUFFERS_IN_EFFECTS compile
option specifies whether empty constant buffer descriptions should be
included in the output for ‘fx_4_0’ and ‘fx_4_1’ HLSL target profiles.
- The VKD3D_SHADER_COMPILE_OPTION_WARN_IMPLICIT_TRUNCATION compile option
specifies whether the HLSL compiler should emit warnings for vector and
matrix truncation in implicit type conversions.
### libvkd3d-utils
- D3D12CreateDeviceVKD3D() and D3D12CreateDevice() no longer require the
VK_KHR_surface and VK_KHR_swapchain extensions to be available. This
allows them to be used in environments with a windowing system, for
example for off-screen rendering and compute tasks.
- The GetConstantBufferByIndex() and GetResourceBindingDesc() methods of the
ID3D12ShaderReflection interface are implemented.
- The GetVariableByIndex() method of the
ID3D12ShaderReflectionConstantBuffer interface is implemented.
- The GetMemberTypeByIndex() method of the ID3D12ShaderReflectionType
interface is implemented.
- The GetType() method of the ID3D12ShaderReflectionVariable interface is
implemented.
### vkd3d-compiler
- The ‘+signatures’ flag for the ‘--formatting’ option can be used to
specify that vkd3d-compiler should include information about input,
output, and patch constant shader signatures when outputting Direct3D
shader assembly. Note that this is a vkd3d-compiler extension, and
potentially makes the output incompatible with other implementations.
- The ‘--child-effect’ option can be used to specify that vkd3d-compiler
should produce child effects for ‘fx_4_0’ and ‘fx_4_1’ HLSL target
profiles.
- The ‘--fx-include-empty-buffers’ option can be used to specify that
vkd3d-compiler should include empty constant buffer descriptions in the
output for ‘fx_4_0’ and ‘fx_4_1’ HLSL target profiles.
### vkd3d-dxbc
- The ‘--ignore-checksum’ option can be used to specify that vkd3d-dxbc
should skip validating the checksum of the DXBC input blob. This allows
vkd3d-dxbc to operate on otherwise valid blobs with missing or invalid
checksums.
- The ‘--emit’ option can be used to indicate that vkd3d-dxbc should output
a new DXBC blob.
- The ‘--extract’ option can be used to specify a section to extract out of
the input blob. For example, ‘vkd3d-dxbc -x t:PRIV blob.dxbc > priv.bin’
would extract the private data section of ‘blob.dxbc’ to ‘priv.bin’, and
‘vkd3d-dxbc -x t:RTS0 blob.dxbc > root_signature.bin’ would extract the
root signature to ‘root_signature.bin’.
- The ‘--output’ option can be used to specify where vkd3d-dxbc should write
its output for the ‘--emit’ and ‘--extract’ options.
### Changes since vkd3d 1.11:
```
Alexandre Julliard (1):
vkd3d-shader: Avoid non-constant initializer.
Conor McCarthy (169):
tests/shader-runner: Add raw UAV tests.
vkd3d-shader/spirv: Always use a 64-bit write mask for IMMCONST64 src params.
vkd3d: Add ID3D12Device8 interface stubs.
tests/d3d12: Add tests for GetResourceAllocationInfo2().
tests/d3d12: Add tests for CreateCommittedResource2().
tests/d3d12: Add tests for CreatePlacedResource1().
tests/d3d12: Add tests for GetCopyableFootprints1().
vkd3d: Implement GetResourceAllocationInfo2().
vkd3d: Implement CreateCommittedResource2().
vkd3d: Implement CreatePlacedResource1().
vkd3d: Implement GetCopyableFootprints1().
tests/shader-runner: Add a test for FCMP_ORD (is ordered).
vkd3d-shader/dxil: Support FCMP_ORD and FCMP_UNO for CMP2.
vkd3d-shader/spirv: Handle the ORD and UNO instructions.
tests/shader-runner: Add sampler comparison tests.
tests/shader-runner: Add a Gather test with non-constant offset.
vkd3d-shader/dxil: Implement DX intrinsic TextureGather.
vkd3d-shader/dxil: Implement DX intrinsic TextureGatherCmp.
tests/shader-runner: Add tests for minimum-precision constants.
vkd3d-shader/spirv: Introduce a data_type_is_floating_point() helper function.
vkd3d-shader/spirv: Introduce HALF and UINT16 types for minimum precision.
vkd3d-shader/dxil: Support 16-bit types.
vkd3d-shader/spirv: Emit an error if COUNTBITS has a 64-bit source.
vkd3d-shader/spirv: Emit an error if a FIRSTBIT instruction has a 64-bit source.
tests/hlsl: Add tests for countbits() and firstbit{high|low}().
vkd3d-shader/spirv: Support zero-initialisation for workgroup memory.
vkd3d-shader/dxil: Implement raw groupshared address space global variables.
vkd3d-shader/dxil: Implement structured groupshared address space global variables.
vkd3d-shader/spirv: Emit a trace message if TGSM alignment is ignored.
vkd3d-shader/dxil: Implement DX instruction Barrier.
tests/hlsl: Add UAV counter tests.
vkd3d-shader/dxil: Implement DX intrinsic BufferUpdateCounter.
tests/hlsl: Add tests for mad() and fma().
vkd3d-shader/spirv: Use dst register data type in spirv_compiler_emit_imad().
vkd3d-shader/dxil: Implement DX intrinsics FMa, FMad, IMad and UMad.
vkd3d-shader/dxil: Implement DX intrinsic FAbs.
vkd3d-shader/dxil: Implement DX intrinsic Saturate.
vkd3d-shader/spirv: Do not assert if a TGSM load dst register is not UINT.
vkd3d-shader/spirv: Do not assert if a TGSM store data register is not UINT.
vkd3d-shader/spirv: Support 64-bit register info component type in spirv_compiler_emit_load_reg().
vkd3d-shader/dxil: Emit an error if a constant code is unhandled.
tests/shader-runner: Add TGSM tests.
vkd3d-shader/dxil: Implement DX instructions ThreadId, GroupId, ThreadIdInGroup and FlattenedThreadIdInGroup.
vkd3d-shader/dxil: Implement the DXIL ATOMICRMW instruction.
vkd3d-shader/spirv: Emit a warning if the atomic instruction volatile flag is unhandled.
vkd3d-shader/spirv: Handle the sequentially consistent ordering flag for atomic instructions.
vkd3d-shader/spirv: Support bool source in spirv_compiler_emit_discard().
vkd3d-shader/dxil: Implement DX intrinsic Discard.
tests/hlsl: Add tests for asdouble().
vkd3d-shader/dxil: Implement DX intrinsic MakeDouble.
vkd3d-shader/dxil: Implement DX intrinsics Dot2, Dot3 and Dot4.
vkd3d-shader/ir: Materialise phis to temps in the incoming blocks.
vkd3d-shader/spirv: Emit a uint result for RESINFO_UINT if the dst register is SSA.
vkd3d-shader/spirv: Handle uint2 to double bitcast in spirv_compiler_emit_mov().
vkd3d-shader/ir: Convert SSAs to temps only if the block of origin does not dominate all uses.
vkd3d-shader/ir: Materialise SSAs to temps before lowering switch instructions.
vkd3d-shader/dxil: Support constexpr GEP.
vkd3d-shader/spirv: Bitcast if necessary in spirv_compiler_emit_store_dst_components().
vkd3d-shader/spirv: Ensure the data register is UINT in spirv_compiler_emit_store_tgsm().
tests/hlsl: Add tests for CalculateLevelOfDetail().
vkd3d-shader/dxil: Implement DX intrinsic CalculateLOD.
tests/d3d12: Test resource flags for multisampled resources.
vkd3d: Validate presence of flag ALLOW_RENDER_TARGET or ALLOW_DEPTH_STENCIL for multisampled resources.
vkd3d: Validate that a resource with initial state RENDER_TARGET is a render target.
vkd3d-shader/ir: Implement MAD in two operations if flagged as precise.
tests/hlsl: Supply data for all mip levels in calculate-lod.shader_test.
tests/hlsl: Add a tessellation test.
vkd3d-shader/dxil: Load domain shader properties.
vkd3d-shader/dxil: Load hull shader properties.
vkd3d-shader/dxil: Implement DX intrinsic PrimitiveID.
vkd3d-shader/ir: Validate tessellation declarations.
tests/hlsl: Add tests for GetSamplePosition() and GetSampleCount().
vkd3d-shader/dxil: Implement DX intrinsics Texture2DMSGetSamplePosition and RenderTargetGetSamplePosition.
vkd3d-shader/dxil: Implement DX intrinsic RenderTargetGetSampleCount.
tests/hlsl: Add an InterlockedCompareExchange() TGSM test.
vkd3d-shader/dxil: Implement the DXIL CMPXCHG instruction.
vkd3d-shader/spirv: Emit a compiler warning if an atomic op is flagged volatile.
vkd3d-shader: Introduce SPIRV_ENVIRONMENT_VULKAN_1_1.
vkd3d: Use Vulkan 1.1 if available.
vkd3d-shader: Introduce a wave ops feature flag.
tests: Add UNORM formats B5G6R5, B5G5R5A1 and B4G4R4A4 to the UAV image clear tests.
vkd3d: Support DXGI_FORMAT_B5G6R5_UNORM.
vkd3d: Support DXGI_FORMAT_B5G5R5A1_UNORM.
vkd3d: Support DXGI_FORMAT_B4G4R4A4_UNORM.
tests/hlsl: Add tests for SV_Depth.
tests/hlsl: Add tests for SV_DepthLessEqual and SV_DepthGreaterEqual.
vkd3d-shader/dxil: Support SV_Depth, SV_DepthGreaterEqual and SV_DepthLessEqual.
tests/hlsl: Add wave op tests.
vkd3d-shader/dxil: Support patch constant functions and signatures.
vkd3d-shader/dxil: Implement DX intrinsics LoadOutputControlPoint and LoadPatchConstant.
vkd3d-shader/dxil: Implement DX intrinsic StorePatchConstant.
vkd3d-shader/dxil: Implement DX intrinsic DomainLocation.
vkd3d-shader/dxil: Implement DX intrinsic OutputControlPointID.
tests/hlsl: Add tests for min() and integer max().
tests/hlsl: Add a test for a structured UAV scalar store.
tests/hlsl: Add a test for UAV InterlockedExchange().
tests/hlsl: Add tests for texture UAV atomics.
tests/hlsl: Add tests for texture UAV signed atomics.
vkd3d-shader/ir: Accept undefined PHI incomings as valid.
vkd3d-shader/ir: Always check for undominated SSA use in register relative addresses.
vkd3d-shader/dxil: Emit an error if a LOAD instruction uses a forward-referenced pointer.
vkd3d-shader/dxil: Emit an error if a STORE instruction uses a forward-referenced pointer.
vkd3d-shader/dxil: Emit an error if a ATOMICRMW instruction uses a forward-referenced pointer.
vkd3d-shader/dxil: Emit an error if a CMPXCHG instruction uses a forward-referenced pointer.
tests/hlsl: Add a test for constexpr pointer cast.
vkd3d-shader/dxil: Handle constexpr pointer cast.
tests/hlsl: Add an SV_InstanceId test.
vkd3d-shader/dxil: Handle SV_InstanceId.
vkd3d-shader/dxil: Handle SV_PrimitiveId.
tests/hlsl: Add SV_Coverage tests.
vkd3d-shader/dxil: Implement DX intrinsic Coverage.
vkd3d-shader/dxil: Implement DX intrinsics WaveGetLaneCount and WaveGetLaneIndex.
vkd3d-shader/spirv: Handle the WAVELANECOUNT register.
vkd3d: Initialise wave ops feature options.
tests/shader-runner: Skip shader model 6.0 tests if the device does not support them.
tests/shader-runner: Add a 'require' directive for wave ops.
vkd3d-shader/spirv: Handle the WAVELANEINDEX register.
vkd3d-shader/dxil: Implement DX intrinsic WaveActiveAllEqual.
vkd3d-shader/spirv: Handle the WAVE_ACTIVE_ALL_EQUAL instruction.
vkd3d-shader/dxil: Implement DX intrinsic WaveAllTrue.
vkd3d-shader/spirv: Handle the WAVE_ALL_TRUE instruction.
vkd3d-shader/dxil: Implement DX intrinsic WaveAnyTrue.
vkd3d-shader/spirv: Handle the WAVE_ANY_TRUE instruction.
vkd3d-shader/dxil: Implement DX intrinsic WaveActiveBallot.
vkd3d-shader/spirv: Implement the WAVE_ACTIVE_BALLOT instruction.
vkd3d-shader/dxil: Implement DX intrinsic WaveActiveBit.
vkd3d-shader/spirv: Implement the WAVE_ACTIVE_BIT_* instructions.
vkd3d-shader/dxil: Implement DX intrinsics WaveActiveOp and WavePrefixOp.
vkd3d-shader/spirv: Implement the WAVE_OP_* instructions.
tests/shader-runner: Free the hull and domain shader source code.
tests/hlsl: Add a geometry shader test.
vkd3d-shader/dxil: Load geometry shader properties.
vkd3d-shader/ir: Validate geometry shader properties.
vkd3d-shader/dxil: Implement DX intrinsics EmitStream, CutStream and EmitThenCutStream.
vkd3d-shader/dxil: Implement DX intrinsic WaveAllBitCount.
vkd3d-shader/spirv: Implement the WAVE_ALL_BIT_COUNT instruction.
vkd3d-shader/dxil: Implement DX intrinsic WaveIsFirstLane.
vkd3d-shader/spirv: Implement the WAVE_IS_FIRST_LANE instruction.
vkd3d-shader/dxil: Implement DX intrinsic WavePrefixBitCount.
vkd3d-shader/spirv: Implement the WAVE_PREFIX_BIT_COUNT instruction.
tests: Add tests for D3D12_FEATURE_SHADER_MODEL.
vkd3d: Return a shader model no higher than the requested one for D3D12_FEATURE_SHADER_MODEL.
vkd3d: Return E_INVALIDARG if the requested shader model is unknown.
vkd3d-shader/dxil: Emit bool inputs and outputs as uint.
vkd3d-shader/spirv: Do not warn if no global flags are unhandled.
vkd3d-shader/spirv: Emit a trace instead of a warning message for ignored alignment.
vkd3d-shader/dxil: Delete bool not-equal-to-false comparison instructions.
vkd3d-shader/ir: Allow all DCL instructions to occur outside hull shader phases.
tests/hlsl: Add a test for WaveReadLaneAt() with a non-uniform index.
vkd3d-shader/dxil: Implement DX intrinsic WaveReadLaneAt.
vkd3d-shader/spirv: Implement the WAVE_READ_LANE_AT instruction.
vkd3d-shader/dxil: Implement DX intrinsic WaveReadLaneFirst.
tests/hlsl: Clear the RTV before the WaveReadLaneFirst() test.
vkd3d-shader/spirv: Implement the WAVE_READ_LANE_FIRST instruction.
tests/hlsl: Add a test for SV_Coverage out.
vkd3d-shader/dxil: Handle SV_Coverage out.
tests/hlsl: Add a test for SV_ClipDistance.
vkd3d-shader/dxil: Handle SV_ClipDistance and SV_CullDistance.
tests/d3d12: Do not test a typed UAV in test_atomic_instructions().
tests/d3d12: Do not test 3D depth textures in test_get_copyable_footprints().
tests/d3d12: Do not clear UAVs via a structured view.
tests/d3d12: Set the descriptor heaps for the draw call in test_graphics_uav_counters().
tests/d3d12: Check the correct depth/stencil plane format and alignment in test_get_copyable_footprints().
tests/d3d12: Test format D32_FLOAT_S8X24_UINT in test_get_copyable_footprints().
tests/d3d12: Check UnalignedBlockTexturesSupported when testing GetCopyableFootprints().
tests/d3d12: Ensure stream output BufferFilledSizeLocation is always valid.
tests/d3d12: Use get_cpu_sampler_handle() for the sampler heap in test_unbounded_samplers().
tests/d3d12: Add a separate null 'views' pointer test in test_null_vbv().
vkd3d: Check for mutable descriptor set allocation failure in d3d12_descriptor_heap_create_descriptor_set().
Elizabeth Figura (62):
vkd3d-shader/spirv: Implement CMP.
vkd3d-shader/spirv: Implement SLT and SGE.
tests: Use a UAV barrier between ClearUnorderedAccessViewFloat() and a compute shader.
vkd3d-utils: Implement ID3D12ShaderReflection::GetConstantBufferByIndex().
vkd3d-utils: Parse the RD11 section.
vkd3d-utils: Implement ID3D12ShaderReflectionConstantBuffer::GetVariableByIndex().
vkd3d-utils: Implement ID3D12ShaderReflectionVariable::GetType().
vkd3d-utils: Implement ID3D12ShaderReflectionType::GetMemberTypeByIndex().
vkd3d-shader/tpf: Do not write non-numeric struct fields into the RDEF.
vkd3d-shader/hlsl: Allocate register reservations for structs as well.
vkd3d-shader/tpf: Do not write structs with no numeric fields into the RDEF.
vkd3d-shader/tpf: Explicitly write the class and base type for non-numeric types.
vkd3d-shader/tpf: Write the component count as the column count for structs.
vkd3d-shader/tpf: Set the user-packed flag for sm5.0 resources as well.
tests: Test constant and resource reflection via D3DReflect().
tests: Add more tests for resource and struct RDEF contents.
vkd3d-shader/spirv: Implement VKD3DSIH_ABS.
vkd3d-shader: Add a compile option to control whether implicit truncation warnings are printed.
vkd3d-shader/hlsl: Remove a redundant type check.
vkd3d-shader/hlsl: Move a hlsl_fixme() to a more relevant place.
vkd3d-shader/hlsl: Simplify type_has_object_components().
vkd3d-shader/hlsl: Use hlsl_is_numeric_type() in type_has_object_components().
vkd3d-shader/hlsl: Move shader version helpers to hlsl.h.
vkd3d-shader/hlsl: Use hlsl_version_ge() when checking for unbounded arrays.
vkd3d-shader/hlsl: Add SM5.1 shader target strings.
tests: Test HLSL unbounded array syntax.
vkd3d-shader/hlsl: Use hlsl_type_is_resource() for unbounded array checks.
tests: Add more tests for manual packing.
vkd3d-shader/hlsl: Consider any valid register reservation to invoke manual packing.
vkd3d-shader/hlsl: Avoid using HLSL_CLASS_OBJECT without checking the base type.
vkd3d-shader/hlsl: Map HLSL_TYPE_DOUBLE to D3DXPT_FLOAT.
vkd3d-shader/d3dbc: Consider the class in sm1_base_type().
vkd3d-shader/fx: Don't use an array to write the type class.
vkd3d-shader/fx: Move unimplemented type checks into is_type_supported_fx_2().
vkd3d-shader/fx: Use a switch in write_fx_2_initial_value().
vkd3d-shader/hlsl: Make HLSL_TYPE_VOID into a separate class.
vkd3d-shader/hlsl: Make HLSL_TYPE_STRING into a separate class.
vkd3d-shader/hlsl: Make HLSL_TYPE_SAMPLER into a separate class.
vkd3d-shader/hlsl: Make HLSL_TYPE_TEXTURE into a separate class.
vkd3d-shader/hlsl: Make HLSL_TYPE_UAV into a separate class.
vkd3d-shader/hlsl: Rename register_opt and packoffset_opt to register_reservation and packoffset_reservation.
vkd3d-shader/hlsl: Parse register space reservations.
tests: Do not run the d3d11 backend with shader model 5.1.
tests: Add tests for profile syntax in register reservations.
tests: Add tests for register space reservation syntax.
vkd3d-shader/hlsl: Make HLSL_TYPE_EFFECT_GROUP into a separate class.
vkd3d-shader/hlsl: Make HLSL_TYPE_PASS into a separate class.
vkd3d-shader/hlsl: Make HLSL_TYPE_TECHNIQUE into a separate class.
vkd3d-shader/hlsl: Make HLSL_TYPE_DEPTHSTENCILVIEW into a separate class.
vkd3d-shader/hlsl: Make HLSL_TYPE_RENDERTARGETVIEW into a separate class.
vkd3d-shader/hlsl: Ensure that the type is numeric before calling expr_common_base_type().
vkd3d-shader/hlsl: Make HLSL_TYPE_VERTEXSHADER into a separate class.
vkd3d-shader/hlsl: Make HLSL_TYPE_PIXELSHADER into a separate class.
vkd3d-shader/hlsl: Use a switch in hlsl_types_are_equal().
vkd3d-shader/hlsl: Move the "base_type" member to the class-specific union.
vkd3d-utils: Fix bounds comparison against element counts.
vkd3d-shader/tpf: Write the field offset in bytes.
vkd3d-utils: Initialize the null type vtbl.
tests: Test bounds checking in ID3D12ShaderReflection.
vkd3d-utils: Implement ID3D12ShaderReflection::GetResourceBindingDesc().
vkd3d-shader/fx: Skip uniform copy logic for global variables.
authors: Change the full form of my name.
Evan Tang (2):
vkd3d-shader/spirv: Implement support for rasteriser-ordered views.
vkd3d: Enable VK_EXT_fragment_shader_interlock if available.
Francisco Casas (70):
vkd3d-shader/hlsl: Lower casts to int using REINTERPRET instead.
vkd3d-shader/hlsl: Lower non-float operators for SM1.
vkd3d-shader/d3dbc: Implement bool to float cast as MOV.
tests: Copy autotool's testsuite driver script.
tests: Get detailed information on failing tests.
tests/shader-runner: Pass uniforms to vertex shaders in d3d9 and d3d11.
vkd3d-shader/hlsl: Cast slt before multiplying on ternary operator.
tests: Test comparison and logic operators on SM1 vertex shaders.
tests: Check that -0.0f is not less than 0.0f.
tests: Avoid creating a file named "0" when calling "make check".
vkd3d-shader/d3dbc: Check profiles before writing SLT and CMP.
vkd3d-shader/hlsl: Implement SM1 comparison operators.
tests: Test equality between tiny and between large numbers on ps_2_0.
vkd3d-shader/hlsl: Lower SLT instructions for pixel shaders.
vkd3d-shader/hlsl: Use hlsl_fixme() on missing SM1 matrix writemask lowering.
vkd3d-shader/hlsl: Lower CMP instructions for vertex shaders.
tests: Add tests for LOGIC_NOT on uniforms.
vkd3d-shader/hlsl: Support LOGIC_NOT for SM1.
vkd3d-shader/hlsl: Cast to bool before applying LOGIC_NOT.
vkd3d-shader/d3dbc: Implement HLSL_OP2_LOGIC_OR for SM1.
vkd3d-shader/d3dbc: Implement HLSL_OP2_LOGIC_AND for SM1.
vkd3d-shader/spirv: Throw compiler error on unrecognized register.
tests/test-driver: Display [SIGABRT] and [SIGSEGV] tags.
tests/test-driver: Print line where vkd3d_unreachable() was hit.
vkd3d-shader/hlsl: Ensure that TERNARY condition is always bool.
vkd3d-shader/hlsl: Move lower of non-float expressions with the other SM1 passes.
vkd3d-shader/hlsl: Merge HLSL_OP3_MOVC into HLSL_OP3_TERNARY.
tests: Report missing signature element in openGL runner.
vkd3d-shader/tpf: Use the extra_bits field for _nz on discard.
tests: Add failing test for clip.shader_test in SM1.
vkd3d-shader/ir: Add missing src swizzle in vsir_program_lower_texkills().
vkd3d-shader/hlsl: Use LOGIC_OR instead of BIT_OR in any().
vkd3d-shader/hlsl: Use LOGIC_AND instead of MUL in all().
vkd3d-shader/hlsl: Properly release string buffer on write_atan_or_atan2().
vkd3d-shader/hlsl: Also call dce before lowering deref paths.
tests: Add more state block syntax tests.
tests: Test function call syntax for state blocks.
tests: Add tests for fxgroup syntax.
tests: Add tests for "compile" and CompileShader() syntax.
vkd3d-shader/hlsl: Parse and store state blocks on variables.
vkd3d-shader/hlsl: Introduce hlsl_ir_stateblock_constant.
vkd3d-shader/hlsl: Parse list of state blocks.
vkd3d-shader/hlsl: Store state block on pass variables.
vkd3d-shader/hlsl: Allow KW_PIXELSHADER and KW_VERTEXSHADER as stateblock lhs.
vkd3d-shader/hlsl: Cleanup parse_attribute_list structs (valgrind).
tests/shader-runner: Report whole-block errors on the block's starting line.
tests: Add additional conditional tests for shader model 3.0.
vkd3d-shader/d3dbc: Pass hlsl_block instead of function declaration.
vkd3d-shader/ir: Lower IFC instructions to IF instructions.
vkd3d-shader/d3dbc: Support SM1 if conditionals.
tests: Test x + 0 and x * 1 indentities.
vkd3d-shader/hlsl: Fold x + 0 identities.
vkd3d-shader/hlsl: Fold x * 1 identities.
vkd3d-shader/hlsl: Turn hlsl_state_block_entry arguments into hlsl_src.
tests: Test SM1 constant register allocation.
tests: Test SM1 constant register allocation with reservations.
tests: Test SM1 const register allocation with relative addressing.
vkd3d-shader/hlsl: Allocate unused variables with register reservations on SM1.
vkd3d-shader/hlsl: Improve tracking of used components running DCE before.
vkd3d-shader/hlsl: Track bind count according to usage for uniforms.
vkd3d-shader/hlsl: Only allocate numeric bind count for SM1 numeric uniforms.
vkd3d-shader/d3dbc: Write used bind count for numeric uniforms.
vkd3d-shader/hlsl: Allocate SM1 numeric uniforms in decreasing bind count.
vkd3d-shader: Return a valid pointer when count=0 in param allocator (ubsan).
tests: Test default values for uniform variables.
tests: Test default values for constant buffer variables.
vkd3d-shader/hlsl: Run constant passes in a separate function.
vkd3d-shader/hlsl: Run more constant passes on static expressions eval.
tests: Test complex array size expression.
vkd3d-shader/hlsl: Also lower matrix swizzles and index loads in const passes.
Giovanni Mascellani (124):
vkd3d-shader/d3d-asm: Do not make a copy of the buffer before returning it.
vkd3d-shader/d3d-asm: Describe the ASM dialect with a bunch of flags instead of a plain enum.
vkd3d-shader/d3d-asm: Refactor dumping a write mask to a dedicated function.
vkd3d-shader/d3d-asm: Support emitting the shader signature.
vkd3d-compiler: Add an option to emit the signature when disassembling.
tests: Test emitting the signature.
vkd3d-shader/ir: Properly handle function-local indexable temps when flattening control flow.
vkd3d-shader/ir: Add a debug buffer to struct vsir_cfg.
vkd3d-shader/ir: Introduce a helper to express block domination.
vkd3d-shader/ir: Compute the loops in the control flow graph.
vkd3d-shader/ir: Keep a reference to the message context inside struct vsir_cfg.
vkd3d-shader/ir: Keep track of loops by header block.
vkd3d-shader/ir: Dump the loops in the control flow graph.
vkd3d-shader/ir: Sort each loop by block label.
vkd3d-shader/ir: Allow adding to a block list without checking for duplicates.
vkd3d-shader/ir: Topologically sort the control flow graph.
vkd3d-shader/ir: Dump the topological order of the control flow graph.
vkd3d-shader/ir: Keep loops contiguous in the topological sort.
vkd3d-shader: Treat the HLSL case specially in vkd3d_shader_scan().
vkd3d-shader: Treat the HLSL case specially in vkd3d_shader_compile().
vkd3d-shader: Refactor common code for vkd3d_shader_scan().
vkd3d-shader: Refactor common code for vkd3d_shader_compile().
vkd3d-shader/d3d-asm: Print labels in red.
vkd3d-shader/d3d-asm: Only emit signatures for SM4-6.
vkd3d-shader/dxbc: Add flag to ignore the DXBC checksum.
vkd3d-dxbc: Add an option to ignore checksum.
vkd3d-dxbc: Add an option to re-emit the shader with the correct checksum.
vkd3d-dxbc: Add an option to choose the output filename.
vkd3d-shader/tpf: Remove a useless parameter to shader_sm4_init().
vkd3d-shader/dxbc: Decouple vkd3d_shader_desc from DXBC parsing.
vkd3d-shader: Move shader signatures to vsir_program.
vkd3d-shader/dxbc: Remove flag is_dxil.
vkd3d-shader: Remove the bytecode fields from vkd3d_shader_desc.
tests: Mark the HS punned array test as buggy on MoltenVK.
tests: Pop the test context when leaving its scope.
tests: Mark the coverage test as buggy on MoltenVK.
tests: Relax precision a bit for an interpolation test.
tests: Clear the UAV before testing.
vkd3d-shader/ir: Compute loop as intervals of the block order.
vkd3d-shader/ir: Generate synthetic intervals for forward edges.
vkd3d-shader/ir: Sort loop intervals.
vkd3d-shader/ir: Reconstruct a structured program.
vkd3d-shader/ir: Add jumps to the structured programs.
vkd3d-shader/ir: Dump the reconstructed structured program.
vkd3d-shader/ir: Emit the reconstructed structured program.
vkd3d-shader/ir: Emit multilevel jumps in the structured program.
vkd3d-shader/d3d-asm: Indent instructions inside a block.
vkd3d-shader/d3d-asm: Do not dump a register's type if it's unused.
vkd3d-shader/ir: Use type "unused" for labels.
Add a changelog for all the released versions of vkd3d.
include: Include stddef.h in vkd3d_shader.h.
tests: Include vkd3d_d3d12.h in utils.h.
vkd3d-compiler: Clean up the shader code in all failure paths (Valgrind).
vkd3d-shader/ir: Move vsir_program_normalise() to the end of the file.
vkd3d-shader/ir: Open a loop when visiting the loop header.
vkd3d-shader/ir: Drop a useless helper.
ci: Make llvmpipe from Mesa 24.0.3 available in the CI image.
ci: Run tests on llvmpipe from Mesa 24.0.3.
vkd3d-shader/ir: Move `continue's to the false branch when possible.
vkd3d-shader/ir: Remove trailing `continue's.
vkd3d-shader/ir: Synthesize selection constructs from conditional jumps.
ci: Build the macOS image each time the Linux image is built.
ci: Delimit building each commit with a collapsible section.
vkd3d-shader/d3d-asm: Reset indent level on HS phases.
tests: Mark some test failures as todo on llvmpipe.
tests: Skip some tests that crash on llvmpipe.
tests: Print the device name.
tests: Add llvmpipe among the Mesa drivers.
tests: Pop the test context when leaving its scope.
ci: Build Mesa for release.
vkd3d-shader/hlsl: Emit half results when operating on half arguments.
tests: Check that side effects do not happen after discard.
vkd3d-shader/ir: Move `break's out of selection constructs when possible.
vkd3d-shader/ir: Count how many jumps target each loop.
vkd3d-shader/ir: Remove loops that terminate with a `break'.
vkd3d-shader/ir: Prepare for changing the destination list in vsir_cfg_optimize_recurse().
vkd3d-shader/ir: Append code to the non-breaking branch if there is breaking one.
vkd3d-shader/ir: Move breaks out of selections again after having optimized loops.
vkd3d-shader/ir: Split program structurization.
vkd3d-shader/ir: Split undominated SSA materialization.
vkd3d-shader/ir: Refactor declaration emission outside of the CFG structure.
vkd3d-shader/ir: Split handling blocks when emitting a structured program.
vkd3d-shader/ir: Split handling loops when emitting a structured program.
vkd3d-shader/ir: Split handling selections when emitting a structured program.
vkd3d-shader/ir: Split handling jumps when emitting a structured program.
vkd3d-shader/ir: Introduce vsir_program_lower_instructions().
vkd3d-shader/ir: Move DCL_TEMPS removal to the generic instruction lowering pass.
vkd3d-shader/ir: Swap selection branches if the if branch is empty.
vkd3d-shader/ir: Only emit trampolines when needed.
vkd3d-shader/ir: Only emit launchers when needed.
vkd3d-utils: Make all extensions optional in D3D12CreateDeviceVKD3D().
tests: Avoid using a different UAV for SM<6 and SM>=6.
tests: Check that derivatives are still computed after discarding.
tests/shader-runner: Use OpDemoteToHelperInvocationEXT when available.
tests: Allow skipping DXC tests at runtime.
tests: Allow compiling shaders with DXC on crosstests.
ci: Run crosstests with DXC too.
include: Document struct vkd3d_instance_create_info.
include: Document struct vkd3d_structure_type.
include: Document struct vkd3d_optional_instance_extensions_info.
include: Document structure vkd3d_application_info.
include: Document structure vkd3d_host_time_domain_info.
vkd3d-shader/ir: Skip invalid blocks when materializing undominated SSAs.
vkd3d-shader/ir: Structurize each function of a hull shader.
vkd3d-shader/ir: Materialize SSAs in each function of a hull shader.
tests: Test wave reconvergence after selections and loops.
tests: Add missing test file.
vkd3d: Simplify control flow for swapchain images.
include: Document structure vkd3d_device_create_info.
include: Document structure vkd3d_optional_device_extensions_info.
include: Document structure vkd3d_image_resource_create_info.
vkd3d: Warn about missing extensions only when meaningful.
vkd3d: Move checking device extensions to a dedicated function.
vkd3d: Do not automatically succeed if no extensions are available.
vkd3d: Init physical device information after checking available extensions.
vkd3d: Only request properties and features when the corresponding extension is available.
vkd3d: Handle D3D12_FEATURE_D3D12_OPTIONS14 in CheckFeatureSupport().
vkd3d: Handle D3D12_FEATURE_D3D12_OPTIONS15 in CheckFeatureSupport().
vkd3d: Handle D3D12_FEATURE_D3D12_OPTIONS16 in CheckFeatureSupport().
vkd3d: Handle D3D12_FEATURE_D3D12_OPTIONS17 in CheckFeatureSupport().
vkd3d: Handle D3D12_FEATURE_D3D12_OPTIONS18 in CheckFeatureSupport().
vkd3d: Move the full stops before the newline.
tests: Check device support for all the 16 bit image formats.
tests: Skip a test that freezes the GPU on NVIDIA.
Henri Verbeet (85):
vkd3d-shader: Enable GLSL target support when VKD3D_SHADER_UNSUPPORTED_GLSL is defined.
vkd3d-shader/glsl: Use location information from the current instruction.
vkd3d-shader/d3d-asm: Get rid of the (now) redundant "shader_desc" parameter to vkd3d_dxbc_binary_to_text().
vkd3d-shader/glsl: Introduce glsl_compile().
vkd3d-shader/ir: Pass a struct vsir_program to instruction_array_lower_texkills().
vkd3d-shader/ir: Pass a struct vsir_program to materialize_ssas_to_temps_process_reg().
vkd3d-shader/ir: Pass a struct vsir_program to materialize_ssas_to_temps().
vkd3d-shader/ir: Pass a struct vsir_program to simple_structurizer_run().
vkd3d-shader/ir: Pass a struct vsir_program to remap_output_signature().
vkd3d-shader/glsl: Store a pointer to the vsir program in struct vkd3d_glsl_generator.
vkd3d-shader/glsl: Trace the generated shader.
vkd3d-shader/glsl: Generate comments for unhandled instructions.
vkd3d-shader/ir: Pass a struct vsir_program to shader_normalise_io_registers().
vkd3d-shader/ir: Pass a struct vsir_program to normalise_combined_samplers().
vkd3d-shader/ir: Pass a struct vsir_program to flatten_control_flow_constructs().
vkd3d-shader/ir: Pass a struct vsir_program to vsir_validate().
vkd3d-shader/glsl: Keep track of the current indentation level.
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_tessellator_domain().
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_tessellator_output_primitive().
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_tessellator_partitioning().
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_src_param().
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_dst_param().
tests/shader_runner: Add GLSL support to the GL runner.
vkd3d-shader/ir: Pass a struct vsir_program to vkd3d_shader_normalise().
vkd3d-common: Merge vkd3d_debug.h into vkd3d_common.h.
vkd3d: Move the vkd3d_mutex implementation to vkd3d-common.
tests: Initialise resource_desc1.Layout in test_get_copyable_footprints() (Valgrind).
tests/shader_runner: Cleanup on insufficient GLSL support in gl_runner_init() (Valgrind).
vkd3d-dxbc: Close output files after writing them.
vkd3d-dxbc: Introduce a helper function to handle ACTION_TYPE_EMIT.
vkd3d-dxbc: Introduce a helper function to apply actions.
vkd3d-dxbc: Free the blob if parsing it failed.
vkd3d-dxbc: Implement extracting section data.
vkd3d-dxbc: Allow the section to extract to be specified by tag.
tests: Free the shader blobs once we're done with them in test_create_pipeline_state(). (Valgrind).
tests/test-driver: Avoid "head" with negative line count.
configure: Use AC_CHECK_TOOL to check for widl.
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_register().
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_reg_type().
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_shader_input_sysval_semantic().
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_decl_usage().
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_primitive_type().
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_interpolation_mode().
tests: Test creating compute pipeline states from shaders with embedded root signatures.
vkd3d: Implement creating compute pipeline states from shaders with embedded root signatures.
vkd3d-shader/d3d-asm: Get rid of shader_addline().
vkd3d-shader/ir: Remove VKD3DSIH_DCL_CONSTANT_BUFFER instructions.
vkd3d: Avoid leaking "messages" when "error_blob" is NULL in vkd3d_serialize_root_signature(). (Valgrind).
vkd3d: Avoid leaking "messages" when "error_blob" is NULL in vkd3d_serialize_versioned_root_signature(). (Valgrind).
vkd3d-shader/glsl: Call vkd3d_shader_normalise().
vkd3d-shader/glsl: Add vkd3d-shader version information to the generated shader.
vkd3d-shader/hlsl: Support d3d-asm as target format.
vkd3d-shader/hlsl: Support spirv-binary and spirv-text as target formats.
tests/shader_runner: Pass only valid stages to vkCreateGraphicsPipelines().
vkd3d-shader/glsl: Implement VKD3DSIH_NOP.
vkd3d: Move the vkd3d_cond implementation to vkd3d-common.
vkd3d-common: Introduce VKD3D_BITMAP_SIZE.
vkd3d: Use WIDL_C_INLINE_WRAPPERS.
vkd3d-utils: Use WIDL_C_INLINE_WRAPPERS.
vkd3d-common: Use WIDL_C_INLINE_WRAPPERS.
tests/shader_runner: Use WIDL_C_INLINE_WRAPPERS.
vkd3d: Get rid of vkd3d_atomic_compare_exchange_pointer().
vkd3d-common: Introduce vkd3d_atomic_compare_exchange_u32().
vkd3d-common: Introduce vkd3d_atomic_exchange_u32().
vkd3d-common: Introduce vkd3d_atomic_exchange_ptr().
vkd3d-shader/hlsl: Use vkd3d_string_buffer_printf() in declare_predefined_types().
vkd3d-shader/spirv: Use location information from the current instruction.
vkd3d-shader: Get rid of struct vkd3d_shader_desc.
configure: Build with -flto=auto when available.
vkd3d-shader/spirv: Pass a struct vsir_program to spirv_compiler_generate_spirv().
vkd3d-shader/spirv: Pass a struct vsir_program to spirv_compile().
vkd3d-shader: Pass a struct vsir_program to scan_with_parser().
vkd3d-shader: Pass a struct vsir_program to vkd3d_shader_parser_compile().
tests/shader_runner: Get rid of some redundant "| glsl" conditions.
vkd3d-shader/ir: Use a separate allocation for the vsir program in struct vkd3d_shader_parser.
vkd3d-shader/ir: Pass an initialised vsir_program structure to vkd3d_shader_parser_init().
vkd3d-shader/ir: Do not store the vkd3d-shader configuration flags in struct vkd3d_shader_parser.
vkd3d-shader/d3dbc: Parse the shader into a vsir program in vkd3d_shader_sm1_parser_create().
vkd3d-shader/tpf: Parse the shader into a vsir program in vkd3d_shader_sm4_parser_create().
vkd3d-shader/dxil: Parse the shader into a vsir program in vkd3d_shader_sm6_parser_create().
vkd3d-shader: Use a separate allocation for the "semantic_name" field of shader signature elements.
include: Document the additional HLSL transformations supported by vkd3d_shader_compile().
include: Add a \since tag for VKD3D_FALSE.
build: Fix the order of a couple of shader runner tests.
tests: Rename VKD3D_TESTS_SKIP_DXC to VKD3D_TEST_SKIP_DXC.
Nikolay Sivov (49):
vkd3d-shader/hlsl: Implement ternary operator for older vertex profiles.
vkd3d-shader/hlsl: Add keyword tokens for fx_5_0 shader object types.
vkd3d-shader/hlsl: Allow technique10 {} blocks for fx_2_0.
vkd3d-shader/fx: Reject fx_2_0 output without techniques.
vkd3d-shader/fx: Make sure to set error message for unimplemented cases.
tests: Add some tests for shader object type names.
vkd3d-shader/hlsl: Improve VertexShader/PixelShader types handling.
vkd3d-shader/hlsl: Add determinant() function.
vkd3d-shader/hlsl: Allow modifiers on buffer declarations.
vkd3d-shader/d3dbc: Do not write semantic declarations for unused variables.
vkd3d-shader/fx: Add initial support for writing uninitialized vertex/pixel shader objects.
vkd3d-shader: Add an option to enable child effects compilation.
vkd3d-shader/fx: Add support for writing shared object descriptions for fx_4_x.
vkd3d-shader: Remove a token for 'precise' modifier.
vkd3d-shader: Parse a 'single' modifier.
vkd3d-shader/fx: Handle 'single' modifier for buffers.
vkd3d-shader/fx: Use type writing helper only for fx_4+.
vkd3d-shader/fx: Fix an instruction block leak.
vkd3d-shader/fx: Populate global variables list during context initialization.
vkd3d-shader/fx: Add initial support for writing fx_2_0 parameters.
vkd3d-shader/fx: Remove newlines from fixme messages.
vkd3d-shader/fx: Fail effect writing on unsupported annotations.
vkd3d-shader: Adjust "child-effect" option documentation.
vkd3d-shader/fx: Mark shared variables as such for fx_2_0 effects.
vkd3d-shader/fx: Zero-pad strings when aligning them for fx_2_0.
vkd3d-shader/fx: Set initial object count to 1 for fx_2_0.
tests: Rename effect test files to make them easier to find.
vkd3d-shader/fx: Handle "half" type for fx_2_0 parameters.
vkd3d-shader/fx: Handle "uint" type for fx_2_0 parameters.
vkd3d-shader/hlsl: Treat "texture" type name as case-insensitive.
vkd3d-shader/fx: Accept texture types when writing fx_2_0 effects.
vkd3d-shader/hlsl: Allow annotations on constant buffers.
vkd3d-shader/fx: Add an option to include empty buffers in the effect binary.
vkd3d-shader/hlsl: Allow 'export' modifier on functions.
vkd3d-shader/hlsl: Test refract() intrinsic.
vkd3d-shader/hlsl: Support refract() intrinsic.
tests: Add some tests for string variables.
vkd3d-shader/fx: Write depth stencil view object variables.
vkd3d-shader/fx: Set RTV counter in the header.
vkd3d-shader/fx: Set texture count in the header.
vkd3d-shader/fx: Fix shader counter in the header.
vkd3d-shader/fx: Filter out unsupported object types.
vkd3d-shader/fx: Set UAV count in the header.
vkd3d-shader/fx: Initial support for writing sample state objects.
tests: Test SM1 constant register allocation with a row_major matrix.
vkd3d-shader/fx: Implement writing shared buffers.
vkd3d-shader/fx: Use correct type name when reusing types.
vkd3d-shader: Remove explicit newlines from hlsl_fixme() messages.
vkd3d-shader/ir: Set texture register dimension as VEC4 when normalising combined samplers.
Petrichor Park (2):
vkd3d-shader/hlsl: Implement hyperbolic sin and cos.
vkd3d-shader/hlsl: Implement tanh.
Stefan Dösinger (12):
vkd3d: Add ID3D12Device9 interface stubs.
vkd3d: Add an ID3D12ShaderCacheSession stub.
vkd3d: Validate and store shader cache session descriptors.
tests: Add tests for creating D3D12ShaderCacheSession objects.
tests: Add CreateShaderCacheSession pointer clearing tests.
vkd3d: Implement opening and closing shader caches.
vkd3d: Implement reopening existing caches.
vkd3d: Implement vkd3d_shader_cache_put.
vkd3d: Implement vkd3d_shader_cache_get.
vkd3d: Implement cache locking.
tests/d3d12: Add tests for storing and retrieving cache values.
vkd3d: Add a win32 version of vkd3d_get_program_name.
Victor Chiletto (4):
vkd3d-shader/hlsl: Avoid a null pointer dereference in hlsl_block_cleanup (UBSan).
tests/hlsl: Add a test for the XOR assign operator.
vkd3d-shader/hlsl: Fix XOR assign operator lexing.
vkd3d-shader/preproc: Treat CR as whitespace.
```
The Wine development release 9.9 is now available.
What's new in this release:
- Support for new Wow64 mode in ODBC.
- Improved CPU detection on ARM platforms.
- Removal of a number of obsolete features in WineD3D.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.9.tar.xz>
Binary packages for various distributions will be available
from <https://www.winehq.org/download>
You will find documentation on <https://www.winehq.org/documentation>
Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.9/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.9 (total 38):
- #25009 Password Memory 2010 - Titlebar color rendering error
- #26407 Shadowgrounds Survivor crashes after viewing the map
- #26545 Crysis2: Red color on highlights of Bumpmap/Specular Highlights
- #27745 Racer is unplayable
- #28192 regedit: The usage message arrives too late in the wine console
- #29417 Mouse pointer laggy/slow in Dweebs and Dweebs 2 when virtual desktop mode is enabled
- #31665 Femap unexpected crash on rebuild database (or any command that involves it i.e. import)
- #32346 Window is too large with Batman and Head Over Heels remakes
- #39532 Assassin's Creed Unity doesn't run
- #40248 Some .NET applications throw unhandled exception: System.NotImplementedException: 'System.Management.ManagementObjectSearcher.Get' when using Wine-Mono
- #44009 Syberia Gog version: crash after cinematics
- #44625 Cybernoid 2 exits but x window drawing updates are frozen
- #44863 Performance regression in Prince of Persia 3D
- #45358 Assassin's Creed Syndicate (AC Unity; AC Odyssey) broken graphics
- #49674 Feature Request: Restoring previous resolution upon an app crashing
- #51200 High repaint label volume causes freezing
- #53197 Total War: Shogun 2 crashes on unimplemented function d3dx11_42.dll.D3DX11LoadTextureFromTexture
- #55513 Paint.NET 3.5.11 runs unstable on Wine 8.x (and later) because of a bug in Mono
- #55939 Moorhuhn Director's Cut crashes after going in-game
- #56000 Window title is not set with winewayland
- #56422 Exact Audio Copy installer crashes
- #56429 Applications crash with BadWindow X error
- #56483 ShellExecute changes in Wine 9.5 broke 64-bit Winelib loading in WoW64 builds
- #56485 Visual novel RE:D Cherish! displays white screen instead of logo video
- #56492 Opentrack/TrackIR head tracking broken
- #56498 Incorrect substring expansion for magic variables
- #56506 strmbase TRACEs occasionally fail to print floats
- #56527 Final Fantasy XI Online: Opening movie triggers a 'GStreamer-Video-CRITICAL'.
- #56579 Setupapi fails to read correct class GUID and name from INF file containing %strkey% tokens
- #56588 FlatOut 1 display resolution options limited to current desktop resolution using old wow64
- #56595 Fallout 3 is slow
- #56607 steam: no tray icon starting with wine 9.2
- #56615 Spelunky won't start (GLSL version 1.20 is too low; 1.20 is required)
- #56653 GetLogicalProcessorInformation can be missing Cache information
- #56655 X11 Driver fails to load
- #56661 Project Diablo 2 crashes
- #56671 Disney Ratatouille demo renders upside down on Intel graphics
- #56682 msvcrt:locale prevents the msvcrt:* tests from running on Windows 7
### Changes since 9.8:
```
Akihiro Sagawa (2):
quartz/tests: Test read position after MPEG splitter connection.
winegstreamer: Seek to the end after MPEG splitter connection.
Alex Henrie (1):
dinput: Don't include every version of DirectInputCreate in every DLL.
Alexandre Julliard (38):
nls: Update locale data to CLDR version 45.
winedump: Dump registry scripts resources as text.
winedump: Dump typelib resources in structured format.
atl: Remove empty clsid registration.
dhtmled.ocx: Remove empty clsid registration.
widl: Don't generate empty interface registrations.
ntdll: Use null-terminated strings instead of explicit lengths to build SMBIOS data.
ntdll: Cache the generated SMBIOS data.
ntdll: Build the SMBIOS table incrementally.
ntdll: Generate dummy SMBIOS data on non-supported platforms.
ntdll: Store the CPU vendor and id during detection.
ntdll: Add processor information to the SMBIOS data.
configure: Restore warning for missing PE compiler.
ntdll: Report the correct processor details on ARM platforms.
ntdll: Update PROCESSOR_ARCHITECTURE variable correctly for ARM platforms.
wineboot: Create CPU environment keys together with other hardware keys.
wineboot: Get the CPU model details with NtQuerySystemInformation(SystemCpuInformation).
wineboot: Report the correct model number on ARM platforms.
wineboot: Support multiple SMBIOS entries of the same type.
wineboot: Retrieve CPU details through the SMBIOS table.
winemac.drv: Remove some no longer used code.
wbemprox: Get the processor caption from the registry.
wbemprox: Support multiple SMBIOS entries of the same type.
wbemprox: Get the processor manufacturer from the SMBIOS table.
wbemprox: Get the processor name from the SMBIOS table.
wbemprox: Get the processor count from the SMBIOS table.
wbemprox: Get the processor id from the SMBIOS table.
wbemprox: Get a few more processor details from the SMBIOS table.
wbemprox: Get the processor type and model with SystemCpuInformation.
wbemprox: Use RtlGetNativeSystemInformation directly to get the correct info on ARM platforms.
msvcrt/tests: Don't link to _setmaxstdio.
msvcrt: Update some mangled names on ARM.
ntdll: Add default values for cache parameters.
msvcrt: Resync cxx.h with msvcp90.
msvcrt: Unify __CppXcptFilter implementations.
msvcrt: Unify __CxxQueryExceptionSize implementations.
msvcrt: Unify __CxxDetectRethrow implementations.
msvcrt: Unify checks for valid C++ exception.
Alexandros Frantzis (3):
win32u: Enable dibdrv wglDescribePixelFormat through p_get_pixel_formats.
user32/tests: Skip affected keyboard tests if a spurious layout change is detected.
user32/tests: Remove workaround for SendInput keyboard tests on zh_CN.
Alistair Leslie-Hughes (1):
include: Add some D3D12_FEATURE_DATA_D3D12_OPTIONS* types.
Anton Baskanov (2):
winegstreamer: Recognize MFAudioFormat_MPEG and MFAudioFormat_MP3.
winegstreamer: Add missing format fields to WMA support check.
Billy Laws (2):
ntdll: Allocate wow64 environment block within the 32-bit address space.
ntdll: Don't restore PC from LR after unwinding through frame switches.
Biswapriyo Nath (1):
include: Avoid a C++ keyword.
Brendan McGrath (3):
winex11.drv: Increment mode_idx in {xrandr10,xf86vm}_get_modes.
winegstreamer: Pass filename to wg_parser when available.
mplat/tests: Test Media Source is freed if immediately released.
Brendan Shanks (1):
winemac.drv: Fix warning in macdrv_get_pixel_formats.
Connor McAdams (4):
d3dx9/tests: Add a test for negative values in the source rectangle passed to D3DXLoadSurfaceFromMemory.
d3dx9/tests: Add a new compressed surface loading test.
d3dx9: Only do direct copies of full blocks for compressed formats.
d3dx9: Fix destination rectangles passed from D3DXLoadSurfaceFromMemory() to d3dx_load_image_from_memory().
Daniel Lehman (2):
msvcrt/tests: Add result for Turkish_Türkiye.1254.
msvcrt/tests: Add tests for _wcsicmp_l.
Dmitry Timoshkov (2):
kernelbase: Add support for FileDispositionInfoEx to SetFileInformationByHandle().
user32/tests: Offset child CS_PARENTDC window from parent to make more bugs visible.
Elizabeth Figura (38):
wined3d: Retrieve the VkCommandBuffer from wined3d_context_vk after executing RTV barriers.
wined3d: Submit command buffers after 512 draw or dispatch commands.
ddraw: Use system memory for version 4 vertex buffers.
ddraw: Upload only the used range of indices in d3d_device7_DrawIndexedPrimitive().
ddraw/tests: Test GetVertexBufferDesc().
wined3d: Fix GLSL version comparison.
maintainers: Change the full form of my name.
wined3d: Remove the offscreen_rendering_mode setting.
wined3d: Use wined3d_resource_is_offscreen() directly in ffp_blitter_clear_rendertargets().
wined3d: Remove no longer used support for drawing to an onscreen render target.
wined3d: Remove the no longer used render_offscreen field from struct ds_compile_args.
wined3d: Remove the no longer used Y correction variable.
d3d9/tests: Clarify and expand point size tests.
d3d9/tests: Expand test_color_vertex().
d3d9/tests: Add some tests for default diffuse values.
d3d9/tests: Test default attribute components.
wined3d: Remove the GL FFP vertex pipeline.
wined3d: Remove the GL FFP fragment pipeline.
wined3d: Remove the NV_register_combiners fragment pipeline.
wined3d: Remove the ATI_fragment_shader fragment pipeline.
wined3d: Remove the ARB_fragment_program blitter.
wined3d: Remove the ARB fragment pipeline.
wined3d: Remove the ARB shader backend.
amstream: Link to msvcrt instead of ucrtbase.
evr: Link to msvcrt instead of ucrtbase.
qasf: Link to msvcrt instead of ucrtbase.
qcap: Link to msvcrt instead of ucrtbase.
qdvd: Link to msvcrt instead of ucrtbase.
qedit: Link to msvcrt instead of ucrtbase.
quartz: Link to msvcrt instead of ucrtbase.
winegstreamer: Link to msvcrt instead of ucrtbase.
wined3d: Remove no longer used support for emulated non-power-of-two textures.
wined3d: Remove no longer used support for rectangle textures.
wined3d: Remove texture non-power-of-two fixup.
wined3d: Remove the last vestiges of ARB_texture_rectangle support.
wined3d: Collapse together NPOT d3d_info flags.
wined3d: Remove the redundant "pow2_width" and "pow2_height" fields.
wined3d: Fix inversion in shader_get_position_fixup().
Eric Pouech (19):
cmd/tests: Test using %%0-%%9 as loop variables.
cmd/tests: Test nested loop variables expansion.
cmd/tests: Test delayed expansion with spaces in IF and FOR.
cmd/tests: Test calling batch files named as builtin commands.
cmd/tests: Test success/failure of commands.
cmd: Consistenly use the same variable to identify current command.
cmd: No longer keep track of last element in command list.
cmd: Introduce xrealloc helper.
cmd: Use CRT's popen instead of rewriting it.
cmd: Remove malloc attribute from xrealloc.
cmd: Introduce CMD_NODE structure.
cmd: Add helpers to handle list in degenerated binary tree.
cmd: Move operator from CMD_COMMAND to CMD_NODE.
msvcrt: Demangle std::nullptr_t datatype.
winedump: Demangle std::nullptr_t datatype.
msvcrt: Don't consider end of list encoding as real data types.
winedump: Don't consider end of list encoding as real data types.
msvcrt: Correctly unmangle qualified pointer to function/method.
winedump: Correctly unmangle qualified pointer to function/method.
Esme Povirk (20):
gdiplus: Add a function to bracket HDC use.
gdiplus: Bracket HDC use in gdi_alpha_blend.
gdiplus: Bracket HDC use in alpha_blend_pixels_hrgn.
gdiplus: Bracket hdc use in brush_fill_path.
gdiplus: Bracket HDC use in draw_cap.
gdiplus: Bracket HDC use in draw_poly.
gdiplus: Bracket HDC use in trace_path.
gdiplus: Do not use hdc directly in get_graphics_bounds.
gdiplus: Accept an HDC in get_gdi_transform.
gdiplus: Fix background key.
gdiplus: Bitmap stride is ignored when Scan0 is non-NULL.
gdiplus: Support anchors on thin paths.
gdiplus: Remove unnecessary math in add_anchor.
gdiplus: Fix signs on custom line cap rotation in add_anchor.
gdiplus: Reorder filled arrow cap points to match native.
gdiplus: Add a test for GdipWidenPath with Custom linecaps.
gdiplus: Do not create gdi32 objects for Bitmap objects.
gdiplus: Bracket HDC use in GdipDrawImagePointsRect.
gdiplus: Bracket HDC use in GDI32_GdipFillPath.
gdiplus: Bracket HDC use in GDI32_GdipFillRegion.
Fabian Maurer (2):
win32u: Factor out scroll timer handling.
win32u: Only set scroll timer if it's not running.
Fotios Valasiadis (1):
ntdll/unix: Fix building on musl by explicitly including asm/ioctls.h.
Georg Lehmann (1):
winevulkan: Update to VK spec version 1.3.285.
Hans Leidekker (8):
odbc32: Forward SQLDataSourcesA() to SQLDataSources() and GetDiagRecA() to GetDiagRec().
odbc32: Make Unix call parameters Wow64 compatible.
odbc32: Load_odbc() returns NTSTATUS.
odbc32: Move replication of ODBC settings to the Unix lib.
odbc32: Add Wow64 thunks.
include: Add missing Unicode SQL function declarations.
odbc32: Don't load libodbc.so dynamically.
odbc32/tests: Add tests.
Hongxin Zhao (1):
po: Add a missing \t in the Simplified Chinese translation.
Huw D. M. Davies (3):
nsi/tests: Use NSI_IP_COMPARTMENT_TABLE instead of hard coding the integer.
mmdevapi: Remove unused ACImpl typedef.
maintainers: Remove Andrew Eikum.
Jacek Caban (25):
winecrt0: Support __os_arm64x_dispatch_call symbol on ARM64EC.
d3dx9/tests: Remove xfile dumping functionality.
mshtml: Introduce DISPEX_IDISPATCH_IMPL.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlnode.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlbody.c.
mshtml: Use DISPEX_IDISPATCH_IMPL in htmlanchor.c.
mshtml: Use DISPEX_IDISPATCH_IMPL in htmlarea.c.
mshtml: Use DISPEX_IDISPATCH_IMPL in htmlattribute.c.
mshtml: Use DISPEX_IDISPATCH_IMPL in htmlcomment.c.
mshtml: Use DISPEX_IDISPATCH_IMPL in htmlcurstyle.c.
mshtml: Use DISPEX_IDISPATCH_IMPL for DocumentType object implementation.
winebuild: Use .drectve section for exports on ARM64EC.
mshtml: Use DISPEX_IDISPATCH_IMPL for HTMLElement object implementation.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlelem.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlelemcol.c.
mshtml: Use DISPEX_IDISPATCH_IMPL for HTMLEventObj object implementation.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlevent.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlform.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlframe.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlgeneric.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlhead.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlimg.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlinput.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmllink.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmllocation.c.
Nikolay Sivov (7):
d2d1/tests: Add a test for effect output image interface query.
d2d1/effect: Fix GetImageLocalBounds() prototype.
d2d1/tests: Add some vertex buffer tests.
d2d1/effect: Use more generic naming for loaded shaders array.
d2d1/effect: Add a stub vertex buffer object.
d2d1/effect: Implement SetPassthroughGraph().
d2d1/effect: Implement ConnectNode().
Paul Gofman (7):
xaudio2: Use FAudioVoice_DestroyVoiceSafeEXT() in destroy_voice().
bcrypt: Support RSA/PKCS1 signatures with unspecified hash algorithm.
win32u: Update last message time in NtUserGetRawInputBuffer().
ntdll: Allocate crit section debug info by default for Windows versions before 8.
opengl32: Prefer formats with depth if unspecified in wglChoosePixelFormat().
xaudio2/tests: Fix test failures with xaudio2_8 in test_submix().
nsiproxy.sys: Return success and zero count from ipv6_forward_enumerate_all() if IPV6 is unsupported.
Piotr Caban (4):
ucrtbase: Handle empty list in variadic template.
winedump: Handle empty list in variadic template.
msvcrt/tests: Don't link to _wcsicmp_l and _create_locale.
ntdll: Don't use gmtime concurrently.
Rémi Bernon (37):
winex11: Only request display modes driver data when needed.
win32u: Read / write source modes as a single registry blob.
win32u: Remove now unnecessary reset_display_manager_ctx.
win32u: Use struct pci_id in struct gdi_gpu.
win32u: Remove driver-specific id from struct gdi_gpu.
win32u: Pass gdi_gpu structure members as add_gpu parameters.
win32u: Return STATUS_ALREADY_COMPLETE from UpdateDisplayDevices.
mfreadwrite/tests: Add some source reader D3D11 awareness tests.
mf/tests: Test video processor D3D11 awareness.
winegstreamer/video_processor: Implement D3D awareness.
mfreadwrite/reader: Pass the device manager to the stream transforms.
winegstreamer: Introduce a new wg_transform_create_mf helper.
winegstreamer: Introduce a new check_audio_transform_support helper.
winegstreamer: Introduce a new check_video_transform_support helper.
mfplat: Fix MFCreateMFVideoFormatFromMFMediaType videoInfo.VideoFlags masks.
mfplat: Use IMFMediaType_GetBlobSize instead of IMFMediaType_GetBlob.
mfplat: Introduce a new init_video_info_header helper.
mfplat: Use media_type_get_uint32 in more places.
mfplat: Factor AM_MEDIA_TYPE video format allocation.
mfplat: Set AM_MEDIA_TYPE bTemporalCompression and bFixedSizeSamples.
mfplat: Implement FORMAT_MPEGVideo for MFInitAMMediaTypeFromMFMediaType.
mfplat: Implement FORMAT_MPEG2Video for MFInitAMMediaTypeFromMFMediaType.
mfplat: Implement MFInitMediaTypeFromMPEG1VideoInfo.
mfplat: Implement MFInitMediaTypeFromMPEG2VideoInfo.
mfplat: Implement MFCreateVideoMediaType.
winebus: Don't advertise hidraw devices as XInput compatible.
winebus: Report whether devices are connected over bluetooth.
winebus: Move Sony controllers report fixups to PE side.
mfreadwrite/reader: Shutdown the queue when public ref is released.
mfplat: Add MFVideoFormat_ABGR32 format information.
mf/tests: Add video processor tests with MFVideoFormat_ABGR32 format.
mfreadwrite/tests: Add tests with MFVideoFormat_ABGR32 output format.
winegstreamer: Support MFVideoFormat_ABGR32 output in the video processor.
mfreadwrite/reader: Fixup MFVideoFormat_ABGR32 subtype to enumerate the video processor.
win32u: Set DEVMODEW dmSize field.
wineandroid: Set DEVMODEW dmSize field.
winemac: Set DEVMODEW dmSize field.
Tim Clem (7):
mountmgr.sys: Do not create drive letters or volumes for unbrowsable macOS volumes.
mountmgr.sys: Do not add drive letters or volumes for macOS volumes without mount paths.
winemac.drv: Document mode_is_preferred.
winemac.drv: Prefer display modes that are marked as usable for desktop.
winemac.drv: Do not consider the "valid" and "safe" flags as making a display mode unique.
Revert "winemac.drv: Hide app's dock icon when it wouldn't have a taskbar item on Windows.".
winemac.drv: Exclude dictation when looking for input methods.
Yuxuan Shui (3):
rtworkq: Avoid use-after-free.
mfplat/tests: Validate MFCancelWorkItem releases the callback.
rtworkq: Release cancelled work items.
Ziqing Hui (1):
winegstreamer/video_decoder: Make output_plane_align specific to h264.
```