mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-08-01 13:48:56 +00:00
Decode EFB copies used as paletted textures.
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..
This commit is contained in:
parent
fbbbad98e9
commit
c0a4760f0e
10 changed files with 352 additions and 81 deletions
|
@ -209,6 +209,7 @@ void VertexManager::Flush()
|
|||
if (bpmem.tevind[i].IsActive() && bpmem.tevind[i].bt < bpmem.genMode.numindstages)
|
||||
usedtextures[bpmem.tevindref.getTexMap(bpmem.tevind[i].bt)] = true;
|
||||
|
||||
TextureCache::UnbindTextures();
|
||||
for (unsigned int i : usedtextures)
|
||||
{
|
||||
g_renderer->SetSamplerState(i & 3, i >> 2);
|
||||
|
@ -224,6 +225,7 @@ void VertexManager::Flush()
|
|||
ERROR_LOG(VIDEO, "error loading texture");
|
||||
}
|
||||
}
|
||||
TextureCache::BindTextures();
|
||||
}
|
||||
|
||||
// set global vertex constants
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue