summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/Src/VertexLoader.cpp
AgeCommit message (Collapse)Author
2013-09-20Fix stack misalignment issues.comex
- Call ABI_AlignStack even on x86-64. - Have ABI_AlignStack respect the difference in current alignment between the root JIT function, which has a prolog, and ProtectFunction thunks, which do not. This was causing many games to crash on start on OS X. Since this might otherwise mean changing the stack pointer before every call... - Have one prolog/epilog function rather than two (one of which definitely did not do what it was thought to do), and make it actually work like a normal one, so that the stack frame shows up properly in the debugger. There should be no performance impact.
2013-04-24Formatting cleanup for VideoCommon.Lioncash
Block braces on new lines. Also killed off trailing whitespace and dangling elses. Spaced some things out to make them more readable (only in places where it looked like a bit of a clusterfuck).
2013-04-19Fix a bunch of random typos in comments and logging.lioncash
Also update the comment headers for two functions in GCMemcard.cpp.
2013-04-17New license header introduced for DiscIO, AudioCommon, InputCommon, ↵Lioncash
VideoCommon, and Common projects.
2013-04-08Merge branch 'master' into primitive_restartdegasus
Conflicts: Source/Core/VideoCommon/Src/VideoConfig.h Source/Plugins/Plugin_VideoDX9/Src/main.cpp Source/Plugins/Plugin_VideoOGL/Src/Render.cpp
2013-03-31Fix some typos and correct some capitalizations in the log messages.Lioncash
Makes the logging look more orderly and less spammy when spitting out things.
2013-03-29first try of primitive restart index generatordegasus
Convert all quads+triangles into trangle_strip and uses primitive restart to split them. Speed up triangle_strip, but slows down all others primitive formats. Only implemented in ogl.
2013-03-19Clean up more space/tab mismatches in AudioCommon, Common, and VideoCommon.lioncash
Not planning to touch Core since it's the most actively changed part of the project.
2013-03-06Merge branch 'master' into GLSL-masterdegasus
the only commit on master is to fix vertexloader, so disable jit for osx
2013-03-06fix vertexloader without jitdegasus
2013-03-04Merge branch 'master' into vertex-loader-cleanupJordan Woyak
Conflicts: Source/Core/Common/Src/CommonFuncs.h Source/Core/VideoCommon/Src/VertexLoader.cpp
2013-03-04Move copy-pasted code into function.Jordan Woyak
2013-02-27Tweak Vertex/Index buffer handling a bit.Jordan Woyak
2013-02-26ARM Support without GLSLRyan Houdek
2013-02-22Use DataWrite in a few more places.Jordan Woyak
2013-02-22VertexManager cleanupJordan Woyak
2013-02-21Experimental VertexLoader cleanup!Jordan Woyak
2013-02-21bbox: replace s_pCurBufferPointer with locale buffer, so it can be read ↵degasus
without read from the writeonly buffer
2013-02-21converting the last vertices again instead of copying from buffer on buffer ↵degasus
split for mapping, this buffer must be write only, so we cannot copy anthing. converting again needs more cpu, but should happen rarely
2012-12-10Clean up gcc/g++ compiler warnings that have accumulated.Glenn Rice
2011-10-28Bounding Box bugfixes.crudelios
- Fixes all (I hope) BBox-related unknown pointer crashes. - Fixes wrong BBox values with Frame Skip on (and the resulting unknown pointer crashes). - Fixes a small oversight on the change I made to the ISO Properties dialog. This should also be a (very very little) bit faster than the previous version.
2011-10-26Added proper Bounding Box support.crudelios
Should fix most graphical issues with Paper Mario: TTYD and Super Paper Mario. Fixes issue 360. Since only those two games seem to require BBox support, and as per ector's suggestion, BBox is only enabled for those two games. BBoxes and Display List Caches don't get along too well, causing Paper Mario: TTYD to hang during certain effects where BBoxes are used. For now, I disabled DList Cache for the Paper Mario games, hopefully both will be compatible in the future.
2011-03-21Moved per-game graphics configuration to the game-list right click menu. It ↵Jordan Woyak
will be too difficult to make the "profiles" drop-down thing work with 3-state vs 2-state checkboxes. The per-game settings now have "undetermined" states, except for the radio buttons(I'll fix that later). It's super hacky right now. Video config (probably all config stuff) could be redone. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7386 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-03-12Fix things so that those who wish to compile with -std=c++0x can. To active ↵Glenn Rice
this with the cmake build add CXXFLAGS="-std=c++0x" before cmake on the command line, or export that variable. This enables the experimental features like std::thread, std::mutex, etc., that are provided by g++ instead of using the implementation in dolphin. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7333 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-03-04First Revert my changes to VertexLoader.cpp, i don't own the games that get ↵Rodolfo Osvaldo Bogado
error so i revert the changes until i can test it myself. Second: A experiment. implemented parallelization in texture decoding using openmp. is most a experiment to test the performance in different os/plataforms. in my system (windows x64 amd 1055t) give a speedup in large textures, but i tested in in intel dual core and gives a slowdown. o i limited the use for large textures and cpus with more than 3 cores. please test an let me know if it improves or degrades the speed. please for linux and osx user. to enable this you will have to enable your compiler support for openmp to test this code. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7284 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-25some cleaning in dlist cache, runvertices and runcompiledverticesRodolfo Osvaldo Bogado
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7246 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-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-19rework the normal loading now it should be a accurate as real hardware.Rodolfo Osvaldo Bogado
more accurate means more slow so no complains about speed lost, will optimize later. please test for regression, but i hope you will get a nice surprise about this commit :). git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6881 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-18some adjustments in Normal loading to improve lighting in dx9.Rodolfo Osvaldo Bogado
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6874 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-05Fix VideoCommon build configuration for DebugFast/x64.NeoBrainX
VertexLoader: Align bounding box registers properly, the hardware reads them in 2x2 blocks. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6524 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-26Minor change to ease video plugin merging. Made static ↵Jordan Woyak
NativeVertexFormat::Create function into a virtual function of VertexManager. I believe this is the last bit of code which is only declared in VideoCommon and defined in each of the plugins. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6479 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-21Polish, fix and otherwise improve the video plugin configuration dialog:NeoBrainX
- Add some info about a backend's feature set (MSAA, Real XFB, EFB to RAM, ..) to VideoConfig - Gray out options if they aren't supported by the backend or if changing them doesn't affect anything (e.g. changing STC mode if STC is disabled) - Allow signed bytes for D3D11. Not sure if this causes glitches, but it should work - Call wxEvent.Skip() in the event function handlers, not sure if this fixes any bugs but the old code definitely caused bugs during development of this patch - Fix a memory leak in the configuration dialog if D3D11 is used - Other minor stuff that doesn't need to be mentioned or which I forgot git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6450 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-14more work on dlist caching now should be a little fasterRodolfo Osvaldo Bogado
a little bugfix in vertex loading and some fixes. not much time to work these days but at least i can spend a little time fixing thing. please test for regressions. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6409 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-10-03Merged identical VertexManager code from DX9/DX11/OGL plugins into ↵Jordan Woyak
VideoCommon. Still need to merge VertexManager::Flush (will be easier after TextureCache is merged). Purposely using a class/virtualfuncs rather than a namespace so multiple VertexManager can be in one plugin (VideoMergeNew? :p). git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6249 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-14VideoCommon: A minor optimization.nodchip
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6204 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-08-30some fixes for dlist, now is configurable in the video config section, still ↵Rodolfo Osvaldo Bogado
not in the gui, disabled by default till a fix for segfaults in linux and geometry problems in some games git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6155 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-08-29fully implemented display list cache with vertex data included and added in ↵Rodolfo Osvaldo Bogado
all the plugins. still experimental, not totally optimized but must bring a nice speed up please test for regressions an error. an please Linux people fix scons :) git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6149 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-23VideoCommon: A minor speed up.nodchip
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5772 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-26For these assertions to trip, enums in CPMemory.h which seem pretty much setSoren Jorvang
in stone would have to change. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5496 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-05-04fast commit :Rodolfo Osvaldo Bogado
make native mips loading an option to prevent performance lost in game that not need this functionality.( thanks to dorian.fevrier for point the performance lost.) added a patch from pierre@pirsoft.de to avoid vertex drops when index array is full in opengl implementation that do not support large index arrays git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5432 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-04-09VideoCommon: Added automatic selection routines for SSSE3/SSE4.1 codes. It ↵nodchip
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. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5302 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-28Refactored VertexLoader::CompileVertexTranslator(). Now texture coordinates ↵nodchip
loaders are also selected from a function table. I will add a hack to increase the speed in the next commit. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5140 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-28Refactored VertexLoader::CompileVertexTranslator(). Now the vertex position ↵nodchip
loader is selected from a function table. I will apply the same kind of refactoring to texture coordinates loader. This is a pre-preparation to optimize texture coordinates loaders. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5139 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-24Reverted because of some processor and performance issue. I will develop in ↵nodchip
a branch about SSSE3/SSE4.1. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5123 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-24Added SSSE3/SSE4.1 code for speed up. The code does not work in this ↵nodchip
revision because cpu_info is not initialized properly. I will fix the issue in another commit. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5119 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-12Fix missing shading in NSMBWii etc in the D3D plugin. Now, I'm not entirely ↵hrydgard
sure why the existing code didn't work properly, but hey, this fixes it :) git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4810 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-10-10Moving pixel engine and command processor from core to video common. This ↵donkopunchstania
will break previous save states. Adds decoding single pixels to texture decoder. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4391 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-26r4322 commented out an important Flush() call - restore that.hrydgard
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4323 8ced0084-cf51-0410-be5f-012b33b47a6e