06-25-2010, 04:58 PM
06-26-2010, 01:10 AM
just wondering, but if you did any of the modifications in step 5, would it still compile with the vs compiler? If so, you might as well commit this to svn.
06-26-2010, 06:44 AM
(06-26-2010, 01:10 AM)boogerlad Wrote: [ -> ]just wondering, but if you did any of the modifications in step 5, would it still compile with the vs compiler? If so, you might as well commit this to svn.
Yes, it does still compile in VS after these changes. I actually asked one of the devs to commit these changes but they did not.
07-11-2010, 06:20 AM
I have the Intel C++ Compiler Professional For Windows 11.1 Update 4, but can't find any options to compile with SSSE3, SSE4.1, or SSE4.2 optimizations. all I have for choices is to compile with SSE2, or SSE3.
Also, what version of the compiler do I need, for what architecture?
Also, what version of the compiler do I need, for what architecture?
07-11-2010, 07:44 AM
(07-11-2010, 06:20 AM)Xtreme2damax Wrote: [ -> ]I have the Intel C++ Compiler Professional For Windows 11.1 Update 4, but can't find any options to compile with SSSE3, SSE4.1, or SSE4.2 optimizations. all I have for choices is to compile with SSE2, or SSE3.
Also, what version of the compiler do I need, for what architecture?
I would suggest the latest ICC version (11.1 Update 6 is what I have).
Look under Intel-Specific settings.
(06-17-2010, 06:28 PM)Lectrode Wrote: [ -> ]Step 6: Compiling
1) Open CheckoutFolder\Source\Dolphin.sln in VS 2008.
2) Right-click the "Solution 'Dolphin'" and select Intel C++ Compiler Pro -> Use Intel C++...
3) Click OK for any windows that pop-up.
4) Once it has finished converting the solution to use Intel C++, Select the Type of build you want (ie Debug/Release and Win32/x64 ("Release" is recomended))
Note: if you change either of these values after you change the following, you will have to redo the following steps.
5) Select all Projects in the Solution Explorer except DSPSpy, right-click them, and select click "Properties"
6) Under C++ -> Code Generation, you can set the Instruction Set used (ie SSE2, SSE3, SSE4.1, SSE4.2, or SSSE3).
-For Intel processors only: Set "Intel Processor-Specific Optimization"
-For all processors that support SSE instructions: Set "Add Processor-Optimized Code Path"
7) Click OK to apply settings.
And now with Pics...
[attachment=3810][attachment=3811][attachment=3812]
07-11-2010, 08:17 AM
Ok, thanks. 
Is it normal to get so many warnings and messages btw? I'm getting the following warnings:
I'm also receiving a couple errors:
Just for the VideoSoftware plugin.

