zcull synchronization tweaks

- Implement forced reading when calling update method to sync partial lists
- Defer conditional render evaluation and use a read barrier to avoid extra work
- Fix HLE gcm library when binding tiles & zcull RAM
This commit is contained in:
kd-11 2018-07-19 19:57:01 +03:00 committed by kd-11
parent 3b47e43380
commit 8800c10476
6 changed files with 116 additions and 33 deletions

View file

@ -698,6 +698,7 @@ void cellGcmSetZcull(u8 index, u32 offset, u32 width, u32 height, u32 cullStart,
zcull.sFunc = sFunc;
zcull.sRef = sRef;
zcull.sMask = sMask;
zcull.binded = (zCullFormat > 0);
vm::_ptr<CellGcmZcullInfo>(m_config->zculls_addr)[index] = zcull.pack();
}
@ -1261,6 +1262,7 @@ s32 cellGcmSetTile(u8 index, u8 location, u32 offset, u32 size, u32 pitch, u8 co
tile.comp = comp;
tile.base = base;
tile.bank = bank;
tile.binded = (pitch > 0);
vm::_ptr<CellGcmTileInfo>(m_config->tiles_addr)[index] = tile.pack();
return CELL_OK;