Project

General

Profile

Actions

Emulator Issues #8598

closed

OGL: zfreeze reads from WRITE_ONLY mapped buffer

Added by degasus almost 9 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

Actions #1

Updated by JMC4789 almost 9 years ago

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

Actions #2

Updated by flacs almost 9 years ago

  • Status changed from New to Work started
Actions #3

Updated by flacs almost 9 years ago

  • Status changed from Work started to Fix pending
Actions

Also available in: Atom PDF