Is it normal to get so many warnings and messages btw? I'm getting the following warnings:
Quote:"Message 3 the initial sequence of preprocessing directives is not compatible with those of precompiled header file "x64\Release\DiscIO.pchi" D:\My Documents\Emulator SVN\Dolphin\Source\Core\DiscIO\Warning #673"
"Message 289 remark #82: storage class is not first D:\My Documents\Emulator SVN\Dolphin\Externals\wxWidgets\Include\wx\colour.h 115"
"Message 95 (col. 11) remark: LOOP WAS VECTORIZED. D:\My Documents\Emulator SVN\Dolphin\Externals\SFML\src\SFML\Network\Packet.cpp 292"
"Message 358 (col. 17) remark: BLOCK WAS VECTORIZED. D:\My Documents\Emulator SVN\Dolphin\Externals\wxWidgets\src\msw\window.cpp 4556"
"Warning 177 warning LNK4221: no public symbols found; archive member will be inaccessible D:\My Documents\Emulator SVN\Dolphin\Externals\wxWidgets\build\msw\snglinst.obj"
"Warning 78 warning #556: a value of type "void *" cannot be assigned to an entity of type "void *(*)(cl_command_queue, cl_mem, cl_bool={cl_uint={unsigned int}}, cl_map_flags={cl_bitfield={cl_ulong={unsigned __int64}}}, const size_t={unsigned __int64} *, const size_t={unsigned __int64} *, size_t={unsigned __int64} *, size_t={unsigned __int64} *, cl_uint={unsigned int}, const cl_event *, cl_event *, cl_int={signed int} *)" D:\My Documents\Emulator SVN\Dolphin\Externals\CLRun\clrun\gencl.c 350"
"Warning 216 warning #10199: IPO enabled; /Fa and /FA produce dummy .asm files D:\My Documents\Emulator SVN\Dolphin\Source\Core\VideoCommon\icl"
"Warning 326 warning #69: integer conversion resulted in truncation D:\My Documents\Emulator SVN\Dolphin\Source\Core\Core\Src\PowerPC\JitCommon\JitAsmCommon.cpp 516"
"Warning 388 warning #94: the size of an array must be greater than zero D:\My Documents\Emulator SVN\Dolphin\Source\Core\Core\Src\IPC_HLE\l2cap.h 139"
I'm also receiving a couple errors:
Quote:Error 891 error #10014: problem during multi-file optimization compilation (code 145) D:\My Documents\Emulator SVN\Dolphin\Source\Plugins\Plugin_VideoSoftware\xilink
Just for the VideoSoftware plugin.
07-11-2010, 01:02 PM
(07-11-2010, 08:17 AM)Xtreme2damax Wrote: [ -> ]Ok, thanks.
Is it normal to get so many warnings and messages btw? I'm getting the following warnings:
I'm also receiving a couple errors:
Just for the VideoSoftware plugin.
Warnings are normal. ICC is extremely picky and will have a lot more warnings than VS.
For some reason (and I'm still trying to figure out why) every build with OpenCL (all of them after R5808) the Plugin_VideoSoftware fails to build. From what I can tell, it is yet another bug with ICC.
For some reason it thinks that this one variable with a really long name
"?EnsureNoSecureSCL@__N_21___Src_VideoConfig_cpp_g_Config@@3U?$CompileTimeAssert@$00@@C"
is already defined. This particualar variable is found in
\Source\Plugins\Plugin_DSP_HLE\Win32\Release\UCode_AX.asm
and
\Source\Plugins\Plugin_DSP_HLE\x64\Release\UCode_AX.asm
I'm still working on figuring out what exactly in the code is making it screw up, a task that would be Soooo much easier if I new C++. Unfortunately, that's one of the languages that I didn't really get into. I only know AS2, HTML, CSS, some PHP, some BASIC, some Visual BASIC, some VBScript, some WScript,... yeah that's about it. Meh.
For a bit more info on this issue you can go here:
http://code.google.com/p/dolphin-emu/source/detail?r=5787
Plugin_VideoSoftware is the Software Renderer, which most people don't use anyway. However, for those who do, I include the non-SSE plugin with the SSE builds so that it is still there just in case. (Build with VS and copy to ICC builds).
07-11-2010, 01:16 PM
By the way I do notice about a 7 FPS - 10 FPS increase, but not with every game. Games that rely on Copy EFB to Ram seem to benefit, I've got an extra 7 FPS - 10 FPS in NSMB with the new hybrid efb to ram. Resident Evil 4 (GC) seems to still run at the same speed.
Any other compiler optimizations that can be tried and might have some benefit?
Any other compiler optimizations that can be tried and might have some benefit?
07-11-2010, 09:37 PM
(07-11-2010, 01:16 PM)Xtreme2damax Wrote: [ -> ]By the way I do notice about a 7 FPS - 10 FPS increase, but not with every game. Games that rely on Copy EFB to Ram seem to benefit, I've got an extra 7 FPS - 10 FPS in NSMB with the new hybrid efb to ram. Resident Evil 4 (GC) seems to still run at the same speed.
Any other compiler optimizations that can be tried and might have some benefit?
If you look under the Optimization and Code generation settings there's a bunch of stuff you can tinker with

[attachment=3817]
Also, updated tutorial with new stuff you need since R5808
07-14-2010, 10:14 PM
can u build video plugins before r5808 using Intel C++ Compiler?(e.g r5807, r5806 video plugin,...) Some people and me are having trouble when enabling OpenCL using r5808 and later rev's video plugins, the r5807 and previous video plugins work fine with even the latest SVN build with OpenCL. While r5808 and later rev videoplugins crash dolphin just before OpenCL's initiation (the log show me that). I suspect that there's something related with the problem u're investigating.
Here are some changes in r5808.
http://code.google.com/p/dolphin-emu/source/detail?r=5808
Here are some changes in r5808.
http://code.google.com/p/dolphin-emu/source/detail?r=5808
