--
v2: vkd3d-shader/hlsl: Get rid of the "intrinsic" field of struct hlsl_ir_function.
vkd3d-shader/hlsl: Forbid returning void expressions from void functions.
vkd3d-shader/hlsl: Generate IR for user-defined function calls.
vkd3d-shader/hlsl: Avoid assuming that expressions have at least one argument.
tests: Test specifying a UAV address as an in/out parameter to a function.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/47
First part of v2 of !38, trying to follow the wide feedback provided.
Following patches in: https://gitlab.winehq.org/fcasas/vkd3d/-/tree/documentation
--
v3: vkd3d-shader/hlsl: Add field-level documentation to struct hlsl_src.
vkd3d-shader/hlsl: Add field-level documentation to struct hlsl_ir_node.
vkd3d-shader/hlsl: Add field-level documentation to struct hlsl_ctx.
vkd3d-shader/hlsl: Add field-level documentation to struct hlsl_ir_var.
vkd3d-shader/hlsl: Add field-level documentation to struct hlsl_struct_field.
vkd3d-shader/hlsl: Add field-level documentation to struct hlsl_type.
vkd3d-shader/hlsl: Rename hlsl_struct_field.modifiers to "storage_modifiers".
vkd3d-shader/hlsl: Rename hlsl_ir_var.modifiers to "storage_modifiers".
vkd3d-shader/hlsl: Rename HLSL_STORAGE_VOLATILE to HLSL_MODIFIER_VOLATILE.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/50
Call MoveFileWithProgress from MoveFileTransacted such that the stub functions.
This enables saving for Affinity Photo.
--
v3: kernel32: Unstub MoveFileTransactedW, Use MoveFileWithProgressW
https://gitlab.winehq.org/wine/wine/-/merge_requests/1444
The streaming threads and GST_Seeking_SetPositions() contend for the same flushing locks.
GST_Seeking_SetPositions() needs to acquire all the flushing locks before doing the actual
stream seeking, having the streaming threads fighting for the same locks will make
GST_Seeking_SetPositions() wait for a unusually long time.
This reduces PowerPoint 2016 video seeking time from ~5s to almost an instant and fixes a regression
for Fallout 3.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53403
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1239
Depending on the theme, if there was a header,
the border ends up painted lower than it should be,
and clipped by the header.
7-Zip file manager, the reason why the offset was added in 5f0dcf79185941c4faff35d1cc9c758160f3a27d in the first place, still renders correctly.
Before:
![before](/uploads/8321f45c657469278b2787edfa147b20/before.png)
After:
![after](/uploads/013241f4cd3b893c7f4073b6a9fe8119/after.png)
EDIT1:
Actually compared screenshots of 7-Zip file manager and looks like the headers are now painted consistently after highlighting them.
![7zFM-before-hilite](/uploads/64fe3fb80002c847c2e9270337bab4e8/7zFM-before-hilite.png)
![7zFM-after-hilite](/uploads/4db4778c2ad6d27eddbd4a1202b41881/7zFM-after-hilite.png)
--
v3: comctl32/listview: Exclude header area in WM_NCPAINT.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1878
This patch series includes an implementation of the long-pending `transpose` intrinsic and the `smoothstep` intrinsic.
While implementing `smoothstep` I realized that some intrinsics have different rules for the allowed data types than expressions:
- Vectors and matrices at the same time are not allowed, regardless of their dimensions. Even if they have the same number of components.
- Any combination of matrices is always allowed, even those when no matrix fits inside another, e.g.:
`float2x3` is compatible with `float3x2`, resulting in `float2x2`.
The common data type is the min on each dimension.
This is the case for `max`, `pow`, `ldexp`, `clamp` and `smoothstep`; which suggest that it is the case for all intrinsics where the operation is applied element-wise. So this was corrected.
A minor fix in `pow`'s type conversion is also included.
--
v3: vkd3d-shader/hlsl: Use add_unary_arithmetic_expr() in intrinsic_pow().
vkd3d-shader/hlsl: Allow elementwise_intrinsic_convert_args() to also convert args to float.
vkd3d-shader/hlsl: Convert elementwise intrinsics args to the proper common type.
tests: Test for common type conversion for element-wise intrinsics.
vkd3d-shader/hlsl: Support smoothstep() intrinsic.
vkd3d-shader/hlsl: Support transpose() intrinsic.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/53
I was unable to write tests for this; it seems it doesn't consistently work on
Windows. However, Rayman 3 seems to rely on it; it maps the same buffer twice
immediately after creation, with DISCARD flags on both maps, and expects the
same address to be returned.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53752
--
v2: d3d8: Filter out redundant buffer discards.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1884
> (The TlsIndex field in the LDR_DATA_TABLE_ENTRY structure appears to be unused except as a flag that the module has TLS (being always set to -1), at least as far back as Windows XP. It is worth mentioning that the WINE implementation of implicit TLS incorrectly uses TlsIndex as the real module TLS index, so it may be unreliable to assume that it is always -1 if you care about working on WINE.)
>
> \- http://www.nynaeve.net/?p=186
and the "links to that article but still doesn't work in wine" award goes to... [the D runtime](https://github.com/dlang/dmd/blob/6bf60ea0eb174631ede0074a77d3898d…! (Admittedly, there aren't too many ways to do what they're trying to do.)
With this, the D runtime will now work in Wine, even if in a dll loaded into an exe with no tls (which gets it the tls index 0)
The changes to the debugger are a bit icky, a possible alternative is to find some other easily-debugger-accessible place to stuff the tls index.
--
v7: TMP: Use module info for tls in winedbg
winedbg: Track loaded modules
https://gitlab.winehq.org/wine/wine/-/merge_requests/1578