summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/Vulkan/TextureCache.cpp
AgeCommit message (Collapse)Author
2018-11-07Vulkan: Submit fewer command buffers in deferred EFB copies modeStenzek
2018-11-07TextureCache: Implement deferred/batched EFB copiesStenzek
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-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-01-11Vulkan: Move render pass management to ObjectCacheStenzek
2017-12-06VideoCommon: Drop now unused efb2tex matrix generation.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-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-07-30Vulkan: Move shader/pipeline-related methods to ShaderCacheStenzek
2017-06-13Video Backends: Split texture cache code out into separate files, introduce ↵iwubcode
'AbstractTexture'
2017-06-13Vulkan: Fix image layout assertion failing for palette texturesStenzek
2017-06-10Vulkan: Transition texture cache entries before usageStenzek
2017-04-29TextureCache: Move host texture utility functions to VideoCommonStenzek
The appropriate place for these would be AbstractTexture, once it is finished.
2017-04-29Vulkan: Support native compressed texturesStenzek
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-15Vulkan: Clamp framebuffer resolve rectangle to texture sizeStenzek
This is invalid and was causing the NVIDIA driver to throw an error.
2017-04-12VideoBackends: Support updated texture encoding shader generatorsStenzek
2017-04-01Vulkan: Implement compute-shader based GPU texture decodingStenzek
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-12-05Merge pull request #4489 from stenzek/vulkan-minor-fixesStenzek
Vulkan: Minor fixes
2016-12-04Vulkan: Use explicit barriers instead of dependanciesStenzek
At least on NV, some of these don't seem to have the intended effect. One known instance of this is in texture conversion.
2016-12-04Vulkan: Move XFB encoding/decoding to TextureConverterStenzek
2016-12-04Vulkan: Simplify palette texture conversionStenzek
2016-12-04Vulkan: Combine PaletteTextureConverter and TextureEncoder classesStenzek
2016-12-04Vulkan: Use an enumeration to index pipeline layoutsStenzek
2016-12-04Vulkan: Fix map error when texture dumping is enabledStenzek
2016-11-30Vulkan: Replace explicit command buffer submits with wrapper functionStenzek
Should we ever introduce anything else that has to be done when a command buffer is executed (e.g. invalidating constants from previous commit), we don't have to update all the callers.
2016-11-19Vulkan: Handle strided XFB copiesStenzek
Where src_rect.width * 2 != dst_stride.
2016-11-03Vulkan: Implement virtual/real XFB supportStenzek
2016-11-03Vulkan: Move CopyRectangleFromTexture to TextureCacheStenzek
2016-11-03Vulkan: Remove parameters/members of single-instance classesStenzek
There's not a lot of point in passing these around or storing them (texture cache/state tracker mainly) as there will only ever be a single instance of the class. Also adds downcast helpers such as Vulkan::Renderer::GetInstance().
2016-10-06Vulkan: Use correct source format to determine palette sizeStenzek
Fixes blur in fortune street fifologs.
2016-10-04Vulkan: Fix bug with palette converted EFB copiesStenzek
This happened when the source texture was an EFB copy, therefore it had not been populated prior to the draw command buffer being executed, and the conversion was occurring in the init command list.
2016-10-03Vulkan: Fix resource leaks present at shutdown and mode changesStenzek
Infrequent, but still happened.
2016-10-03Vulkan: Fix compilation on 32-bit targetsStenzek
2016-09-30Vulkan: Amend header includesLioncash
Adds headers where necessary to eliminate indirect includes. Also adds headers to ensure certain standard constructs always resolve correctly
2016-10-01Implement experimental Vulkan backendStenzek