hrydgard / ppsspp

A PSP emulator for Android, Windows, Mac and Linux, written in C++. Want to contribute? Join us on Discord at https://discord.gg/5NJB6dD or just send pull requests / issues. For discussion use the forums at forums.ppsspp.org.
https://www.ppsspp.org
Other
11.38k stars 2.19k forks source link

Can't use DirectX11 in WIN7 X64 #10651

Closed leoxxx closed 6 years ago

leoxxx commented 6 years ago

Select DirectX11. PPSSPP crash after restarting.And I don't start it. So I edit ppsspp.ini.

GraphicsBackend = 2

I edit it to 0 (It's not 2 that PPSSPP is fine.).

CPU:I5 3470 GPU:HIS 7850 1G DRIVER:Adrenalin 18.2.1 OS:WIN7 X64

LunaMoo commented 6 years ago

On Windows 7 for d3d11 to work, you need to place d3dcompiler_47.dll into ppsspp folder(where the exe is), you can find it https://github.com/hrydgard/minidx9/tree/7751cf73f5c06f1be21f5f31c3e2d9a7bacd3a93/8.1/Redist/D3D or installed with windows SDK, there are no redistributable installers for files like that, since they are included in windows 10(as well as 8.1) and MS doesn't care about supporting outdated operating systems. Those files should also be shipped with ppsspp installation, but they will not be included in automated builds which you might be using.

unknownbrackets commented 6 years ago

Did that help? If not, do older versions of PPSSPP work?

-[Unknown]

leoxxx commented 6 years ago

@unknownbrackets I have given up. My network is too bad lately.I can't download these dll files. But thank you all the same. BTW.Can these dll files be packaged in exe in last version?

hrydgard commented 6 years ago

If you download PPSSPP from the official site, it should be included in the zip or installer. It's just not included in the buildbot builds, as LunaMoo mentioned.

leoxxx commented 6 years ago

@hrydgard @unknownbrackets http://www.ppsspp.org/files/1_5_4/ppsspp_win.zip It crash also with these dll files.

TehPlayer14 commented 6 years ago

Try to run PPSSPP in safe mode or in clean boot

unknownbrackets commented 6 years ago

Does this still happen even with updated drivers?

-[Unknown]

leoxxx commented 6 years ago

@unknownbrackets Yes. 1.6.2 doesn't work with this mode in WIN7 X64. I think it must work in WIN8 or later. I give up. THX. Please close.

unknownbrackets commented 6 years ago

Sorry that you've given up. I'm using Windows 7, 64-bit, but I have an NVIDIA card. Direct3D 11 works fine here - I've never actually tried the Direct3D 11 backend of PPSSPP on Windows 8 or newer.

I can only imagine it's a driver issue, then.

-[Unknown]

leoxxx commented 5 years ago

@unknownbrackets I have solved it. It's need install KB2670838. No need these dlls.

hrydgard commented 5 years ago

Huh, strange. Should probably investigate at some point, but not sure if it's possible to replicate the setup (install Win7 without updates...)

Bigpet commented 5 years ago

Quick google shows that different people came across this optional update not being all that optional for some things.

The feature list includes some Direct3D changes https://support.microsoft.com/en-us/help/2670838/platform-update-for-windows-7-sp1-and-windows-server-2008-r2-sp1

the Details page might give a hint.

For developers currently working on applications in Microsoft Visual Studio 2010 or earlier using the D3D11_CREATE_DEVICE_DEBUG flag, be aware that calls to D3D11CreateDevice will fail. This is because the D3D11.1 runtime now requires D3D11_1SDKLayers.dll instead of D3D11SDKLayers.dll. To get this new DLL (D3D11_1SDKLayers.dll), install the Windows 8 SDK, or Visual Studio 2012, or the Visual Studio 2012 remote debugging tools. See the Debug Layer documentation for more info.

So it seems like D3D11_1 compiled things are apparently not compatible with D3D11_0 or vice versa at the very least. Seems an extremely odd point to break thing.

The wording suggests this should only be the case for Debug builds though.

leoxxx commented 2 years ago

https://walbourn.github.io/directx-11-1-and-windows-7/ It's a DirectX 11.1 issue.