azonenberg changed the topic of #scopehal to: libscopehal, libscopeprotocols, and glscopeclient development and testing | https://github.com/azonenberg/scopehal-cmake, https://github.com/azonenberg/scopehal-apps, https://github.com/azonenberg/scopehal | Logs: https://freenode.irclog.whitequark.org/scopehal
<_whitenotifier-3> [scopehal] azonenberg pushed 3 commits to master [+0/-0/±3] https://git.io/JvRGR
<_whitenotifier-3> [scopehal] azonenberg 08ed8c2 - ClockRecoveryDecoder: fixed array bounds check
<_whitenotifier-3> [scopehal] azonenberg 8684233 - TMDSRenderer: changed control character rendering to CTL instead of C, to avoid confusion with hex characters
<_whitenotifier-3> [scopehal] azonenberg bbb1e23 - CaptureChannel: added GetSampleEnd convenience function
<_whitenotifier-3> [scopehal-apps] azonenberg pushed 1 commit to master [+2/-0/±4] https://git.io/JvRGu
<_whitenotifier-3> [scopehal-apps] azonenberg b9fcfeb - Initial library support for OpenGL compute shaders
<_whitenotifier-3> [scopehal-apps] azonenberg opened issue #56: Persistence doesn't work with new rendering engine - https://git.io/JvRWv
<_whitenotifier-3> [scopehal-apps] azonenberg labeled issue #56: Persistence doesn't work with new rendering engine - https://git.io/JvRWv
<_whitenotifier-3> [scopehal-apps] azonenberg labeled issue #56: Persistence doesn't work with new rendering engine - https://git.io/JvRWv
<_whitenotifier-3> [scopehal-apps] azonenberg pushed 2 commits to master [+1/-0/±10] https://git.io/JvRWJ
<_whitenotifier-3> [scopehal-apps] azonenberg d3cfabf - Experimental new rendering engine in compute shaders
<_whitenotifier-3> [scopehal-apps] azonenberg 87a4524 - Significant performance improvements to new compute-shader rendering engine
<_whitenotifier-3> [scopehal-apps] azonenberg pushed 2 commits to master [+0/-0/±4] https://git.io/JvRWG
<_whitenotifier-3> [scopehal-apps] azonenberg 20f956a - Removed dead code from old rendering engine
<_whitenotifier-3> [scopehal-apps] azonenberg b19e713 - Continued initial performance work on new renderer
<_whitenotifier-3> [scopehal-apps] azonenberg pushed 1 commit to master [+0/-0/±2] https://git.io/JvRWp
<_whitenotifier-3> [scopehal-apps] azonenberg 9464c9e - Fixed incorrect index calculation on very zoomed-out waveforms causing extremely poor performance
<azonenberg> well, the new renderer is officially significantly faster than the old one
<azonenberg> and i don't seem to be anywhere near 100% load on any GPU component so i likely have some bottlenecks i can optimize
<azonenberg> (testing on 1M point waveforms for now)
<azonenberg> On my Quadro K5200 (high end 2014 era workstation card, significantly slower than the 2080 Ti that I just ordered) the compute shader call for rendering a single 1M point waveform takes 6.82 ms
<azonenberg> So a theoretical 146 FPS if you only have one waveform on screen and don't do any compositing or UI or anything else
<azonenberg> I'm still tweaking, but i think at this point the waveform renderer itself is no longer the bottleneck
<azonenberg> for reference, the glBufferData() call to push the waveform and index data to the GPU took 15.5 ms
<azonenberg> I spend a fair bit of time in software rendering still, especially if you have a lot of protocol decodes. So i think the top priority for performance optimization at this point is to make digital waveforms use the same hardware accelerated path that analog ones do
<azonenberg> Next step will be making the outline boxes for complex decodes go GPU
<azonenberg> Text will stay software, since it's very hard to do good text on the GPU. And, more importantly, because with proper culling and such the amount of text on screen at any time should not be too high. It's not like we're going to have 1M text blocks on screen at a time
<azonenberg> At some point I want to add better (well, ANY) antialiasing to the new renderer and generally tweak appearances. But less of a priority
<azonenberg> Another performance boost to consider at some point would be decimating the waveform if you zoom out. When you go out super far and all you see is intensity graded outlines, rendering every 4th or 16th sample is probably fine, especially if instrument sample rate is a lot higher than your signal bandwidth
<azonenberg> (This will of course be an end-user-configurable setting)
<_whitenotifier-3> [scopehal-cmake] azonenberg pushed 1 commit to master [+0/-0/±4] https://git.io/JvR8J
<_whitenotifier-3> [scopehal-cmake] azonenberg f6b11d7 - Updated to latest submodules
m4ssi has joined #scopehal
maartenBE has quit [Ping timeout: 240 seconds]
maartenBE has joined #scopehal
azonenberg_work has quit [Ping timeout: 240 seconds]
m4ssi has quit [Ping timeout: 260 seconds]
m4ssi has joined #scopehal
m4ssi has quit [Ping timeout: 255 seconds]
azonenberg_work has joined #scopehal
azonenberg_work has quit [Ping timeout: 240 seconds]
_whitelogger has quit [Ping timeout: 248 seconds]
_whitelogger has joined #scopehal
azonenberg_work has joined #scopehal
bvernoux has joined #scopehal
electronic_eel has quit [Ping timeout: 240 seconds]
electronic_eel has joined #scopehal
electronic_eel has quit [Ping timeout: 272 seconds]
electronic_eel_ has joined #scopehal
electronic_eel_ is now known as electronic_eel
bvernoux has quit [Read error: Connection reset by peer]