https://github.com/3shain/dxmt

Metal-based implementation of D3D11 and D3D10 for MacOS / Wine

https://github.com/3shain/dxmt

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

crossover d3d11 gaming macos metal wine
Last synced: 5 months ago · JSON representation

Repository

Metal-based implementation of D3D11 and D3D10 for MacOS / Wine

Basic Info
  • Host: GitHub
  • Owner: 3Shain
  • License: mit
  • Language: C++
  • Default Branch: main
  • Homepage:
  • Size: 9.13 MB
Statistics
  • Stars: 842
  • Watchers: 39
  • Forks: 37
  • Open Issues: 15
  • Releases: 8
Topics
crossover d3d11 gaming macos metal wine
Created over 2 years ago · Last pushed 6 months ago
Metadata Files
Readme License

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.conf Sets path to the configuration file. Check dxmt.conf in 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

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

All Time
  • Total Commits: 616
  • Total Committers: 4
  • Avg Commits per committer: 154.0
  • Development Distribution Score (DDS): 0.013
Past Year
  • Commits: 592
  • Committers: 4
  • Avg Commits per committer: 148.0
  • Development Distribution Score (DDS): 0.014
Top Committers
Name Email 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
feature-implementation (12) bug (6) enhancement (3) help wanted (1) invalid (1)
Pull Request Labels

Dependencies

.github/workflows/ci.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/upload-artifact v3 composite