https://github.com/3shain/dxmt
Metal-based implementation of D3D11 and D3D10 for MacOS / Wine
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.0%) to scientific vocabulary
Keywords
Repository
Metal-based implementation of D3D11 and D3D10 for MacOS / Wine
Basic Info
Statistics
- Stars: 842
- Watchers: 39
- Forks: 37
- Open Issues: 15
- Releases: 8
Topics
Metadata Files
README.md
DXMT
A Metal-based translation layer for Direct3D 11 and 10 which allows running 3D applications on macOS using Wine.
For the current status of the project, please refer to the project wiki.
The most recent development builds can be found here.
Logs
When used with Wine, DXMT will print log messages to stderr. Additionally, standalone log files can optionally be generated by setting the DXMT_LOG_PATH variable, where log files in the given directory will be called app_d3d11.log, app_dxgi.log etc., where app is the name of the game executable.
Config file
DXMT_CONFIG_FILE=/xxx/dxmt.confSets path to the configuration file. Checkdxmt.confin the project directory for reference.DXMT_CONFIG="d3d11.preferredMaxFrameRate=30;"Can be used to set config variables through the environment instead of a configuration file using the same syntax.;is used as a seperator.
MetalFX Spatial Upscaling for Swapchain
Set environment variable DXMT_METALFX_SPATIAL_SWAPCHAIN=1 to enable MetalFX spatial upscaler on output swapchain. By default it will double the output resolution. Set d3d11.metalSpatialUpscaleFactor to a value between 1.0 and 2.0 to change the scale factor.
Metal Frame Pacing
d3d11.preferredMaxFrameRate can be set to enforce the application's frame pacing being controled by Metal. The value must be a factor of your display's refresh rate. (e.g. 15/30/40/60/120 is valid for a 120hz display).
Debugging
The following environment variables can be used for debugging purposes.
- MTL_SHADER_VALIDATION=1 Enable Metal shader validation layer
- MTL_DEBUG_LAYER=1 Enable Metal API validation layer
- MTL_CAPTURE_ENABLED=1 Enable Metal frame capture
- DXMT_CAPTURE_EXECUTABLE="the executable name without extension" Must be set to enable Metal frame capture. Press F10 to generate a capture. The captured result will be stored in the same directory as the executable.
- DXMT_CAPTURE_FRAME=n Automatically capture n-th frame. Useful for debugging a replay.
- DXMT_LOG_LEVEL=none|error|warn|info|debug Controls message logging.
- DXMT_LOG_PATH=/some/directory Changes path where log files are stored. Set to none to disable log file creation entirely, without disabling logging.
Build
Requirements:
- Meson 1.3+ (for project build system)
- CMake 3.27+ (for LLVM dependencies)
- Xcode 15+
Instructions
After cloning this repository, inside the DXMT directory, run
sh
./configure.sh
meson setup --cross-file build-win64.txt --native-file build-osx.txt -Dnative_llvm_path=toolchains/llvm-darwin -Dwine_install_path=toolchains/wine build
./configure.sh will take some time (~1 hour) to configure the development environment, you only run it once.
Then run the follow command to actually compile DXMT
sh
meson compile -C build
Native build
As an alternative for the default wine based build DXMT can be built natively on macOS for Apple Silicon to allow games to be ported more easily to this platform. In order to do this run the following commands after cloning the repository
sh
./configure.sh --native
meson setup --native-file build-osx.txt -Ddxmt_native=true -Dnative_llvm_path=toolchains/llvm-darwin build
meson compile -C build
Owner
- Name: Feifan He
- Login: 3Shain
- Kind: user
- Company: CodeWeavers
- Twitter: san3shain
- Repositories: 29
- Profile: https://github.com/3Shain
GitHub Events
Total
- Create event: 17
- Release event: 7
- Issues event: 25
- Watch event: 472
- Issue comment event: 38
- Push event: 249
- Pull request review event: 9
- Pull request review comment event: 6
- Gollum event: 9
- Pull request event: 34
- Fork event: 30
Last Year
- Create event: 17
- Release event: 7
- Issues event: 25
- Watch event: 472
- Issue comment event: 38
- Push event: 249
- Pull request review event: 9
- Pull request review comment event: 6
- Gollum event: 9
- Pull request event: 34
- Fork event: 30
Committers
Last synced: 9 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| 3Shain | s****n@o****m | 608 |
| Sven Baars | s****s@c****m | 5 |
| Paweł Kołodziejski | a****n@g****m | 2 |
| marzent | m****l@m****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 29
- Total pull requests: 41
- Average time to close issues: 2 months
- Average time to close pull requests: 10 days
- Total issue authors: 8
- Total pull request authors: 7
- Average comments per issue: 0.62
- Average comments per pull request: 0.95
- Merged pull requests: 33
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 27
- Pull requests: 34
- Average time to close issues: 2 months
- Average time to close pull requests: 8 days
- Issue authors: 8
- Pull request authors: 6
- Average comments per issue: 0.56
- Average comments per pull request: 1.15
- Merged pull requests: 26
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- 3Shain (22)
- oscarbg (2)
- fspkwon (1)
- siddighak (1)
- nogoo (1)
- majstermsi (1)
- karpovpw (1)
- juzai-juzai (1)
Pull Request Authors
- 3Shain (37)
- Sbte (5)
- aquadran (4)
- AlexanderEichner (3)
- marzent (2)
- mrpippy (2)
- Just-Feeshy (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/cache v3 composite
- actions/checkout v3 composite
- actions/upload-artifact v3 composite