Framedumps: Add finish() function to limit memory lifetime.
This commit is contained in:
parent
ebc617882b
commit
b5a91e1dfa
|
@ -891,6 +891,7 @@ void Renderer::SwapImpl(u32 xfbAddr, u32 fbWidth, u32 fbStride, u32 fbHeight,
|
|||
formatBufferDump((u8*)map.pData, image.data(), source_width, source_height, map.RowPitch);
|
||||
|
||||
DumpFrameData(image.data(), source_width, source_height, AVIDump::DumpFormat::FORMAT_BGR, true);
|
||||
FinishFrameData();
|
||||
|
||||
D3D::context->Unmap(s_screenshot_texture, 0);
|
||||
}
|
||||
|
|
|
@ -869,6 +869,7 @@ void Renderer::SwapImpl(u32 xfb_addr, u32 fb_width, u32 fb_stride, u32 fb_height
|
|||
source_height, dst_location.PlacedFootprint.Footprint.RowPitch);
|
||||
|
||||
DumpFrameData(image.data(), source_width, source_height, AVIDump::DumpFormat::FORMAT_BGR, true);
|
||||
FinishFrameData();
|
||||
|
||||
D3D12_RANGE write_range = {};
|
||||
s_screenshot_texture->Unmap(0, &write_range);
|
||||
|
|
|
@ -1470,6 +1470,7 @@ void Renderer::SwapImpl(u32 xfbAddr, u32 fbWidth, u32 fbStride, u32 fbHeight,
|
|||
|
||||
DumpFrameData(image.data(), flipped_trc.GetWidth(), flipped_trc.GetHeight(),
|
||||
AVIDump::DumpFormat::FORMAT_RGBA, true);
|
||||
FinishFrameData();
|
||||
}
|
||||
// Finish up the current frame, print some stats
|
||||
|
||||
|
|
|
@ -497,6 +497,7 @@ void Renderer::SwapImpl(u32 xfb_addr, u32 fb_width, u32 fb_stride, u32 fb_height
|
|||
static_cast<int>(m_screenshot_render_texture->GetWidth()),
|
||||
static_cast<int>(m_screenshot_render_texture->GetHeight()),
|
||||
AVIDump::DumpFormat::FORMAT_RGBA);
|
||||
FinishFrameData();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -605,6 +605,10 @@ void Renderer::DumpFrameData(const u8* data, int w, int h, AVIDump::DumpFormat f
|
|||
#endif
|
||||
}
|
||||
|
||||
void Renderer::FinishFrameData()
|
||||
{
|
||||
}
|
||||
|
||||
void Renderer::FlipImageData(u8* data, int w, int h, int pixel_width)
|
||||
{
|
||||
for (int y = 0; y < h / 2; ++y)
|
||||
|
|
|
@ -150,6 +150,7 @@ protected:
|
|||
bool IsFrameDumping();
|
||||
void DumpFrameData(const u8* data, int w, int h, AVIDump::DumpFormat format,
|
||||
bool swap_upside_down = false);
|
||||
void FinishFrameData();
|
||||
|
||||
static volatile bool s_bScreenshot;
|
||||
static std::mutex s_criticalScreenshot;
|
||||
|
|
Loading…
Reference in New Issue