mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-06 23:11:25 +12:00
rsx: Robustness fixes
- Track last working state and reset to it if RSX starts to desync -- This is especially useful when running vulkan since the renderer will easily outpace the rest of the system when merely recording draw commands - Ignore empty sets -- Mark empty/invalid IB sets as having 0 element counts.
This commit is contained in:
parent
198e9dce1d
commit
ee009ec99c
6 changed files with 46 additions and 10 deletions
|
@ -62,6 +62,7 @@ namespace rsx
|
|||
|
||||
void semaphore_acquire(thread* rsx, u32 _reg, u32 arg)
|
||||
{
|
||||
rsx->sync_point_request = true;
|
||||
const u32 addr = get_address(method_registers.semaphore_offset_406e(), method_registers.semaphore_context_dma_406e());
|
||||
if (vm::ps3::read32(addr) == arg) return;
|
||||
|
||||
|
@ -109,6 +110,7 @@ namespace rsx
|
|||
|
||||
void semaphore_release(thread* rsx, u32 _reg, u32 arg)
|
||||
{
|
||||
rsx->sync_point_request = true;
|
||||
const u32 addr = get_address(method_registers.semaphore_offset_406e(), method_registers.semaphore_context_dma_406e());
|
||||
|
||||
if (addr >> 28 == 0x4)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue