Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
07028 Interface Minor Always Jun 20, 2018, 15:00 Jun 20, 2018, 21:53
Tester wuemura View Status Public Platform MAME (Official Binary)
Assigned To Resolution No change required OS Windows 10 (64-bit)
Status [?] Closed Driver
Version 0.198 Fixed in Version Build 64-bit
Fixed in Git Commit Github Pull Request #
Summary 07028: Further improvements for hardware acceleration on Windows
Description MAME uses 'd3d' as default even if is not supported by Windows Vista, 7, 8 and 10 anymore.
mame -verbose pong
Video: Monitor 65537 = "\.\DISPLAY1" (primary)
Direct3D: Using Direct3D 9

According to Microsoft, the last DirectX 9 End User Runtime is not supported to be used with Windows 10.
https://www.microsoft.com/en-us/download/details.aspx?id=34429
Supported Operating System
Windows 2000, Windows 2000 Advanced Server, Windows 2000 Professional Edition , Windows 2000 Server, Windows 2000 Service Pack 2, Windows 2000 Service Pack 3, Windows 2000 Service Pack 4, Windows 98, Windows 98 Second Edition, Windows ME, Windows Server 2003, Windows XP, Windows XP Home Edition , Windows XP Media Center Edition, Windows XP Professional Edition, Windows XP Service Pack 1

DirectX 9 API operates with XPDM display driver model. Microsoft changed the display driver model to WDDM in Windows Vista and new Windows versions, from that point on the Direct3D API is incompatible, even if you force and install the DirectX 9 runtime on Windows 10 is pointless because the display driver model is different and hardware acceleration still would not work.

The default 'd3d' is not the correct option for more recent Windows versions.
Steps To Reproduce
Additional Information To make MAME use the correct Direct3D option and have a working hardware acceleration on Windows 7, 8 and 10, I suggest this as defaults instead.
-video bgfx -bgfx_backend d3d11 -bgfx_screen_chains none

Using 'pong' as a target test, the screen shot show the GPU activity and hardware acceleration working, on the screen you can see a perfect and fluid motion with lower CPU load.

Thank you.
Github Commit
Flags
Regression Version
Affected Sets / Systems
Attached Files
png file icon mame_198_HDA.png (351,228 bytes) Jun 20, 2018, 15:00 Uploaded by wuemura
Hardware acceleration working on Windows 10
wuemura
Relationships
There are no relationship linked to this issue.
Notes
2
User avatar
No.15190
Tafoid
Administrator
Jun 20, 2018, 16:14
edited on: Jun 20, 2018, 16:32
The Web Installer version of Direct X 9.0c you linked, if I remember, will likely complain and will not allow install on a Windows 10 machine. There exists a offline installer runtime which will work and has worked fine for people who has used it, even on Windows 10: https://www.microsoft.com/en-us/download/details.aspx?id=8109

Bottom line is that mame's -video d3d uses the DirectX9.0c backend. This is not changing in the immediate future but is considered legacy and could disappear sooner than you expect. If your Drivers/Card/OS is not set up to use this acceleration (you've read DX above 10 isn't fully backwards compatible, right?) you won't get acceleration even if basic functions may work. As you discovered, if your Drivers/Card/OS can only handle another DirectX version that is more current (such as 11), you can use -video bgfx (with appropriate back-end for your most compatible type) to get the type of performance you'd expect. -video opengl is also a widespread option which will work with most any configuration and in baseline and SDL driven flavors. All these options were added to allow flexibility and none of them, specifically, are chosen because of speed concerns. When you start MAME with -video d3d, it does basic checks to see if this mode can be used at all. If not, you are sent to -video gdi aka in SDL as -video soft. Same with any other selection, it will attempt to use it and not test other video modes for speed or compatibility and drop to software rendering if your selected video does not work.

Posting all this does nothing, really. You already know the questions, the answer and the solution for your particular setup. I just hope you understand that MAME is trying to cater to the wisest audience as possible in its possible settings.

Sadly, you were warned multiple times about re-posting similar bugs when your bug report was closed here. Recent examples:
07011 - 07013
07012 - 07014
07024 - 07028

As directed, at least for the time being, you are being assigned as VIEWER status which means no new bugs or comments can be rendered from you on site. You can still retain your account and your custom search results. This may be lifted after a time, but as of this time you are irritating a number of Developers who spend real time and effort to try to answer you when it ends up being nothing within the scope of MAME which can correct it and proceeds with you resubmitting basically the same bug reports to "be heard". As suggested before, try some alternative posting methods. If something is discovered as a valid bug, someone will no doubt see that and see that it gets logged here.

Closing
User avatar
No.15191
Haze
Senior Tester
Jun 20, 2018, 21:53
Furthermore DirectX 9 mode still has lower latency than the BGFX modes, so is still the best default on Windows.