Commit Graph
12 Commits
Author SHA1 Message Date
xsacha dcbfd4ea4c SSSE3 implementation of IA8 texture decode. Roughly 50% faster than SSE2 version on my computer (SSSE3: 77%, SSE2: 57% vs reference C on Core2 Duo). About half as many cycles.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6770 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-07 14:55:05 +00:00
xsacha a6acc99a89 Last commit only requires SSSE3, not SSE4.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6769 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-07 13:54:18 +00:00
xsacha 53474403e2 An SSE4 implementation for I8 texture decode. Slightly faster than SSE2 version on my computer (SSE4: 60%, SSE2: 55% vs reference C on Core2 Duo).
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6768 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-07 13:40:32 +00:00
xsacha c02f56fca3 Use CPUDetect.h and bSSSE3 to fix "unknown machine instructions" on DX9 plugin.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6767 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-07 09:42:44 +00:00
xsacha c4477f68e1 ~93% speed improvement (over plain C++) in RGBA -> BGRA conversion for processors that support SSSE3 (Core or newer).
About 40% faster than the SSE2 implementation.

May not be required in future but good for reference.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6766 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-07 07:54:04 +00:00
xsacha 963ece2017 Remove unnecessary casting bloat. Since AMD Stream 2.2 this is no longer a requirement.
Stream 2.2 is minimum requirement for OpenCL 1.1 and binary kernels as well (I hope to implement these soon).Remove unnecessary casting bloat. Since AMD Stream 2.2 this is no longer a requirement.

Sidenote: Stream 2.2/Catalyst 10.7b is minimum requirement for OpenCL 1.1 and binary kernels as well. I hope to implement these soon. 

For the latest ATI Drivers and SDK:
http://support.amd.com/us/kbarticles/Pages/OpenCL11ATICat107UpdateDriver.aspx

http://support.amd.com/us/kbarticles/Pages/OpenCL11ATICat107UpdateDriver.aspx

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6102 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-08-16 15:48:46 +00:00
xsacha 434e6b1198 Small update to fix some cmpr alpha issues with games that use linear filtering. Apparently the colour values matter even though alpha = 0.
Also, remove redundant ANDs.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5787 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-25 19:31:26 +00:00
xsacha 2faae384b3 Changes:
- RGBA8 (DX9/OGL): 10x speed up on Radeon 5450, 2x speed up on other cards due to swizzle registers.
 - RGB565: 2-3x speed up on all hardware
 - Removed OpenCL compiler warnings (eg. redefine).
OpenCL is now optimally complete for DX9/OGL. The code is very fast on all supported hardware. No more updates are needed unless the spec changes or drivers improve. When I started, the OpenCL code was as slow or slower than CPU. Now, using the lowest end radeon that supports the code: a Radeon 45xx mobility, I experience a substantial 2-10x speedup over CPU. The benefits are more pronounced with modern hardware. A Radeon 5870 runs this code 20x faster than a 4550. Even ignoring speedups, the code benefits users by not using CPU for intermittent texture loads (unless GPU is your bottleneck). Instead, the CPU is able to do more important tasks.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5775 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-24 04:06:03 +00:00
xsacha 21fb4cb96c Add a toggle option for OpenCL in Config (in Advanced Settings). Default is off.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5768 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-22 13:17:01 +00:00
xsacha 1b670a9825 New OpenCL update for DX11
Changes:
 - IA4: 2x Speed up for all hardware and ATI glitch fixed (blocky text)
 - IA8: 2x Speed up for all hardware
 - New DX11 OCL Textures: I4, I8, IA4, IA8

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5766 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-22 06:09:21 +00:00
xsacha 92c98ac5fa A new update for OpenCL.h.
Changes:
 - Strict casting as required by NVidia. Now NVidia cards should work.
 - Fixed Alpha CMPR bug.

Please tell me if you find any bugs. Current known bug is the 'Press' texture in Paper Mario that is meant to flash rainbow colours appears black. Other than that, everything should work on every videocard.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5759 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-21 13:09:25 +00:00
xsacha 783390539d Hi! This is my first commit so be nice :)
New OpenCL updates:
 - OpenCL bug with ATI SDK (GPU or CPU) fixed.
 - IA4 texture loop unrolled. 12x speed up on 4xxx series.
 - Completed rewriting RGB5A3 texture decode. 20% faster.
 - Redundant code removed from CMPR and RGB5A3 (Alpha, shift).
 - Made use of optimised OpenCL functions (upsample, bitselect).
 - Cleaner code.

Tested and working with DX9 plugin. DX11 plugin will NOT work due to a recent commit affecting VideoCommon. You can use this file with an older DX11 plugin (~r5730), however.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5753 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-20 16:43:21 +00:00