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().
```