Project

General

Profile

Emulator Issues #8598

OGL: zfreeze reads from WRITE_ONLY mapped buffer

Added by degasus about 5 years ago.

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

History

#1 Updated by JMC4789 about 5 years ago

It is currently broken as of this posting - https://dl.dropboxusercontent.com/u/484730/Itdoenstwork.jpg

#2 Updated by flacs almost 5 years ago

  • Status changed from New to Work started

#3 Updated by flacs almost 5 years ago

  • Status changed from Work started to Fix pending

Also available in: Atom PDF