mirror of
https://github.com/RPCSX/rpcsx.git
synced 2026-04-04 22:19:02 +00:00
RSX/SPU: Import and improve RSX accurate reservations functionality
This commit is contained in:
parent
b3c9f7647f
commit
d3ab62c4b1
2 changed files with 31 additions and 6 deletions
|
|
@ -19,6 +19,7 @@
|
|||
#include "Emu/Cell/lv2/sys_event.h"
|
||||
#include "Emu/Cell/lv2/sys_time.h"
|
||||
#include "Emu/Cell/Modules/cellGcmSys.h"
|
||||
#include "Emu/Memory/vm_reservation.h"
|
||||
#include "util/serialization_ext.hpp"
|
||||
#include "Overlays/overlay_perf_metrics.h"
|
||||
#include "Overlays/overlay_debug_overlay.h"
|
||||
|
|
@ -3103,8 +3104,19 @@ namespace rsx
|
|||
}
|
||||
}
|
||||
|
||||
rsx::reservation_lock<true> lock(sink, 16);
|
||||
vm::_ref<atomic_t<CellGcmReportData>>(sink).store({ timestamp(), value, 0});
|
||||
CellGcmReportData report_data{ timestamp(), value, 0};
|
||||
|
||||
if (sink < label_addr || sink >= label_addr + sizeof(RsxReports::report))
|
||||
{
|
||||
vm::light_op<false>(vm::_ref<atomic_t<CellGcmReportData>>(sink), [&](atomic_t<CellGcmReportData>& data)
|
||||
{
|
||||
data.release(report_data);
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
vm::_ref<atomic_t<CellGcmReportData>>(sink).store(report_data);
|
||||
}
|
||||
}
|
||||
|
||||
u32 thread::copy_zcull_stats(u32 memory_range_start, u32 memory_range, u32 destination)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue