azonenberg changed the topic of #scopehal to: libscopehal, libscopeprotocols, and glscopeclient development and testing | https://github.com/glscopeclient/scopehal-apps | Logs: https://libera.irclog.whitequark.org/scopehal
Degi_ has joined #scopehal
Degi has quit [Ping timeout: 265 seconds]
Degi_ is now known as Degi
<_whitenotifier-7> [scopehal] azonenberg pushed 1 commit to master [+0/-0/±1] https://github.com/glscopeclient/scopehal/compare/e405ca385571...d7cd5e1b01b9
<_whitenotifier-7> [scopehal] azonenberg d7cd5e1 - Don't enable all channels anymore since this is now handled elsewhere
<_whitenotifier-7> [scopehal-apps] azonenberg pushed 2 commits to master [+0/-0/±5] https://github.com/glscopeclient/scopehal-apps/compare/0fb301153bd9...35f706653fe7
<_whitenotifier-7> [scopehal-apps] azonenberg 7f6194e - GuiLogSink: correct handling of messages without newlines in them
<_whitenotifier-7> [scopehal-apps] azonenberg 35f7066 - Add groups for enabled channels, behave sanely if no channels are enabled
<_whitenotifier-7> [scopehal-apps] azonenberg pushed 1 commit to master [+1/-0/±3] https://github.com/glscopeclient/scopehal-apps/compare/35f706653fe7...d3331a983811
<_whitenotifier-7> [scopehal-apps] azonenberg d3331a9 - Added Add | Channels menu
<azonenberg> ok coming along nicely. I still need a nice overlay when dragging and dropping waveforms into a plot, but that can come later
<azonenberg> you can split groups left/right/up/down, drop into the middle of a group
<azonenberg> and there is now a placeholder drawn up to for where the timeline is going to go
<azonenberg> up top*
<azonenberg> (but no actual timeline is rendered at this stagE)
<azonenberg> That's tomorrow morning's project, hopefully i can get good progress before the fork(2) wakes up
<_whitenotifier-7> [scopehal-apps] bvernoux opened pull request #496: PKGBUILD set build type to Release and Update mingw-w64-x86_64-scopehal-apps to v0.1 - https://github.com/glscopeclient/scopehal-apps/pull/496
<_whitenotifier-7> [scopehal-apps] bvernoux synchronize pull request #496: PKGBUILD set build type to Release and Update mingw-w64-x86_64-scopehal-apps to v0.1 - https://github.com/glscopeclient/scopehal-apps/pull/496
<_whitenotifier-7> [scopehal-apps] bvernoux synchronize pull request #496: PKGBUILD set build type to Release and Update mingw-w64-x86_64-scopehal-apps to v0.1 - https://github.com/glscopeclient/scopehal-apps/pull/496
<_whitenotifier-7> [scopehal-apps] bvernoux edited pull request #496: PKGBUILD set build type to Release and Update mingw-w64-x86_64-scopehal-apps to v0.1 - https://github.com/glscopeclient/scopehal-apps/pull/496
<_whitenotifier-7> [scopehal-apps] bvernoux edited pull request #496: PKGBUILD set build type to Release and strip exe/dll for Release build - https://github.com/glscopeclient/scopehal-apps/pull/496
bvernoux has joined #scopehal
<bvernoux> Hi
<bvernoux> I have just enabled to strip exe/dll
<bvernoux> Amazing ;)
<bvernoux> the portable version is now 73.4MB
<bvernoux> and the msi 25.6MB
<bvernoux> before it was up to 10x bigger
<_whitenotifier-7> [scopehal-apps] bvernoux edited pull request #496: PKGBUILD set build type to Release and strip exe/dll for Release build - https://github.com/glscopeclient/scopehal-apps/pull/496
<_whitenotifier-7> [scopehal-apps] bvernoux edited pull request #496: PKGBUILD set build type to Release and strip exe/dll for Release build - https://github.com/glscopeclient/scopehal-apps/pull/496
<bvernoux> I have seen a bug ;)
<bvernoux> there is some missing shaders
<bvernoux> in the install
<bvernoux> like the *.spv
<bvernoux> glscopeclient-windows-portable
<bvernoux> It was already the case before
<bvernoux> so when we add FFT it crash is there is missing shader
<bvernoux> is->as
<bvernoux> let check the installer
<bvernoux> msi
<_whitenotifier-7> [scopehal-apps] bvernoux edited pull request #496: PKGBUILD set build type to Release and strip exe/dll for Release build - https://github.com/glscopeclient/scopehal-apps/pull/496
<_whitenotifier-7> [scopehal-apps] bvernoux edited pull request #496: PKGBUILD set build type to Release and strip exe/dll for Release build - https://github.com/glscopeclient/scopehal-apps/pull/496
<_whitenotifier-7> [scopehal-apps] bvernoux synchronize pull request #496: PKGBUILD set build type to Release and strip exe/dll for Release build - https://github.com/glscopeclient/scopehal-apps/pull/496
<_whitenotifier-7> [scopehal-apps] bvernoux edited pull request #496: PKGBUILD set build type to Release and strip exe/dll for Release build - https://github.com/glscopeclient/scopehal-apps/pull/496
<azonenberg> bvernoux: there are separate cmake build types for release and relwithdebuginfo
<bvernoux> ?
<azonenberg> or there should be
<azonenberg> can you please ensure that both work? for developers' local builds, i expect the default build type will be an unstripped release build
<bvernoux> I do not really understand the question
<bvernoux> ha yes
<bvernoux> it is intended
<azonenberg> so it's fast, but you can get stack traces on a segfault
<bvernoux> see my modification strip is active only for Release
<bvernoux> So it will not affect Debug or ReleaseDebug ...
<azonenberg> My question is whether release with debug even works in the current build scripts
<azonenberg> i had been developing on "release" because we weren't strpping them
<bvernoux> Good question
<azonenberg> Please test and verify before i merge
<bvernoux> the CI cannot build ReleaseDebug anyway for Windows
<bvernoux> all is hard coded
<azonenberg> I dont care about CI
<azonenberg> that makes sense to be strpped
<azonenberg> I care about my own local dev builds not being stripped :)
<bvernoux> So if someone use the PKGBUILD it will be forced to use Release
<bvernoux> ha yes
<azonenberg> (especially Linux)
<bvernoux> if you are doing Cmake by hand
<azonenberg> also related: afaik it is possible on linux to have out-of-binary debug symbols
<bvernoux> are you using something like
<bvernoux> cd scopehal-apps
<bvernoux> cd ~
<bvernoux> git pull --recurse-submodules
<bvernoux> mkdir build
<bvernoux> cd build
<bvernoux> cmake -G"MinGW Makefiles" -DBUILD_TESTING=OFF -DCMAKE_BUILD_TYPE=Release ..
<bvernoux> In that case you shall define ReleaseDebug for -DCMAKE_BUILD_TYPE=
<bvernoux> or Debug
<bvernoux> let me test it
<bvernoux> just to confirm
<azonenberg> I do "cmake .. -DCMAKE_BUILD_TYPE=Release" right now. So if that is now being stripped that will have to change
<azonenberg> also, another thing to look into for ELF release builds
<bvernoux> Like you see in my fork
<azonenberg> copy debug symbols to separate files
<azonenberg> this way we'd only need one type of binary
<azonenberg> and we package the .debug files separately
<bvernoux> ha yes
<bvernoux> the stackoverflow is nice but it shall be checked how to do that in a portable way in the CMake ;)
<bvernoux> which is often not so trivial
<azonenberg> Yes. We may have to have conditionals to do this separately for ELF and PE binaries
<bvernoux> like for strip
<azonenberg> Let's table merging this until we have external debug symbols working
<bvernoux> I have used a hint
<bvernoux> set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -s")
<azonenberg> since i think that is going to be critical especially given the current state of of the project
<bvernoux> which affect only Release
<bvernoux> -s means to strip
<bvernoux> so we shall find something similar for the debug symbol
<azonenberg> Yeah. Anyway, at this point i think your changes should be kept on the shelf until you figure out how to generate external debug symbols on all targets
<azonenberg> debug builds will have integrated symbols, release builds will have external symbols, and the installers won't package them by default
<azonenberg> but maybe have the CI upload the .debug files as a tarball in a separate artifact
<bvernoux> I will do not really have time to focus on that
<bvernoux> I'm ultra busy with tons of things
<bvernoux> I want just to build correctly msi & portable apps stripped so far
<bvernoux> to have something usable for anyone
<azonenberg> hmm, maybe we should hold off on merging until i get johnsel or somebody else to figure this out then
<azonenberg> because people crash dev builds all the time
<bvernoux> yes
<azonenberg> and i really want to avoid having stack traces without symbols
<azonenberg> honestly i dont think we should be optimizing for file size at this stage of the project
<bvernoux> SO far the issue is we have stack trace only for glscopeclient code
<bvernoux> anything outside you have nothing
<bvernoux> like if it is from static lib from vulkan SDK
<azonenberg> well yes
<bvernoux> as all is built as release
<azonenberg> but at least you know where the crash happened in our code
<azonenberg> and the file/line can tell you roughly what system function you called into
<azonenberg> it's better than nothing
<bvernoux> yes
<azonenberg> also as long as you are working on build scripts
<bvernoux> Which fix the Windows Installer & Portable Apps
<bvernoux> as they are broken since lot of time missing shaders
<bvernoux> To be checked that what I have modified work like intended
<_whitenotifier-7> [scopehal-apps] azonenberg pushed 1 commit to master [+0/-0/±1] https://github.com/glscopeclient/scopehal-apps/compare/d3331a983811...21931e60864d
<_whitenotifier-7> [scopehal-apps] azonenberg 21931e6 - Added missing files to Windows package
<azonenberg> anyway, libpng is going to become a dependency shortly
<azonenberg> we already use it through GTK so i dont think it will change anything at the moment
massi has joined #scopehal
<azonenberg> but as we move away from gtk it will become necessary to install the -dev packages if none of our other libs pull it in
<bvernoux> SO my proposal is to cancel my PR for the Release build
<bvernoux> until we have found how to do the external debug stuff
<azonenberg> Yes
<azonenberg> let me do that and file a ticket for it
<_whitenotifier-7> [scopehal-apps] azonenberg closed pull request #496: PKGBUILD set build type to Release and strip exe/dll for Release build - https://github.com/glscopeclient/scopehal-apps/pull/496
<_whitenotifier-7> [scopehal-apps] azonenberg labeled issue #497: Release builds should use external debug symbols, separately packaged - https://github.com/glscopeclient/scopehal-apps/issues/497
<_whitenotifier-7> [scopehal-apps] azonenberg opened issue #497: Release builds should use external debug symbols, separately packaged - https://github.com/glscopeclient/scopehal-apps/issues/497
<_whitenotifier-7> [scopehal-apps] bvernoux commented on pull request #496: PKGBUILD set build type to Release and strip exe/dll for Release build - https://github.com/glscopeclient/scopehal-apps/pull/496#issuecomment-1250065783
<bvernoux> yes
<bvernoux> At least we will now have working Windows build
<bvernoux> even if they are huge ,à
<_whitenotifier-7> [scopehal] azonenberg pushed 1 commit to master [+0/-0/±1] https://github.com/glscopeclient/scopehal/compare/d7cd5e1b01b9...90f926eb849c
<_whitenotifier-7> [scopehal] azonenberg 90f926e - VulkanInit: don't request eEnumeratePortabilityKHR except on Apple platforms
<_whitenotifier-7> [scopehal-apps] azonenberg pushed 1 commit to master [+28/-0/±4] https://github.com/glscopeclient/scopehal-apps/compare/21931e60864d...960253d78210
<_whitenotifier-7> [scopehal-apps] azonenberg 960253d - Imported icons from glscopeclient to ngscopeclient dir. Creeated TextureManager class, can now generate default textures with constant RGBA values. No descriptor binding yet.
<bvernoux> I confirm Windows Builds are ok now
<bvernoux> no missing shaders
massi has quit [Remote host closed the connection]
ehntoo has joined #scopehal
<ehntoo> I wanted something to play around with in ngscopeclient, so I whipped up a quick driver for my GWInstek GPD-3303S linear power supply. https://github.com/ehntoo/scopehal/tree/gwinstek-gpdx303s I haven't actually tried the code yet, but was curious about if the approach I'm taking regarding output enables was correct. These power supplies has a
<ehntoo> single ganged enable for all channels, so I return that all individual channels are enabled at all times and use the "master" enable as the ganged output enable that's available on-device.
<azonenberg> ehntoo: I think we need to add some methods to the API
<azonenberg> so that you can query the presence of a global enable and per channel enables
<azonenberg> and the gui can hide the checkboxes for one or the other if you don't have both
<azonenberg> your approach of the ganged enable being the master enable makes sense
<azonenberg> but there needs to be a way to declare that the per-channel enables don't exist
<azonenberg> We do this with a lot of other stuff, e.g. in the function generator class we have methods to check if it supports programmable rise/fall time for squarewaves
<ehntoo> makes sense. I'll have a look at what's existing in other classes and stick an additional method in the PowerSupply.h interface.
<azonenberg> Great. You'll also want to add some conditionals to PowerSupplyDialog
<azonenberg> to not show the controls if that method returns false
<azonenberg> The code should be pretty self explanatory
<azonenberg> you can use FunctionGeneratorDialog as a reference since that has conditionally displayed widgets already
<azonenberg> In general, i expect as we add support for more instruments we'll be adding a lot more feature flags like this
<azonenberg> the Oscilloscope class is pretty mature because we support so many scopes
<azonenberg> but PowerSupply, Multimeter, FunctionGenerator, and RFSignalGenerator basically only have drivers for the gear in my own lab
<azonenberg> So we will find the abstraction evolving as we try to fit more gear into it
<_whitenotifier-7> [scopehal-apps] azonenberg pushed 2 commits to master [+0/-0/±8] https://github.com/glscopeclient/scopehal-apps/compare/960253d78210...f67e99ac0179
<_whitenotifier-7> [scopehal-apps] azonenberg 65ff6ac - WIP on texture uploading
<_whitenotifier-7> [scopehal-apps] azonenberg f67e99a - Fixed bug where VulkanWindow limited descriptor pool to max of 1 item. TextureManager can now create valid all-pink textures. No actual file loading yet.
ehntoo has quit [Ping timeout: 252 seconds]
<_whitenotifier-7> [scopehal-apps] azonenberg pushed 1 commit to master [+0/-0/±3] https://github.com/glscopeclient/scopehal-apps/compare/f67e99ac0179...eb3cb6dbd856
<_whitenotifier-7> [scopehal-apps] azonenberg eb3cb6d - TextureManager can now load images from PNG
bvernoux has quit [Quit: Leaving]
<_whitenotifier-7> [scopehal-apps] azonenberg pushed 1 commit to master [+0/-0/±5] https://github.com/glscopeclient/scopehal-apps/compare/eb3cb6dbd856...f94d5e8da6ae
<_whitenotifier-7> [scopehal-apps] azonenberg f94d5e8 - Initial work on toolbar
<azonenberg> Looking more like glscopeclient every day lol
<azonenberg> now we have a toolbar, plus space blanked out at the top of each group for the timeline
<azonenberg> and i changed the temporary WaveformArea texture to one of the toolbar icons as it's less jarring on the eyes than the font i think
<d1b2> <azonenberg> And now we have a timeline
<d1b2> <azonenberg> Not interactive yet, you can't zoom or pan it, but all the rendering logic is there