dolphin/Source/Core/VideoCommon/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
..
OpenCL cleanup + some eolz 2010-07-06 13:14:51 +00:00
AVIDump.cpp Linux global build. At least the basic footwork is done here. 2010-02-02 21:56:29 +00:00
AVIDump.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
BPFunctions.h D3D: Fix some texture wrapping issues by setting the texture state for every texture used at draw time. Hopefully there will not be a noticable slowdown, thanks to the state caching. Also some minor cleanup. Should fix issues like repeated shadows. TODO: In theory it should have worked without this, so I should investigate why this change was needed. 2010-01-12 23:40:30 +00:00
BPMemory.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
BPMemory.h HUGE commit :) 2010-06-05 00:01:18 +00:00
BPStructs.cpp cleanup + some eolz 2010-07-06 13:14:51 +00:00
BPStructs.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
CommandProcessor.cpp Uncomment Ayuanx patch, this was commented in my last commit by error, My apologize... 2010-06-25 00:13:06 +00:00
CommandProcessor.h My first commit :D 2010-06-24 13:28:54 +00:00
CPMemory.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
CPMemory.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
DataReader.h D3D: Fix 8-bit signed normals. Fixes lighting problems in Super Smash Bros Melee. misc tiny things 2009-09-13 21:18:04 +00:00
Fifo.cpp My first commit :D 2010-06-24 13:28:54 +00:00
Fifo.h 1. This should fix Issue 1625 (Bizarre Auto Frame Limit) 2010-01-07 20:01:41 +00:00
HiresTextures.cpp Automatically detect and use shared library packages for 2010-06-16 12:42:49 +00:00
HiresTextures.h DX9: - Add hires texture loading. 2009-12-22 06:47:42 +00:00
ImageWrite.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
ImageWrite.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
IndexGenerator.cpp apply some speedup to dx11 plugin + some minor stuff 2010-06-16 10:12:57 +00:00
IndexGenerator.h let's keep experimenting: 2010-05-22 21:58:43 +00:00
LookUpTables.h Don't use lookup tables. It's better to use CPU registers and reduce memory accesses. 2009-07-30 20:29:52 +00:00
memcpy_amd.cpp GL Vertex loader moved to VideoCommon. 2008-12-26 13:09:16 +00:00
NativeVertexFormat.h D3D: Fix 8-bit signed normals. Fixes lighting problems in Super Smash Bros Melee. misc tiny things 2009-09-13 21:18:04 +00:00
NativeVertexWriter.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
NativeVertexWriter.h fast commit : 2010-05-04 14:43:30 +00:00
OnScreenDisplay.cpp Kill the last timeGetTime calls. 2010-01-21 21:27:52 +00:00
OnScreenDisplay.h Moving more things out of GL into VideoCommon... 2009-09-03 20:37:35 +00:00
OpcodeDecoding.cpp Add a toggle option for OpenCL in Config (in Advanced Settings). Default is off. 2010-06-22 13:17:01 +00:00
OpcodeDecoding.h I hope you all like this. Changes: 2009-10-02 14:03:07 +00:00
PixelEngine.cpp My first commit :D 2010-06-24 13:28:54 +00:00
PixelEngine.h Hg: 2010-06-09 01:37:08 +00:00
PixelShaderGen.cpp little fix for error introduced in shader generator in R5842 2010-07-06 17:21:24 +00:00
PixelShaderGen.h some fixes to my last commit and .... 2010-06-14 14:36:01 +00:00
PixelShaderManager.cpp a little optimization in shaders constants setting , based on the same idea of nodchip changes. 2010-05-17 22:17:46 +00:00
PixelShaderManager.h Preparing stuff for DX11: 2010-06-12 15:49:21 +00:00
Profiler.cpp Kill the last timeGetTime calls. 2010-01-21 21:27:52 +00:00
Profiler.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
Render.h this is a pure optimization commit: 2010-07-02 17:09:53 +00:00
SConscript Simplify the SCons build: 2010-06-10 14:18:21 +00:00
Statistics.cpp 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
Statistics.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
TextureConversionShader.cpp HUGE commit :) 2010-06-05 00:01:18 +00:00
TextureConversionShader.h 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
TextureDecoder.cpp Add a toggle option for OpenCL in Config (in Advanced Settings). Default is off. 2010-06-22 13:17:01 +00:00
TextureDecoder.h 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. 2010-06-19 13:31:40 +00:00
VertexLoader.cpp VideoCommon: A minor speed up. 2010-06-23 03:02:15 +00:00
VertexLoader.h Removed more compiler warnings in linux. 2010-03-07 22:48:37 +00:00
VertexLoader_Color.cpp Got rid of all of jp's ////////////////////////////// lines (nearly 500 of them)! 2009-09-02 21:00:45 +00:00
VertexLoader_Color.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
VertexLoader_Normal.cpp VideoCommon: Added automatic selection routines for SSSE3/SSE4.1 codes. It selects SSSE3/SSE4.1 codes only if a proper preprocessor definition is defined and the target cpu supports SSSE3/SSE4.1. The selection routines in VertexLoader_* use function pointers. TextureDecoder uses a combination of "#if" and "if" statements. 2010-04-09 15:13:42 +00:00
VertexLoader_Normal.h VideoCommon: Added automatic selection routines for SSSE3/SSE4.1 codes. It selects SSSE3/SSE4.1 codes only if a proper preprocessor definition is defined and the target cpu supports SSSE3/SSE4.1. The selection routines in VertexLoader_* use function pointers. TextureDecoder uses a combination of "#if" and "if" statements. 2010-04-09 15:13:42 +00:00
VertexLoader_Position.cpp VideoCommon: Added automatic selection routines for SSSE3/SSE4.1 codes. It selects SSSE3/SSE4.1 codes only if a proper preprocessor definition is defined and the target cpu supports SSSE3/SSE4.1. The selection routines in VertexLoader_* use function pointers. TextureDecoder uses a combination of "#if" and "if" statements. 2010-04-09 15:13:42 +00:00
VertexLoader_Position.h VideoCommon: Added automatic selection routines for SSSE3/SSE4.1 codes. It selects SSSE3/SSE4.1 codes only if a proper preprocessor definition is defined and the target cpu supports SSSE3/SSE4.1. The selection routines in VertexLoader_* use function pointers. TextureDecoder uses a combination of "#if" and "if" statements. 2010-04-09 15:13:42 +00:00
VertexLoader_TextCoord.cpp VideoCommon: Added automatic selection routines for SSSE3/SSE4.1 codes. It selects SSSE3/SSE4.1 codes only if a proper preprocessor definition is defined and the target cpu supports SSSE3/SSE4.1. The selection routines in VertexLoader_* use function pointers. TextureDecoder uses a combination of "#if" and "if" statements. 2010-04-09 15:13:42 +00:00
VertexLoader_TextCoord.h VideoCommon: Added automatic selection routines for SSSE3/SSE4.1 codes. It selects SSSE3/SSE4.1 codes only if a proper preprocessor definition is defined and the target cpu supports SSSE3/SSE4.1. The selection routines in VertexLoader_* use function pointers. TextureDecoder uses a combination of "#if" and "if" statements. 2010-04-09 15:13:42 +00:00
VertexLoaderManager.cpp Fixed the crazy code in r5161. 2010-03-06 10:07:37 +00:00
VertexLoaderManager.h make DLCache compile on linux, required some weird casting so tell me 2009-08-10 06:18:10 +00:00
VertexShaderGen.cpp cleanup + some eolz 2010-07-06 13:14:51 +00:00
VertexShaderGen.h some fixes to my last commit and .... 2010-06-14 14:36:01 +00:00
VertexShaderManager.cpp space changes, merge #defines, language fix, and code reorder/cleanup :P 2010-06-05 01:38:22 +00:00
VertexShaderManager.h Preparing stuff for DX11: 2010-06-12 15:49:21 +00:00
VideoCommon.h some fixes to my last commit and .... 2010-06-14 14:36:01 +00:00
VideoConfig.cpp ok, here goes a really experimental commit: 2010-07-06 22:27:13 +00:00
VideoConfig.h ok, here goes a really experimental commit: 2010-07-06 22:27:13 +00:00
VideoState.cpp Moving pixel engine and command processor from core to video common. This will break previous save states. Adds decoding single pixels to texture decoder. 2009-10-10 21:19:39 +00:00
VideoState.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
XFBConvert.cpp Woops, that is why getting work group size failed 2009-10-07 07:44:35 +00:00
XFBConvert.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
XFMemory.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
XFMemory.h a minor cleanup in xf registers, an some small bug fixes. please test and give me feedback 2009-11-19 02:28:41 +00:00
XFStructs.cpp a minor cleanup in xf registers, an some small bug fixes. please test and give me feedback 2009-11-19 02:28:41 +00:00
XFStructs.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