Difference between revisions of "Development:Setting up FEX"
(Created page with "== Build Configuration == * Ensure release mode is enabled * Enable LTO cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DENABLE_LTO=True -G Ninja .. ninja == I...") |
|||
Line 2: | Line 2: | ||
* Ensure release mode is enabled | * Ensure release mode is enabled | ||
* Enable LTO | * Enable LTO | ||
+ | * Disable test building | ||
− | cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DENABLE_LTO=True -G Ninja .. | + | cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DENABLE_LTO=True -DBUILD_TESTS=False -G Ninja .. |
ninja | ninja | ||
Line 15: | Line 16: | ||
sudo ninja binfmt_misc_32 | sudo ninja binfmt_misc_32 | ||
+ | |||
sudo ninja binfmt_misc_64 | sudo ninja binfmt_misc_64 | ||
Line 21: | Line 23: | ||
CTRL+SHIFT+O will open default "global" configuration. | CTRL+SHIFT+O will open default "global" configuration. | ||
+ | |||
CTLR+S saves it. | CTLR+S saves it. | ||
Revision as of 03:49, 14 January 2021
Build Configuration
- Ensure release mode is enabled
- Enable LTO
- Disable test building
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DENABLE_LTO=True -DBUILD_TESTS=False -G Ninja .. ninja
Installation
sudo ninja install
On AArch64 hosts
You can install a binfmt_misc handler for both 32bit and 64bit x86 execution directly from the environment. If you already have box86's 32bit binfmt_misc handler installed then I don't recommend installing FEX's until it is useful. Make sure to have run install prior to this, otherwise binfmt_misc will install and old handler even if the executable has been updated.
sudo ninja binfmt_misc_32
sudo ninja binfmt_misc_64
Runtime Configuration
FEXConfig is the application to use for runtime configuration setup.
CTRL+SHIFT+O will open default "global" configuration.
CTLR+S saves it.
Things to ensure to set
On AArch64 host, a rootfs path is mandatory, while it is optional on x86-64 host
- Core: JIT
- RootFS
- Silent Logging (Useful to get FEX information spam out of the way)
- Block Size (500 is a good default. Optimization passes may break things though)
- Multiblock: enabled (Can cause more stuttering)
- Emulated CPU Cores: 1 (threading bugs cause issues with more)
RootFS generation
Needs to be migrated https://github.com/FEX-Emu/FEX/wiki/Creating-x86-64-Linux-RootFS