1
0
mirror of https://github.com/RPCS3/rpcs3.git synced 2025-01-31 20:41:45 +01:00

cellgcm: Fix SET_REFERENCE initial value

This commit is contained in:
eladash 2018-09-19 08:32:08 +03:00 committed by kd-11
parent e6b68b260a
commit 1a6c819176
3 changed files with 4 additions and 3 deletions

View File

@ -427,7 +427,7 @@ s32 _cellGcmInitBody(vm::pptr<CellGcmContextData> context, u32 cmdSize, u32 ioSi
auto& ctrl = vm::_ref<CellGcmControl>(m_config->gcm_info.control_addr);
ctrl.put = 0;
ctrl.get = 0;
ctrl.ref = -1;
ctrl.ref = 0; // Set later to -1 at RSX initialization
render->intr_thread = idm::make_ptr<ppu_thread>("_gcm_intr_thread", 1, 0x4000);
render->intr_thread->run();

View File

@ -122,7 +122,7 @@ s32 sys_rsx_context_allocate(vm::ptr<u32> context_id, vm::ptr<u64> lpar_dma_cont
auto &dmaControl = vm::_ref<RsxDmaControl>(*lpar_dma_control);
dmaControl.get = 0;
dmaControl.put = 0;
dmaControl.ref = 0xFFFFFFFF;
dmaControl.ref = 0; // Set later to -1 by cellGcmSys
memset(&RSXIOMem, 0xFF, sizeof(RSXIOMem));

View File

@ -1274,6 +1274,7 @@ namespace rsx
if (get_current_renderer()->isHLE)
{
// Commands injected by cellGcmInit
registers[NV406E_SEMAPHORE_OFFSET] = 0x30;
registers[NV406E_SEMAPHORE_ACQUIRE] = 0x1;
registers[NV406E_SET_CONTEXT_DMA_SEMAPHORE] = 0x66616661;
@ -1802,7 +1803,7 @@ namespace rsx
registers[NV308A_POINT] = 0x0;
registers[NV308A_SIZE_OUT] = 0x0;
registers[NV308A_SIZE_IN] = 0x0;
registers[NV406E_SET_REFERENCE] = 0xffffffff;
registers[NV406E_SET_REFERENCE] = get_current_renderer()->ctrl->ref = 0xffffffff;
}
}