mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-01 14:58:14 +00:00
GE Debugger: Centralize current fb tex fetch code.
This commit is contained in:
1 parent
999055791d
commit
fc9f200224
6 files changed
+26
-46
No files matched your search
@@ -456,21 +456,7 @@ DXGI_FORMAT TextureCacheD3D11::GetDestFormat(GETextureFormat format, GEPaletteFo
|
||||
bool TextureCacheD3D11::GetCurrentTextureDebug(GPUDebugBuffer &buffer, int level) {
|
||||
SetTexture();
|
||||
if (!nextTexture_) {
|
||||
if (nextFramebufferTexture_) {
|
||||
VirtualFramebuffer *vfb = nextFramebufferTexture_;
|
||||
buffer.Allocate(vfb->bufferWidth, vfb->bufferHeight, GPU_DBG_FORMAT_8888, false);
|
||||
bool retval = draw_->CopyFramebufferToMemorySync(vfb->fbo, Draw::FB_COLOR_BIT, 0, 0, vfb->bufferWidth, vfb->bufferHeight, Draw::DataFormat::R8G8B8A8_UNORM, buffer.GetData(), vfb->bufferWidth, "GetCurrentTextureDebug");
|
||||
// Vulkan requires us to re-apply all dynamic state for each command buffer, and the above will cause us to start a new cmdbuf.
|
||||
// So let's dirty the things that are involved in Vulkan dynamic state. Readbacks are not frequent so this won't hurt other backends.
|
||||
gstate_c.Dirty(DIRTY_VIEWPORTSCISSOR_STATE | DIRTY_BLEND_STATE | DIRTY_DEPTHSTENCIL_STATE);
|
||||
// We may have blitted to a temp FBO.
|
||||
framebufferManager_->RebindFramebuffer("RebindFramebuffer - GetCurrentTextureDebug");
|
||||
if (!retval)
|
||||
ERROR_LOG(G3D, "Failed to get debug texture: copy to memory failed");
|
||||
return retval;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
return GetCurrentFramebufferTextureDebug(buffer);
|
||||
}
|
||||
|
||||
// Apply texture may need to rebuild the texture if we're about to render, or bind a framebuffer.
|
||||
|
||||
Reference in new issue
Block a user