diff --git a/3rdparty/SDL-1.3.0-5387/VisualC/SDL/SDL_VS2008.vcproj b/3rdparty/SDL-1.3.0-5387/VisualC/SDL/SDL_VS2008.vcproj index 72a651b7c5..037d3483c6 100644 --- a/3rdparty/SDL-1.3.0-5387/VisualC/SDL/SDL_VS2008.vcproj +++ b/3rdparty/SDL-1.3.0-5387/VisualC/SDL/SDL_VS2008.vcproj @@ -57,7 +57,6 @@ BufferSecurityCheck="false" WarningLevel="3" SuppressStartupBanner="true" - Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" /> @@ -76,7 +75,6 @@ Name="VCLinkerTool" AdditionalDependencies="msimg32.lib winmm.lib imm32.lib version.lib" SuppressStartupBanner="true" - IgnoreAllDefaultLibraries="true" GenerateDebugInformation="true" SubSystem="2" /> @@ -104,7 +102,7 @@ @@ -158,9 +156,7 @@ DynamicLibrary - false DynamicLibrary - false DynamicLibrary - false DynamicLibrary - false @@ -96,8 +92,7 @@ 0x0409 - msvcrt.lib;msimg32.lib;winmm.lib;version.lib;imm32.lib;%(AdditionalDependencies) - true + msimg32.lib;winmm.lib;version.lib;imm32.lib;%(AdditionalDependencies) true Windows false @@ -127,11 +122,9 @@ 0x0409 - msvcrt.lib;msimg32.lib;winmm.lib;version.lib;imm32.lib;%(AdditionalDependencies) - true + msimg32.lib;winmm.lib;version.lib;imm32.lib;%(AdditionalDependencies) true Windows - MachineX64 false @@ -164,9 +157,10 @@ 0x0409 - msvcrt.lib;msimg32.lib;winmm.lib;version.lib;imm32.lib;%(AdditionalDependencies) - true + msimg32.lib;winmm.lib;version.lib;imm32.lib;%(AdditionalDependencies) Windows + true + true @@ -195,9 +189,8 @@ 0x0409 - msvcrt.lib;msimg32.lib;winmm.lib;version.lib;imm32.lib;%(AdditionalDependencies) - true Windows + msimg32.lib;winmm.lib;version.lib;imm32.lib;%(AdditionalDependencies) diff --git a/pcsx2_suite_2008.sln b/pcsx2_suite_2008.sln index 1069997be6..8002a13f1a 100644 --- a/pcsx2_suite_2008.sln +++ b/pcsx2_suite_2008.sln @@ -253,22 +253,27 @@ Global {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Debug|Win32.ActiveCfg = Debug SSE2|Win32 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Debug|Win32.Build.0 = Debug SSE2|Win32 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Debug|x64.ActiveCfg = Debug SSE2|x64 + {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Debug|x64.Build.0 = Debug SSE2|x64 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Devel|Win32.ActiveCfg = Release SSE2|Win32 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Devel|Win32.Build.0 = Release SSE2|Win32 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Devel|x64.ActiveCfg = Release SSE2|x64 + {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Devel|x64.Build.0 = Release SSE2|x64 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSE2|Win32.ActiveCfg = Release SSE2|Win32 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSE2|Win32.Build.0 = Release SSE2|Win32 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSE2|x64.ActiveCfg = Release SSE2|x64 + {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSE2|x64.Build.0 = Release SSE2|x64 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSE4|Win32.ActiveCfg = Release SSE4|Win32 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSE4|Win32.Build.0 = Release SSE4|Win32 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSE4|x64.ActiveCfg = Release SSE4|x64 + {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSE4|x64.Build.0 = Release SSE4|x64 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSSE3|Win32.ActiveCfg = Release SSSE3|Win32 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSSE3|Win32.Build.0 = Release SSSE3|Win32 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSSE3|x64.ActiveCfg = Release SSSE3|x64 - {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release|Win32.ActiveCfg = Release|Win32 - {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release|Win32.Build.0 = Release|Win32 - {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release|x64.ActiveCfg = Release|x64 - {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release|x64.Build.0 = Release|x64 + {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSSE3|x64.Build.0 = Release SSSE3|x64 + {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release|Win32.ActiveCfg = Release SSE2|Win32 + {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release|Win32.Build.0 = Release SSE2|Win32 + {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release|x64.ActiveCfg = Release SSE2|x64 + {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release|x64.Build.0 = Release SSE2|x64 {E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Debug|Win32.ActiveCfg = Debug|Win32 {E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Debug|Win32.Build.0 = Debug|Win32 {E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Debug|x64.ActiveCfg = Debug|Win32 diff --git a/pcsx2_suite_2010.sln b/pcsx2_suite_2010.sln index bc3fcdbb2e..5dccebb743 100644 --- a/pcsx2_suite_2010.sln +++ b/pcsx2_suite_2010.sln @@ -45,6 +45,9 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SPU2-X", "plugins\spu2-x\src\Windows\Spu2-X.vcxproj", "{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GSdx", "plugins\GSdx\GSdx.vcxproj", "{18E42F6F-3A62-41EE-B42F-79366C4F1E95}" + ProjectSection(ProjectDependencies) = postProject + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} = {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SoundTouch", "3rdparty\SoundTouch\SoundTouch.vcxproj", "{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}" EndProject @@ -285,26 +288,32 @@ Global {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Debug SSSE3|x64.Build.0 = Debug SSSE3|x64 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Debug|Win32.ActiveCfg = Debug SSE2|Win32 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Debug|Win32.Build.0 = Debug SSE2|Win32 - {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Debug|x64.ActiveCfg = Debug|x64 - {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Devel|Win32.ActiveCfg = Devel|Win32 - {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Devel|Win32.Build.0 = Devel|Win32 - {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Devel|x64.ActiveCfg = Devel|Win32 + {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Debug|x64.ActiveCfg = Debug SSE2|x64 + {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Debug|x64.Build.0 = Debug SSE2|x64 + {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Devel|Win32.ActiveCfg = Release SSE2|Win32 + {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Devel|Win32.Build.0 = Release SSE2|Win32 + {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Devel|x64.ActiveCfg = Release SSE2|x64 + {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Devel|x64.Build.0 = Release SSE2|x64 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release AVX|Win32.ActiveCfg = Release AVX|Win32 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release AVX|Win32.Build.0 = Release AVX|Win32 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release AVX|x64.ActiveCfg = Release AVX|x64 + {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release AVX|x64.Build.0 = Release AVX|x64 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSE2|Win32.ActiveCfg = Release SSE2|Win32 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSE2|Win32.Build.0 = Release SSE2|Win32 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSE2|x64.ActiveCfg = Release SSE2|x64 + {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSE2|x64.Build.0 = Release SSE2|x64 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSE4|Win32.ActiveCfg = Release SSE4|Win32 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSE4|Win32.Build.0 = Release SSE4|Win32 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSE4|x64.ActiveCfg = Release SSE4|x64 + {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSE4|x64.Build.0 = Release SSE4|x64 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSSE3|Win32.ActiveCfg = Release SSSE3|Win32 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSSE3|Win32.Build.0 = Release SSSE3|Win32 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSSE3|x64.ActiveCfg = Release SSSE3|x64 - {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release|Win32.ActiveCfg = Release|Win32 - {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release|Win32.Build.0 = Release|Win32 - {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release|x64.ActiveCfg = Release|x64 - {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release|x64.Build.0 = Release|x64 + {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSSE3|x64.Build.0 = Release SSSE3|x64 + {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release|Win32.ActiveCfg = Release SSE2|Win32 + {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release|Win32.Build.0 = Release SSE2|Win32 + {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release|x64.ActiveCfg = Release SSE2|x64 + {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release|x64.Build.0 = Release SSE2|x64 {E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Debug AVX|Win32.ActiveCfg = Debug|Win32 {E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Debug AVX|Win32.Build.0 = Debug|Win32 {E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Debug AVX|x64.ActiveCfg = Debug|Win32 @@ -1204,8 +1213,8 @@ Global {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|x64.Build.0 = Debug|x64 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Devel|Win32.ActiveCfg = Debug|Win32 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Devel|Win32.Build.0 = Debug|Win32 - {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Devel|x64.ActiveCfg = Debug|x64 - {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Devel|x64.Build.0 = Debug|x64 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Devel|x64.ActiveCfg = Release|x64 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Devel|x64.Build.0 = Release|x64 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release AVX|Win32.ActiveCfg = Release|Win32 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release AVX|Win32.Build.0 = Release|Win32 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release AVX|x64.ActiveCfg = Release|x64 diff --git a/plugins/GSdx/GSDeviceSDL.cpp b/plugins/GSdx/GSDeviceSDL.cpp index 15bfcdda6c..84fec16d65 100644 --- a/plugins/GSdx/GSDeviceSDL.cpp +++ b/plugins/GSdx/GSDeviceSDL.cpp @@ -112,7 +112,28 @@ bool GSDeviceSDL::Reset(int w, int h) m_renderer = SDL_CreateRenderer(m_window, -1, SDL_RENDERER_ACCELERATED); // SDL_RENDERER_PRESENTVSYNC - return m_renderer != NULL; + if(m_renderer == NULL) + { + return false; + } + + m_format = SDL_PIXELFORMAT_ARGB8888; + + SDL_RendererInfo info; + + memset(&info, 0, sizeof(info)); + + SDL_GetRendererInfo(m_renderer, &info); + + for(uint32 i = 0; i < info.num_texture_formats; i++) + { + if(info.texture_formats[i] == SDL_PIXELFORMAT_ABGR8888) + { + m_format = SDL_PIXELFORMAT_ABGR8888; + } + } + + return true; } void GSDeviceSDL::Present(GSTexture* st, GSTexture* dt, const GSVector4& dr, int shader) @@ -142,7 +163,7 @@ void GSDeviceSDL::Present(GSTexture* st, GSTexture* dt, const GSVector4& dr, int if(m_texture == NULL) { - m_texture = SDL_CreateTexture(m_renderer, SDL_PIXELFORMAT_ABGR8888, SDL_TEXTUREACCESS_STREAMING, size.x, size.y); + m_texture = SDL_CreateTexture(m_renderer, m_format, SDL_TEXTUREACCESS_STREAMING, size.x, size.y); } if(m_texture == NULL) @@ -158,9 +179,33 @@ void GSDeviceSDL::Present(GSTexture* st, GSTexture* dt, const GSVector4& dr, int { GSVector2i s = st->GetSize(); - for(int j = s.y; j > 0; j--, sm.bits += sm.pitch, dm.bits += dm.pitch) + if(m_format == SDL_PIXELFORMAT_ARGB8888) { - memcpy(dm.bits, sm.bits, s.x * 4); + for(int j = s.y; j > 0; j--, sm.bits += sm.pitch, dm.bits += dm.pitch) + { + GSVector4i* RESTRICT src = (GSVector4i*)sm.bits; + GSVector4i* RESTRICT dst = (GSVector4i*)dm.bits; + + for(int i = s.x >> 2; i > 0; i--, dst++, src++) + { + *dst = ((*src & 0x00ff0000) >> 16) | ((*src & 0x000000ff) << 16) | (*src & 0x0000ff00); + } + + uint32* RESTRICT src2 = (uint32*)src; + uint32* RESTRICT dst2 = (uint32*)dst; + + for(int i = s.x & 3; i > 0; i--) + { + *dst2 = ((*src2 & 0x00ff0000) >> 16) | ((*src2 & 0x000000ff) << 16) | (*src2 & 0x0000ff00); + } + } + } + else + { + for(int j = s.y; j > 0; j--, sm.bits += sm.pitch, dm.bits += dm.pitch) + { + memcpy(dm.bits, sm.bits, s.x * 4); + } } st->Unmap(); diff --git a/plugins/GSdx/GSDeviceSDL.h b/plugins/GSdx/GSDeviceSDL.h index 634482c351..336319e40d 100644 --- a/plugins/GSdx/GSDeviceSDL.h +++ b/plugins/GSdx/GSDeviceSDL.h @@ -31,6 +31,7 @@ class GSDeviceSDL : public GSDeviceSW SDL_Window* m_window; SDL_Renderer* m_renderer; SDL_Texture* m_texture; + int m_format; class GSDummyTexture : public GSTexture { diff --git a/plugins/GSdx/GSFunctionMap.h b/plugins/GSdx/GSFunctionMap.h index a3528cf7d3..1b01ffd148 100644 --- a/plugins/GSdx/GSFunctionMap.h +++ b/plugins/GSdx/GSFunctionMap.h @@ -217,7 +217,7 @@ public: // vtune method registration - if(iJIT_IsProfilingActive()) + // if(iJIT_IsProfilingActive()) // always > 0 { string name = format("%s<%016llx>()", m_name.c_str(), (uint64)key); diff --git a/plugins/GSdx/GSState.cpp b/plugins/GSdx/GSState.cpp index e65d931e31..f4b5693d3a 100644 --- a/plugins/GSdx/GSState.cpp +++ b/plugins/GSdx/GSState.cpp @@ -508,6 +508,8 @@ __forceinline void GSState::ApplyPRIM(const GIFRegPRIM& prim) void GSState::GIFRegHandlerPRIM(const GIFReg* r) { + ALIGN_STACK(32); + ApplyPRIM(r->PRIM); } diff --git a/plugins/GSdx/GSWnd.cpp b/plugins/GSdx/GSWnd.cpp index 6acaed05be..099308e5ae 100644 --- a/plugins/GSdx/GSWnd.cpp +++ b/plugins/GSdx/GSWnd.cpp @@ -27,7 +27,7 @@ GSWnd::GSWnd() : m_hWnd(NULL) - , m_managed(false) + , m_managed(true) , m_frame(true) { } @@ -159,7 +159,7 @@ void GSWnd::Detach() } m_hWnd = NULL; - m_managed = false; + m_managed = true; } GSVector4i GSWnd::GetClientRect() @@ -215,7 +215,7 @@ void GSWnd::HideFrame() GSWnd::GSWnd() : m_display(NULL) , m_window(0) - , m_managed(false) + , m_managed(true) , m_frame(true) { } diff --git a/plugins/GSdx/GSdx.vcxproj b/plugins/GSdx/GSdx.vcxproj index 95cf999c1a..36b3fe9ad9 100644 --- a/plugins/GSdx/GSdx.vcxproj +++ b/plugins/GSdx/GSdx.vcxproj @@ -33,18 +33,6 @@ Debug SSSE3 x64 - - Debug - Win32 - - - Debug - x64 - - - Devel - Win32 - Release AVX Win32 @@ -77,22 +65,6 @@ Release SSSE3 x64 - - Release - Win32 - - - Release - x64 - - - Template - Win32 - - - Template - x64 - GSdx @@ -101,12 +73,6 @@ Win32Proj - - Application - - - Application - DynamicLibrary MultiByte @@ -134,11 +100,6 @@ MultiByte true - - DynamicLibrary - MultiByte - true - DynamicLibrary MultiByte @@ -148,321 +109,183 @@ DynamicLibrary MultiByte - - Application - - - DynamicLibrary - Static - MultiByte - true - - - DynamicLibrary - Static - MultiByte - DynamicLibrary - Static MultiByte true DynamicLibrary - Static MultiByte true DynamicLibrary - Static MultiByte DynamicLibrary - Static MultiByte DynamicLibrary - Static MultiByte DynamicLibrary - Static MultiByte true DynamicLibrary - Static MultiByte true DynamicLibrary - Static MultiByte false - - - - - - - + - + - + - + - + - - - - - - - - - + - + - - - - - - - - - - + - + - + - + - + - + - + - + - + <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - AllRules.ruleset - - - - - AllRules.ruleset - AllRules.ruleset - - - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - AllRules.ruleset - - - - - AllRules.ruleset - AllRules.ruleset - - - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - Use - $(OutDir)$(TargetName)$(TargetExt) - $(SvnRootDir)\deps\$(Platform)\Debug;%(AdditionalLibraryDirectories) .\GSdx.def MachineX86 @@ -474,18 +297,6 @@ - MachineX64 - - - - - Use - - - $(SvnRootDir)\deps\$(Platform)\Devel;%(AdditionalLibraryDirectories) - .\GSdx.def - MachineX86 - $(OutDir)$(TargetName)$(TargetExt) @@ -493,10 +304,8 @@ Use - $(SvnRootDir)\deps\$(Platform)\Release;%(AdditionalLibraryDirectories) .\GSdx.def MachineX86 - $(OutDir)$(TargetName)$(TargetExt) @@ -506,7 +315,6 @@ - MachineX64 @@ -514,10 +322,8 @@ Use - $(SvnRootDir)\deps\$(Platform)\Release;%(AdditionalLibraryDirectories) .\GSdx.def MachineX86 - $(OutDir)$(TargetName)$(TargetExt) @@ -527,7 +333,6 @@ - MachineX86 @@ -535,8 +340,6 @@ Use - $(OutDir)$(TargetName)$(TargetExt) - $(SvnRootDir)\deps\$(Platform)\Debug;%(AdditionalLibraryDirectories) .\GSdx.def MachineX86 @@ -548,7 +351,6 @@ - MachineX64 @@ -556,8 +358,6 @@ Use - $(OutDir)$(TargetName)$(TargetExt) - $(SvnRootDir)\deps\$(Platform)\Debug;%(AdditionalLibraryDirectories) .\GSdx.def MachineX86 @@ -567,8 +367,6 @@ Use - $(OutDir)$(TargetName)$(TargetExt) - $(SvnRootDir)\deps\$(Platform)\Debug;%(AdditionalLibraryDirectories) .\GSdx.def MachineX86 @@ -583,7 +381,6 @@ - MachineX64 @@ -596,7 +393,6 @@ - MachineX64 @@ -604,10 +400,8 @@ Use - $(SvnRootDir)\deps\$(Platform)\Release;%(AdditionalLibraryDirectories) .\GSdx.def MachineX86 - $(OutDir)$(TargetName)$(TargetExt) @@ -615,10 +409,8 @@ Use - $(SvnRootDir)\deps\$(Platform)\Release;%(AdditionalLibraryDirectories) .\GSdx.def MachineX86 - $(OutDir)$(TargetName)$(TargetExt) @@ -631,7 +423,6 @@ - MachineX64 @@ -644,47 +435,6 @@ - MachineX64 - - - - - $(SvnRootDir)\deps\$(Platform)\Debug;%(AdditionalLibraryDirectories) - - - - - X64 - - - Use - - - - - - - MachineX64 - - - - - $(SvnRootDir)\deps\$(Platform)\Release;%(AdditionalLibraryDirectories) - - - - - X64 - - - Use - - - - - - - MachineX64 @@ -697,19 +447,10 @@ - - AssemblyAndSourceCode - AssemblyAndSourceCode - + - - AssemblyAndSourceCode - AssemblyAndSourceCode - - - AssemblyAndSourceCode - AssemblyAndSourceCode - + + @@ -723,84 +464,39 @@ - - AssemblyAndSourceCode - + - - AssemblyAndSourceCode - AssemblyAndSourceCode - AssemblyAndSourceCode - AssemblyAndSourceCode - + - - AssemblyAndSourceCode - AssemblyAndSourceCode - AssemblyAndSourceCode - AssemblyAndSourceCode - AssemblyAndSourceCode - AssemblyAndSourceCode - AssemblyAndSourceCode - + - - AssemblyAndSourceCode - AssemblyAndSourceCode - AssemblyAndSourceCode - AssemblyAndSourceCode - AssemblyAndSourceCode - AssemblyAndSourceCode - + - - AssemblyAndSourceCode - AssemblyAndSourceCode - AssemblyAndSourceCode - + - - AssemblyAndSourceCode - + - - AssemblyAndSourceCode - AssemblyAndSourceCode - AssemblyAndSourceCode - AssemblyAndSourceCode - AssemblyAndSourceCode - AssemblyAndSourceCode - AssemblyAndSourceCode - + - - AssemblyAndSourceCode - AssemblyAndSourceCode - + - - AssemblyAndSourceCode - AssemblyAndSourceCode - + - - AssemblyAndSourceCode - AssemblyAndSourceCode - + @@ -1873,11 +1569,6 @@ {81ce8daf-ebb2-4761-8e45-b71abcca8c68} - false - true - false - true - false diff --git a/plugins/GSdx/GSdx_vs2008.vcproj b/plugins/GSdx/GSdx_vs2008.vcproj index e98068087e..a4b1f394ac 100644 --- a/plugins/GSdx/GSdx_vs2008.vcproj +++ b/plugins/GSdx/GSdx_vs2008.vcproj @@ -22,7 +22,7 @@ @@ -56,10 +56,8 @@ /> @@ -443,10 +430,8 @@ /> @@ -510,7 +493,6 @@ @@ -571,10 +553,8 @@ /> @@ -639,7 +617,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30128.1 + $(SolutionDir)bin\$(PcsxSubsection)\ + $(PlatformName)\$(Configuration)\ true - WIN32;_WINDOWS;_WIN32_WINNT=0x500;%(PreprocessorDefinitions) + _WINDOWS;_WIN32_WINNT=0x500;%(PreprocessorDefinitions) Fast false Level4 @@ -17,8 +19,6 @@ JITProfiling.lib;d3d11.lib;d3dx11.lib;d3d10_1.lib;d3dx10.lib;d3d9.lib;d3dx9.lib;dxguid.lib;winmm.lib;strmiids.lib;xinput.lib;%(AdditionalDependencies) - $(OutDir)$(ProjectName)-$(SSEtype).dll - $(DXSDK_DIR)Lib\x86;./vtune;%(AdditionalLibraryDirectories) d3d9.dll;d3dx9_43.dll;d3d11.dll;d3dx11_43.dll;%(DelayLoadDLLs) true Windows diff --git a/plugins/GSdx/vsprops/common.vsprops b/plugins/GSdx/vsprops/common.vsprops index 446ed3a01e..707424338a 100644 --- a/plugins/GSdx/vsprops/common.vsprops +++ b/plugins/GSdx/vsprops/common.vsprops @@ -3,11 +3,13 @@ ProjectType="Visual C++" Version="8.00" Name="common" + OutputDirectory="$(SolutionDir)bin\$(PcsxSubsection)" + IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" > <_ProjectFileVersion>10.0.30128.1 - $(ProjectName)-$(SSEtype)-dbg + $(ProjectName)$(PlatformArchitecture)-$(SSEtype)-dbg true diff --git a/plugins/GSdx/vsprops/debug.vsprops b/plugins/GSdx/vsprops/debug.vsprops index da8ce82ebc..99fa4c55d5 100644 --- a/plugins/GSdx/vsprops/debug.vsprops +++ b/plugins/GSdx/vsprops/debug.vsprops @@ -14,6 +14,7 @@ /> diff --git a/plugins/GSdx/vsprops/devel.props b/plugins/GSdx/vsprops/devel.props deleted file mode 100644 index f8595168a4..0000000000 --- a/plugins/GSdx/vsprops/devel.props +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - $(ProjectName)-dev - - - - \ No newline at end of file diff --git a/plugins/GSdx/vsprops/release.props b/plugins/GSdx/vsprops/release.props index 78df600b3f..595be69332 100644 --- a/plugins/GSdx/vsprops/release.props +++ b/plugins/GSdx/vsprops/release.props @@ -3,7 +3,7 @@ <_ProjectFileVersion>10.0.30128.1 false - $(ProjectName)-$(SSEtype) + $(ProjectName)$(PlatformArchitecture)-$(SSEtype) diff --git a/plugins/GSdx/vsprops/release.vsprops b/plugins/GSdx/vsprops/release.vsprops index 9ac028daa9..b57b78335f 100644 --- a/plugins/GSdx/vsprops/release.vsprops +++ b/plugins/GSdx/vsprops/release.vsprops @@ -19,6 +19,7 @@ /> + + + + + + + $(DXSDK_DIR)Lib\x64;$(ProjectDir)vtune\x64;%(AdditionalLibraryDirectories) + + + _WIN64;%(PreprocessorDefinitions) + + + + \ No newline at end of file diff --git a/plugins/GSdx/vsprops/x64.vsprops b/plugins/GSdx/vsprops/x64.vsprops new file mode 100644 index 0000000000..0e08254463 --- /dev/null +++ b/plugins/GSdx/vsprops/x64.vsprops @@ -0,0 +1,16 @@ + + + + + diff --git a/plugins/GSdx/vsprops/x86.props b/plugins/GSdx/vsprops/x86.props new file mode 100644 index 0000000000..ff76b9535d --- /dev/null +++ b/plugins/GSdx/vsprops/x86.props @@ -0,0 +1,16 @@ + + + + + + + + $(DXSDK_DIR)Lib\x86;$(ProjectDir)vtune\x86;%(AdditionalLibraryDirectories) + + + + _WIN32;%(PreprocessorDefinitions) + + + + \ No newline at end of file diff --git a/plugins/GSdx/vsprops/x86.vsprops b/plugins/GSdx/vsprops/x86.vsprops new file mode 100644 index 0000000000..80790002ff --- /dev/null +++ b/plugins/GSdx/vsprops/x86.vsprops @@ -0,0 +1,16 @@ + + + + + diff --git a/plugins/GSdx/vtune/JITProfiling.h b/plugins/GSdx/vtune/JITProfiling.h index 870177f97b..31378d5636 100644 --- a/plugins/GSdx/vtune/JITProfiling.h +++ b/plugins/GSdx/vtune/JITProfiling.h @@ -1,13 +1,22 @@ -/************************************************************************* - * - * INTEL CORPORATION PROPRIETARY INFORMATION - * This software is supplied under the terms of a license agreement or - * nondisclosure agreement with Intel Corporation and may not be copied - * or disclosed except in accordance with the terms of that agreement. - * - * Copyright(c) 2008 Intel Corporation. All Rights Reserved. - * - ************************************************************************/ +/* + Copyright(c) 2008-2010 Intel Corporation. All Rights Reserved. + + The source code contained or described herein and all documents related + to the source code ("Material") are owned by Intel Corporation or its + suppliers or licensors. Title to the Material remains with Intel + Corporation or its suppliers and licensors. The Material is protected + by worldwide copyright laws and treaty provisions. No part of the + Material may be used, copied, reproduced, modified, published, uploaded, + posted, transmitted, distributed, or disclosed in any way without + Intel's prior express written permission. + + No license under any patent, copyright, trade secret or other + intellectual property right is granted to or conferred upon you by + disclosure or delivery of the Materials, either expressly, by + implication, inducement, estoppel or otherwise. Any license under such + intellectual property rights must be express and approved by Intel in + writing. +*/ #ifndef __JITPROFILING_H__ #define __JITPROFILING_H__ @@ -15,106 +24,100 @@ * Various constants used by functions * ***************************************/ - // event notification - typedef enum iJIT_jvm_event - { +// event notification +typedef enum iJIT_jvm_event +{ // shutdown - iJVM_EVENT_TYPE_SHUTDOWN = 2, // Program exiting - // EventSpecificData NA + iJVM_EVENT_TYPE_SHUTDOWN = 2, // Program exiting + // EventSpecificData NA // JIT profiling - iJVM_EVENT_TYPE_METHOD_LOAD_FINISHED=13, // issued after method code jitted - // into memory but before code is executed - // EventSpecificData is an iJIT_Method_Load + iJVM_EVENT_TYPE_METHOD_LOAD_FINISHED=13, // issued after method code jitted + // into memory but before code is executed + // EventSpecificData is an iJIT_Method_Load - iJVM_EVENT_TYPE_METHOD_UNLOAD_START, // issued before unload. Method code will no - // longer be executed, but code and info - // are still in memory. The VTune profiler - // may capture method code only at this point. - // EventSpecificData is iJIT_Method_Id + iJVM_EVENT_TYPE_METHOD_UNLOAD_START, // issued before unload. Method code will no + // longer be executed, but code and info + // are still in memory. The VTune profiler + // may capture method code only at this point. + // EventSpecificData is iJIT_Method_Id // Method Profiling - // method name, Id and stack is supplied - iJVM_EVENT_TYPE_ENTER_NIDS = 19, // issued when a method is about to be entered - // EventSpecificData is iJIT_Method_NIDS + // method name, Id and stack is supplied + iJVM_EVENT_TYPE_ENTER_NIDS = 19, // issued when a method is about to be entered + // EventSpecificData is iJIT_Method_NIDS - // method name, Id and stack is supplied - iJVM_EVENT_TYPE_LEAVE_NIDS, // issued when a method is about to be left - // EventSpecificData is iJIT_Method_NIDS + // method name, Id and stack is supplied + iJVM_EVENT_TYPE_LEAVE_NIDS // issued when a method is about to be left + // EventSpecificData is iJIT_Method_NIDS +} iJIT_JVM_EVENT; - } iJIT_JVM_EVENT; +typedef enum _iJIT_ModeFlags +{ + iJIT_NO_NOTIFICATIONS = 0x0000, // No need to Notify VTune, Since VTune is not running. - typedef enum _iJIT_ModeFlags - { - iJIT_NO_NOTIFICATIONS = 0x0000, // No need to Notify VTune, Since VTune is not running. + iJIT_BE_NOTIFY_ON_LOAD = 0x0001, // when turned on the jit must call iJIT_NotifyEvent( iJVM_EVENT_TYPE_METHOD_LOAD_FINISHED, ...) for all the method already jitted. + iJIT_BE_NOTIFY_ON_UNLOAD = 0x0002, // when turned on the jit must call iJIT_NotifyEvent( iJVM_EVENT_TYPE_METHOD_UNLOAD_FINISHED, ...) for all the method that are unloaded - iJIT_BE_NOTIFY_ON_LOAD = 0x0001, // when turned on the jit must call iJIT_NotifyEvent( iJVM_EVENT_TYPE_METHOD_LOAD_FINISHED, ...) for all the method already jitted. - iJIT_BE_NOTIFY_ON_UNLOAD = 0x0002, // when turned on the jit must call iJIT_NotifyEvent( iJVM_EVENT_TYPE_METHOD_UNLOAD_FINISHED, ...) for all the method that are unloaded - - iJIT_BE_NOTIFY_ON_METHOD_ENTRY = 0x0004, // when turned on the jit must instrument all the currently jited code with calls on method entries - iJIT_BE_NOTIFY_ON_METHOD_EXIT = 0x0008, // when turned on the jit must instrument all the currently jited code with calls on method exit - - } iJIT_ModeFlags; + iJIT_BE_NOTIFY_ON_METHOD_ENTRY = 0x0004, // when turned on the jit must instrument all the currently jited code with calls on method entries + iJIT_BE_NOTIFY_ON_METHOD_EXIT = 0x0008 // when turned on the jit must instrument all the currently jited code with calls on method exit +} iJIT_ModeFlags; // Flags used by iJIT_IsProfilingActive() typedef enum _iJIT_IsProfilingActiveFlags { - iJIT_NOTHING_RUNNING = 0x0000, // No profiler is running. Currently not used. - iJIT_SAMPLING_ON = 0x0001, // Sampling is running. This is the default value returned by iJIT_IsProfilingActive() - iJIT_CALLGRAPH_ON = 0x0002 // Call Graph is running - + iJIT_NOTHING_RUNNING = 0x0000, // No profiler is running. Currently not used. + iJIT_SAMPLING_ON = 0x0001, // Sampling is running. This is the default value returned by iJIT_IsProfilingActive() + iJIT_CALLGRAPH_ON = 0x0002 // Call Graph is running } iJIT_IsProfilingActiveFlags; - - // Enumerator for the environment of methods +// Enumerator for the environment of methods typedef enum _iJDEnvironmentType { iJDE_JittingAPI = 2 - } iJDEnvironmentType; /********************************** * Data structures for the events * **********************************/ - // structure for the events: - // iJVM_EVENT_TYPE_METHOD_UNLOAD_START +// structure for the events: +// iJVM_EVENT_TYPE_METHOD_UNLOAD_START -typedef struct _iJIT_Method_Id +typedef struct _iJIT_Method_Id { - unsigned int method_id; // Id of the method (same as the one passed in the iJIT_Method_Load struct + unsigned int method_id; // Id of the method (same as the one passed in the iJIT_Method_Load struct } *piJIT_Method_Id, iJIT_Method_Id; - // structure for the events: - // iJVM_EVENT_TYPE_ENTER_NIDS, - // iJVM_EVENT_TYPE_LEAVE_NIDS, - // iJVM_EVENT_TYPE_EXCEPTION_OCCURRED_NIDS +// structure for the events: +// iJVM_EVENT_TYPE_ENTER_NIDS, +// iJVM_EVENT_TYPE_LEAVE_NIDS, +// iJVM_EVENT_TYPE_EXCEPTION_OCCURRED_NIDS typedef struct _iJIT_Method_NIDS { - unsigned int method_id; // unique method ID - unsigned int stack_id; // NOTE: no need to fill this field, it's filled by VTune - char* method_name; // method name (just the method, without the class) - + unsigned int method_id; // unique method ID + unsigned int stack_id; // NOTE: no need to fill this field, it's filled by VTune + char* method_name; // method name (just the method, without the class) } *piJIT_Method_NIDS, iJIT_Method_NIDS; - // structures for the events: - // iJVM_EVENT_TYPE_METHOD_LOAD_FINISHED +// structures for the events: +// iJVM_EVENT_TYPE_METHOD_LOAD_FINISHED -typedef struct _LineNumberInfo +typedef struct _LineNumberInfo { unsigned int Offset; // x86 Offset from the begining of the method unsigned int LineNumber; // source line number from the begining of the source file. } *pLineNumberInfo, LineNumberInfo; -typedef struct _iJIT_Method_Load +typedef struct _iJIT_Method_Load { unsigned int method_id; // unique method ID - can be any unique value, (except 0 - 999) char* method_name; // method name (can be with or without the class and signature, in any case the class name will be added to it) @@ -123,32 +126,29 @@ typedef struct _iJIT_Method_Load unsigned int line_number_size; // Line Table size in number of entries - Zero if none pLineNumberInfo line_number_table; // Pointer to the begining of the line numbers info array unsigned int class_id; // unique class ID - char* class_file_name; // class file name + char* class_file_name; // class file name char* source_file_name; // source file name void* user_data; // bits supplied by the user for saving in the JIT file... unsigned int user_data_size; // the size of the user data buffer iJDEnvironmentType env; // NOTE: no need to fill this field, it's filled by VTune - } *piJIT_Method_Load, iJIT_Method_Load; - - -//API Functions -#ifdef __cplusplus +/* API Functions */ +#ifdef __cplusplus extern "C" { #endif typedef void (*iJIT_ModeChangedEx)(void *UserData, iJIT_ModeFlags Flags); // called when the settings are changed with new settings -int iJIT_NotifyEvent(iJIT_JVM_EVENT event_type, void *EventSpecificData); +int iJIT_NotifyEvent(iJIT_JVM_EVENT event_type, void *EventSpecificData); void iJIT_RegisterCallbackEx(void *userdata, iJIT_ModeChangedEx NewModeCallBackFuncEx); // The new mode call back routine -iJIT_IsProfilingActiveFlags iJIT_IsProfilingActive(); -void FinalizeThread(); -void FinalizeProcess(); -unsigned int iJIT_GetNewMethodID(); +iJIT_IsProfilingActiveFlags iJIT_IsProfilingActive(void); +void FinalizeThread(void); +void FinalizeProcess(void); +unsigned int iJIT_GetNewMethodID(void); -#ifdef __cplusplus +#ifdef __cplusplus } #endif -#endif //__JITPROFILING_H__ +#endif /* __JITPROFILING_H__ */ diff --git a/plugins/GSdx/vtune/JITProfiling.lib b/plugins/GSdx/vtune/JITProfiling.lib deleted file mode 100644 index 3bf391b83e..0000000000 Binary files a/plugins/GSdx/vtune/JITProfiling.lib and /dev/null differ diff --git a/plugins/GSdx/vtune/x64/jitprofiling.lib b/plugins/GSdx/vtune/x64/jitprofiling.lib new file mode 100644 index 0000000000..340e365f31 Binary files /dev/null and b/plugins/GSdx/vtune/x64/jitprofiling.lib differ diff --git a/plugins/GSdx/vtune/x86/jitprofiling.lib b/plugins/GSdx/vtune/x86/jitprofiling.lib new file mode 100644 index 0000000000..c1beac73fe Binary files /dev/null and b/plugins/GSdx/vtune/x86/jitprofiling.lib differ