summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL/TextureCache.cpp
AgeCommit message (Collapse)Author
2019-02-19Move most backend functionality to VideoCommonStenzek
2019-01-19OGL: Fix broken stereoscopy geometry shader for EFB copiesStenzek
2018-11-07TextureCache: Implement deferred/batched EFB copiesStenzek
2018-10-20Refactoring and cleanup of GLInterface (now GLContext)Stenzek
2018-08-30GL/TextureCache: Clean up inline shader codespycrab
2018-05-22EFB2RAM: Apply copy filter as a float coefficient after samplingStenzek
Using 8-bit integer math here lead to precision loss for depth copies, which broke various effects in games, e.g. lens flare in MK:DD. It's unlikely the console implements this as a floating-point multiply (fixed-point perhaps), but since we have the float round trip in our EFB2RAM shaders anyway, it's not going to make things any worse. If we do rewrite our shaders to use integer math completely, then it might be worth switching this conversion back to integers. However, the range of the values (format) should be known, or we should expand all values out to 24-bits first.
2018-05-17Merge pull request #6743 from stenzek/faster-disabled-copy-filterMarkus Wick
TextureConversionShader: Don't sample from adjacent rows when not needed
2018-05-05OGL: Fix incorrect clamping in EFB copiesStenzek
2018-05-03TextureConversionShader: Don't sample from adjacent rows when not neededStenzek
2018-04-29Implement EFB copy filter and gamma in hardware backendsStenzek
Also makes y_scale a dynamic parameter for EFB copies, as it doesn't make sense to keep it as part of the uid, otherwise we're generating redundant shaders.
2018-03-14Assert: Uppercase assertion macrosLioncash
Macros should be all upper-cased. This is also kind of a wart that's been sticking out for quite a while now (we avoid prefixing underscores).
2018-03-01VideoBackends: Restore the framebuffer as part of the API stateStenzek
It's not often we switch out to draw to the EFB anyway.
2018-02-22OGL: Track state of last bound vertex array objectStenzek
This reduces the overhead of calling glBindVertexArray() every time RestoreAPIState() is called, even when it is redundant.
2018-01-22AbstractTexture: Move Bind() method to RendererStenzek
This makes state tracking simpler, and enables easier porting to command lists later on.
2017-12-06VideoCommon: Drop now unused efb2tex matrix generation.degasus
2017-12-02VideoCommon: Rename TextureConversionShader namespace.degasus
2017-12-02VideoCommon: Create a namespace for TextureConversionShaderGen.degasus
2017-12-02VideoBackends: Use VideoCommon shader generators for efb2tex copies.Markus Wick
This will generate one shader per copy format. For now, it is the same shader with the colmat hard coded. So it should already improve the GPU performance a bit, but a rewrite of the shader generator is suggested. Half of the patch is done by linkmauve1: VideoCommon: Reorganise the shader writes.
2017-11-22VideoCommon: Move abstract texture creation function to RendererStenzek
2017-11-18VideoConfig: Make StereoMode an enum classLioncash
Makes for more strongly-typed identifiers (and doesn't pollute surrounding namespaces)
2017-11-17HybridXFB: Fix lint errorsiwubcode
2017-11-17Video Common: Add XFB decoding via the GPUiwubcode
2017-10-21TextureCache: don't create texture decoding resources if not enabledMichael M
2017-09-17OGL/TextureCache: Move file statics to the TextureCache classLioncash
These rely on instance state, or are used within instance-based class member functions, so they should belong to the instance itself instead of being file statics.
2017-08-03Video: Clearly separate Texture and EFB Copy formatsN.E.C
Improve bookkeeping around formats. Hopefully make code less confusing. - Rename TlutFormat -> TLUTFormat to follow conventions. - Use enum classes to prevent using a Texture format where an EFB Copy format is expected or vice-versa. - Use common EFBCopyFormat names regardless of depth and YUV configurations.
2017-06-13Video Backends: Split texture cache code out into separate files, introduce ↵iwubcode
'AbstractTexture'
2017-06-07fix various instances of -1 being assigned to unsigned typesShawn Hoffman
2017-04-29TextureCache: Move host texture utility functions to VideoCommonStenzek
The appropriate place for these would be AbstractTexture, once it is finished.
2017-04-29OGL: Use native compressed textures on supported driversStenzek
2017-04-29TextureCache: Support compressed textures and pass pitch/size to uploadStenzek
This also removes an extra copy of the image for custom textures.
2017-04-12VideoBackends: Support updated texture encoding shader generatorsStenzek
2017-04-07TextureCache: Fix incomplete GPU texture decoding of non-square mipsStenzek
2017-04-01OGL: Add GPUTimer class for measuring execution time of a draw/dispatchStenzek
2017-04-01OGL: Implement GPU texture decoding backendStenzek
2017-04-01OGL: Use ARB_texture_storage to allocate TextureCache entriesStenzek
This ensures that they are complete textures by decoding time, as when using compute shaders we write directly to the destination texture.
2017-04-01OGL: Fix render-target texture mipmap allocationStenzek
The loop was allocating one-too-many levels, as well as incorrect sizes for each level. Probably not an issue as mipmapped render targets aren't used, but the logic should be correct anyway.
2017-02-01LightingShaderGen: Remove unnecessary includesLioncash
2016-12-26TextureCache: Drop unused parameter in backend API.degasus
2016-12-26TextureCache: Extract BP enum check to VideoCommon.degasus
We have TOO many video backends.
2016-12-23Merge pull request #4224 from lioncash/tcacheMat M
TextureCacheBase: Eliminate static state
2016-12-15TextureCache: Use same color coefficients for EFB2Tex as EFB2RAMStenzek
2016-12-09TextureCacheBase: Eliminate static stateLioncash
2016-10-01VideoBackends: Make TextureCache::CompileShaders return a boolStenzek
2016-09-09OGL: Remove unnecessary c_str callsLioncash
2016-06-24Reformat all the things. Have fun with merge conflicts.Pierre Bourdon
2016-02-14Copy all layers of textures with CopyRectangleFromTexturemimimi085181
2015-12-29TextureCache, fix an incorrect assert.Scott Mansell
2015-12-26ShaderGeneration: Get rid of static buffersLioncash
2015-12-21StreamBuffer: Make factory function return a std::unique_ptrLioncash
2015-11-30Make sure not to use a GL texture buffer past the max size.Ryan Houdek
The spec says that vendors can set the max texture size to be 65KB and we want 1MB. Check the maximum supported and drop to the max if it is less than 1MB