summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/VertexManagerBase.cpp
AgeCommit message (Collapse)Author
2015-01-25Fix a buffer underrun in CalculateZSlope.Scott Mansell
2015-01-24Coding style cleanup from the zfreeze mergeLioncash
2015-01-24Stop doing nastly shit to OpenGL stream buffers.Scott Mansell
Instead we keep the loaded vertices in CPU memory.
2015-01-24Move Zfreeze code out individual backends into videoCommonScott Mansell
Also: * Implement support for per-vertex PosMatrixIndex * Only update zslope constant once when zfreeze is activated. * Added a bunch of comments.
2015-01-23A few small cleanups based on code review.Scott Mansell
2015-01-23Ensure that ZSlopes save/restore state correctly.Scott Mansell
Had to re-do *ShaderManager so they saved their constant arrays instead of completly rebuilding them on restore state.
2015-01-23Reduce number of divisions in screenspace transform.Scott Mansell
This is closer to what the hardware does anyway.
2015-01-23Fixes Mario Tennis Gimmick Courts and adds support for FastDepthCalcNanoByte011
- Calculate ZSlope every flush but only set PixelShader Constant on Reset Buffer when zfreeze - Fixed another Pixel Shader bug in D3D that was giving me grief
2015-01-23Fix various issues with zfreeze implemntation.Scott Mansell
Results are still not correct, but things are getting closer. * Don't cull CULLALL primitives so early so they can be used as reference planes. * Convert CalculateZSlope to screenspace coordinates. * Convert Pixelshader to screenspace coordinates (instead of worldspace xy coordinates, which is totally wrong) * Divide depth by 2^24 instead of clamping to 0.0-1.0 as was done before. Progress: * Rouge Squadron 2/3 appear correct in game (videos in rs2 save file selection are missing) * Shadows draw 100% correctly in NHL 2003. * Mario golf menu renders correctly. * NFS: HP2, shadows sometimes render on top of car or below the road. * Mario Tennis, courts and shadows render correctly, but at wrong depth * Blood Omen 2, doesn't work.
2015-01-23Cleanup and refactor of zfreeze portNanoByte011
Based on the feedback from pull request #1767 I have put in most of degasus's suggestions in here now. I think we have a real winner here as moving the code to VertexManagerBase for a function has allowed OGL to utilize zfreeze now :) Correct use of the vertex pointer has also corrected most of the issue found in pull request #1767 that JMC47 stated. Which also for me now has Mario Tennis working with no polygon spikes on the characters anymore! Shadows are still an issue and probably in the other games with shadow problems. Rebel Strike also seems better but random skybox glitches can show up.
2015-01-11TextureCache: inline arguments into texture cachedegasus
2014-12-20GeometryShaderManager: Set stereo parameters in a SetConstants() call.Jules Blok
Doing it in SetProjectionChanged() is too early because the projection type is not set yet.
2014-12-18GeometryShaderManager: Set the constants within the callbacks.Jules Blok
2014-12-14VideoCommon: Add a separate constants buffer for the geometry shader.Jules Blok
2014-12-09VideoCommon: clean up VertexLoaderdegasus
2014-11-20Vertex Loader: SSE implementations of more position/texcoord/normal formatsFiora
~35-45% faster NFS:HP2, possibly other vertex-bound games.
2014-10-25Convert some VideoCommon stuff to BitSet.comex
Now with a minor performance improvement removed for no reason.
2014-09-24Added a xf.numtexgen != bp.numtextgen error log if there is a mismatch detected.skidau
2014-09-08Include CommonTypes.h instead of Common.h.Rohit Nirmal
2014-06-11Fix a few warnings caused by using BitField with non-typesafe functions.Tony Wasserka
2014-05-18Merge pull request #355 from magumagu/gx-missing-opcodeTony Wasserka
Opcode decoding: handle missing opcodes 0x88 etc.
2014-05-16Video backends: mass-replace "xfregs" with "xfmem".magumagu
2014-05-10Opcode decoding: handle missing opcodes 0x88 etc.magumagu
Hardware testing shows that they do the same thing as the 0x80 family of opcodes: they draw quads.
2014-03-25BPMemory: Expose the pixel_format and zformat fields in PE_CONTROL as ↵Tony Wasserka
enumerations.
2014-03-11Fixes spacing for "for", "while", "switch" and "if"Matthew Parlane
Also moved && and || to ends of lines instead of start. Fixed misc vertical alignments and some { needed newlining.
2014-02-18Convert all includes to relative paths.Lioncash
2014-02-15move perfquery enable checks into videocommon (caller side)degasus
2014-02-15move shared parts from VertexManager::vFlush into VideoCommondegasus
2014-01-31VideoCommon: small VertexLoader(Manager)? refactoringdegasus
2014-01-24VideoCommon: fix "Buffer not large enough for all vertices!"degasus
2014-01-23D3D: move streaming buffer fallback into D3D backenddegasus
Neith OGL nor VideoCommon doen't use it, so there is no need to have it in VideoCommon.
2014-01-23VideoCommon: don't save streaming fifos into savestatedegasus
2014-01-23VideoCommon: allow backends to set the buffer pointer as they want todegasus
2014-01-21fix windows debug comiledegasus
This is broken because of revision ebbf1d392bc5a90b556d793c07b789e100f10615
2014-01-21VideoCommon: merge trivial parts of VertexManager::Flushdegasus
2014-01-17VideoCommon: merge triangle+list+point index buffersdegasus
We are used to render them out of order as long as everything else matches, but rendering order does matter, so we have to flush on primitive switch. This commit implements this flush. Also as we flush on primitive switch, we don't have to create three different index buffers. All indices are now stored in one buffer. This will slow down games which switch often primitive types (eg ztp), but it should be more accurate.
2013-12-31Remove unnecessary Src/ foldersJasper St. Pierre