Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Triple buffering mean you can render at any speed, there will always be a valid target where to render and you never need to wait or vsync.

This is not the case with double buffering. There can be a case, if the CPU renders fast enough, where it just finished rendering to the current target, but the previous target is still being sent to the CRT. In that case the CPU need to block on VBL.



Sure, that part is well understood. But triple buffering doesn't avoid the need for vsync. If the VBL interrupt isn't reliably available on all the VGA cards out there, you are still going to have flip pages from the foreground at some point, and you would rather not do that outside the blanking interval.

I suppose you could poll the CRTC every so often during the game loop or rendering process, though. That must have been how it worked.


The CRTC latches the display start address at the beginning (IIRC) of vblank, so you can just write a new value to that register at any time without affecting the current frame.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: