Actions
Emulator Issues #8598
closedOGL: zfreeze reads from WRITE_ONLY mapped buffer
Status:
Fixed
Priority:
High
Assignee:
-
% Done:
0%
Operating system:
N/A
Issue type:
Bug
Milestone:
Current
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:
Description
The current zfreeze code reads the last position from the vertex buffer. This buffer is given by the backend as WRITE_ONLY. On OpenGL, this is often a write_combined memory, so every read operation will fall back to uncached memory. This ends in a 5% real time usage because of waiting for memory.
Officially, this is a OpenGL violation. So newer driver may also read-protect this page and dolphin may crash.
There is a fix as WIP:
https://github.com/dolphin-emu/dolphin/pull/2141
The broken access is in:
https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/VideoCommon/VertexManagerBase.cpp#L302
Actions