mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-02-19 03:39:54 +00:00
rsx/capture: Force flip if no flip event was recorded
This commit is contained in:
parent
f48abde14b
commit
10d96a60f1
@ -1,4 +1,4 @@
|
|||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
#include "rsx_replay.h"
|
#include "rsx_replay.h"
|
||||||
|
|
||||||
#include "Emu/System.h"
|
#include "Emu/System.h"
|
||||||
@ -193,6 +193,7 @@ namespace rsx
|
|||||||
sys_rsx_context_attribute(context_id, 0x001, 0x20000000, fifo_stops[0], 0, 0);
|
sys_rsx_context_attribute(context_id, 0x001, 0x20000000, fifo_stops[0], 0, 0);
|
||||||
|
|
||||||
auto render = get_current_renderer();
|
auto render = get_current_renderer();
|
||||||
|
auto last_flip = render->int_flip_index;
|
||||||
|
|
||||||
size_t stopIdx = 0;
|
size_t stopIdx = 0;
|
||||||
for (const auto& replay_cmd : frame->replay_commands)
|
for (const auto& replay_cmd : frame->replay_commands)
|
||||||
@ -236,6 +237,13 @@ namespace rsx
|
|||||||
std::this_thread::sleep_for(10ms);
|
std::this_thread::sleep_for(10ms);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check if the captured application used syscall instead of a gcm command to flip
|
||||||
|
if (render->int_flip_index == last_flip)
|
||||||
|
{
|
||||||
|
// Capture did not include a display flip, flip manually
|
||||||
|
render->request_emu_flip(1u);
|
||||||
|
}
|
||||||
|
|
||||||
// random pause to not destroy gpu
|
// random pause to not destroy gpu
|
||||||
std::this_thread::sleep_for(10ms);
|
std::this_thread::sleep_for(10ms);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user