mirror of
https://github.com/RPCSX/rpcsx.git
synced 2026-04-05 06:26:49 +00:00
Channel<> rewritten
This commit is contained in:
parent
68cdc95da5
commit
ce97a7e7a6
7 changed files with 103 additions and 152 deletions
|
|
@ -241,7 +241,7 @@ s64 spursInit(
|
|||
{
|
||||
if (spurs->m.wklStat1[i].read_relaxed() == 2 &&
|
||||
spurs->m.wklG1[i].wklPriority.ToBE() != 0 &&
|
||||
spurs->_u8[0x50 + i] & 0xf // check wklMaxCnt
|
||||
spurs->m.wklMaxCnt[i].read_relaxed() & 0xf
|
||||
)
|
||||
{
|
||||
if (spurs->m.wklReadyCount[i].read_relaxed() ||
|
||||
|
|
@ -259,7 +259,7 @@ s64 spursInit(
|
|||
{
|
||||
if (spurs->m.wklStat2[i].read_relaxed() == 2 &&
|
||||
spurs->m.wklG2[i].wklPriority.ToBE() != 0 &&
|
||||
spurs->_u8[0x50 + i] & 0xf0 // check wklMaxCnt
|
||||
spurs->m.wklMaxCnt[i].read_relaxed() & 0xf0
|
||||
)
|
||||
{
|
||||
if (spurs->m.wklReadyCount[i + 0x10].read_relaxed() ||
|
||||
|
|
@ -995,19 +995,22 @@ s32 spursAddWorkload(
|
|||
}
|
||||
spurs->m.wklReadyCount[wnum].write_relaxed(0);
|
||||
|
||||
u32 pos = ((~wnum * 8) | (wnum / 4)) & 0x1c;
|
||||
spurs->m.wklMaxCnt[index / 4].atomic_op([pos, maxContention](be_t<u32>& v)
|
||||
{
|
||||
v &= ~(0xf << pos);
|
||||
v |= (maxContention > 8 ? 8 : maxContention) << pos;
|
||||
});
|
||||
|
||||
if (wnum <= 15)
|
||||
{
|
||||
spurs->m.wklMaxCnt[wnum].atomic_op([maxContention](u8& v)
|
||||
{
|
||||
v &= ~0xf;
|
||||
v |= (maxContention > 8 ? 8 : maxContention);
|
||||
});
|
||||
spurs->m.wklSet1._and_not({ be_t<u16>::make(0x8000 >> index) }); // clear bit in wklFlag1
|
||||
}
|
||||
else
|
||||
{
|
||||
spurs->m.wklMaxCnt[index].atomic_op([maxContention](u8& v)
|
||||
{
|
||||
v &= ~0xf0;
|
||||
v |= (maxContention > 8 ? 8 : maxContention) << 4;
|
||||
});
|
||||
spurs->m.wklSet2._and_not({ be_t<u16>::make(0x8000 >> index) }); // clear bit in wklFlag2
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue