summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/D3D/TextureCache.cpp
AgeCommit message (Collapse)Author
2019-02-19Move most backend functionality to VideoCommonStenzek
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-01VideoBackends: Restore the framebuffer as part of the API stateStenzek
It's not often we switch out to draw to the EFB anyway.
2017-12-06VideoCommon: Drop now unused efb2tex matrix generation.degasus
2017-12-06D3D: Use VideoCommon EFB-to-texture shadersStenzek
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-09-04D3D: Support logic op through integer render target viewStenzek
This brings D3D to parity with OpenGL and Vulkan.
2017-09-02D3D: Eliminate redundant ID3D11DeviceChild* castsLioncash
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-04-29TextureCache: Move host texture utility functions to VideoCommonStenzek
The appropriate place for these would be AbstractTexture, once it is finished.
2017-04-29D3D11: 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-12VideoBackends: Support updated texture encoding shader generatorsStenzek
2017-04-04D3D: Drop redundant interface TextureEncoderStenzek
2017-03-08Merge pull request #4999 from stenzek/renderer-staticsMarkus Wick
VideoCommon: Eliminate static state in Renderer
2017-03-04D3D11: Use D3D11_USAGE_DEFAULT for all TextureCache texturesStenzek
2017-03-04VideoCommon: Eliminate static state in RendererStenzek
2017-02-01ShaderGenCommon: 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-09TextureCacheBase: Eliminate static stateLioncash
2016-08-10D3D11: Support texture dumping of non-zero mipmap levelsStenzek
2016-06-24Reformat all the things. Have fun with merge conflicts.Pierre Bourdon
2016-03-26D3D11: Fix some cases where render target switches desynced StateManagerStenzek
This was occuring in certain EFB copy patterns, leaving the textures unbound for the next draw call.
2016-02-14Copy all layers of textures with CopyRectangleFromTexturemimimi085181
2016-02-14For partial texture updates check the dimensions of the efb copy and the ↵mimimi085181
target texture, not just the binary size. This should get Donkey Kong Country Returns characters to be as broken as they should be. They will be fixed in a later pr. Expected result is: efbtex: characters are always flickering or invisible, no matter what scaling or IR setting efb2ram: characters are always working properly at 1xIR, no matter what scaling or IR setting
2015-12-29TextureCache, fix an incorrect assert.Scott Mansell
2015-12-28D3D: Fix compilation error on windowsStenzek
2015-12-28Merge pull request #3295 from stenzek/d3d-xfb-msaaMarkus Wick
D3D: Fix multiple issues relating to MSAA
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-12-08D3D: Fix EFB depth buffer copies, filtering on scaled EFB copies when MSAA ↵Stenzek
is enabled, real XFB filtering Since ResolveSubresource cannot be used with depth textures (and throws an error with the debug layer enabled), use a shader which selects the minimum depth value from all samples. Changes the sampler by XFBEncoder to use a linear filter, rather than point, to match GL behavior.
2015-11-24D3D: Remove redundant cast, move pitch calculation to callerStenzek
2015-11-15TextureCache: Rewrite EFB Copy control flowdegasus
2015-11-15TextureCache: Split efb2ram from efb2texdegasus
2015-11-15D3D-TextureEncoder: Remove TCache::Entry usagedegasus
2015-11-06VideoCommon: rename TextureCache to TextureCacheBaseTillmann Karras
2015-09-07Make efb2tex behave more like efb2ram.Scott Mansell
Instead of having special case code for efb2tex that ignores hashes, the only diffence between efb2tex and efb2ram now is that efb2tex writes zeros to the memory instead of actual texture data. Though keep in mind, all efb2tex copies will have hashes of zero as their hash.
2015-09-06Fix palette conversions for 4 bit efb copies.Scott Mansell
Fixes purple shadow in THPS4 and many other things.
2015-09-06Move common EFB copy code into VideoCommonScott Mansell
Addded a few duplicated depth copy texture formats to the enum in TextureDecoder.h. These texture formats were already implemented in TextureCacheBase and the ogl/dx11 texture cache implementations.
2015-09-05Cleanup and unify handling of efb copy stride.Scott Mansell
2015-07-02Implement scaled partial texture updatesRodolfo Bogado
2015-06-21Support partial texture updates via efb copiesmimimi085181
2015-05-25Set copyright year to when a file was createdTillmann Karras
2015-05-25Update license headers to GPLv2+Tillmann Karras
2015-03-15quiet some warnings which appear on vs2015.Shawn Hoffman
quieted warnings include shadowed variable names and integer extensions.