Repository navigation
Conversation
D3DMetal ships only for x86_64, so the FEX build's cxcompatdb reports it as unusable and silently falls back to another backend. Log it on every launch and show a one-time alert per prefix pointing at the Rosetta build, and note the limitation in the README.
Owner
|
Thank you! I will review this and merge it in today, along with the other outstanding PR. |
Contributor
Author
|
You're welcome, thanks. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #3
Problem
Selecting D3DMetal on the FEX build of CrossOver silently runs the game on a different backend. The FEX build's
cxcompatdb.soonly treats D3DMetal as usable whenCX_ENABLE_ARM_D3DM=1, and logsd3dmetal was set as the graphics backend but it is unusableotherwise. Setting that flag wouldn't help: every D3DMetal file in the runner (D3DMetal.framework,libd3dshared.dylib, thex86_64-unix.sofiles and PE DLLs) is x86_64-only, and the FEX build's Wine is a native arm64 process. Nothing tells the user, so the game just looks wrong (see #3).Change
compat_run.sh: newwarn_d3dmetal_on_fex, run right afterrefuse_foreign_prefix. When the runner is the FEX build andCX_GRAPHICS_BACKEND=d3dmetal:notproton-run.logon every launchnotproton-d3dmetal-fex-warned) pointing at the Rosetta build, or DXMT/DXVKrunverb, matchingrefuse_foreign_prefixTesting
sh -n,make compatcheckandmake allpass (shellcheck isn't installed locally, somake runcheckskipped the lint)osascriptstubbed: it alerts once for FEX with D3DMetal, stays quiet for DXMT, Automatic, the Rosetta build and therunverb, and logs every FEX + D3DMetal launch