On Fri Feb 23 13:38:55 2024 +0000, Conor McCarthy wrote:
> Indeed it's a bit fragile. It could instead copy up to four components
> to the temp, if available, just in case, but I don't like the idea of
> doing that each time a scalar is loaded. It's pretty spammy in SPIR-V
> code, and the temp is often used for other purposes later, where the
> written values could still be floating around if not overwritten. That's
> unlikely to interfere with optimisation, but I'm not sure.
It's a fair concern. Although if it only matters for clip/cull—not even stores, but *loads*—maybe we don't need to worry about optimization anyway? I'd be (naïvely) surprised if those are frequent.
Longer term we should think about storing this information in a friendlier format at parse time...
I would at least advocate for not using an empty default: case like that; vsir is awfully extensible and we should have a FIXME for unhandled instructions.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/564#note_62432
Wine currently runs all processes with an elevated administrator token. As
described in bug 40613, some applications refuse to be run with such a token.
This patch set addresses the situation by creating all processes with an
unelevated adminstrator token by default. When a process attempts to elevate
itself through one of several mechanisms—which would show a UAC prompt on
Windows—we instead silently elevate the process, as if the user had granted
access through the UAC prompt.
This works for almost all applications. I have found only one application which
didn't get the memo, and actually asks the user to right click and run as
administrator, namely PaintTool SAI. Fortunately, 063a377df4f, combined with the
shell32 patch in this series, allows a Wine user to elevate that process by
opening explorer.exe, right-clicking, and selecting Run as Administrator, just
like on Windows.
This patch series has been in Wine-Staging for about three years. This was
partly to try to find and fix all the different creative ways that applications
tried to elevate themselves, but mostly because I needed to find a solution for
PaintTool SAI, and never quite got the time to implement run-as-administrator in
shell32.
--
v2: server: Create processes using a limited administrator token by default.
winetest: Elevate test processes on Wine.
ntdll: Always start the initial process through start.exe.
ntdll: Elevate processes if requested in RtlCreateUserProcess().
kernelbase: Elevate processes if requested in CreateProcessInternal().
https://gitlab.winehq.org/wine/wine/-/merge_requests/5118
~~This applies on top of !656, the last three commits belong here.~~
--
v7: vkd3d-shader/ir: Sort each loop by block label.
vkd3d-shader/ir: Dump the loops in the control flow graph.
vkd3d-shader/ir: Keep track of loops by header block.
vkd3d-shader/ir: Keep a reference to the parser inside struct vsir_cfg.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/662
On Thu Feb 22 14:13:20 2024 +0000, Giovanni Mascellani wrote:
> Can this happen? Unless I'm missing something, it seems that for domain
> shaders `normaliser_signature_transform_clip_cull()` is never called, so
> `has_normalised_clip_cull` is never set and the normaliser returns
> before reaching here.
I moved it to the next commit, where `normaliser_signature_transform_clip_cull()` is called on other signatures.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/564#note_62426
--
v17: tests/d3d12: Test multiple clip distance inputs in test_clip_distance().
tests/d3d12: Use five clip distances for the multiple test in test_clip_distance().
vkd3d-shader/ir: Transform clip/cull outputs and patch constants into arrays.
vkd3d-shader/ir: Transform clip/cull inputs into an array.
vkd3d-shader/spirv: Support no-op signature elements.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/564
~~This applies on top of !656, the last three commits belong here.~~
--
v6: vkd3d-shader/ir: Sort each loop by block label.
vkd3d-shader/ir: Dump the loops in the control flow graph.
vkd3d-shader/ir: Keep track of loops by header block.
vkd3d-shader/ir: Keep a reference to the parser inside struct vsir_cfg.
vkd3d-shader/ir: Compute the loops in the control flow graph.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/662
Create a bandtrack for MIDI files by picking out the MIDI 0xCn events, and creating matching DMUS_PATCH_PMSG.
* * *
This also has a commit adding a stub chordtrack, which is small so I think a separate MR is unwarranted. Can be split out if necessary.
--
v2: dmime: Add a stub chordtrack for MIDI segments.
dmime: Parse MIDI program change events and generate a bandtrack.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5141