Commit Graph

5721 Commits

Author SHA1 Message Date
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
Glenn Rice e706ccc5d0 Hide OpenCL GUI option for non-OpenCL builds.
From now on if you create a GUI option specific to a particular build, do not gray it out.  Instead do as I have done here and make it not present on those builds.  It may add a few precompiler conditionals that developers have to look at, but that is considerably better than a completely useless option that the end user has to look at.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5774 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-23 12:57:59 +00:00
nodchip 5cf491af64 VideoCommon: A minor speed up.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5772 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-23 03:02:15 +00:00
Shawn Hoffman 5e81298ef0 boring svn:eol-style native again...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5771 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-22 23:45:56 +00:00
j4ck.fr0st 58f42414ba Fix a copy+paste bug from r5768 (Fixes Issue 2853)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5770 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-22 19:35:54 +00:00
nakeee 454de392d7 compile fix
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5769 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-22 15:10:25 +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
Jordan Woyak 25aca8cc4a GCPad/New Wiimote: Fixed issue 2848 (profiles not saving). Renamed DInput mouse axes to "Axis [XYZ][-+]" from "Mouse XYZ...". Minor cleanup/warning removal.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5767 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-22 08:30:33 +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
Orphis 2cc5b98f07 Added OpenCL texture decoding to RGBA usable by DX11 for formats RGB565, RGBA8, RGB5A3 and CMPR
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5765 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-22 03:10:43 +00:00
Orphis c2e32371f6 Refactor and prepare the OpenCL texture decoder for decoding textures to RGBA format required by DX11.
Fix the decoder codepath when OpenCL is enabled and the DX11 plugin is used.
Added the DX11 plugin to the Dolphin project dependencies.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5764 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-22 00:52:17 +00:00
Orphis 1198ae1c97 Fix color precision problems when decoding CMPR and RGB5A3 textures with OpenCL
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5763 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-21 22:21:06 +00:00
XTra.KrazzY 1b5b57bff3 Windows/Linux/whatever build fix.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5762 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-21 18:25:49 +00:00
NeoBrainX d0f00cedff DX11:
Cleanups, documentation, ...
Theoretically enable anisotropic filtering if selected in the config, not sure if it works though.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5761 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-21 17:54:13 +00:00
j4ck.fr0st 3650ee2fc5 OSX build fix
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5760 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-21 17:15:42 +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
Glenn Rice 11ac672730 Revert a hack that snzgoo committed that should not have been commited. That hack prevents the X loop in GLUtil.cpp from properly detecting events that it should detect.
I don't know if issue 2792 is a valid issue for dolphin.  I think that is a bug in the X server implementation on those distributions of those affected.  I can not replicate it.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5758 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-21 12:29:32 +00:00
Jordan Woyak 9e3b653688 GCPad/New Wiimote Plugin: Individual keyboard and mouse devices are now listed on Windows(2 player with 2 keyboards possible). Improved the ability to map multiple inputs to the same control. Inputs from different devices can be mapped to the same button (example: Mouse Left and XInput A). More advanced mappings such as "Button 1 or 2 and NOT button 3" are possible. I hope the GUI after right clicking a button isn't too confusing(may change it to be a bit more user friendly). Hopefully, I didn't break OSX stuff by 'const'ing a few functions.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5757 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-21 03:12:16 +00:00
Rodolfo Osvaldo Bogado fde15c1bc6 some fixes to depth test and screen clearing in dx11, now a lot of the remaining graphic errors should be fixed
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5756 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-21 02:40:09 +00:00
NeoBrainX a450fd45d8 DX11:
Make font rendering a lot prettier.
Fix constant buffers in EmuGfxState::ApplyState() to really have a size which is a multiple of 16 instead of 65536.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5755 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-20 23:10:55 +00:00
hrydgard 6a88241e64 D3D9: Delete some long dead code. Also add one more statistic: number of compiled shaders that actually have unique code (not accurate unless you delete the shader cache before running). This stat clearly shows that in f-zero we create 5x as many pixel shaders as we should, so there's clearly a problem with the shader ID generation.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5754 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-20 22:23:34 +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
hrydgard c51bb0b010 ppc: remove an assert and update some comments. Fixes games that would keep complaining about dcbtst not implemented (i've seen one, crash bandicoot for wii)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5752 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-20 14:53:29 +00:00
luisr142004 be3c06f326 Some more OCL changes : Gives 10x speedup for RGB5A3 on pre-DX11 hardware. Minor speedup for CMPR. (code by xsacha)
plus a segfault fix for issue 2779

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5751 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-20 05:02:26 +00:00
snzgoo 6e83fe2416 win32: Some more work on real wiimote automatic ingame pairup (automatic paired up wiimotes get connected now ingame as well, but it's not completely working yet, we're almost there tho:P) and changed the automatic unpair real wiimotes routine, so it won't get loaded via dll_detach anymore.
minor code changes and adding comments.
And issue fix 2792 with credits to Karloathian for finding and fixing it.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5750 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-20 02:17:53 +00:00
Rodolfo Osvaldo Bogado 4ab0e4b8a0 fix for rbga8 decoding that causes problems in nsmbw
fix for screen clearing in opengl and d3d

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5749 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-19 21:12:09 +00:00
NeoBrainX 208c33f09c Use the new texture decoder path to speed up texture loading in DX11.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5748 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-19 18:14:05 +00:00
hrydgard ccbc1feb0b D3D9: Fix issue where the shader caches were lost whenever the render window was resized. Add some error logging to LinearDiskCache. + some minor cleanup.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5747 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-19 16:22:24 +00:00
Rodolfo Osvaldo Bogado 8c6ae1f6f4 add a path to texture decoder to produce only rgba textures, this will make texture loading in dx11 a lot easier and give a little performance boost to.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5746 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-19 13:31:40 +00:00
NeoBrainX 64ffe0039a DX11:
Fix StateManager usage in ResetAPIState/RestoreAPIState.
Fix screenshots (finally).


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5745 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-19 12:48:09 +00:00
luisr142004 ab1e5f8537 apply a patch done by xsacha :) + some minor stuff :p
what changes do: cmpr decoding is fixed and rgb5a3 is re-enabled

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5744 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-19 07:59:53 +00:00
NeoBrainX d7bbddcbd3 DX11: Prefer DXGI_FORMAT_R8G8B8A8 to DXGI_FORMAT_B8G8R8A8 wherever appropriate.
Slightly modify the way we're doing screenshots once again, thanks to Orphis this time ;)


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5743 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-19 01:02:43 +00:00
NeoBrainX 08d7861578 Include the two files added in r5741 in the VC project file as well.
Improve the way we're saving screenshots, thanks to Billiard for spotting that ;)


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5742 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-18 23:55:28 +00:00
NeoBrainX 7b58e0b4e7 DX11: Add the two files which I meant to include in r5740 already.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5741 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-18 23:45:16 +00:00
NeoBrainX 5cfdb2d0c8 DX11: Introduce a StateManager class, might improve performance a little.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5740 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-18 23:33:07 +00:00
NeoBrainX b4f5a4d89e Compile fix.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5739 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-18 18:50:04 +00:00
NeoBrainX bf36f171a6 DX11: Add error checking to about any device object creation. Since we aren't handling creation errors that well right now we should at least output an error message.
Remove superfluous _WIN32 checks in DX11 and DX9. Meant to port that code over to Linux or what? :P


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5738 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-18 18:40:58 +00:00
j4ck.fr0st 866859493a DSPLLE: jit increment/decrement_addr_reg to match int (TODO: increase/decrease).
revert the OR back to MOV, since it never happens (according to nakee)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5737 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-18 15:41:30 +00:00
NeoBrainX 1d1af913a8 DX11: Fix flickering when resizing the emulator window.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5736 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-18 14:55:18 +00:00
j4ck.fr0st 3f633f96bd DSPLLE: some changes i had lying around, get rid of the shifting and make popExtValueToReg do the same as its int counterpart applyWriteBackLog (that is, OR'ing the result of both ops, rather than overwriting the main op result with the ext op result)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5735 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-18 14:51:40 +00:00
NeoBrainX ca1a5e9228 Actually make use of the new CHECK functionality in DX9.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5734 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-18 14:18:09 +00:00
NeoBrainX 0649bf2a00 Improve the CHECK macro used in DX9 and DX11 to allow more flexible error messages.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5733 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-18 14:14:13 +00:00
NeoBrainX 0a46dead9c DX11:
Implement safe texture cache.
Fix screenshot functionality.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5732 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-17 14:21:31 +00:00
NeoBrainX e266347160 DX11: Use D3DX11FilterTexture instead of ID3D11Context::GenerateMips.
Test if performance changed in any games by this change, please.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5731 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-17 12:09:56 +00:00
NeoBrainX 91d540ad67 DX11:
Fix all remaining window resizing issues.
Implement screenshot functionality (doesn't seem to work completely, yet).
Assign debug names to (hopefully) all remaining device objects.
Flush the GPU's command buffer in Close() to make the ReportLiveDeviceObjects output clearer.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5730 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-17 10:42:57 +00:00
Glenn Rice 49674400e0 On linux make the build default to autodetection of glew, sdl, zlib, lzo, sfml-network, and soil, with an option to override the autodetection to force a static build.
MaxOSX will always use a static builds of those libraries as per soren's wishes.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5729 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-17 01:18:22 +00:00
NeoBrainX 4f339ebc82 DX11: Introduce a D3DBlob class.
Advantages:
- easier to use
- drops our dependence on d3d10.lib, without depending on the June 2010 DX SDK
- makes finding unreleased buffers easier
- possibly more ;P


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5728 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-16 23:25:19 +00:00
Soren Jorvang b63e15e412 Don't try to link with dynamic versions of the LZO/SFML/SOIL libraries
on Linux when building a release image to make it more general.

OpenCL is new in OS X 10.6, so we can't restrict ourselves to the 10.5
compatibility SDK when OpenCL is enabled.

OpenCL really should be a runtime option (and weakly linked on OS X).


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5727 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-16 16:35:19 +00:00
Soren Jorvang 05915922c5 Hopefully fix Windows build.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5726 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-16 14:55:21 +00:00
ayuanx 221e722284 Linux build fix.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5725 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-16 14:22:17 +00:00