summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/TextureCacheBase.h
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-02-29Merge pull request #3355 from ↵Pierre Bourdon
mimimi085181/partial-texture-updates-check-dimensions Partial texture updates: Check the dimensions of the efb copy
2016-02-15D3D12: Additions to VideoCommon to support D3D12 backend.hdcmeta
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-23TextureCacheBase: Simplify init/comparison of TCacheEntryConfigLioncash
2016-01-17VideoCommon: Header cleanupLioncash
Also remedies places where the video backends and core rely on things being indirectly included.
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-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-09-26Respect the stride for efb copies when hashing themmimimi085181
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-06General: Replace GC_ALIGN macros with alignasLioncash
Standard supported alignment -> out with compiler-specific.
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-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-06-09Code cleanup for FreeTexture after merging PR #2097mimimi085181
2015-06-05Search the texture cache for small textures by address and hashmimimi085181
This fixes issue 6563: https://code.google.com/p/dolphin-emu/issues/detail?id=6563 This PR adds a 2nd map to texture cache, which uses the hash as key. Cache entries from this new map are used only if the address matches or if the texture was fully hashed. This restriction avoids false positive cache hits. This results in a possible situation where safe texture cache accuracy could be faster than the fast one. Small textures means up to 1KB for fast texture cache accuracy, 4KB for medium, and all textures for safe accuracy. Since this adds a small overhead to all texture cache handling, some regression testing would be nice. Games, which use a lot of textures the same time, should be affected the most.
2015-05-26Merge pull request #2162 from degasus/prefetch_texMarkus Wick
CustomTexture: prefetch all available textures
2015-05-25Set copyright year to when a file was createdTillmann Karras
2015-05-25Update license headers to GPLv2+Tillmann Karras
2015-05-16CustomTexture: prefetch all available texturesdegasus
2015-04-15General: Apply the const specifier where applicableLioncash
2015-03-15quiet some warnings which appear on vs2015.Shawn Hoffman
quieted warnings include shadowed variable names and integer extensions.
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-25Formatting/Whitespace CleanupStevoisiak
Various fixes to formatting and whitespace
2015-02-19Remove TextureAddress struct.magumagu
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-02-18Allow multiple texture cache entries for textures at the same addressmimimi085181
This is the same trick which is used for Metroid's fonts/texts, but for all textures. If 2 different textures at the same address are loaded during the same frame, create a 2nd entry instead of overwriting the existing one. If the entry was overwritten in this case, there wouldn't be any caching, which results in a big performance drop. The restriction to textures, which are loaded during the same frame, prevents creating lots of textures when textures are used in the regular way. This restriction is new. Overwriting textures, instead of creating new ones is faster, if the old ones are unlikely to be used again. Since this would break efb copies, don't do it for efb copies. Castlevania 3 goes from 80 fps to 115 fps for me. There might be games that need a higher texture cache accuracy with this, but those games should also see a performance boost from this PR. Some games, which use paletted textures, which are not efb copies, might be faster now. And also not require a higher texture cache accuracy anymore. (similar sitation as PR https://github.com/dolphin-emu/dolphin/pull/1916)
2015-01-23Remove EFB to RAM cache, and simplify code.magumagu
2015-01-18TexCache: use an unordered_multimap for the tex pooldegasus
2015-01-18TexCache: also incude textures within the render target pooldegasus
2015-01-18TexCache: merge texture and rendertarget factory functiondegasus
2015-01-18TexCache: remove PC_TexFormatdegasus
We only support rgba32 for a while now, so there is no need to have everything in common configureable.
2015-01-11TexCache: Choose texture based on mipmap countdegasus
2015-01-11TexCache: create a const Config structdegasus
2015-01-11TexCache: cleanup max texture leveldegasus
2015-01-11TextureCache: inline arguments into texture cachedegasus
2015-01-11TexCache: clean up frameCount handlingdegasus
2015-01-11TexCache: unify global variablesdegasus