5 ms·
Can confirm. My data points: 1. MacBook 12" 2015 feels dramatically faster at 1x scaling vs. 2x, even with the same output resolution (2560x1440@1x vs. 1280x72
by ianhowson 6y ago
Can confirm. My data points:
1. MacBook 12" 2015 feels dramatically faster at 1x scaling vs. 2x, even with the same output resolution (2560x1440@1x vs. 1280x720@2x.)
2. Mac with 8GB RX 580 GPU. With >1x scaling, as I add load (i.e. Chrome tabs) it eventually runs out of GPU memory and starts paging to system RAM. The whole thing grinds to a halt at that point.
The rendered pixel count makes this effect worse -- dual 4ks are slower than a 5k, is slower than a single 4k, is slower than dual HDs. This is to be expected, but we're talking about an 8 gigabyte GPU, and the framebuffer sizes should be a tiny drop in the bucket.
None of this happens at 1x scaling. Running a native (2x) scale factor feels a little faster than a downscaled (2x -> 1.5x) scale factor.
As far as I can tell, load and GPU mem usage scales with:
(number of GPU applications * total rendered pixels) ^ k.
At 1x scaling, k is close to 1. At HiDPI, it's greater than 1.
- rbanffy 6y ago> This is to be expected, but we're talking about an 8 gigabyte GPU, and the framebuffer sizes should be a tiny drop in the bucket. It depends on how many high dpi bitmaps at full depth are kept. Uncompressed HDR 4K gets large pretty quickly. And then it's not one bitmap, but multiple layers - backgrounds, rendered text...
- ianhowson 6y agoRight. Say -- pessimistically -- that I'm on a 5k display (14Mpixels) at 8 bytes per pixel, and double buffered, we can do about 35 copies of that display in GPU RAM. This seems about in line with my experience. And this is where I don't know what to think because "keep it all in vRAM" is clearly a terrible algorithm, and I have faith in the macOS developers, and yet my data suggests that this is exactly what they're doing. I don't see things swap out when there's memory pressure; it just keeps on allocating until it's full, then spills over to system memory and makes everything slow. Counterintuitively, the iGPUs have an advantage here. They always run from system memory but they have a faster path to system memory -- they don't need to operate over PCIe -- so (a) you don't have a large perf gap between the 'full' and 'not full' cases, and (b) spillover doesn't hurt. You use a lot more RAM, but you can buy more of that. I can't easily add RAM to my GPU. At best I can double it, and that just means 70 Chrome tabs instead of 35. I'd love to hear from someone at Apple who's seen the internals of this.
- josephg 6y agoI cheaped out and got an external gpu with 4GB of ram. I think it was a mistake - those spills happen much more often than I’d expect, and I assume there’s much less bandwidth available over thunderbolt than you’d get with pci-e directly. So swapping in and out is worse. I think successive software updates have made the situation marginally better - but I might have just acclimatised to it. I’m very curious what the situation looks like with arm laptops when they launch. How will the graphics performance of an A14x chip compare to my situation at the moment? I assume they’ll be faster than intel iris graphics but slower than an egpu; but it’ll be very interesting to see!