summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/VertexManagerBase.cpp
AgeCommit message (Collapse)Author
2016-02-15D3D12: Additions to VideoCommon to support D3D12 backend.hdcmeta
2016-01-17VideoCommon: Header cleanupLioncash
Also remedies places where the video backends and core rely on things being indirectly included.
2016-01-02VideoBackend: Get rid of a boolean globalLioncash
Also gets rid of global headers
2015-12-20VideoBackends: Simplify initialization and deinitialization of resourcesLioncash
Approximately three or four times now, the issue of pointers being in an inconsistent state been an issue in the video backend renderers with regards to tripping up other developers. Global (ugh) resources are put into a unique_ptr and will always have a well-defined state of being - null or not null
2015-11-06VideoCommon: rename TextureCache to TextureCacheBaseTillmann Karras
2015-11-02VertexManagerBase: fix indentationTillmann Karras
2015-11-02VideoCommon: VertexManager -> VertexManagerBaseTillmann Karras
It may be a bit weird to see calls to static functions in VertexManagerBase now, but at least it's easier to see what's going on.
2015-09-09VideoCommon: Drop "Disable destAlpha" hackdegasus
This option has no use any more, neither performance nor driver workaround.
2015-06-07zfreeze: cache vertex positionsTillmann Karras
Suggested by degasus.
2015-05-29zfreeze: fix 2-component positionsTillmann Karras
2015-05-25Add missing license headersTillmann Karras
2015-03-02TextureCache: load all mipmap levels from custom texturesdegasus
This drops the "feature" to load level 0 from the custom texture and all other levels from the native one if the size matches. But in my opinion, when a custom texture only provide one level, no more should be used at all.
2015-02-22VideoCommon: use a new async event system for efb accessdegasus
2015-02-19Decode EFB copies used as paletted textures.magumagu
A number of games make an EFB copy in I4/I8 format, then use it as a texture in C4/C8 format. Detect when this happens, and decode the copy on the GPU using the specified palette. This has a few advantages: it allows using EFB2Tex for a few more games, it, it preserves the resolution of scaled EFB copies, and it's probably a bit faster. D3D only at the moment, but porting to OpenGL should be straightforward..
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.