summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/TextureCacheBase.h
AgeCommit message (Collapse)Author
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
2015-01-11TexCache: rename OverlapsMemoryRangedegasus
2015-01-11TexCache: don't invalidate efb copys because of config changesdegasus
We'll loose data on invalidating them. So just keep them until a new copy is done. A wrong scaled copy is better than no copy if the game doesn't creates a new one.
2015-01-10TexCache: remove expanded_widthdegasus
This variable isn't use any more.
2015-01-10TexCache: Wipe pal hashdegasus
2014-12-29VideoCommon: Merge code to generate texture names on dumpingdegasus
2014-12-29VideoCommon: rewrite custom texturesdegasus
2014-12-24VideoConfig: Rename "StereoMonoEFBDepth" to "StereoEFBMonoDepth"Jules Blok
Makes a little bit more sense.