glReadPixels with RGB is terribly slow
Submitted by Pierre Proske
Assigned to Intel 3D Bugs Mailing List
I wrote an application recently that was ported to both Raspberry PI and Intel Braswell NUC5PPYH NUC (N3700 cpu). The NUC's glReadPixels performance was worse than the RPI (10 fps vs 15fps overall app performance where glReadPixels is the bottleneck). On my Intel HD4000 I can get 60fps under Linux.
I tried to get PBO's working on the NUC (they aren't supported under GLES) for faster pixel transfer and got no performance difference.
I then installed Windows 10 on the NUC and my performance went up to 36fps (~29fps without PBOs). This application is driving a large scale public light installation so I'm very sad to have to resort to Windows 10 as I find Linux more reliable for this kind of work.
Are PBOs not working on Braswell? Why is there such a huge difference between the open and closed drivers for a GPU -> CPU pixel transfer?
Performance on the NUC under Linux seemed fine otherwise (although I saw some glitches in the Ubuntu compositor under latest git Mesa), I got decent shader performance.
I tried a number of Mesa versions, from the stable Ubuntu 16.04 version to latest git via a PPA. No performance difference was noted across these versions.