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)|
|Version||0.198||Fixed in Version||Build||64-bit|
|Summary||07028: Further improvements for hardware acceleration on Windows|
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.
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|
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.
|Affected Sets / Systems|
mame_198_HDA.png (351,228 bytes) Jun 20, 2018, 15:00 Uploaded by wuemura
Hardware acceleration working on Windows 10
|There are no relationship linked to this issue.|
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.
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.|