summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/Src/PixelShaderGen.cpp
AgeCommit message (Collapse)Author
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-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-03-19Game-specific video settings:skidau
* Moved the config validity check to reflect the emulator enforced settings at the config dialog * Removed some obsolete validity checks * Corrected "EnablePixelLighting" typo in the ini files Fixes issue 4277. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7374 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-05Split shader code generation for lighting into a separate file.donkopunchstania
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7088 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-05Rework XF register loading a bit and change how registers are arranged in ↵donkopunchstania
memory. This removes the assumption that all data for a viewport or projection matrix will be available when index 0 is loaded. Fixes issue 3688 and probably breaks old save states (sorry). git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7083 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-29If perspective divide is enabled and texture coordinate Z is 0 then leave ↵donkopunchstania
texture coordinates alone. Fixes issue 3676. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6964 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-29initial implementation of fog range adjust, I don't think is correct or work ↵Rodolfo Osvaldo Bogado
right but is a start. some tweaks and fixes. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6957 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-27Clean out the long since bit-rotted video profiling code.Soren Jorvang
Profiler.{cpp,h} also happened to be the only dupliated filenames left in Source, the absence of which should make link-time optimization easier to get working. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6935 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-25second try, a compilable :) fix for issue 3976 and some optimizations to ↵Rodolfo Osvaldo Bogado
color loading that will not mess with colors. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6917 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-25buildfixShawn Hoffman
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6912 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-25revert my optimizations until i fix some errors and really fix issue 3976Rodolfo Osvaldo Bogado
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6911 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-24little fix for issue 3976.Rodolfo Osvaldo Bogado
some optimization for vertex color loading, please test for any change in game color, this is a optimization so nothing should change :) git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6908 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
2010-12-19fix Issue 3539Rodolfo Osvaldo Bogado
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6622 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-16Revert most stuff from r6517 and revert r6501.NeoBrainX
PixelShaderGen changes broke Mario Kart Wii, ClearScreen changes broke Super Mario Sunshine. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6592 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-05Fix the nogui build on linux. The software plugin config dialog should not ↵Glenn Rice
be built. Fix the default wiimote emulation mouse button settings on linux. Fix a little c++ operator precedence issue. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6534 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-05First pass at dealing with different size_t/off_t sizes in C90 environments.Soren Jorvang
Most of the code dealing with the LogTypes namespace was C which lead to a lot of nonsensical casting, so I have dumbed LOG_TYPE and LOG_LEVEL down to plain C even though the move of wiiuse into Source means we don't currently call GenericLog from C. Set logging threshold to MAX_LOGLEVEL at startup so debug builds will also p rint debugging messages before the GUI is running. For some reason the way we use SetDefaultStyle doesn't play nice with wx 2.9 so we just get the default black text on a black background. Using a gray background works around that problem, but I found it to also be much easier on the eyes so I have switched the background color on all versions. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6528 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-05little fix for r6517Rodolfo Osvaldo Bogado
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6520 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-04two fixes in this commit:Rodolfo Osvaldo Bogado
first fix for issues introduced in sms in r6501, please test for a regressions in The Calling Second Fix for Issue 3539, by making pixel Dept calculation an option. in games with this issue Enabling pixel depth will solve the issue, in other games disabling the option will not cause speed lost some cleanup in dlist cache git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6517 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-01Change comparison in specular light function. Fixes issue 1258.donkopunchstania
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6505 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-01Avoid repeatedly asserting in SWG plugin when matrix indices don't match. ↵donkopunchstania
Small change to the transform unit to avoid some unnecessary work. Check if Q is zero before dividing UV coordinates by it. Fixes issue 3454. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6504 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-24DX11: Fix mipmaps. Someone forgot creating them at the proper time ;PNeoBrainX
DX11: Fix a DX11 debug runtime error caused by the vertex shader output signature and the pixel shader input signature not matching if per-pixel lighting is disabled. Someone forgot disabling those pixel shader parameters ;P DX11: Enable use of dynamic textures wherever possible. DX9: Remove two unnecessary TODOs. Someone forgot removing those since they've been obsolete for a long time ;P Anyway, at least working mipmaps and dynamic textures should increase DX11 performance a bit. And "a bit" is more than my usual "marginally" ;) git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6473 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-23Related FOG changes:gnick79
* revert back to proper upscale mantissa of parameters A and C * properly downscale magnitude to 0.24 bits instead than ≡0.23 * Z Eyespace conversion for projection by original patent concept git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6463 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-23OpenGL plugin: Support for dual-source blending, CURRENTLY DISABLED. It ↵Nolan Check
doesn't work yet. To fix it, we may need to convert all our shaders to GLSL so that we can use glBindFragDataLocation. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6306 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-10-20DX11 plugin: Do destination-alpha in a single pass. No more drawing the same ↵Nolan Check
geometry twice! SMG is faster now because it uses destination-alpha extensively. This uses dual-source color blending, a DirectX 10-level feature. The equivalent OpenGL function comes from the GL_ARB_blend_func_extended extension, which was made core in OpenGL 3.3. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6294 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-10a little bugfix and a small optimization.Rodolfo Osvaldo Bogado
this should fix issue 3313 but i can't test it git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6267 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-16long time no commits :).Rodolfo Osvaldo Bogado
fixed one of the last graphic problems in smg, now the glow in the plants and planets must be correct. the error was caused by a error in lighting calculations. so it must affect other games. please test and let me know the results. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6103 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-23Further *BSD portability.Soren Jorvang
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5958 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-06little fix for error introduced in shader generator in R5842Rodolfo Osvaldo Bogado
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5844 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-06cleanup + some eolzluisr142004
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5842 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-29little fix for may last commitRodolfo Osvaldo Bogado
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5813 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-29this commit is divided in 4 parts:Rodolfo Osvaldo Bogado
1 - Optimize pixelshadergen to avoid redundant register overflow math, with this if a game don't need this will be not applied. this must bring some fill rate back and improve speed a little in fill rate limited systems. 2- some corrections to vertexshadergen to avoid uninitialized texture coordinates, dono if is the correct way to fix it but t least it will make house of the dead overkill playable in dx11. the bad thing: still missing geometri in dx9, in dx11 it works exactly as on opengl. 3 - some optimization made to improve fps a little wih the latests changes made to fifo. * back to the original code in beginfield as now it will work right. * check for efb access more often as a lot of time is lost waiting for efb access 4 - apply a little fix for missing textures in nvidia opengl tanks to Wagnard28 for finding that nvidia does not like invalid shader id :) please test for any regression git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5812 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-14some fixes to my last commit and ....Rodolfo Osvaldo Bogado
modify shader generator to produce native sm 4.0 code. eliminate compatibility mode in dx11 so now all shader must work much better. please test. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5691 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-13Add a DX11 video plugin.NeoBrainX
Might or might not work for you, yet. Anyway, read the soon to be created forum thread on this plugin before asking any questions. Huge thanks to rodolfoosvaldobogado for helping me out in various areas. Also, thanks to everyone on IRC who supported me during development ;) git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5680 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-27lets apply some mathematical magic:Rodolfo Osvaldo Bogado
* optimize may last commit to make it faster * reorder the code to make it more readable please test and enjoy git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5520 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-05-27ultra experimental commit. fixed tev functionality, now it must be almost ↵Rodolfo Osvaldo Bogado
perfect emulating native hardware. please test as many games as you can this should impact a lot of games. enjoy git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5511 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-05-23Rework the logic for avoiding lerp() in shader codepierre
This should give the exact same shader code except for the cases of SELA == SELB and SELC == 1, the latter only for the color combinder. In these two cases the results of the shader should not change in any way. It would have been possible to optimize the SELC == HALF case too, if the actual factor had been 0.5f instead of 0.4980392f. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5472 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-05-22Use symbolic names instead of numbers and bump cache versionpierre
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5464 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-05-22Modify r5462 as requested by rodolfoosvaldobogadopierre
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5463 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-05-22The result of the last texenv stage is used regardless of destination registerpierre
The real hardware probably always sends the result of its computations to the alpha test/fog units, in parallel to its registers, but those only take the result of the last texenv stage. This makes grass show up in ZTP, where the last texenv stage oddly writes to reg #3 instead of #0. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5462 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