[2023-05-08] GUI Demo Day #6596
Replies: 6 comments
-
Peek.2023-05-01.13-24.mp4
Peek.2023-05-08.09-58.mp4
|
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
The fix for Last named argument gets doubled when the first argument is removed#6228 was merged. (it was presented on the last demo) Also, a very annoying issue #6411 was fixed after a long investigation. At the moment I'm working on fixing #6485 |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
I've been working on reducing draw calls to improve render performance. In my current branch I have a 23% reduction. By the end of the week I plan to reach 40%. During this week I also plan to finish improving CB focus. After this PR is finished, I'll benchmark it on various hardware and check how draw call count relates to render performance; they should be closely related, so I expect this change will make Enso smooth on hardware where it's currently marginal. |
Beta Was this translation helpful? Give feedback.
-
Summary
I implemented the Dynamic app resampling and better performance measurements PR.
Proper measurement of GPU performance.
WARNING! Currently (2023) this extension is only available in Chrome Desktop.
A new way to measure GPU performance have been introduced. It bases on the ExtDisjointTimerQueryWebgl2 WebGL extension, which is pretty tricky to use. First of all, it was banned from all browsers some time ago because of the ["GLitch" exploit] (https://www.vusec.net/projects/glitch). However, as Site Isolation shipped in Chrome on Desktop, the extension was re-enabled there because the only data that could be read was data that came from the same origin. To learn more, see: https://bugs.chromium.org/p/chromium/issues/detail?id=1230926.
Automatic low/high resolution modes.
The application resolution mode is automatically switched between low and hight. In the low resolution mode, the device pixel ratio will be set to
1.0
even on high-dpi screens. This will result in faster rendering (every 4-th pixel) and a more blurry image of the GUI. I believe that the blurriness of the fonts can be decreased in this mode by tweaking shaders, and it can be performed in a separate PR. The switch happens after a few frames were rendered slow/fast enough. The performance of the rendering is measured using the new performance measurements described above. In case the app is run not in Chrome, the FPS will be used instead of the proper measurements, which might cause the app to switch to low-resolution mode even if the bottleneck is CPU, not GPU.Screen.Recording.2023-05-08.at.01.22.53.mov
Improvements to the performance monitor.
The performance monitor was extended with additional information:
Please note, that the division between CPU and GPU time is not known immediately and we can get it with a few frames delay. That's why you can observe sometimes in the performance monitor a greyed-out value for a few frames, which turns into a real value after some time:
Screen.Recording.2023-05-08.at.01.32.26.mov
Beta Was this translation helpful? Give feedback.
All reactions