mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-15 19:28:43 +12:00
rsx-capture: unbreak
This commit is contained in:
parent
eba2216c4a
commit
5ee351234c
4 changed files with 9 additions and 10 deletions
|
@ -132,18 +132,15 @@ s32 sys_rsx_context_allocate(vm::ptr<u32> context_id, vm::ptr<u64> lpar_dma_cont
|
||||||
else
|
else
|
||||||
rsx::get_current_renderer()->main_mem_size = 0x10000000; //256MB
|
rsx::get_current_renderer()->main_mem_size = 0x10000000; //256MB
|
||||||
|
|
||||||
vm::var<sys_event_queue_attribute_t> attr;
|
vm::var<sys_event_queue_attribute_t, vm::page_allocator<>> attr;
|
||||||
attr->protocol = SYS_SYNC_PRIORITY;
|
attr->protocol = SYS_SYNC_PRIORITY;
|
||||||
attr->type = SYS_PPU_QUEUE;
|
attr->type = SYS_PPU_QUEUE;
|
||||||
attr->name_u64 = 0;
|
attr->name_u64 = 0;
|
||||||
vm::var<u32> queueId(0);
|
|
||||||
sys_event_queue_create(queueId, attr, 0, 0x20);
|
|
||||||
driverInfo.handler_queue = queueId->value();
|
|
||||||
|
|
||||||
sys_event_port_create(queueId, SYS_EVENT_PORT_LOCAL, 0);
|
sys_event_port_create(vm::get_addr(&driverInfo.handler_queue), SYS_EVENT_PORT_LOCAL, 0);
|
||||||
sys_event_port_connect_local(queueId->value(), driverInfo.handler_queue);
|
m_sysrsx->rsx_event_port = driverInfo.handler_queue;
|
||||||
|
sys_event_queue_create(vm::get_addr(&driverInfo.handler_queue), attr, 0, 0x20);
|
||||||
m_sysrsx->rsx_event_port = queueId->value();
|
sys_event_port_connect_local(m_sysrsx->rsx_event_port, driverInfo.handler_queue);
|
||||||
|
|
||||||
const auto render = rsx::get_current_renderer();
|
const auto render = rsx::get_current_renderer();
|
||||||
render->display_buffers_count = 0;
|
render->display_buffers_count = 0;
|
||||||
|
|
|
@ -23,7 +23,7 @@ namespace rsx
|
||||||
fmt::throw_exception("Capture Replay: context alloc failed");
|
fmt::throw_exception("Capture Replay: context alloc failed");
|
||||||
const auto& contextInfo = vm::_ref<rsx_context>(contextAddr);
|
const auto& contextInfo = vm::_ref<rsx_context>(contextAddr);
|
||||||
|
|
||||||
if (sys_rsx_device_map(vm::make_var<u64>(0), vm::null, 0x8) != CELL_OK)
|
if (sys_rsx_device_map(vm::get_addr(&contextInfo.dev_addr), vm::null, 0x8) != CELL_OK)
|
||||||
fmt::throw_exception("Capture Replay: sys_rsx_device_map failed!");
|
fmt::throw_exception("Capture Replay: sys_rsx_device_map failed!");
|
||||||
|
|
||||||
if (sys_rsx_memory_allocate(vm::get_addr(&contextInfo.mem_handle), vm::get_addr(&contextInfo.mem_addr), 0x0F900000, 0, 0, 0, 0) != CELL_OK)
|
if (sys_rsx_memory_allocate(vm::get_addr(&contextInfo.mem_handle), vm::get_addr(&contextInfo.mem_addr), 0x0F900000, 0, 0, 0, 0) != CELL_OK)
|
||||||
|
|
|
@ -214,6 +214,7 @@ namespace rsx
|
||||||
{
|
{
|
||||||
struct rsx_context
|
struct rsx_context
|
||||||
{
|
{
|
||||||
|
be_t<u64> dev_addr;
|
||||||
be_t<u32> mem_handle;
|
be_t<u32> mem_handle;
|
||||||
be_t<u32> context_id;
|
be_t<u32> context_id;
|
||||||
be_t<u64> mem_addr;
|
be_t<u64> mem_addr;
|
||||||
|
|
|
@ -486,7 +486,8 @@ bool Emulator::BootRsxCapture(const std::string& path)
|
||||||
GetCallbacks().on_run();
|
GetCallbacks().on_run();
|
||||||
m_state = system_state::running;
|
m_state = system_state::running;
|
||||||
|
|
||||||
fxm::make<rsx::rsx_replay_thread>(std::move(frame));
|
fxm::make<named_thread<rsx::rsx_replay_thread>>("RSX Replay", std::move(frame));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue