4 ms·
> and a GPU shader can render the RGBA pixmap from a spatially partitioned display list on demand. ... but... the GPU shader will need a surface to render int
by jcelerier 5y ago
> and a GPU shader can render the RGBA pixmap from a spatially partitioned display list on demand.
... but... the GPU shader will need a surface to render into, no ? do you know of any OS where asking for a 1000x1000 surface does not allocate space for that in normal, non-GPU RAM ? I believe that this uses RAM on any mainstream desktop OS
- kragen 5y agoThe GPU shader could in theory be rendering into a tile that gets squirted out to the screen by the RAMDACs and then reused, but I think you're right that in practice the GPU has at least one full-screen framebuffer, usually two or, dismayingly, three. Often the monitor has an additional two or three! I'm not sure it's fair to charge that framebuffer to the browser, though. The windowing system needs to use the same 31MB before you start the browser up, after all. I don't know the answer to your question about mainstream desktop OSes and space allocation for shaders for windows that aren't being displayed. Maybe someone who knows more than you or me can chime in.
- jcelerier 5y ago> The windowing system needs to use the same 31MB before you start the browser up, after all. every process needs its own surface for compositing though. If you open 200 4k windows you'll get 200*31MB, they aren't going to share the memory with the desktop one
- kragen 5y agoThat's definitely one way to do it, and now that you mention it I do know that there are definitely things that do it that way, but it might not be a good one. Windows that aren't visible don't need their output surface to be materialized, and introducing a compositing step after your 4k window renders adds an extra 11 gigabytes per second of memory bandwidth at 120fps, and probably a few precious milliseconds of latency. In the limit of inexpensive rendering — which alpha-blending a few thousand rects from a font atlas might approach — it doubles the battery drain needed to redraw the screen.