summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/TextureCacheBase.cpp
AgeCommit message (Collapse)Author
2016-06-18TextureCache: Rename functions and add comments to clear up docsScott Mansell
2016-06-17TextureCache: Track efb copies used in a partially updated textureScott Mansell
Fixes a major preformance regression in Skies of Arcadia during battle transisions. I had plans for a more advanced version of this code after 5.0, but here is a minimal implemenation for now.
2016-04-09Partial updates for paletted texturesmimimi085181
This pr fixes another regression that happened after pr #3165 was merged. The shadows in mario baseball should now work again.
2016-04-09Merge pull request #3752 from ↵Pierre Bourdon
mimimi085181/remove-use-only-once-restriction-partial-updates Remove the restriction to use efb copies only once as partial update
2016-04-02Partial texture updates: Allow the efb copy to start before the texturemimimi085181
This is an oversight from pr https://github.com/dolphin-emu/dolphin/pull/3266 . Thanks to degasus for pointing this out. It's possible that MAX_TEXTURE_BINARY_SIZE can be optimised, but i wanted to play it safe considering the 5.0 stable release.
2016-03-27Remove the restriction to apply efb copies only once as partial updatemimimi085181
I'm not entirely sure what is happening, but this optimisation is causing an issue in Sonic Riders: Zero Gravity. Apparently the issue would also be fixed by PR#3747, but this PR should also fix similar issues. Games that use partial updates might get slower with this, so some performance regression testing would be nice. Games like New Super Mario Bros, RS2, Zelda TP and Silent Hill. Testing with high graphics settings makes sense, since this would mostly end up in more work for the GPU.
2016-03-24VideoCommon: Refactor TexMode0 mipmaps disabled test into a helper functionEmptyChaos
2016-03-16Minor fixes to the partial updates codemimimi085181
- remove an outdated comment about the efb to ram and scaled efb restriction - when upscaling efb copies, mark the new texture as efb copy - dx12 fixes for the src box, especially the number of layers for 3D
2016-03-16Partial texture updates with parts of efb copies new versionmimimi085181
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
2016-01-30Merge pull request #3480 from phire/memory_stride_too_smallPierre Bourdon
Avoid the "Memory stride too small" assert
2016-01-17VideoCommon: Header cleanupLioncash
Also remedies places where the video backends and core rely on things being indirectly included.
2016-01-13TextureCacheBase: Change CalculateLevelSize to match D3D/OGL sizesStenzek
This was causing crashes/driver resets when odd-dimension textures were being loaded, due to the size we were uploading being larger than the size of the higher-level texture calculated by the runtime.
2016-01-09Avoid the "Memory stride too small" assertScott Mansell
EFB2Tex still has no idea what to do with these weird textures so we simply disable EFB2Tex when one is encountered.
2015-12-29Merge pull request #3407 from phire/fix_assertMarkus Wick
TextureCache, fix an incorrect assert.
2015-12-29HiresTextures: Remove the need to explicitly free SOIL allocated dataLioncash
2015-12-29TextureCache, fix an incorrect assert.Scott Mansell
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-01Fix lens flares in Mario Kart Wii.Scott Mansell
2015-11-24TextureCache: Allow the backends to return nullptr for textures.degasus
2015-11-17TextureCache: Fix crash for invalid textures.degasus
2015-11-15TextureCache: Rewrite EFB Copy control flowdegasus
2015-11-15TextureCache: Split efb2ram from efb2texdegasus
2015-11-06VideoCommon: drop unused variable/setterTillmann Karras
2015-11-06VideoCommon: rename TextureCache to TextureCacheBaseTillmann Karras
2015-10-22TextureCacheBase: Change CacheLinesPerRow to BytesPerRowLioncash
2015-10-18Check the hashes of efb copies before applying them as partial texture updatesmimimi085181
2015-10-15Do not delete strided efb copies on loadmimimi085181
This hopefully allows to use partial texture updates with strided efb copies that start at the same offset as the loaded texture
2015-09-26Respect the stride for efb copies when hashing themmimimi085181
2015-09-22FifoRecorder: Use Video Common to record efb2ram correctly.Scott Mansell
Texture updates have been moved into TextureCache, while TMEM updates where moved into bpmem. Code for handling efb2ram updates was added to TextureCache. There was a bug for preloaded RGBA8 textures, it only copied half the texture. The TODO was wrong too.
2015-09-12Fix performance regression in Sonic the Fighters, introduced by PR#2001mimimi085181
2015-09-12Merge pull request #3019 from mimimi085181/store-base-hashScott Mansell
Store the base hash for paletted textures in the texture cache entries
2015-09-11Merge pull request #2972 from lioncash/alignflacs
General: Replace GC_ALIGN macros with alignas
2015-09-10Store the base hash for paletted textures in the texture cache entriesmimimi085181
2015-09-10Perform garbage collection for efb copiesmimimi085181
This checks every TEXTURE_KILL_THRESHOLD frames, to see if the hash for the memory area of the efb copy has hanged. If it has changed, the efb copy can be removed, it wouldn't be used anymore. Before this pr, some efb copies would never be deleted. Fixes issue https://bugs.dolphin-emu.org/issues/6101 and possibly some other VRAM leaks.
2015-09-07FifoPlayer: Don't check efb copy hashes when plaing back a broken dffScott Mansell
2015-09-06General: Replace GC_ALIGN macros with alignasLioncash
Standard supported alignment -> out with compiler-specific.
2015-09-07Workaround to allow partial texture updates to keep working in NSMBWiiScott Mansell
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-06Use ROUND_UP instead of custom bittwiddling.Scott Mansell
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-28Use emplace() instead of insert() where applicable for maps.Lioncash
2015-06-24Merge branch 'stable'Jules Blok
2015-06-24Quick fix for an invalid iteratormimimi085181
2015-06-21Support partial texture updates via efb copiesmimimi085181
2015-06-12Options: merge SCoreStartupParameter into SConfigdegasus
2015-06-09Code cleanup for FreeTexture after merging PR #2097mimimi085181