dolphin/Source/Plugins/Plugin_VideoDX9/Src
Rodolfo Osvaldo Bogado 539f63b58b ok, here goes a really experimental commit:
replace efb to ram implementation by a hybrid approach.
explanation:
when copying from efb to texture, instead of make a copy to a texture or to the ram, copy the data to both, in hi quality to the texture and in native quality to the ram.
then instead of re-decoding the data from ram (very slow) use the data in the texture.
to improve this even more, test if the cpu has modified the data in the ram copy, if so, update the texture in memory and mark it as dynamic to avoid redundant work in future frames.
having all this implemented this is what is archived:
sms: full quality with scaled efb copies and fully functional goop cleaning :)
ztp: efb to texture speed with full map support.
nsmbw: this is a hard to emulate game, as it make a lot of shading and texture modification in cpu. it only have 35 fps in my system with new efb to ram but is 10 fps faster than normal efb to ram.
this game also show me another unimplemented feature, copy efb to multiple textures at the same time (is used to animate coins and other things in the world).
this is a remaining todo in efb to texture.
a lot of games should improve, so please test and let me know any regresion caused by this commit. 
if everyone likes this the next step is, implement efb to multilpe textures and merge efb to ram and efb to texture.
then port to the other plugins.
enjoy.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5846 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-06 22:27:13 +00:00
..
Debugger D3D9: Fix issue where the shader caches were lost whenever the render window was resized. Add some error logging to LinearDiskCache. + some minor cleanup. 2010-06-19 16:22:24 +00:00
BPFunctions.cpp ok, here goes a really experimental commit: 2010-07-06 22:27:13 +00:00
CPStructs.cpp Now ALL copyright dates are fixed to the legally correct year: The year in which the project began. Now we don't have to change it every year :) 2009-07-28 21:32:10 +00:00
CPStructs.h Now ALL copyright dates are fixed to the legally correct year: The year in which the project began. Now we don't have to change it every year :) 2009-07-28 21:32:10 +00:00
D3DBase.cpp added ssaa and efb scale as separate configurations: 2010-06-09 15:33:01 +00:00
D3DBase.h build fixin', warning fixin'. 2010-06-09 21:19:23 +00:00
D3DShader.cpp Shader Disk Cache implementation for D3D. Saves generated shaders on disk. Eliminates "freeze jerks" in D3D plugin the _second_ and later times you play something.... not much to do about the first time. The D3D shader compiler is just slow. 2010-01-17 17:44:09 +00:00
D3DShader.h Fix some cases of variables being used uninitialized. Also some unused 2010-06-02 20:35:12 +00:00
D3DTexture.cpp Slightly optimize uploading D3DFMT_A8R8G8B8 data to textures. 2010-05-29 09:32:44 +00:00
D3DTexture.h fixed xfb bumping introduced by my last commit. 2010-04-14 13:57:16 +00:00
D3DUtil.cpp space changes, merge #defines, language fix, and code reorder/cleanup :P 2010-06-05 01:38:22 +00:00
D3DUtil.h hopefully solved all the pixel align problems when drawing full screen quads. 2010-05-24 14:20:19 +00:00
DLCompiler.cpp Fix some cases of variables being used uninitialized. Also some unused 2010-06-02 20:35:12 +00:00
DLCompiler.h Fix some cases of variables being used uninitialized. Also some unused 2010-06-02 20:35:12 +00:00
DlgSettings.cpp ok, here goes a really experimental commit: 2010-07-06 22:27:13 +00:00
DlgSettings.h ok, here goes a really experimental commit: 2010-07-06 22:27:13 +00:00
EmuWindow.cpp space changes, merge #defines, language fix, and code reorder/cleanup :P 2010-06-05 01:38:22 +00:00
EmuWindow.h Move fullscreen display resolution control to the GUI with the rest of the fullscreen toggling code. This removes redundancy of code that was in several places through the various video plugins. Unfortunately it means the fullscreen resolution setting also had to be moved to the main configuration dialog. I am sure that will meet some resistance. 2010-04-22 04:28:34 +00:00
FramebufferManager.cpp this is a pure optimization commit: 2010-07-02 17:09:53 +00:00
FramebufferManager.h Hg: 2010-06-09 01:37:08 +00:00
Globals.h Hg: 2010-06-09 01:37:08 +00:00
NativeVertexFormat.cpp Fix some cases of variables being used uninitialized. Also some unused 2010-06-02 20:35:12 +00:00
PixelShaderCache.cpp this is a pure optimization commit: 2010-07-02 17:09:53 +00:00
PixelShaderCache.h 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. 2010-06-20 22:23:34 +00:00
RGBAFloat.h Fix some cases of variables being used uninitialized. Also some unused 2010-06-02 20:35:12 +00:00
Render.cpp cleanup + some eolz 2010-07-06 13:14:51 +00:00
TextureCache.cpp ok, here goes a really experimental commit: 2010-07-06 22:27:13 +00:00
TextureCache.h ok, here goes a really experimental commit: 2010-07-06 22:27:13 +00:00
TextureConverter.cpp ok, here goes a really experimental commit: 2010-07-06 22:27:13 +00:00
TextureConverter.h ok, here goes a really experimental commit: 2010-07-06 22:27:13 +00:00
Vec3.h STAND BACK - NEWLINE POLICE 2009-11-15 22:26:39 +00:00
VertexManager.cpp this commit is divided in 4 parts: 2010-06-29 14:40:37 +00:00
VertexManager.h space changes, merge #defines, language fix, and code reorder/cleanup :P 2010-06-05 01:38:22 +00:00
VertexShaderCache.cpp this is a pure optimization commit: 2010-07-02 17:09:53 +00:00
VertexShaderCache.h D3D9: Fix issue where the shader caches were lost whenever the render window was resized. Add some error logging to LinearDiskCache. + some minor cleanup. 2010-06-19 16:22:24 +00:00
XFStructs.cpp Now ALL copyright dates are fixed to the legally correct year: The year in which the project began. Now we don't have to change it every year :) 2009-07-28 21:32:10 +00:00
XFStructs.h Fix some cases of variables being used uninitialized. Also some unused 2010-06-02 20:35:12 +00:00
bmp_io.cpp set svn:eol-style=native for Plugins/**.cpp 2008-12-08 05:25:12 +00:00
bmp_io.h Fix some cases of variables being used uninitialized. Also some unused 2010-06-02 20:35:12 +00:00
main.cpp this is a pure optimization commit: 2010-07-02 17:09:53 +00:00
main.h fixed fps limiting when using using virtual xfb, now fps = vps, in fact now real xfb is as fast as no using xfb, i'm thinking now that the correct thing is leave it enabled as default, and even remove the option. 2010-03-28 23:51:32 +00:00
stdafx.cpp Fix some cases of variables being used uninitialized. Also some unused 2010-06-02 20:35:12 +00:00
stdafx.h Now ALL copyright dates are fixed to the legally correct year: The year in which the project began. Now we don't have to change it every year :) 2009-07-28 21:32:10 +00:00