dolphin-emu/dolphin — pull request #167 by neobrain (2014-03-14 22:49:01+00:00)
Title: Implement EFB pokes in the OpenGL backend.

This feature has been implemented in the D3D backend for ages, but wasn't moved over to OpenGL. The algorithm in OpenGL uses clears instead of drawing little quads, which might be slightly faster (or not), but surely is fairly clean. This code path is pretty much a "meh, if games use this we have a problem anyway" thing, so performance is not really a problem.

This code was tested briefly and shown to work, I'll test it further against games known to use EFB pokes (Monster Hunter Tri, the GC Mario soccer game) before merging. Meanwhile, people can comment on the patch :)

A possibly important consequence of this patch is that games which make extensive use of EFB pokes (Monster Hunter Tri, and under very certain circumstances Mario Kart Wii) will get ridiculously slow. EFB pokes should probably be queued as an optimization. I'm not interested in coding this optimization though, especially since it's general enough for someone else to do. Regardless, as a workaround EFB accesses can be skipped to make things work fast (without the EFB pokes being accepted, of course).