Thread with 8 posts

jump to expanded post

touchHLE finally has a compositor!!!!! 🥳🥳🥳

the good: with a little bit of extra work, UIKit will be meaningfully usable (for very, very simple apps)

the bad: i had to use glReadPixels() for an uncommon case 😱

the ugly? i already told you, i had to use glReadPixels()

https://github.com/hikari-no-yume/touchHLE/commit/54cee560de1f98cb864e8904a92a360a14c29c88

Open thread at this post
Emelia/Emi , @becomethewaifu@tech.lgbt
(open profile)

@0x2ba22e11 @hikari A full 1080p RGBA framebuffer is 1920×1080×4 = ~8MB, so the transfer itself is negligible. It's mostly the pipeline flush and resulting stall that hits performance; normally the GPU is able to stay busy by processing the start of a second frame as it's finishing the first, but by the nature of GL's single-threadedness, the CPU can't send the start of the next frame until after it's finished and returned some pixels for glReadPixels().

The short version is that each frame may take 10-20ms to process through the pipeline end-to-end, but the actual steps are normally pipelined to the point that it only takes 2-5ms frame-to-frame, as each stage can start work on the next frame when it finishes it's part of the first.

Open remote post (opens in a new window)