Merge pull request #12698 from iwubcode/xfb_copy_hash_in_present
VideoCommon: add xfbs hashes to present info if available
This commit is contained in:
commit
8268ae1cf7
|
@ -175,6 +175,25 @@ void Presenter::ViSwap(u32 xfb_addr, u32 fb_width, u32 fb_stride, u32 fb_height,
|
|||
present_info.reason = PresentInfo::PresentReason::VideoInterface;
|
||||
}
|
||||
|
||||
if (m_xfb_entry)
|
||||
{
|
||||
// With no references, this XFB copy wasn't stitched together
|
||||
// so just use its name directly
|
||||
if (m_xfb_entry->references.empty())
|
||||
{
|
||||
if (!m_xfb_entry->texture_info_name.empty())
|
||||
present_info.xfb_copy_hashes.push_back(m_xfb_entry->texture_info_name);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (const auto& reference : m_xfb_entry->references)
|
||||
{
|
||||
if (!reference->texture_info_name.empty())
|
||||
present_info.xfb_copy_hashes.push_back(reference->texture_info_name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BeforePresentEvent::Trigger(present_info);
|
||||
|
||||
if (!is_duplicate || !g_ActiveConfig.bSkipPresentingDuplicateXFBs)
|
||||
|
|
|
@ -3,6 +3,9 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include <string_view>
|
||||
#include <vector>
|
||||
|
||||
#include "Common/CommonTypes.h"
|
||||
#include "Common/HookableEvent.h"
|
||||
|
||||
|
@ -71,6 +74,8 @@ struct PresentInfo
|
|||
|
||||
// Accuracy of actual_present_time
|
||||
PresentTimeAccuracy present_time_accuracy = PresentTimeAccuracy::Unimplemented;
|
||||
|
||||
std::vector<std::string_view> xfb_copy_hashes;
|
||||
};
|
||||
|
||||
// An event called just as a frame is queued for presentation.
|
||||
|
|
Loading…
Reference in New Issue