mirror of
https://github.com/RPCSX/rpcsx.git
synced 2026-04-07 07:25:26 +00:00
Some things improved
shared_mutex_t implemented GUI Emu Callbacks rewritten fxm::import, fxm::import_always implemented cellMsgDialog rewritten Emu.CallAfter improved (returns std::future)
This commit is contained in:
parent
9d68c16c62
commit
8ae3401ffa
77 changed files with 1814 additions and 1831 deletions
|
|
@ -665,28 +665,28 @@ void syncLFQueueInitialize(vm::ptr<CellSyncLFQueue> queue, vm::cptr<void> buffer
|
|||
|
||||
if (direction == CELL_SYNC_QUEUE_ANY2ANY)
|
||||
{
|
||||
queue->pop1 = {};
|
||||
queue->push1 = {};
|
||||
queue->pop1.store({});
|
||||
queue->push1.store({});
|
||||
queue->m_buffer.set(queue->m_buffer.addr() | 1);
|
||||
queue->m_bs[0] = -1;
|
||||
queue->m_bs[1] = -1;
|
||||
//m_bs[2]
|
||||
//m_bs[3]
|
||||
queue->m_v1 = -1;
|
||||
queue->push2 = { { 0xffff } };
|
||||
queue->pop2 = { { 0xffff } };
|
||||
queue->push2.store({ 0xffff });
|
||||
queue->pop2.store({ 0xffff });
|
||||
}
|
||||
else
|
||||
{
|
||||
queue->pop1 = { { 0, 0, queue->pop1.load().m_h3, 0 } };
|
||||
queue->push1 = { { 0, 0, queue->push1.load().m_h7, 0 } };
|
||||
queue->pop1.store({ 0, 0, queue->pop1.load().m_h3, 0});
|
||||
queue->push1.store({ 0, 0, queue->push1.load().m_h7, 0 });
|
||||
queue->m_bs[0] = -1; // written as u32
|
||||
queue->m_bs[1] = -1;
|
||||
queue->m_bs[2] = -1;
|
||||
queue->m_bs[3] = -1;
|
||||
queue->m_v1 = 0;
|
||||
queue->push2 = {};
|
||||
queue->pop2 = {};
|
||||
queue->push2.store({});
|
||||
queue->pop2.store({});
|
||||
}
|
||||
|
||||
queue->m_v2 = 0;
|
||||
|
|
@ -823,7 +823,7 @@ s32 _cellSyncLFQueueGetPushPointer(PPUThread& ppu, vm::ptr<CellSyncLFQueue> queu
|
|||
{
|
||||
CHECK_EMU_STATUS;
|
||||
|
||||
const auto old = queue->push1.load_sync();
|
||||
const auto old = queue->push1.load(); _mm_lfence();
|
||||
auto push = old;
|
||||
|
||||
if (var1)
|
||||
|
|
@ -921,7 +921,7 @@ s32 _cellSyncLFQueueCompletePushPointer(PPUThread& ppu, vm::ptr<CellSyncLFQueue>
|
|||
|
||||
while (true)
|
||||
{
|
||||
const auto old = queue->push2.load_sync();
|
||||
const auto old = queue->push2.load(); _mm_lfence();
|
||||
auto push2 = old;
|
||||
|
||||
const auto old2 = queue->push3.load();
|
||||
|
|
@ -1129,7 +1129,7 @@ s32 _cellSyncLFQueueGetPopPointer(PPUThread& ppu, vm::ptr<CellSyncLFQueue> queue
|
|||
{
|
||||
CHECK_EMU_STATUS;
|
||||
|
||||
const auto old = queue->pop1.load_sync();
|
||||
const auto old = queue->pop1.load(); _mm_lfence();
|
||||
auto pop = old;
|
||||
|
||||
if (var1)
|
||||
|
|
@ -1228,7 +1228,7 @@ s32 _cellSyncLFQueueCompletePopPointer(PPUThread& ppu, vm::ptr<CellSyncLFQueue>
|
|||
|
||||
while (true)
|
||||
{
|
||||
const auto old = queue->pop2.load_sync();
|
||||
const auto old = queue->pop2.load(); _mm_lfence();
|
||||
auto pop2 = old;
|
||||
|
||||
const auto old2 = queue->pop3.load();
|
||||
|
|
@ -1432,7 +1432,7 @@ s32 cellSyncLFQueueClear(vm::ptr<CellSyncLFQueue> queue)
|
|||
|
||||
while (true)
|
||||
{
|
||||
const auto old = queue->pop1.load_sync();
|
||||
const auto old = queue->pop1.load(); _mm_lfence();
|
||||
auto pop = old;
|
||||
|
||||
const auto push = queue->push1.load();
|
||||
|
|
@ -1483,7 +1483,7 @@ s32 cellSyncLFQueueSize(vm::ptr<CellSyncLFQueue> queue, vm::ptr<u32> size)
|
|||
|
||||
while (true)
|
||||
{
|
||||
const auto old = queue->pop3.load_sync();
|
||||
const auto old = queue->pop3.load(); _mm_lfence();
|
||||
|
||||
u32 var1 = (u16)queue->pop1.load().m_h1;
|
||||
u32 var2 = (u16)queue->push1.load().m_h5;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue