With Mesa 17.3.1 and XScreenSaver 5.37 testing the discoball in demo, I do not get 60 FPS on the DPI monitor Dell U2718Q. ``` $ lspci -nn -s 0:02.0 00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 530 [8086:1912] (rev 06) $ more /proc/version Linux version 4.14.13.mx64.201 (root@orpheus.molgen.mpg.de) (gcc version 5.3.0 (GCC)) #1 SMP Wed Jan 10 12:14:02 CET 2018 $ xrandr Screen 0: minimum 320 x 200, current 3840 x 2160, maximum 8192 x 8192 HDMI-1 disconnected (normal left inverted right x axis y axis) DP-1 disconnected (normal left inverted right x axis y axis) HDMI-2 disconnected (normal left inverted right x axis y axis) DP-2 connected 3840x2160+0+0 (normal left inverted right x axis y axis) 609mm x 349mm 3840x2160 60.00*+ 29.98 2560x1440 59.95 2048x1280 59.99 1920x1200 59.88 2048x1080 24.00 1920x1080 60.00 60.00 50.00 59.94 24.00 23.98 1920x1080i 60.00 50.00 59.94 1600x1200 60.00 1600x900 60.00 1280x1024 75.02 60.02 1152x864 75.00 1280x720 60.00 50.00 59.94 1024x768 75.03 60.00 800x600 75.00 60.32 720x576 50.00 720x480 60.00 59.94 640x480 75.00 60.00 59.94 720x400 70.08 HDMI-3 disconnected (normal left inverted right x axis y axis) DP-3 disconnected (normal left inverted right x axis y axis) ``` Running the command below, only around 30 FPS are shown and the “animation” stutters, that means, it is not smooth. ``` $ discoball -delay 0 -count 51 -spin -fps ``` Is that a hardware limitation, can the drivers be improved, or is it even XScreenSaver?
A lot of it is xscreensaver, which still thinks glVertex3f is a great way to upload geometry, which is why basically all its glx hacks are CPU-bound with Mesa. In this particular case (at least on the haswell I have handy) it's also that apparently every call to glPopMatrix turns into a vertex flush, and it calls PopMatrix once per tile on the disco ball, so... Mesa could almost certainly be made more efficient on this path. It might be worth looking at stealing something like the immediate-fixed-function emulation from https://github.com/p3/regal . I had hoped that jwzgles translated GL1.x to GLES2, but no, it's to GLES1, so you're still calling PopMatrix all the time.
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mesa/mesa/issues/1674.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.