mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-15 11:18:36 +12:00
RSX/GL/Null: Move semaphore handling to backend
This commit is contained in:
parent
01bb63b1a6
commit
288581cb43
5 changed files with 74 additions and 22 deletions
|
@ -201,43 +201,40 @@ void RSXThread::DoCmd(const u32 fcmd, const u32 cmd, const u32 args_addr, const
|
|||
}
|
||||
|
||||
case NV4097_SET_SEMAPHORE_OFFSET:
|
||||
{
|
||||
m_PGRAPH_semaphore_offset = ARGS(0);
|
||||
break;
|
||||
}
|
||||
|
||||
case NV406E_SEMAPHORE_OFFSET:
|
||||
{
|
||||
m_set_semaphore_offset = true;
|
||||
m_semaphore_offset = ARGS(0);
|
||||
m_PFIFO_semaphore_offset = ARGS(0);
|
||||
break;
|
||||
}
|
||||
|
||||
case NV406E_SEMAPHORE_ACQUIRE:
|
||||
{
|
||||
if (ARGS(0))
|
||||
{
|
||||
LOG_WARNING(RSX, "TODO: NV406E_SEMAPHORE_ACQUIRE: 0x%x", ARGS(0));
|
||||
}
|
||||
semaphorePFIFOAcquire(m_PFIFO_semaphore_offset, ARGS(0));
|
||||
break;
|
||||
}
|
||||
|
||||
case NV406E_SEMAPHORE_RELEASE:
|
||||
{
|
||||
m_PFIFO_semaphore_release_value = ARGS(0);
|
||||
break;
|
||||
}
|
||||
|
||||
case NV4097_TEXTURE_READ_SEMAPHORE_RELEASE:
|
||||
{
|
||||
if (m_set_semaphore_offset)
|
||||
{
|
||||
m_set_semaphore_offset = false;
|
||||
vm::write32(m_label_addr + m_semaphore_offset, ARGS(0));
|
||||
}
|
||||
semaphorePGRAPHTextureReadRelease(m_PGRAPH_semaphore_offset, ARGS(0));
|
||||
break;
|
||||
}
|
||||
|
||||
case NV4097_BACK_END_WRITE_SEMAPHORE_RELEASE:
|
||||
{
|
||||
if (m_set_semaphore_offset)
|
||||
{
|
||||
m_set_semaphore_offset = false;
|
||||
u32 value = ARGS(0);
|
||||
value = (value & 0xff00ff00) | ((value & 0xff) << 16) | ((value >> 16) & 0xff);
|
||||
|
||||
vm::write32(m_label_addr + m_semaphore_offset, value);
|
||||
}
|
||||
u32 value = ARGS(0);
|
||||
value = (value & 0xff00ff00) | ((value & 0xff) << 16) | ((value >> 16) & 0xff);
|
||||
semaphorePGRAPHBackendRelease(m_PGRAPH_semaphore_offset, value);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue