Repository navigation
Conversation
Closed
Owner
|
Haven't had a chance to look at this yet. Will take a brief look tomorrow. If it doesn't need much work, it's in for the upcoming release. if it needs work, I'll have to bump it to a small update coming briefly after that release - sorry, just trying to get the big update out the door. |
- Hide D3DMetal, its DLSS row, and Advertise AVX2 to Rosetta when the current runner is the FEX build - Keep D3DMetal selected with a note for games already set to it, since FEX runs them on another backend - Tell the panel about the runner through a replacement byte the hook fills in, using the arm64 loader check compat_run.sh makes - Cover both runners in both page shapes with fex.js, and refuse anchors that hold the runner byte in gatecheck
- runners/current is the 1.0 record and is pruned once every run script reads its own build, so the panel would offer FEX games the Rosetta options again - Fill the runner byte with the names of the tools that run through FEX, by the flavor and arm64 loader check compat_run.sh makes, and match it against the game's tool - List "" too when the first tool is FEX, since that is what an unmapped game runs under - Cover a FEX and a Rosetta tool side by side and unmapped games in fex.js, and the tool list in compatcheck
LaganYT
force-pushed
the
feat/hide-fex-incompatible-options
branch
from
October 3, 2026 23:42
569942e to
2d09997
Compare
LaganYT
marked this pull request as ready for review
October 3, 2026 23:43
Contributor
Author
|
Rebased onto |
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.
Refs #3
Summary
A FEX tool runs arm64 Wine.
D3DMetal.frameworkandlibd3dshared.dylibare x86_64 only,D3DM_ENABLE_METALFXis read only by D3DMetal, andROSETTA_ADVERTISE_AVXis read only by Rosetta (bin/wine: "Advertise AVX under Rosetta"). DXMT, DXVK, MetalFX upscaling, MSync and High Resolution all ship aarch64 pieces and stay.Since 1.1.0 runs each CrossOver build as its own compatibility tool, the choice is made per game. The hook fills a replacement byte in the panel with the names of the tools that run through FEX (
np_compat_fex_tools_js), using the same checkcompat_run.shmakes: afexflavor, and an arm64 loader and wineserver in that tool's build. The panel compares that list against the game'sstrCompatToolName. A game with no tool name runs under the first tool, so the list also holds""when that tool is FEX. A FEX tool and the Rosetta tool of the same Preview build can sit side by side, and each game gets the options of its own tool. Hidden settings keep their values, so they apply again after switching a game to a Rosetta tool.Evidence
CX_GRAPHICS_BACKEND=d3dmetal, the dropdown still shows D3DMetal, with the note and without the DLSS row.CX_GRAPHICS_BACKEND=dxmtand droppedD3DM_ENABLE_METALFX.fex.jschecks a FEX tool and a Rosetta tool side by side, and unmapped games with either tool first, in both Steam page layouts.compatcheckchecks which listed tools count as FEX against fake builds on disk.gatecheckrefuses anchors that contain the runner byte.make all compatcheck panel-behavior webpatch-fixturespasses on top ofdev, as do the other dylib checks.strCompatToolNameempty for a game on the automatic CrossOver default. If Steam fills in the tool name instead, the list still matches by name.Merge Danger
Door: Two-way
Blast Radius: The injected CrossOver panel on both Steam UI layouts, plus a read-only check of the tool list and runner files when the hook serves the patched chunk. It doesn't touch launches, prefixes or saved launch options.