steam_helper: Add logging for WINE_CANONICAL_HOLE. #1

Merged
NelloKudo merged 1 commit from CreeperFace/dwproton:main into main 2025-11-27 14:10:51 +00:00
Member

Everyone should know about the guy who reverse-engineered ACE in under 18 hours.

Everyone should know about the guy who reverse-engineered ACE in under 18 hours.
(cherry picked from commit f70d1dfb1511072efe6b089580ece7e7dce257d5)
* Add reusable Build workflow to build proton
* Add Release workflow to build and release proton when a release is published
* Add Development workflow with manual dispatch only
* update workflows for .tar.xz artifacts
* add multiple build targets
* create release on tag push
* checkout repo for generating notes from tag
* upload is not a composite action
* save cache on failure
* cancel in-progress workflow on tag push
* use env variables for flags
* fetch submodules manually
hardcode target-cpu in RUSTFLAGS to nocona the updated runtime still
uses gcc-10 for cargo build, so we need to use something that gcc-10
understand here.
Some gacha games need to run through steam.exe as they check it,
even if they are not available on Steam.
* ship and use ffmpeg with proton
* enable more plugins in gst-base and gst-good
* disable unneeded features in gstreamer and gst-plugins
* remove werror from wine configure
* use separate sections for extra configure options
use O2 in CFLAGS by default (GCC 14/15)
use opt-level=3 in RUSTFLAGS by default
build: move wine CFLAGS below AUTOCONF_ARGS
https://aur.archlinux.org/packages/proton-cachyos#comment-1010120
this is needed to fix ntsync hanging in the Steam Linux Runtime
Set the vector cost model to 'cheap' (O2 uses 'very-cheap', O3 uses 'dynamic')
* https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-fvect-cost-model
Benchmarking shows that dxvkand vkd3d-proton get a marginal
perf boost with O3 over O2, but not the rest of proton necessarily.
So enforce it for these here and adjust the common flags accordingly.

History:
* stop forcing `-mno-avx` for 32bit libraries

  Instead set `-mpreferred-stack-aling=2` for dxvk/dxvk-nvapi/vkd3d-proton
  as per 4b458775bb

  Also set `-prefer-avx128` for the same libraries on 64bit
  to stop depending on `mtune=generic`

* remove -mprefer-avx128 from dxvk, dxvk-nvapi, vkd3d-proton

  The DXVK issue was fixed in
  685126482d

  As long as vkd3d-proton and dxvk-nvapi do not excibit issues, do
  not use it for them.

* use -mno-avx for dxvk and -mprefer-avx128 from dxvk-nvapi, vkd3d-proton

  Newer DXVK versions have problems again, the issue has been bisected to
  the following commits

  5a4d892172
  6412423229

* set NDEBUG for dxvk, dxvk-nvapi, vkd3d-proton
fixes: CachyOS/proton-cachyos#22
this is required to build newer gstreamer versions, which in turn
is needed to build gst-libav with latest ffmpeg. Accordingly the
following submodules are also updated

gst-orc : 0.4.41
gstreamer: 1.26.5
ffmpeg: n7.1.1
* kms requires newer libdrm, disable it since we do not care about kmssink
* wayland requires newer wayland-protocols, used in vulkansink, disable it for now
* x11 is used in vulkansink and some other plugins, disable it for now for parity
Disable `codecalpha` which was causing issues with webm videos in some games,
for example Ghostwire Tokyo.
They are enabled by default in wine-cachyos now.
closes: CachyOS/proton-cachyos#7
* build: disable bash completion when building libxkbcommon
  fixes: CachyOS/proton-cachyos#23
fixes: CachyOS/proton-cachyos#21
Add upscaler upgrade options for DLSS, XeSS, FSR4 and FSR3. In addition
upgrade DLSS presets by default and add option to enable DLSS HUD in-game.

Enable per-game shader cache by default.
nvidia-libs/nvcuda: add submodule
nvidia-libs/nvenv: add submodule
nvidia-libs/wine-nvml: add submodule
nvidia-libs/wine-nvoptix: add submodule
nvidia-libs: retarget wine-nvml to https://github.com/Saancreed/wine-nvml
build: add external nvcuda
build: add external nvenc
build: add external nvml
build: add external nvoptix
build: remove 32bit nvml
When using `Ada Lovelace` and `Blackwell` GPUs using 32bit cuda might lead
to bad performance or crashes with 32 bit games. Add `PROTON_NVIDIA_LIBS_NO_32BIT=1`
to disable the 32bit and use the 64bit libraries only.
possibly fixes: CachyOS/proton-cachyos#60
In order to invalidate the cache and the already installed dlls, also
implements md5 hash checking against the downloaded manifest.
This reverts commit 2319b80bd9d0a001764af540f89d872af700b9ff.
This reverts commit 0af51634cf.
Co-authored-by: NelloKudo <marshnelloosu@gmail.com>
Co-authored-by: NelloKudo <marshnelloosu@gmail.com>
Co-authored-by: NelloKudo <marshnelloosu@gmail.com>
Co-authored-by: NelloKudo <marshnelloosu@gmail.com>
Changed "PROTON_USE_NTSYNC" to PROTON_NO_NTSYNC to disable it.
Allows using patches from the 'spritz' folder.
See: https://github.com/NelloKudo/Wine-Builds
dwproton: bump to dwproton-10.0-5
All checks were successful
Release / Build x86_64 (push) Successful in 2h16m3s
Release / Release (push) Successful in 1m25s
0e38200d62
@ -852,2 +852,4 @@
setup_steam_files();
const char *canonical_hole = getenv("WINE_CANONICAL_HOLE");
if (canonical_hole && strcmp(canonical_hole, "skip_volatile_check") == 0)
Owner

In my opinion you should make it look this:

  1. If WINE_CANONICAL_HOLE environment variable is presented, then:
    1.1. If WINE_CANONICAL_HOLE=skip_volatile_check, then print the message you do;
    1.2. If it equals to some another value, then print a fake warning message saying whatever provided value is not supported (to know what exactly user attempted to use).
  2. If variable is not presented, then do nothing.
In my opinion you should make it look this: 1. If `WINE_CANONICAL_HOLE` environment variable is presented, then: 1.1. If `WINE_CANONICAL_HOLE=skip_volatile_check`, then print the message you do; 1.2. If it equals to some another value, then print a fake warning message saying whatever provided value is not supported (to know what exactly user attempted to use). 2. If variable is not presented, then do nothing.
krypt0nn marked this conversation as resolved
Owner

I'm fine with it now. @NelloKudo your turn to approve and merge it.

I'm fine with it now. @NelloKudo your turn to approve and merge it.
First-time contributor

LGTM :xdd:
@NelloKudo, merge

LGTM :xdd: @NelloKudo, merge
Member

Hey CreeperFace & dwproton team,
just wanted to send a big 🧡 THANK YOU for adding the logging for WINE_CANONICAL_HOLE — that’s super helpful! Your work makes Wine so much easier for people like me. You rock! 🙌

Hey CreeperFace & dwproton team, just wanted to send a big 🧡 THANK YOU for adding the logging for WINE_CANONICAL_HOLE — that’s super helpful! Your work makes Wine so much easier for people like me. You rock! 🙌
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
4 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
dawn-winery/dwproton!1
No description provided.