From babfa446144c504fc3f510af543bf364cf57d985 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Wed, 22 Mar 2017 13:43:54 +0100 Subject: [PATCH] Windows: d3dcompiler_47.dll is redistributable, so add it to our installation package scripts. --- Windows/zipup.cmd | 6 +++++- dx9sdk | 2 +- ext/native/thin3d/d3d11_loader.cpp | 5 +++++ ext/native/thin3d/d3dx9_loader.cpp | 2 ++ ppsspp.iss | 2 ++ 5 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Windows/zipup.cmd b/Windows/zipup.cmd index a542930c70..df2ad5ebd6 100644 --- a/Windows/zipup.cmd +++ b/Windows/zipup.cmd @@ -12,7 +12,11 @@ echo Deleting old file %name% del %name% echo Adding files to %name% -zip --recurse-paths %name% assets flash0 PPSSPPWindows.exe PPSSPPWindows64.exe README.md +REM Not distributing the 10 version because it's not compatible with older Windows. +cp dx9sdk\8.1\Redist\D3D\x64\d3dcompiler_47.dll . +cp dx9sdk\8.1\Redist\D3D\x86\d3dcompiler_47.dll .\d3dcompiler_47.x86.dll +zip --recurse-paths %name% assets flash0 PPSSPPWindows.exe PPSSPPWindows64.exe d3dcompiler_47.dll d3dcompiler_47.x86.dll README.md +del d3dcompiler_47.dll d3dcompiler_v47.x86.dll echo Done: %name% goto DONE diff --git a/dx9sdk b/dx9sdk index 7324553f8f..7751cf73f5 160000 --- a/dx9sdk +++ b/dx9sdk @@ -1 +1 @@ -Subproject commit 7324553f8f4952a576c7f2d42df0accb0335d23c +Subproject commit 7751cf73f5c06f1be21f5f31c3e2d9a7bacd3a93 diff --git a/ext/native/thin3d/d3d11_loader.cpp b/ext/native/thin3d/d3d11_loader.cpp index 32ded1792f..aa292276c4 100644 --- a/ext/native/thin3d/d3d11_loader.cpp +++ b/ext/native/thin3d/d3d11_loader.cpp @@ -36,6 +36,11 @@ LoadD3D11Error LoadD3D11() { } g_D3DCompileModule = LoadLibrary(D3DCOMPILER_DLL); +#if PPSSPP_PLATFORM(32BIT) + // Workaround for distributing both 32-bit and 64-bit versions of the DLL. + if (!g_D3DCompileModule) + g_D3DCompileModule = LoadLibrary("D3dcompiler_47.x86.dll"); +#endif if (!g_D3DCompileModule) g_D3DCompileModule = LoadLibrary(L"D3dcompiler_42.dll"); diff --git a/ext/native/thin3d/d3dx9_loader.cpp b/ext/native/thin3d/d3dx9_loader.cpp index 51dab2ec53..6a1893a37f 100644 --- a/ext/native/thin3d/d3dx9_loader.cpp +++ b/ext/native/thin3d/d3dx9_loader.cpp @@ -8,6 +8,8 @@ #include "base/logging.h" #include "thin3d/d3dx9_loader.h" +// TODO: See if we can use the bundled D3Dcompiler_47.dll to compiler for DX9 as well. + typedef BOOL(__stdcall *TFunc_D3DXCheckVersion)(UINT D3DSDKVersion, UINT D3DXSDKVersion); typedef HRESULT(__stdcall *TFunc_D3DXCompileShader)( LPCSTR pSrcData, diff --git a/ppsspp.iss b/ppsspp.iss index b5b77a4907..ebd7c3c5fd 100644 --- a/ppsspp.iss +++ b/ppsspp.iss @@ -24,6 +24,8 @@ Source: "assets\*.*"; DestDir: "{app}\assets" Source: "assets\shaders\*.*"; DestDir: "{app}\assets\shaders" Source: "assets\lang\*.ini"; DestDir: "{app}\assets\lang" Source: "flash0\font\*.*"; DestDir: "{app}\flash0\font" +Source: "dx9sdk\8.1\Redist\D3D\x64\d3dcompiler_47.dll"; DestDir: "{app}" +Source: "dx9sdk\8.1\Redist\D3D\x86\d3dcompiler_47.dll"; DestName: "d3dcompiler_47.x86.dll"; DestDir: "{app}" [Run] Filename: {app}\PPSSPPWindows.exe; Description: {cm:LaunchProgram,{cm:AppName}}; Flags: nowait postinstall skipifsilent