summaryrefslogtreecommitdiff
path: root/Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp
AgeCommit message (Collapse)Author
2011-06-11Revert r7421 and r7422.NeoBrainX
Should fix issue 4413. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7592 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-06-10just a little cleanup to maintain minimal interfacesRodolfo Osvaldo Bogado
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7591 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-06-05fix buildJordan Woyak
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7586 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-06-04Allows DX9 shaders to be SM2 compatible again at the loss of accuracy. SM3 ↵Sonicadvance1
is recommended. Fixes issue 4546. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7585 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-04-30Add a partial fix for 4xSSAA in D3D9 (issue 4090).NeoBrainX
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7495 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-03-30Eliminated a memcpy in DX11's vertex shader disk cache loading. Maybe games ↵Jordan Woyak
will boot faster now, who knows? git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7422 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-03-30I think clean up DX11 code a bit. Used "smart" pointers to avoid need to ↵Jordan Woyak
manually AddRef/Release in many places. Eliminated the D3DBlob class (replaced with just D3D10CreateBlob). Eliminated some Init/Shutdown functions (moved stuff into ctors/dtors). This should not affect behavior at all, only code maintainability. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7421 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-03-01More conversion from char * to std::string.Glenn Rice
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7266 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-28Convert GetUserPath to return a std::string instead of a const char *. This ↵Glenn Rice
simplifies its usage in most cases. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7265 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-24Just a small accuracy fix for r6819, fixes the pixel line in the volumetric ↵sl1nk3.s
fog effect of Metroid Prime (closes issue 4162) git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7236 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-04D3D9: Some fixes to EFB format reinterpretation. Should be more correct now.NeoBrainX
Might fix issue 3780. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7062 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-31Eliminated the plugin interface. Merged DX9/DX11/OGL video plugins into ↵Jordan Woyak
Dolphin. It could still use a lot of cleanup. Lots of things are still named "plugin". Software renderer is temporarily disabled until it gets some namespaces. I only updated vs08/10, Linux/OSX builds are broken. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6996 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-29Put some stuff in the gfx plugins into namespaces, so that the symbols won't ↵hrydgard
collide if someone decides to merge the gfx plugins into dolphin too. still more things left to do though. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6972 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-11Sneak in a quick fix for the sun effect in Wind Waker and Mario Sunshine ↵sl1nk3.s
before anyone notice it's broken ! git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6819 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-09some little optimizations and some cleaning.Rodolfo Osvaldo Bogado
now lighting should be fully functional again in SM 2.0 cards git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6794 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-07normalize the efb to texture process for color textures to make it work the ↵Rodolfo Osvaldo Bogado
same in all the plugins and with the same accuracy as real hardware (almost :)) please test for regressions and fixes. some little changes to make pixel shader more dx9 sm2.0 friendly. the condition is not to use pixel lighting ( sorry no hardware support for the quantity of parameters needed). git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6777 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-06a little cleanup of dx9 depth conversion code that r6751 made unnecessary, ↵nitsuja-
and a question about D3DFMT_D24X8 checks, and (most importantly) spelled Stretch right in video config git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6757 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-05improve z copy a little further in 4 bits copy,Rodolfo Osvaldo Bogado
fix and error introduced by my last commit in dx11 plugin git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6754 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-05corrected depth copy shader in dx9/dx11 to improve accuracy when doing efb ↵Rodolfo Osvaldo Bogado
to texture for depth formats git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6751 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-27Implement pixel data reinterpretation on EFB format change.NeoBrainX
Whatever that means, it fixes that stupid Super Mario Sunshine glitch and possibly lots of other stuff, so test as many glitchy games as possible with this ;) git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6669 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-27Second Experimental commit: Rodolfo Osvaldo Bogado
corrected peek color and peek z to correctly emulate real hardware formats. implements native gamma correction.(i don't own any game that uses this functionality so i will appreciate feedback) i need a lot of feedback in this changes please enjoy git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6664 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-19reduced frequency of dx9 ps_2_0 pixel generation errors, and made dx9 efb ↵nitsuja-
depth peek of 16-bit depth buffer not use 24-bit adjustment factor. shouldn't affect other the plugins. (probably nobody else cares, but I need at least one video plugin that actually works on this computer) git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6618 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-05Merged the D3D9 debugger into VideoCommon/VideoUICommon:NeoBrainX
Separated UI from debugger functionality. Generally cleaned up that stuff. Most functionality needs to be reimplemented now, but will be available to D3D9, D3D11 as well as OpenGL then. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6523 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-29DX9 debugger improvements:NeoBrainX
- Fix "Pause at next" functionality for pixel/vertex shader changes, finished frames and texture changes. - Implement dumping vertex declaration and vertex/index data. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6496 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-15Made LinearDiskCache a template class. Keys are now some POD type (fixed ↵Jordan Woyak
size). Eliminates casting and key size checking. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6420 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-31DX9, Debugger: Implement pixel/vertex shader and texture dumping.NeoBrainX
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6322 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-21Put infrastructure in place so that other plugins may support dual-source ↵Nolan Check
blending. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6296 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-30Added EFB Scale option to the OpenGL plug-in.skidau
Renamed EFB Scale to Internal Resolution. Removed Auto Scale option (it is now always on). Added on-the-fly changing of the Internal Resolution in the OpenGL and Direct3D9 plug-ins. Further consolidated the code in the video plug-ins. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6240 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-28Minor code formatting:skidau
First step to bring a level of consistency between the video plug-ins - variable names, spacing, function names, function order, comments, file names. This will help us identify common code for VideoMerge. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6235 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-23i know still a lot to fix and much work to do but sometimes experiments are ↵Rodolfo Osvaldo Bogado
fun :) for all the plugins implemented per pixel lighting, this will make games that uses lighting a lot nice. (just look at mario sunshine and compare :)) for dx9: implemented temporal anaglyph stereo: just grab your red-cyan glasses and enjoy. stereo calibration: use stereo separation ( distance of the point from you are looking) and Focal Angle: the angle necessary to focus in one particular object. this settings are different in every games as they use different depth ranges. please for any regression and bug introduced by this commit. if you ask why i did not implement stereo in dx11 and opengl the reason is one: they don't work right when i have more time will try to find a way to make them work. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6224 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-08-29Remove a bunch of freshly-obsolete codeNolan Check
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6148 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-08-08DX9/OGL: Remove some superfluous checks (this is already done in VideoCommon).NeoBrainX
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6073 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-18big changes here:Rodolfo Osvaldo Bogado
- Eliminate the useless check for cpu modifications option from efb to ram as it must be enabled always - use constant names in dx11 for buffer length calculation instead to simplify code reading - implemented scaled efb copy in opengl, still bugy in some games, the option is not in the gui but will add it when it works perfect - Change the depth calculation behavior: if the game use z textures is exactly the same as before. if the game do not use z texture calculate z values in the vertex shader. the advantage id this approach is that early z culling is applied, improving fill rate. this mus speed up things, even with ssaa and msaa enabled. please test for regression and enjoy. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5896 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-02this is a pure optimization commit:Rodolfo Osvaldo Bogado
return to the old values in constants in pixelshader, the old values give mi 3 or 4 fps more,(maybe some kind of compiler optimization) in some games and with the current algorithm i notice no difference with this values, please report any problem. optimizes SSAA to make it a little faster and, the quality should be the same but with a little speedup. change the way the frame is processed depending is xfb is enabled or not to make this a little faster. please test and report any problem git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5820 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-20D3D9: Delete some long dead code. Also add one more statistic: number of ↵hrydgard
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-19D3D9: Fix issue where the shader caches were lost whenever the render window ↵hrydgard
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-14fast fix for pixel shader compilation in dx11Rodolfo Osvaldo Bogado
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5687 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-12Preparing stuff for DX11:NeoBrainX
- be more strict with the input signature of generated pixel shaders - replace the D3D parameter with an API_TYPE one, so that we can further distinguish between DX9 and DX11 - for what it's worth dx11 (using vs_4_0) doesn't support D3DCOLORtoUBYTE4; added a workaround for this - add a "dx9-" prefix to the shader cache files to avoid conflicts with dx11 shaders Apart from that we're calling CommandProcessor::Shutdown() in main.cpp,Shutdown() now. Delete all files in User/ShaderCache if you want to save a few KB disk space :P git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5659 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-05HUGE commit :)Rodolfo Osvaldo Bogado
in general cleanup and bugfix disable pierre patch for the moment as it causes problem in some games and hopefully fix the remaining missing textures for nvidia users in opengl. make the code in pixelshadergen looks nice and readable. D3D: this is a ultra experimental commit please check for regressions or error. make the efb Scale / super sampling level customizable to improve the output quality and let the user configure quality according to his hardware. is everyone likes this change will translate it to opengl please test git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5612 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-05-28Improve iterator usage.Jordan Woyak
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5528 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-05-19after a good commit lets make some experiments:Rodolfo Osvaldo Bogado
implemented fixed efb scale to improve alignment and discard some error caused by incorrect scale. make both plugins work similar. this must improve opengl image quality a lot. also implemented dynamic resizing in opengl, this way the resolution math the windows resolution on resize. this is highly experimental so please test a lot. implemented shader dumping on error thinking in future experiments with shaders. enjoy :) git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5458 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-05-17a little optimization in shaders constants setting , based on the same idea ↵Rodolfo Osvaldo Bogado
of nodchip changes. a MAYORRRRRR change in pixel shader generation, please review all games you can and leave comments this must improve accuracy in graphic emulation a lot. for example: mario eyes in super mario galaxy, water pod transparency an water transparency on game intro in super mario sunshine, etc. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5457 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-25finish proper window handling, fix the modal state of the config dialogs, ↵luisr142004
plus some minor cleanup/changes :p git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5129 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-08second try to implement a more correct safe texture cache, implemented full ↵Rodolfo Osvaldo Bogado
hashing of tlut textures as they are the more problematic, this should solve virtually all the problems with characters in all the games that have them. sorry to tell but this will bring a speed drop, so let you decide if this change stay or not.( used the fastest open source hash algorithm i know) do not apply full hashing to other format because it kills the performance. for popular request added 9x SSAA believe me will kill your graphic card even if is the best but the image quality is exceptional. as always please test and let me know the results. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5034 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-04fixed some glitches caused by SSAA when resolving the supersampled efb to ↵Rodolfo Osvaldo Bogado
Textures. improve speed a little in games that have large viewports. please test and let me know the results git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5009 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-03 a lot of people don't get convinced by my "Pseudo-antialiasing " effect and ↵Rodolfo Osvaldo Bogado
is true is not near the quality of the true effect so :) true antialiasing using supersampling: 3 modes implemented: 2x = is a one and a half samples supersampled buffer with a linear texture fetch, this produce a similar result of a 2x MSAA 4x = four samples with a aligned texture fetch in the center of the 4 samples, this produce a little best effect that the first mode. 8x = is a four samples with a rotated grid fetching producing a nicer (really nicer in some cases) antialiasing. please test an let me know if you like this :) i remember to everyone that supersampling is expensive so don't complain in speed drops :) git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5006 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-03some cleanup, housekeeping for error cases and increased a few buffer sizes ↵j4ck.fr0st
that are overflown by its content. Thanks to Fatalis for the initial patch and pointing us to cppcheck. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5004 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-03a lot of modifications here :)Rodolfo Osvaldo Bogado
first fixed scaling when updating backbuffer to make it friendly with encoders, now frame dumping must work without errors in any codec. clean screenshot and frame dumping code now is more correct, faster and stable. improve safe texture cache, improving the distribution of the hash algorithm, including tlut hash in the final hash of the texture, and making use of a 64 bit hash to make it more accurate. clean a lot of code and corrected some missused vertex formats when drawing full screen quads. and biggest change last: implemented pseudo antialiasing: a image post-process algorithm that mimics antialiazing and is fare more easier to implement in this scenario. you can change the intensity of the effect changing the values of the antialiasing combo. the right value depends on the game. for example mkwii looks awesome with 8x. please try all the changes and let me know the results. if something is broken, please let me know and will fix it asap. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5000 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-02Linux global build. At least the basic footwork is done here.Glenn Rice
Basic usage: "sudo scons install=global install" Hopefully this doesn't break builds on Macs. I have tested this on linux and windows. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4994 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-17(build fix in debugfast mode)Shawn Hoffman
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4873 8ced0084-cf51-0410-be5f-012b33b47a6e