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: 252 seconds]
Degi_ is now known as Degi
Johnsel has quit [Ping timeout: 252 seconds]
Johnsel has joined #scopehal
<_whitenotifier-7> [scopehal-apps] ehntoo forked the repository - https://github.com/ehntoo
<_whitenotifier-7> [scopehal] ehntoo forked the repository - https://github.com/ehntoo
Johnsel has quit [Ping timeout: 268 seconds]
<_whitenotifier-7> [scopehal] ehntoo commented on issue #685: Vulkan Queue Management on MoltenVK - https://github.com/glscopeclient/scopehal/issues/685#issuecomment-1242844602
<_whitenotifier-7> [scopehal] azonenberg commented on issue #685: Vulkan Queue Management on MoltenVK - https://github.com/glscopeclient/scopehal/issues/685#issuecomment-1242894685
<_whitenotifier-7> [scopehal] azonenberg commented on issue #685: Vulkan Queue Management on MoltenVK - https://github.com/glscopeclient/scopehal/issues/685#issuecomment-1242895069
<azonenberg> also my 0201 20 ohm resistors did not show up today. tracking still shows them at seattle post office
<azonenberg> So i guess no AKL-AD4 work until monday after work
<azonenberg> Also still waiting on the new stencil for the AV1. i still have no idea where it could have gone
<azonenberg> i even checked the e-waste bin in case i threw it out by mistake
<azonenberg> I do have a PT5 i can stuff whenever, although i want to get some other stuff done before i worry about that
<_whitenotifier-7> [scopehal] azonenberg pushed 1 commit to master [+0/-0/±2] https://github.com/glscopeclient/scopehal/compare/c21d70ae612f...7c213e8cb042
<_whitenotifier-7> [scopehal] azonenberg 7c213e8 - HMC804x: use queued command API
<_whitenotifier-7> [scopehal-apps] bvernoux edited a comment on issue #470: Windows CI build is broken despite finding Vulkan SDK - https://github.com/glscopeclient/scopehal-apps/issues/470#issuecomment-1242674690
<_whitenotifier-7> [scopehal] azonenberg pushed 1 commit to master [+0/-0/±3] https://github.com/glscopeclient/scopehal/compare/7c213e8cb042...e4332fbbf4f4
<_whitenotifier-7> [scopehal] azonenberg e4332fb - PowerSupply: added SetSoftStarteEnabled() method
<_whitenotifier-7> [scopehal-apps] azonenberg pushed 3 commits to master [+9/-0/±23] https://github.com/glscopeclient/scopehal-apps/compare/d78a703c55cd...6cc10279a413
<_whitenotifier-7> [scopehal-apps] azonenberg 4817161 - ngscopeclient: initial power supply support
<_whitenotifier-7> [scopehal-apps] azonenberg c2836e6 - Added implot submodule
<_whitenotifier-7> [scopehal-apps] azonenberg 6cc1027 - Continued initial work on PowerSupplyDialog
<_whitenotifier-7> [scopehal-apps] azonenberg pushed 3 commits to master [+0/-5/±9] https://github.com/glscopeclient/scopehal-apps/compare/6cc10279a413...79bb795c94c7
<_whitenotifier-7> [scopehal-apps] azonenberg ab3b85d - PowerSupplyDialog is now functionally complete, other than gracefully disconnecting the instrument during shutdown. Fixes #425.
<_whitenotifier-7> [scopehal-apps] azonenberg 061962a - Removed psuclient because this functionality is now folded into ngscopeclient
<_whitenotifier-7> [scopehal-apps] azonenberg 79bb795 - PowerSupplyDialog now cleanly disconnects when closed
<_whitenotifier-7> [scopehal-apps] azonenberg closed issue #425: Merge psuclient with glscopeclient and allow power supplies to be added to a session - https://github.com/glscopeclient/scopehal-apps/issues/425
<_whitenotifier-7> [scopehal-apps] bvernoux edited a comment on issue #470: Windows CI build is broken despite finding Vulkan SDK - https://github.com/glscopeclient/scopehal-apps/issues/470#issuecomment-1242674690
<_whitenotifier-7> [scopehal-apps] bvernoux edited a comment on issue #470: Windows CI build is broken despite finding Vulkan SDK - https://github.com/glscopeclient/scopehal-apps/issues/470#issuecomment-1242674690
<_whitenotifier-7> [scopehal-apps] azonenberg pushed 1 commit to master [+0/-0/±1] https://github.com/glscopeclient/scopehal-apps/compare/79bb795c94c7...00717a7d5cc4
<_whitenotifier-7> [scopehal-apps] azonenberg 00717a7 - PowerSupplyDialog: added "info" section, fixed crash when minimizing channel
bvernoux has joined #scopehal
<bvernoux> Hello
<bvernoux> I'm still working to have glslang for mingw64
<bvernoux> When I build the glslang from scratch at link I have some error
<bvernoux> [ 34%] Linking CXX shared library libscopehal.dll
<bvernoux> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/home/bvern/glslang/build/install/lib/libSPIRV.a(SpvTools.cpp.obj):SpvTools.cpp:(.text+0x4 undefined reference to `spvContextCreate'
<bvernoux> So it seems the one I'm building is not complete
<bvernoux> also it is clear that on VulkanSDK the lib is present but it is a SPIRV lib built with Visual Studio so not found by mingw64 which want libSPIRV.a and what is available is SPIRV.A
<bvernoux> not SPIRV.a but SPIRV.lib
<azonenberg> yeah it would not suprise me if your crashes are related to that
<azonenberg> mixing mingw and native libs
<azonenberg> some linker screwup making you look in the wrong place for some data or somethign
<azonenberg> johnsel is working on trying to get at least ngscopeclient building natively under visual studio without mingw
<azonenberg> and once we remove the gtk dependencies on scopehal/scopeprotocols, we will then have a path to a future free of mingw
<bvernoux> I confirm all lib in VulkanSDK for Windows are built with visual studio 2017
<bvernoux> the issue is actual rebuild of glslang with mingw64 in Release mode have missing API when linked at end
<bvernoux> at least now it is explicit error during link
<bvernoux> which probably do the crash when using mingw package as it is a DLL ...
<bvernoux> So VulkanSDK is a real mess for mingw64 so far
<bvernoux> maybe we can just link with the VisualStudio lib with mingw64 to be checked
<bvernoux> also an other point to check
<bvernoux> is I have not used exactly same version as the one from VulkanSDK to rebuild it
<bvernoux> In my case I have doe git clone on latest https://github.com/KhronosGroup/glslang
<bvernoux> Which can explain some API are removed in lib because they could have done a cleanup/refactor of the SPIRV static lib
<bvernoux> So I'm trying to build exactly like for the VulkanSDK using
<bvernoux> git checkout tags/sdk-1.3.224.1
<bvernoux> I'm rebuilding it now as Release
<bvernoux> there was a mistake in glslang build info
<bvernoux> it requires
<bvernoux> cmake -DCMAKE_BUILD_TYPE=Release -G"MinGW Makefiles" $SOURCE_DIR -DCMAKE_INSTALL_PREFIX="$(pwd)/install"
<bvernoux> They have missed -DCMAKE_BUILD_TYPE=Release
<bvernoux> so in my previous version by default Cmake was building debug version ...
<bvernoux> Anyway I'm not very confident on the maturity of the build for mingw64 as all seems to be built with Visual Studio 2017 for windows ..
<bvernoux> Anyway it seems clear that
<bvernoux> We cannot use Visual Studio 2017 lib with mingw64 ;)
<bvernoux> It is what I suspected as anyway the visual studio lib are different in name ...
<bvernoux> So whole VulkanSDK for Windows is not usable on mingw64 in fact
<bvernoux> So the conclusion is on WIndows VulkanSDK is only for Visual Studio (all is build with Visual Studio 2017 Community)
<azonenberg> So basically the windows build is likely to stay broken until we transition fully to ngscopeclient?
<bvernoux> The only workaround about that is to find the mingw64 package for Vulkan with everything and add the include/lib dir
<bvernoux> Rebuilding whole VulkanSDK from scratch on mingw64 is an option but it is huge with tons of repository ...
<bvernoux> I will try using only mingw64 package
<bvernoux> like
<bvernoux> pacman -S mingw-w64-x86_64-vulkan-devel mingw-w64-x86_64-glslang ...
<bvernoux> Anyway everything is not broken so far with my solution
<bvernoux> mixing VulkanSDK and mingw64 package
<bvernoux> but vkFFT crash
<bvernoux> especially related to glslang stuff
<_whitenotifier-7> [scopehal-apps] azonenberg pushed 2 commits to master [+0/-0/±3] https://github.com/glscopeclient/scopehal-apps/compare/00717a7d5cc4...0f1d412457b2
<_whitenotifier-7> [scopehal-apps] azonenberg 805a31e - PowerSupplyDialog: disable apply buttons if value hasn't changed
<_whitenotifier-7> [scopehal-apps] azonenberg 0f1d412 - Fixed bug in resize handling
<azonenberg> johnsel: i'm getting to the point in ngscopeclient that i have to copy the preferences system over. There's a lot of dependencies like GDK and pango that comes with that, but we can refactor those away when the time is right
<azonenberg> (i.e. when we start writing the parts of the GUI that actually pull, say, font preferences out of the preferences manager)
<bvernoux> azonenberg, Will be great to do a PowerSupply for EEZ BB3
<bvernoux> azonenberg, it have also SCPI command over ethernet
<bvernoux> azonenberg, could try to clone your ones as example to add EEZ BB3
<bvernoux> the same with official glslang repo used with VulkanSDK
<bvernoux> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/home/bvern/glslang/build/install/lib/libSPIRV.a(SpvTools.cpp.obj):SpvTools.cpp:(.text+0x413): undefined reference to `spvContextCreate'
<bvernoux> with tons of other error undefined reference ...
<azonenberg> bvernoux: i'm all for adding more PSU drivers. We also have to expand the APIs
<azonenberg> for example a global on/off switch does not exist in all models, we need to allow you to check if it's available
<azonenberg> ditto for soft start and overcurrent shutdown
<azonenberg> both of those can be turned on/off now, but lack methods to configure ramp rate etc
<bvernoux> azonenberg, EEZ BB3 is very advanced
<bvernoux> with lot of HW protections too
<bvernoux> I doubt R&S have such features
<bvernoux> and EEZ BB3 is even more complex as it is extensible
<azonenberg> Well, like i said the PowerSupply API needs expanding
<bvernoux> for example I have 3 slot and 2 slots with DCP405
<bvernoux> with a free slot
<azonenberg> it currently has only a bare subset of the features supported by my one R&S supply
<bvernoux> Such concept does not exist on any other PowerSupply
<bvernoux> So it can be very complex at end
<azonenberg> yeah
<bvernoux> much more complex than oscilloscope ;)
<bvernoux> It seems it requires libSPIRV-Tools.a
<bvernoux> what a mess ;)
<bvernoux> some symbols are defined in different lib
<azonenberg> oh. yes there's like six libs there
<azonenberg> osindependent, shadercompiler, etc
<_whitenotifier-7> [scopehal-apps] azonenberg pushed 2 commits to master [+8/-0/±7] https://github.com/glscopeclient/scopehal-apps/compare/0f1d412457b2...6ecc343de62f
<_whitenotifier-7> [scopehal-apps] azonenberg 6f5ed73 - Initial import of preferences system from glscopeclient. Still using lots of gdk/pango types, so lots of baggage dragged along. No GUI preference editing support yet.
<_whitenotifier-7> [scopehal-apps] azonenberg 6ecc343 - Added recent instrument support, can now reconnect to recent PSUs
<bvernoux> hm if I hack (manually) the link lib it link
<bvernoux> there is some inter dependencies which are not correctly managed in the Cmake too
<bvernoux> what a crap
<bvernoux> for example doing
<bvernoux> -lSPIRV -lSPIRV-Tools-opt -lSPIRV-Tools -lglslang "C:/VulkanSDK/1.3.224.1/Lib/vulkan-1.lib" -lOGLCompiler -lGenericCodeGen -lMachineIndependent -lGenericCodeGen -lOGLCompiler -lOSDependent
<bvernoux> works ;)
<bvernoux> I clearly do not know how to fix that in the CMake
<bvernoux> as I have hacked manually the scopehal-apps\build\lib\scopehal\CMakeFiles\scopehal.dir\linklibs.rsp to do it
<bvernoux> let check if that generate a final exe and dll which work with vkFFT anyway
<bvernoux> but here it is definitely built without any SPIRV.dll and using static lib from my glslang release build
<bvernoux> here the aim is to deal with recursive lib
<bvernoux> To be checked with Johnsel as maybe https://github.com/Johnsel/scopehal-apps/commit/06fa29bfd2bafd196b11fceeb140132cf0c7a425 have the correct things to do
<bvernoux> The
<bvernoux> if(NOT glslang IN_LIST Vulkan_FIND_COMPONENTS)
<bvernoux> list(APPEND Vulkan_FIND_COMPONENTS glslang)
<bvernoux> endif()
<_whitenotifier-7> [scopehal-apps] bvernoux edited a comment on issue #470: Windows CI build is broken despite finding Vulkan SDK - https://github.com/glscopeclient/scopehal-apps/issues/470#issuecomment-1242674690
<azonenberg> So one of the other things i'm pushing hard on in ngscopeclient is better in-app tooltips and documentation
<azonenberg> i think that should help get people up to speed faster
<d1b2> <david.rysk> I’m very much a fan of that
<azonenberg> yeah and imgui makes this far easier than GTK does
<bvernoux> YES
<bvernoux> FFT works with my native static build of glslang on mingw64
<azonenberg> :D
<bvernoux> So now we shall fix the mess with recursive static lib dependencies and how to manage that with cmake ;)
<bvernoux> advantage of the glslang static build is there is less dll as all is static in fact
<bvernoux> no SPIRV.dll required and no glslang.dll ...
<bvernoux> and the good things it is very smooth
<bvernoux> on my old GeForce GT 650M on Windows10
<bvernoux> really smoother than before on previous glscopeclient without Vulkan and all the refactor
<azonenberg> So the big change is the removal of OpenCL and clFFT
<azonenberg> and the new data model
<azonenberg> rendering is still all opengl in glscopeclient for now
<azonenberg> we're only using vulkan for compute
<bvernoux> yes I suspect OpenCL/clFFT was not working very well on my old computer GFX card
<azonenberg> very possible
<azonenberg> anyway, sounds like you're making good progress
<bvernoux> I have documented the steps here https://github.com/glscopeclient/scopehal-apps/issues/470
<bvernoux> it is still a work in progress
<bvernoux> the bad news is glslang requires to rebuild all from source code
<bvernoux> the good news is we can use VulkanSDK to link the vulkan dll
<bvernoux> and I have not seen issue even if the lib is built for Visual Studio 2017
<bvernoux> as it is a dll at end it is compatible
<bvernoux> the issue is towards static lib
<_whitenotifier-7> [scopehal-apps] bvernoux edited a comment on issue #470: Windows CI build is broken despite finding Vulkan SDK - https://github.com/glscopeclient/scopehal-apps/issues/470#issuecomment-1242674690
bvernoux has quit [Read error: Connection reset by peer]
bvernoux has joined #scopehal
<bvernoux> re
<bvernoux> just found an issue with glscopeclient (latest version) with Vulkan
<bvernoux> when in full screen sometimes when I switch to an other app and I come back to glscopeclient the events does not work anymore
<bvernoux> I suspect it is an other bug with gtkmm
<bvernoux> Which anyway does not seems to manage correctly full screen on Windows since lot of time
<azonenberg> There are known fullscreen issues with glscopeclient especially on windows
<azonenberg> at this point i do not intend to fix them unless we change our mind about ngscopeclient
<azonenberg> ngscopeclient should fullscreen fine on all platforms
<bvernoux> yes just do not loose time on that
<azonenberg> (if it does not, that is a bug we need to fix)
<bvernoux> yes it is better to focus on ngscopeclient
<bvernoux> evne if so far it is a POC
<bvernoux> it is good to check it step by step on all platform
<bvernoux> I have still an annoying bug
<bvernoux> C:\Users\bvern\AppData\Roaming\glscopeclient
<bvernoux> there is corrupted files in it
<azonenberg> what sort of corrupted files?
<bvernoux> created by glscopeclient or ngscopeclient
<bvernoux> the solution is to remove the files
<bvernoux> and restart
<bvernoux> I will check when I can reproduce again
<azonenberg> shader cache or configuration?
<bvernoux> yes I suspect that
<bvernoux> It appears after I have added FFT
<bvernoux> then exit then relaunch
<bvernoux> let me check again
<azonenberg> the shader cache files included CRCs, so even if corrupted things should still work
<azonenberg> it will safely fall back
<azonenberg> try adding --debug --trace PipelineCacheManager to your arguments
<bvernoux> found it ;)
<bvernoux> it is related to vkFFT logs
<azonenberg> logs??
<bvernoux> shader_pipeline_VkFFT_FWD_65536.spv.bin
<azonenberg> those are not logs
<bvernoux> shader_raw_VkFFT_FWD_65536.bin
<azonenberg> that's pipeline caches
<bvernoux> are created
<azonenberg> and shader caches
<bvernoux> yes let me check the logs
<bvernoux> terminate called after throwing an instance of 'std::out_of_range'
<bvernoux> what(): basic_string::substr: __pos (which is 52) > this->size() (which is 39)
<azonenberg> They're all checksummed with crc32 and i verified all of the stuff is done in binary mode
<azonenberg> so should be no windows screwing with line endings
<bvernoux> the bug is related to shader_pipeline_VkFFT_FWD_65536.spv.bin
<bvernoux> when it exist it do the bug
<azonenberg> interesting. (also, IRC really doesn't like large stack traces so please use a pastebin or something for those)
<bvernoux> hmm it is strange in fact
<bvernoux> if i comment multiple .spv.bin
<bvernoux> it start
<bvernoux> else I have error terminate called after throwing an instance of 'std::out_of_range'
<bvernoux> <bvernoux> what(): basic_string::substr: __pos (which is 52) > this->size() (which is 39)
<bvernoux> So it seems when it load/check the files spv.bin
<azonenberg> is that failing inside vkfft or in PipelineCacheManager or something else?
<azonenberg> ("catch throw" in gdb to break on an exception)
<bvernoux> yes let me check where it fail
<bvernoux> it really depends on number of shader_xxx files in C:\Users\bvern\AppData\Roaming\glscopeclient
<bvernoux> if I rename (with _ at start) few all work fine
<azonenberg> it depends on the number of fiels?
<azonenberg> thaaaat is an interesting bug
<bvernoux> I'm launching the debug with all files now
<azonenberg> i feel like it's probably string parsing in PipelineCacheManager
<bvernoux> where the issue appears all the time just launching glscopeclient
<azonenberg> possibly path separators behaving differently on linux and windows
<bvernoux> hmm even with gdb it exit directly with error
<bvernoux> terminate called after throwing an instance of 'std::out_of_range'
<bvernoux> what(): basic_string::substr: __pos (which is 52) > this->size() (which is 39)
<azonenberg> yeah you need to "catch throw"
<azonenberg> to get the backtrace
<azonenberg> to get it to break on the exception*
<azonenberg> by default it won't break
<bvernoux> it wont break even with catch throw
<bvernoux> crazy
<bvernoux> terminate called after throwing an instance of 'std::out_of_range'
<bvernoux> what(): basic_string::substr: __pos (which is 52) > this->size() (which is 39)
<bvernoux> [Thread 3840.0x2b84 exited with code 3]
<bvernoux> [Thread 3840.0x35e8 exited with code 3]
<bvernoux> [Thread 3840.0x2b5c exited with code 3]
<bvernoux> [Thread 3840.0x2794 exited with code 3]
<bvernoux> [Thread 3840.0x1d8c exited with code 3]
<bvernoux> [Thread 3840.0x22c0 exited with code 3]
<bvernoux> [Thread 3840.0x2fe4 exited with code 3]
<bvernoux> [Thread 3840.0x2ae4 exited with code 3]
<azonenberg> break on terminate()?
<bvernoux> [Thread 3840.0x538 exited with code 3]
<azonenberg> or abort()?
<bvernoux> [Inferior 1 (process 3840) exited with code 03]
<bvernoux> it is release build too
<bvernoux> but even with release it shall stop
<bvernoux> to have a bt ...
<azonenberg> anyway, i'm about 95% sure the bug is related to the string parsing logic in PipelineCacheManager.cpp:204-210
<azonenberg> likely the call on 204 as that's the only one with substr() being called with a largeish input
<azonenberg> so maybe the path name isn't canonicalized or something and we end up trying to trim extra parts off the filename, idk
<azonenberg> but that is likely the problem
<bvernoux> i have added a break on exit
<bvernoux> let see
<azonenberg> bvernoux: try breaking on that file
<azonenberg> PipelineCacheManager.cpp:204
<azonenberg> see what f and prefix are each iteration of the loop
<azonenberg> f should always start with prefix
<azonenberg> if it doesn't, that's the problem
<bvernoux> I have only release so I cannot break on source
<azonenberg> then add a LogDebug() call before that line
<azonenberg> to print those two values
<bvernoux> yes
<bvernoux> it is a faster solution than rebuilding all with debug ;)
<bvernoux> especially as I shall hack the build when it fail for the recursive lib ...
<bvernoux> so it is a crappy hack to build it on mingw64
<bvernoux> so just
<bvernoux> LogDebug("PipelineCacheManager::LoadFromDisk f=%s\n", f.c_str());
<azonenberg> print prefix as well
<bvernoux> so
<bvernoux> LogDebug("PipelineCacheManager::LoadFromDisk prefix=%s f=%s\n", prefix.c_str(), f.c_str());
<azonenberg> Yeah
<bvernoux> ok built
<bvernoux> bingo
<bvernoux> PipelineCacheManager::LoadFromDisk prefix=C:\Users\bvern\AppData\Roaming\glscopeclient\shader_ f=shader_pipeline_CosineSumWindow.
<bvernoux> spv.bin
<bvernoux> terminate called after throwing an instance of 'std::out_of_range'
<azonenberg> So f is a relative path not an absolute
<azonenberg> ok, there's your problem
<bvernoux> it is probably a specific problem for Windows
<azonenberg> Yeah ok give me a few minutes to fix what i'm working on
<azonenberg> i should have a fix soon
<bvernoux> yes no problem
<d1b2> <azonenberg> ok here we go, more beauty shots of the power supply UI with the new integrated help tooltips
<d1b2> <azonenberg> (ping @david.rysk ^ )
<bvernoux> yes ImGui is amazing ;)
<bvernoux> the must have is we can add in live some UI for debug without rebuilding all
<bvernoux> with some compiler (especially Visual Studio)
<_whitenotifier-7> [scopehal-apps] bvernoux edited a comment on issue #470: Windows CI build is broken despite finding Vulkan SDK - https://github.com/glscopeclient/scopehal-apps/issues/470#issuecomment-1242674690
<_whitenotifier-7> [scopehal] azonenberg pushed 1 commit to master [+0/-0/±1] https://github.com/glscopeclient/scopehal/compare/e4332fbbf4f4...f6b44722a58a
<_whitenotifier-7> [scopehal] azonenberg f6b4472 - PipelineCacheManger: handle relative as well as absolute paths
<_whitenotifier-7> [scopehal-apps] azonenberg pushed 3 commits to master [+2/-0/±9] https://github.com/glscopeclient/scopehal-apps/compare/6ecc343de62f...3e9894d75d67
<_whitenotifier-7> [scopehal-apps] azonenberg a0b9356 - Initial skeleton UI for connecting to multimeters. Don't actually do anything useful with them yet.
<_whitenotifier-7> [scopehal-apps] azonenberg 0ac78bb - PowerSupplyDialog: added lots of help tooltips
<_whitenotifier-7> [scopehal-apps] azonenberg 3e9894d - Updated to latest scopehal
<azonenberg> bvernoux: should be fixed, please test
<azonenberg> no need to delete existing cache
<azonenberg> the files were fine, we just were loading them wrong
<bvernoux> I'm rebuilding the fix
<bvernoux> yes it works now
<bvernoux> but it fail in fact
<bvernoux> PipelineCacheManager::LoadFromDisk prefix=C:\Users\bvern\AppData\Roaming
<bvernoux> ader_shader_pipeline_CosineSumWindow.spv.bin
<bvernoux> \glscopeclient\shader_ f=C:\Users\bvern\AppData\Roaming\glscopeclient\sh
<bvernoux> Warning: Read cache header failed (C:\Users\bvern\AppData\Roaming\glscop
<bvernoux> eclient\shader_shader_pipeline_CosineSumWindow.spv.bin)
<bvernoux> but it does not exit now
<bvernoux> the issue is in the name it contains shader_shader_xxxx
<bvernoux> so shader_ 2 times
<bvernoux> so the file is not found
<bvernoux> to be checked if just changing
<bvernoux> auto prefix = m_cacheRootDir + "shader_";
<bvernoux> by
<bvernoux> auto prefix = m_cacheRootDir;
<bvernoux> is ok
<azonenberg> no
<azonenberg> we use the prefix elsewhere
<azonenberg> replace line 204 with m_cacheRootDir
<azonenberg> instead of prefix
<bvernoux> ha yes
<azonenberg> i'll fix it and push with my next changes if you test localy and confirm
<bvernoux> let me test
<bvernoux> if(f.find(prefix) == string::npos)
<bvernoux> f = m_cacheRootDir + f;
<bvernoux> yes it is good now
<bvernoux> PipelineCacheManager::LoadFromDisk prefix=C:\Users\bvern\AppData\Roaming
<bvernoux> \glscopeclient\shader_ f=C:\Users\bvern\AppData\Roaming\glscopeclient\sh
<bvernoux> PipelineCacheManager::LoadFromDisk prefix=C:\Users\bvern\AppData\Roaming
<bvernoux> ader_pipeline_CosineSumWindow.spv.bin
<bvernoux> \glscopeclient\shader_ f=C:\Users\bvern\AppData\Roaming\glscopeclient\sh
<bvernoux> ader_pipeline_ImGui.spv.bin
<bvernoux> PipelineCacheManager::LoadFromDisk prefix=C:\Users\bvern\AppData\Roaming
<bvernoux> \glscopeclient\shader_ f=C:\Users\bvern\AppData\Roaming\glscopeclient\sh
<bvernoux> ader_pipeline_VkFFT_FWD_65536.spv.bin
<bvernoux> PipelineCacheManager::LoadFromDisk prefix=C:\Users\bvern\AppData\Roaming
<bvernoux> \glscopeclient\shader_ f=C:\Users\bvern\AppData\Roaming\glscopeclient\sh
<bvernoux> ader_raw_VkFFT_FWD_65536.bin
<_whitenotifier-7> [scopehal] azonenberg pushed 1 commit to master [+0/-0/±1] https://github.com/glscopeclient/scopehal/compare/f6b44722a58a...065470328599
<azonenberg> Great
<_whitenotifier-7> [scopehal] azonenberg 0654703 - Use cache root dir not prefix to fix relative paths
<bvernoux> I hope that break nothing for Linux
<bvernoux> that all for today like that nothing crash when I exit and restart
<bvernoux> I should test all filter stuff to be sure all is fine
<bvernoux> but so far so good
<azonenberg> That's all gated by a check in case we get a relative path when we expected an absolute
<d1b2> <azonenberg> also @everyone reminder, Monday (tomorrow) at 10AM Pacific time there will be a developer Zoom meeting to go over recent changes, make plans for the next few weeks, etc
<d1b2> <azonenberg> The primary intended audience is active contributors/developers, but anyone is welcome to join. PM me for the zoom link if you want to join
<d1b2> <ᴇʀɪᴄ> please don't ping everyone
<d1b2> <Triggered_Tux> ^
<d1b2> <Delilah (Siabus)> ^
<d1b2> <Greg> (FYI, using (at)here will just ping the members who have used this channel)
<d1b2> <azonenberg> ah ok, sorry that was my intention
<d1b2> <ᴇʀɪᴄ> nope, never used this channel
<d1b2> <azonenberg> Didn't realize it would ping the whole server. oops
<d1b2> <ᴇʀɪᴄ> (i understood belatedly, sorry)
<d1b2> <josuah> to help with people always puzzled with time zones like me
<d1b2> <azonenberg> Yeah, this seemed to be the best option for getting US and western europe, which is where most of the active devs are
<d1b2> <azonenberg> it's late morning here, lunchtime east coast, and evening in europe
<d1b2> <azonenberg> and the middle of the night in eastern europe/asia but we don't have a lot of current devs there
<d1b2> <david.rysk> Any reason this server doesn’t have a mechanism where people can subscribe to project specific notifications? @\here only notifies people who are non-idle
<d1b2> <david.rysk> Several servers I’m on use a bot with roles to handle this
<d1b2> <azonenberg> yeah i'm used to IRC land where it's not even possible to ping an entire server, and notifications just go to a channel
<d1b2> <david.rysk> Or just roles, and then the role can be pinged
<d1b2> <Makerprobe> That would leave people out who aren't in that role, but actively lurking
<azonenberg> Not sure what the best option is that doesn't spam the whole server but also makes sure people who want to see updates get them
<d1b2> <Hathor> 🅱️ruh
ehntoo has joined #scopehal
<ehntoo> I guess I'm going to need to get a proper IRC client set up again. It's been a while.
<ehntoo> For running ngscopeclient on macOS, I did have the UI drawing last night, but input handling was pretty messed up. Clicks and mouseovers were only processing on the viewport that didn't have focus. I was going to dig into it more this morning, but after a rebase I'm getting what's probably a more helpful assertion:
<ehntoo> Assertion failed: ((g.FrameCount == 0 || g.FrameCount == g.FrameCountPlatformEnded) && "Forgot to call UpdatePlatformWindows() in main loop after EndFrame()? Check examples/ applications for reference."), function ErrorCheckNewFrameSanityChecks, file imgui.cpp, line 8927.
<ehntoo> zsh: abort ./ngscopeclient
<azonenberg> ehntoo: interesting. never seen any of those before
<azonenberg> We call UpdatePlatformWindows() in the main loop
<azonenberg> it might be something around window resize handling, i recently fixed a few bugs about that
<ehntoo> yeah. my first naive try of hoisting UpdatePlatformWindows() and RenderPlatformWindowsDefault() directly below the call to ImGui::Render() explodes in other ways. I'll poke around for a while.
<azonenberg> That shouldn't happen
<azonenberg> UpdatePlatformWindows() etc should happen at the *end* of the frame
<azonenberg> after we've drawn everything else
<azonenberg> conjecture: it's something to do with the resize event pending logic around line 288
<azonenberg> of VulkanWindow.cpp
<azonenberg> and perhaps leaving something in an inconsistent state
<azonenberg> We might have to do some cleanuup before we return
<azonenberg> (the other abort-and-return scenarios near the end on line 342/349 are after UpdatePlatformWindows() is called)
<azonenberg> Try calling UpdatePlatformWindws() and RenderPlatformWindowsDefault() before the Render() call on 288
<ehntoo> that cures the assert. now the window opens and then immediately closes with a segfault.
<azonenberg> New problem, yay
<ehntoo> if the stack trace is to be believed, it looks like maybe the call to Render() around 288 is recurring infinitely?
<azonenberg> That sounds like an event handling issue. it's supposed to only get to the recursion if the window size has changed
<azonenberg> in which case we resize the buffer and call it again
<azonenberg> check if the window size is something crazy like 0x0
<ehntoo> nope, reporting 1280x720
<ehntoo> `m_swapchain->acquireNextImage` is returning (vk::Result::eSuboptimalKHR, 0)
<azonenberg> Ok so it's suboptimal but you resize and still suboptimal
<azonenberg> interesting. Maybe we need to add some kind of a recursion check or something for that
<azonenberg> Out of date = recurse
<azonenberg> suboptimal = recurse, but if you get it again live with it
<azonenberg> i had never seen that error in my testing
<d1b2> <david.rysk> Is it properly taking into account HiDPI?
<azonenberg> Good question. that might also be it
<azonenberg> but at this stage my focus is making it work, not work optimally
<d1b2> <david.rysk> (Because 1280x720 seems awfully low for a Mac screen)
<azonenberg> once it's not crashing we can worry about the details :)
<azonenberg> That's the default window size at startup
<azonenberg> Not screen resolution
<azonenberg> i had to pick a size, i figured 720p was as good a guess as any
<d1b2> <david.rysk> Yeah but macOS by default does 2x or something close
<d1b2> <widlarizer> (Better yet, there is a @ stream-watchers role to ping)
<ehntoo> oh, I hadn't considered that. I seem to recall seeing some flags you can toss at glfw to get it to render without high dpi... let me see if I can find those
<d1b2> <david.rysk> So you should get a fairly small window if you’re declaring 720p
<azonenberg> i mean i have a 4K monitor on my desk
<azonenberg> But it's 4K 43"
<azonenberg> so DPI is roughly the same as a 22" 1080p
<d1b2> <david.rysk> If not it might be in HiDPI mode but not allocating enough memory due to believing the resolution is half
<azonenberg> Yeah it could be something like that
<ehntoo> high dpi handling on macOS can lead to some very strange behaviors regarding sizing
<d1b2> <david.rysk> azonenberg: how are you planning to handle UI scale?
<azonenberg> I haven't got that far yet :)
<d1b2> <david.rysk> It’s just something to keep in mind early on before designing everything in a way that assumes 1:1
<azonenberg> At this point i'm not doing anything with coordinates at all
<azonenberg> i'm just packing ui widgets into boxes
<azonenberg> i set some default sizes for a few things but that's straightforward to scale if needed
<azonenberg> in general i dislike the whole concept of ui scaling, i see it as a compatibility shim
<azonenberg> i'd much rather just double the font sizes and such and draw 1:1
<ehntoo> tossing a `glfwWindowHint(GLFW_COCOA_RETINA_FRAMEBUFFER, GLFW_FALSE);` at it doesn't change things. I'll have a longer poke around and report back.
<azonenberg> Rephrasing: I wish I could say 'make this a 10 point font' and have it be however many pixels tall 10/72 inch on the display is
ehntoo has quit [Quit: Ping timeout (120 seconds)]
<_whitenotifier-7> [scopehal-apps] bvernoux edited a comment on issue #470: Windows CI build is broken despite finding Vulkan SDK - https://github.com/glscopeclient/scopehal-apps/issues/470#issuecomment-1242674690
ehntoo has joined #scopehal
<ehntoo> hooked up to an external monitor at 1:1 scale, still having the same issue, so this is not _strictly_ HighDPI related.
<ehntoo> I've also experimented with modifying the resize event handling. If I just ignore the fact that acquireNextImage is returning eSuboptimalKHR, I can get to a state where the GUI will keep running but the cursor's just a beachball and all the window contents are squished into a corner.
<ehntoo> still experimenting.
<ehntoo> (after lunch)
<bvernoux> For information I will try to push final fix for mingw64
<bvernoux> fixing recursive static lib ... and building https://github.com/KhronosGroup/glslang.git from scratch
<bvernoux> it is the only way to have something working with mingw64 so far
<bvernoux> and it seems to be a solution not only for short term as VulkanSDK is mainly built for Visual Studio so for glslang stuff (static lib) it is mandatory for us to rebuild all for mingw64
<bvernoux> other work in progress is to fix the CI build for Ubuntu
<bvernoux> For those interested I have found the solution to do recursive static lib link with cmake
<bvernoux> using -Wl,--start-group -lOGLCompiler -lGenericCodeGen -lMachineIndependent -Wl,--end-group
<bvernoux> that affect only WIN32 build of course
<bvernoux> as Linux does not need that
<_whitenotifier-7> [scopehal] bvernoux opened pull request #686: Fix scopehal build for WIN32 (Windows mingw64) - https://github.com/glscopeclient/scopehal/pull/686
<_whitenotifier-7> [scopehal] azonenberg pushed 1 commit to master [+0/-0/±2] https://github.com/glscopeclient/scopehal/compare/065470328599...2eaaa64ee17c
<_whitenotifier-7> [scopehal] azonenberg 2eaaa64 - Added Multimeter::ModeToText()
<_whitenotifier-7> [scopehal-apps] bvernoux edited a comment on issue #470: Windows CI build is broken despite finding Vulkan SDK - https://github.com/glscopeclient/scopehal-apps/issues/470#issuecomment-1242674690
<d1b2> <Makerprobe> trying to build glscopeclient as per glscopeclient-manual, during glscopeclient-apps make: glscopeclient/scopehal-apps/lib/scopehal/VulkanInit.cpp:36:10: fatal error: glslang_c_interface.h: No such file or directory 36 | #include <glslang_c_interface.h> ` | ^~~~~~~~~~~~~~~~~~~~~~~
<azonenberg> Is this on Linux or Windows?
<d1b2> <Makerprobe> ubuntu 22.04 LTS
<azonenberg> And do you have the Vulkan SDK installed?
<bvernoux> I have documented it
<azonenberg> (I suggest installing from the .deb packages, not the tarball - i think at one point hte manual said to use the tarball)
<d1b2> <Makerprobe> yes I went through section 3 of the installation instructions (Vulkan SDK)
<azonenberg> bvernoux: please assist since you seem to have solved this recently
<azonenberg> I just installed the .deb SDK and it worked
<bvernoux> sudo apt-get -y install glslang-dev
<d1b2> <Makerprobe> yes, tarball:
<bvernoux> it also required my PR
<azonenberg> ok yeah i think we are going to be moving away from that
<azonenberg> makerprobe: try installing the deb instead
<d1b2> <Makerprobe> Vulkan deb?
<bvernoux> so far vulkansdk install is mandatory but yes later could be replaced by vulkan deb
<azonenberg> Yeah. the lunarg page for the vulkan sdk download should include a link to a debian package repository and instructions for setting it up
<azonenberg> then you can just apt-get install vulkan-sdk
<bvernoux> but vulkan deb does not exist for Ubuntu 22.04 LTS
<d1b2> <Makerprobe> so how do I properly get rid of what I previously installed as per the manual?
<azonenberg> good question. a lot of people have been dealing with broken vulkan SDK installs the last week or so
<azonenberg> We only started using vulkan in the project like late August
<bvernoux> For Ubuntu 22.04 LTS I have it working
<bvernoux> but I install the VulkanSDK it is mandatory
<bvernoux> you also need to install libvulkan-dev
<azonenberg> makerprobe: i'm using the ubuntu 20.04 deb packages IIRC, on my debian bullseye machine
<bvernoux> The issue is VulkanSDK deb format does not exist for Ubuntu 22.04 LTS
<bvernoux> only tar.gz is available
<azonenberg> bvernoux: yes but the 20.04 should install on newer versions in my experience
<azonenberg> it doesnt have any conflicts with newer versions of stuff
<azonenberg> That i know of
<d1b2> <Makerprobe> ok so what would be the first step? is installing libvulkan-dev included in your workflow?
<bvernoux> it is not recommended to mix repo for 20.04 LTS with 22.04LTS and so on
<bvernoux> as it work on any Ubuntu/Debian version
<bvernoux> mixed with user manual which is not up to date so far as code is moving
<bvernoux> especially with glfw added recently ...
<d1b2> <Makerprobe> I'm sure I can break it
<azonenberg> makerprobe: yeah the past 2-3 weeks have been a lot of major churn on the project
<azonenberg> one big refactoring after another
<azonenberg> so you're coming in at an exciting time lol
<azonenberg> We're making great progress but the docs are lagging reality
<bvernoux> So far my fork https://github.com/bvernoux/scopehal-apps work on Ubuntu 2x
<bvernoux> I'm not sure the main repo is up to date
<bvernoux> with the fixes for the build
<bvernoux> I'm waiting the CI build finish for windows (I hope with success) and I will switch to my native Xubuntu 22.04 LTS to rebuild all
<d1b2> <Makerprobe> well I'll just go through the ubuntu workflow now and keep you updated about ... things
<azonenberg> bvernoux: i have not merged your most recent PR. i'll be reviewing that code after i finish the multimeter dialog work i'm doign right now
<bvernoux> yes doc shall be not far from that
<bvernoux> yes anyway latest PR is for Windows mingw64
<bvernoux> for Ubuntu all shall work fine it just miss few steps in documentation
<bvernoux> It is not far to be working fully
<azonenberg> bvernoux: please prepare a PR for scopehal-docs then
<bvernoux> yes it is what I plan
<bvernoux> [ 30%] Linking CXX shared library libscopehal.so
<bvernoux> collect2: error: ld returned 1 exit status
<bvernoux> [ 30%] Linking CXX shared library libscopehal.so
<bvernoux> usr/bin/ld: cannot find -lGenericCodeGen
<bvernoux> usr/bin/ld: cannot find -lMachineIndependent
<bvernoux> collect2: error: ld returned 1 exit status
<bvernoux> it is like the lib path to VulkanSDK lib is not set
<bvernoux> very strange
<d1b2> <Makerprobe> I'm still getting the same error. How can I check if that include file is present on my system?
<bvernoux> as GenericCodeGen lib are in vulkan\1.3.224.1\x86_64\lib
<bvernoux> I have understood
<bvernoux> the build with the CI is set to debug
<bvernoux> so it search the debug lib which does not exist in VulkanSDK ...
<bvernoux> so we shall change the default build to Release
<d1b2> <Makerprobe> I did actually try to build release
<bvernoux> as VulkanSDK does not include debug lib for Linux (like for WIndows)
<bvernoux> do you have used latest git ?
<d1b2> <Makerprobe> latest state of scopehal-apps you mean?
<bvernoux> in your repo scopehal-apps\cmake\ you shall have FindVulkan.cmake ...
<d1b2> <Makerprobe> yes it's there
<d1b2> <Makerprobe> `-- Could NOT find Vulkan (missing: Vulkan_LIBRARY Vulkan_INCLUDE_DIR) (found version "")
<bvernoux> @azonenberg, the advantage when building glslang is we can build both Release or Debug and so use the Release or Debug with glscopeclient ...
<bvernoux> @azonenberg, with VulkanSDK it is a dead end for that
<bvernoux> You have not set the different path
<bvernoux> do that
<bvernoux> cd ~
<bvernoux> mkdir vulkan
<bvernoux> cd vulkan
<bvernoux> tar xf vulkansdk-linux-x86_64-1.3.224.1.tar.gz
<bvernoux> export VULKAN_SDK=~/vulkan/1.3.224.1/x86_64
<bvernoux> sudo cp -r $VULKAN_SDK/include/vulkan/ /usr/local/include/
<bvernoux> sudo cp -P $VULKAN_SDK/lib/libvulkan.so* /usr/local/lib/
<bvernoux> sudo cp $VULKAN_SDK/lib/libVkLayer_*.so /usr/local/lib/
<bvernoux> sudo mkdir -p /usr/local/share/vulkan/explicit_layer.d
<bvernoux> sudo cp $VULKAN_SDK/etc/vulkan/explicit_layer.d/VkLayer_*.json /usr/local/share/vulkan/explicit_layer.d
<d1b2> <Makerprobe> question in between: why the extra export here: https://github.com/bvernoux/scopehal-apps/blob/master/.github/workflows/build-ubuntu.yml#L107
<bvernoux> sudo ldconfig
<bvernoux> export VULKAN_SDK=~/vulkan/1.3.224.1/x86_64
<bvernoux> export PATH=$VULKAN_SDK/bin:$PATH
<bvernoux> export LD_LIBRARY_PATH=$VULKAN_SDK/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
<bvernoux> export VK_LAYER_PATH=$VULKAN_SDK/etc/vulkan/explicit_layer.d
<bvernoux> cd ~
<bvernoux> cd scopehal-apps
<bvernoux> mkdir build
<bvernoux> cd build
<bvernoux> cmake -DBUILD_TESTING=OFF -DCMAKE_BUILD_TYPE=Release ..
<bvernoux> make -j4
<bvernoux> it shall work on Linux
<bvernoux> ha yes it is a bug
<d1b2> <Makerprobe> dude you're too fast
<bvernoux> it was a copy paste anyway it is not harmfull
<bvernoux> I have tried to fix the Ubuntu CI build using Release
<bvernoux> and removing the redundant line you have seen
<_whitenotifier-7> [scopehal] azonenberg pushed 1 commit to master [+0/-0/±1] https://github.com/glscopeclient/scopehal/compare/2eaaa64ee17c...eb20aef7a818
<_whitenotifier-7> [scopehal] azonenberg eb20aef - ModeToText: fixed using current setting rather than the supplied mode
<_whitenotifier-7> [scopehal-apps] azonenberg pushed 3 commits to master [+5/-0/±16] https://github.com/glscopeclient/scopehal-apps/compare/3e9894d75d67...a8a8bc9bb632
<_whitenotifier-7> [scopehal-apps] azonenberg eb4f3eb - Fixed bug where minimizing a WaveformGroup called ImGui::End() twice
<_whitenotifier-7> [scopehal-apps] azonenberg 4eab49d - Initial implementation of MultimeterDialog. Fixed rounding error in PSU/meter trend plots.
<_whitenotifier-7> [scopehal-apps] azonenberg a8a8bc9 - MultimeterDialog: initial mode support
<bvernoux> it seems the GitHub CI build has frozen ;)
<azonenberg> ok, i've got a few chores to do but should have the multimeter functionality done in another half hour or so of work. i think all i have left to do is implement the autorange switch and start/stop mode
<bvernoux> ha great
<bvernoux> it will be a good POC to have something to test
<bvernoux> latest GitHub CI Build for Ubuntu has failed with same error (even with Release) => https://github.com/bvernoux/scopehal-apps/runs/8294474349?check_suite_focus=true#step:7:182
<bvernoux> it is like the CI Build ignore => export LD_LIBRARY_PATH=$VULKAN_SDK/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
<bvernoux> So it output cannot find -lGenericCodeGen ...
t4nk_fn has joined #scopehal
<bvernoux> oups I have found the mistake
<bvernoux> link_directories($ENV{VULKAN_SDK}/Lib)
<bvernoux> Lib => instead of lib
<bvernoux> haha
<t4nk_fn> azonenberg, ... you brought this on yourself by inviting me... so here I am :b
<d1b2> <johnsel> Hey I’m sick and only just found my way out of bed. I even missed both that and the everyone ping hehe
<bvernoux> johnsel no problem on my side I'm focusing to fix the build for Windows mingw64 & Linux Ubuntu
<t4nk_fn> had a look at building scopehal-apps here on gentoo, had to make an ebuild for ffts and I'm not sure if it's installed correctly
<t4nk_fn> "Package 'ffts', required by 'virtual:world', not found" is mentioned
<bvernoux> So far the Build on Linux is validated only with Ubuntu 20.04 LTS and 22.04 LTS(WIP to be revalidated on my native Linux)
<t4nk_fn> but also -- Found libffts: /usr/local/include/ffts, /usr/local/lib/libffts.so .. and it builds, so maybe it's ok
<bvernoux> IIRC ffts have lot of issues ...
<t4nk_fn> I'm not running Ubuntu
<t4nk_fn> and I won't either ;)
<bvernoux> The good news is in mid term it will be removed
<t4nk_fn> however.. vulkansdk seems to be a bigger problem( for me)
<bvernoux> ha really ?
<t4nk_fn> there's also no ebuilds
<bvernoux> what do you call ebuilds ?
<t4nk_fn> do you know what Gentoo is, bvernoux?
<bvernoux> not really
<bvernoux> but I imagine you speak about prebuild things like deb ?
<t4nk_fn> prebuilt? no, I need to build it myself
<bvernoux> Gentoo is based on debian IIRC
<t4nk_fn> ebuilds are used by the package manager to keep track of stuff
<t4nk_fn> nah, not really.
<bvernoux> ha ok
<bvernoux> never used it
<d1b2> <johnsel> seems you have some options t4nk
<t4nk_fn> I'm not sure about that, johnsel, because it says "This is not related with VulkanTools, part of the LunarG Vulkan SDK and currently not packaged on Gentoo."
<d1b2> <johnsel> no that is fine you don't need that
<t4nk_fn> mmm
<bvernoux> Yes Ubuntu CI is fixed !!
<bvernoux> just for a case Lib instead of lib ;)
<d1b2> <johnsel> https://packages.gentoo.org/packages/media-libs/vulkan-layers/dependencies < dev-util/vulkan-headers dev-util/glslang etc
<t4nk_fn> I do have vulkan-headers installed, johnsel
<d1b2> <johnsel> that are the ones that are needed
<bvernoux> For info GitHub CI Windows mingw64 build is dead slow => https://github.com/bvernoux/scopehal-apps/runs/8294247045?check_suite_focus=true
<bvernoux> 1h to build glslang ..
<d1b2> <johnsel> yeah I can look at caching those dependencies prebuilt
<bvernoux> Yes will be great when we have something which build fine
<d1b2> <johnsel> yeah if you confirm it's working I'll do a pass over it to speed the build up
<bvernoux> In theory Ubuntu build shall be fine now
<bvernoux> I will do a PR if all is good
<bvernoux> then you can start optimization
<bvernoux> Potentially Ubuntu build shall also build glslang to produce debug or release build for Ubuntu
<t4nk_fn> johnsel, I am, and was getting "src/imgui/backends/imgui_impl_vulkan.cpp:1076: bool ImGui_ImplVulkan_Init(ImGui_ImplVulkan_InitInfo*, VkRenderPass): Assertion `info->Queue != nullptr' failed."
<bvernoux> As so far only Release is supported as the lib are from VulkanSDK on Ubuntu build which contains only Release lib
<t4nk_fn> (I had meanwhile installed vulkan-layers)
<d1b2> <johnsel> I do see a problem with how we install Vulkan SDK now on ubuntu, you're just copying a big amount of unlisted files to system folders. how do you properly uninstall?
<t4nk_fn> yeah, hhehe, that's my problem.. I'm not willing to do that
<t4nk_fn> but maybe it is a bit easier on gentoo
<d1b2> <johnsel> no it's also not the official instructions to do it this way
<bvernoux> johnsel yes it is the issue of VulkanSDK install it is not clean at all
<t4nk_fn> mmm, I was reading 'glscopeclient-manual.pdf'
<bvernoux> johnsel it is ok for CI Build but for real computer it shall be modified to something cleaner ... (for information it is official build steps provided by VulkanSDK documentation ...)
<d1b2> <johnsel> jeez, you're right
<d1b2> <johnsel> can we modify it? you're already modifying path and ld searchpath
<bvernoux> yes it can be part of the improvment
<d1b2> <johnsel> then we can also put it in the docs and forget about it
<bvernoux> yes clearly for the docs it shall be not like that
<d1b2> <Makerprobe> I've tried to build again in a fresh terminal, all paths are exported, but I still get the same error (glslang_c_interface.h not found). It must be missing on disk, or something else is not set or not set correctly
<d1b2> <johnsel> alright I do think we should keep CI and docs as much equal as we can but at least it is working now
<t4nk_fn> so.. am I to understand that installing the vulkansdk by copying those files over to /usr/local/include and /user/local/lib and such.. is all that is needed for me to do? (step 3. install Vulkan SDK)
<bvernoux> yes it is the crappy official way to install vulkansdk
<d1b2> <johnsel> ideally, no, but it is what the process is now.
<d1b2> <johnsel> they don't actually recommend it though bernoux
<d1b2> <johnsel> bvernoux*
<d1b2> <johnsel> there are scripts to just set up the environment with the right paths which should be enough
<t4nk_fn> mmmm if that is really true then that is probably just fine for me here on gentoo. I'd have to ask to be sure, but things are probably well kept track of
<d1b2> <johnsel> as well as you are doing that manually too, but also copying over the actual files to their default paths
<t4nk_fn> if I create an ebuild for it that is ;)
<t4nk_fn> I've been sort of religious about not running any make installs whatsoever
<d1b2> <johnsel> do you have the sdk?
<d1b2> <johnsel> you could just try running that env script first and see how far you get
<t4nk_fn> euh, I can download it I guess, from https :// sdk . lunarg . com / sdk / download /1.3.224.1/ linux / vulkansdk -
<t4nk_fn> linux - x86_64 -1.3.224.1. tar . gz or the likes?
<d1b2> <johnsel> source ~/vulkan/1.x.yy.z/setup-env.sh
<d1b2> <Makerprobe> I'm still lost here
<d1b2> <johnsel> are you on ubuntu makerprobe?
<d1b2> <Makerprobe> yes
<d1b2> <johnsel> did you install the glslang package?
<d1b2> <Makerprobe> I have glslang-dev installed
<d1b2> <Makerprobe> and it seems that glslang_c_interface is part of Vulkan
<d1b2> <johnsel> which sdk version have you installed?
<d1b2> <david.rysk> no issue with glscopeclient
<d1b2> <Makerprobe> 1.3.224.1
<d1b2> <johnsel> david I fear your laptop either does not support Vulkan at all or it's picking the wrong gpu if you do have a dedicated gpu in it
<d1b2> <david.rysk> it might not support vulkan that well, but the latest glscopeclient works
<d1b2> <johnsel> mm actually it goes out of memory
<bvernoux> yes before to install all stuff for glscopeclient check your PC have 3D GFX driver supporting Vulkan 1.2
<d1b2> <david.rysk> oh it may not have 1.2 support, only 1.0
<d1b2> <david.rysk> yeah 1.2 is not supported. Only 1.0
<d1b2> <johnsel> but it goes out of memory
<d1b2> <johnsel> so it's probably not that
<bvernoux> Even my old PC Asus support Vulkan 1.2+ with a GeForce GT 650M with latest Nvidia Driver for that card
<d1b2> <johnsel> although why it goes out of memory is a second question
<d1b2> <david.rysk> this is an ivy bridge intel
<d1b2> <johnsel> makerprobe that file should be part of the sdk indeed on linux so presumably you're missing some path setup or something
<bvernoux> Yes finally CI Build for Ubuntu is OK => https://github.com/bvernoux/scopehal-apps/actions/runs/3032984265
<bvernoux> as Bonus you have latest manual in pdf
<d1b2> <Makerprobe> yes that's what I think
<bvernoux> let me fix the manual now
<bvernoux> with latest updates
<d1b2> <Makerprobe> the exported path points to ~/vulkan/1.3.224.1/x86_64/vulkan/include which does NOT contain the missing header file. I do find that header in ~/vulkan/1.3.224.1/source/glslang/glslang/include though, but it doesn't look like the build environment knows about that location
<bvernoux> Anyone can always test the pre-built latest glscopeclient on https://github.com/bvernoux/scopehal-apps/actions/runs/3032984265
<bvernoux> feedback are welcome
<d1b2> <johnsel> alright well I'm off again I really don't feel too good today
<d1b2> <johnsel> good to have the build fixed bvernoux nice work
<bvernoux> I hope it works
<bvernoux> I have not tested the CI build so far
<d1b2> <johnsel> oooh.. why not test it?
<bvernoux> I shall switch to my native linux
<bvernoux> as wsl2 or virtualbox does not support 3D stuff ...
<bvernoux> especially driver for vulkan ... it was the same before with OpenGL/OpenCL ...
<bvernoux> My native linux is XUbuntu 22.04 LTS so I think it could run the pre-built CI even if it is built with Ubuntu 20.04 LTS
<bvernoux> If anyone here can test as I plan to switch to my native Linux in few hour
<_whitenotifier-7> [scopehal-apps] bvernoux opened pull request #485: Fix build for Windows(mingw64) & Linux (Ubuntu 20.04 LTS & 22.04 LTS) - https://github.com/glscopeclient/scopehal-apps/pull/485
<_whitenotifier-7> [scopehal-apps] bvernoux synchronize pull request #485: Fix build for Windows(mingw64) & Linux (Ubuntu 20.04 LTS & 22.04 LTS) - https://github.com/glscopeclient/scopehal-apps/pull/485
<t4nk_fn> (johnsel, bvernoux, I've double checked with some people, and it seems it will be ok, I should be able to install the sdk in a nice manner)
<d1b2> <Makerprobe> so can I download the build artifact from https://github.com/bvernoux/scopehal-apps/actions/runs/3032984265 and use that instead of trying to build my own?
<t4nk_fn> need to be away for a bit, will continue later
<t4nk_fn> thanks a lot so far.
<bvernoux> Makerprobe yes of course you can try it from https://github.com/bvernoux/scopehal-apps/actions/runs/3032984265
<d1b2> <Makerprobe> how would I run it? just executing glscopeclient gives me a missing .so error (a bit naive maybe, I admit that)
<d1b2> <Makerprobe> `./glscopeclient: error while loading shared libraries: libscopeprotocols.so: cannot open shared object file: No such file or directory
<bvernoux> For info I have pushed a PR https://github.com/glscopeclient/scopehal-apps/pull/485
<bvernoux> Makerprobe the lib are in lib dir
<bvernoux> you shall install them or add them in your lib path
<azonenberg> david.rysk: so there is currently a bug wrt vulkan 1.0/1.1 support
<azonenberg> in theory, we should be able to run down to 1.0, all higher version features we use are optional
<azonenberg> we just disable certain GPU acceleration features and fall back to software versions or slower shaders
<azonenberg> tl;dr if your vulkan *loader* supports a vulkan version higher than any installed driver
<azonenberg> things go sideways
<azonenberg> there's no easy fix for this, because you can't create the vulkan context without asking for a version
<bvernoux> @azonenberg, I do not understand why my PR have a conflict could you check https://github.com/glscopeclient/scopehal-apps/pull/485 ?
<azonenberg> and prior to doing that, you can query what version the runtime supports
<azonenberg> but you cannot check individual devices
<azonenberg> most likely, we will have to do a two pass approach
<azonenberg> where we first create a 1.0 context, then figure out what version is actually supported by the physically present GPU(s)
<azonenberg> then close the context and recreate with the highest available version
<azonenberg> as far as being out of device memory that's an interesting one
<azonenberg> ngscopeclient *should* not use very much video memory
<azonenberg> it's possible that you were just pushing close to limits already with other apps you had open
<bvernoux> Note: ngscopeclient shall be added with CI Build as only glscopeclient is available
<bvernoux> at least for Ubuntu
<bvernoux> Anyone known what is equivalent to glslang-dev libglfw3-dev (from Debian apt) to Fedora dnf ?
<bvernoux> I'm updating the doc
<bvernoux> Fedora install is broken since lot of time and I have not any Fedora (and I do not plan to install it)
<bvernoux> Fedora install => Fedora build
<bvernoux> hmm fedora seems to do not have libglfw3-dev package or similar
<bvernoux> @azonenberg, could we remove Fedora from section-gettingstarted.tex ?
<azonenberg> we can but i'd rather update it
<azonenberg> for now we can add a warning message "this section is out of date"
<bvernoux> yes
<bvernoux> we need someone with fedora to test it
<bvernoux> and it is not clear which Fedora version is supported too
<azonenberg> bvernoux: your merge conflict is because you're pointing to an older version of scopehal in your gitmodules
<bvernoux> ha ok
<azonenberg> pull latest scopehal in your local copy
<azonenberg> and it should merge cleanly after that
<bvernoux> it is required to have scopehal-apps build ok for mingw64
<azonenberg> ok h/o
<bvernoux> then all will be ok
<_whitenotifier-7> [scopehal] azonenberg closed pull request #686: Fix scopehal build for WIN32 (Windows mingw64) - https://github.com/glscopeclient/scopehal/pull/686
<_whitenotifier-7> [scopehal-apps] azonenberg closed issue #470: Windows CI build is broken despite finding Vulkan SDK - https://github.com/glscopeclient/scopehal-apps/issues/470
<_whitenotifier-7> [scopehal] azonenberg pushed 2 commits to master [+0/-0/±2] https://github.com/glscopeclient/scopehal/compare/eb20aef7a818...4346296088d0
<_whitenotifier-7> [scopehal] bvernoux b9eec8e - Fix scopehal build for WIN32 (Windows mingw64) Fix scopehal build for WIN32 (Windows mingw64) To build successfully it is required to install VulkanSDK-1.3.224.1-Installer.exe and build glslang.git tags/sdk-1.3.224.1 with mingw64 - VulkanSDK-1.3.224.1-Installer.exe available on https://vulkan.lunarg.com/sdk/home - Build glslang.git tags/sdk-1.3.224.1 with mingw64 ``` #
<_whitenotifier-7> Windows mingw64 glslang build (as it is not fully integrated in VulkanSDK-1.3.224.1 for Windows and built with Visual Studio 2017) cd ~ git clone https://github.com/KhronosGroup/glslang.git cd glslang git checkout tags/sdk-1.3.224.1 git clone https://github.com/google/googletest.git External/googletest cd External/googletest git checkout 0c400f67fcf305869c5fb113dd296eca266c9725 cd ../.. ./update_glslang_sources.py
<_whitenotifier-7> SOURCE_DIR=~/glslang BUILD_DIR=$SOURCE_DIR/build mkdir -p $BUILD_DIR cd $BUILD_DIR cmake -DCMAKE_BUILD_TYPE=Release -G"MinGW Makefiles" $SOURCE_DIR -DCMAKE_INSTALL_PREFIX="$(pwd)/install" cmake --build . --config Release --target install ```
<_whitenotifier-7> [scopehal] azonenberg 4346296 - Merge pull request #686 from bvernoux/master Fix scopehal build for WIN32 (Windows mingw64)
<_whitenotifier-7> [scopehal-apps] azonenberg pushed 1 commit to master [+0/-0/±1] https://github.com/glscopeclient/scopehal-apps/compare/a8a8bc9bb632...12e7490b614a
<_whitenotifier-7> [scopehal-apps] azonenberg 12e7490 - Updated to latest scopehal
<azonenberg> bvernoux: ok update your local scopehal and push your fork and it should be ready to merge. i'll review after you get that done
<d1b2> <Makerprobe> I added them temporarily by setting LD_LIBRARY_PATH accordingly, it now complains about libscopeexports.so which is not part of the build artifacts
<_whitenotifier-7> [scopehal-apps] bvernoux synchronize pull request #485: Fix build for Windows(mingw64) & Linux (Ubuntu 20.04 LTS & 22.04 LTS) - https://github.com/glscopeclient/scopehal-apps/pull/485
<_whitenotifier-7> [scopehal-apps] bvernoux synchronize pull request #485: Fix build for Windows(mingw64) & Linux (Ubuntu 20.04 LTS & 22.04 LTS) - https://github.com/glscopeclient/scopehal-apps/pull/485
<bvernoux> ok it is synchronized now
<d1b2> <Makerprobe> so since I don't really need glscopeclient (I was just curious), I'll leave it at that and hope that the problems I had on my system just magically disappear next time I give it a try
<bvernoux> Just wait the merge
<bvernoux> where CI Build and build are fixed for both Windows mingw64 & Ubuntu
<d1b2> <Makerprobe> ok. so I'd fetch when that PR is merged and then recompile?
<bvernoux> yes
<bvernoux> I'm updating the doc too
<bvernoux> so it will arrive after
<bvernoux> It shall be seen as temporary solution as johnsel will do some cleanup after I think
<bvernoux> But at least we have something which build on both Windows mingw64 & Linux Ubuntu
<_whitenotifier-7> [scopehal-apps] bvernoux edited a comment on issue #470: Windows CI build is broken despite finding Vulkan SDK - https://github.com/glscopeclient/scopehal-apps/issues/470#issuecomment-1242674690
<azonenberg> sooo as i build out the multimeter gui
<azonenberg> i'm rapidly finding missing features in the meter *driver* :p
<azonenberg> and the APIs
<azonenberg> so this might take a bit longer lol
<d1b2> <johnsel> aside from everything else wsl2 definitely supports gpu accelration nowadays
<bvernoux> ha I should check that
<bvernoux> interesting
<bvernoux> so far I'm still using wsl2 without GUI
<bvernoux> if you have any link to add GPU acceleration I'm interested
<bvernoux> I know for VirtualBox it is a dead end since lot of years and nothing have changed in best case it support OpenGL 1.0 ;)
<ehntoo> I wasn't making much further progress on my macOS troubleshooting, so I decided to do some lateral testing with the Dear ImGui GLFW+Vulkan example app. It _also_ has issues as soon as you enable `ImGuiConfigFlags_ViewportsEnable`, so this appears to be an upstream issue.
<d1b2> <johnsel> I mean if you're up to date it should just work
<d1b2> <david.rysk> bvernoux: you're probably best off with llvmpipe
<d1b2> <johnsel> on the latest you don't even get the terminal to finish install and create users with just a window window with the installer
<bvernoux> thanks for the link
<bvernoux> will be great to avoid switching all the time from windows to linux
<ehntoo> ok, never mind, I missed adding an extra call when enabling viewports. the upstream example works fine. cool, I've got a point of comparison now
<azonenberg> ehntoo: ah great
<bvernoux> haha the joke WSLg is for WIndows11
<bvernoux> and my system does not meet minimal config
<bvernoux> But on some page they say latest Windows10 support it
<d1b2> <david.rysk> does not meet minimal config -- too old cpu?
<d1b2> <david.rysk> pretty much any computer with 8th gen intel or 2nd gen ryzen or newer should run Windows11
<bvernoux> ha ok I need build >= 21364
<azonenberg> look who's talking with an ivy bridge cpu :p
<bvernoux> and I have stable version Windows10 OS build 19044
<d1b2> <david.rysk> I have a bunch of computers over here 😛
<bvernoux> the issue is not the CPU
<d1b2> <david.rysk> and yes the one that I'm primarily running off right now is a Thinkpad X230T with an i7-3520M
<bvernoux> it is they requires the crypto shit
<d1b2> <david.rysk> oh
<d1b2> <david.rysk> that's easier to fix
<d1b2> <david.rysk> update the BIOS then go into setup and turn it on
<d1b2> <david.rysk> if the CPU is new enough, it will support a vTPM
<bvernoux> (TPM) version 2.0.
<bvernoux> it is really bullshit
<d1b2> <david.rysk> from everything I can tell, all the CPUs in the Win11 supported device list support a vTPM version 2.o0
<d1b2> <david.rysk> 2.0*
<bvernoux> of course I have an old computer with TPM<2.0
<azonenberg> why did they require that? are they trying to push 100% FDE or something?
<azonenberg> (like android is)
<bvernoux> yes they want to push user to buy new computer
<d1b2> <david.rysk> some computers have a toggle where you can either turn on a vTPM or a dTPM, and the dTPM is usually 1.1
<d1b2> <david.rysk> 1.2*
<d1b2> <david.rysk> azonenberg: they already use it for office licensing where available
<azonenberg> oh i was about to say
<azonenberg> the only two things i see TPMs used for is DRM and FDE
<d1b2> <david.rysk> but anyway, my point is that if you have a supported CPU, you should be able to enable TPM 2.0 using vTPM
<d1b2> <david.rysk> however, that may require a BIOS update and going into setup and turning it on.
<azonenberg> new multimeter UI is coming along nicely
<bvernoux> I have disabled UEFI too ;)
<bvernoux> it is bullshit
<bvernoux> as anyone can bypass UEFI too
<d1b2> <david.rysk> UEFI needs to be enabled, secure boot does not.
<d1b2> <david.rysk> Win11 does not require secure boot to be enabled
<bvernoux> so for the moment I will do not use WSL GUI
<bvernoux> I do not want to be tracked by MS$ even more just for that
<d1b2> <david.rysk> UEFI isn't secure boot, it's a more modern boot method where instead of jumping to code at the beginning of the drive, the firmware looks for a specific partition and then runs a specific file on it
<bvernoux> they ask metering to be enabled to have access to latest update and so on
<bvernoux> Yes I can enable UEFI it was disabled because years ago there was issue to boot Linux with UEFI
<bvernoux> but it is solved since lot of time now
<bvernoux> especially with distrib like Ubuntu
<azonenberg> also holy moley it took 47 minutes for the ci build on ubuntu
<azonenberg> we need to get some big iron doing the CI builds sooner rather than later lol
<azonenberg> my workstation can build glscopeclient from nothing in about 3 minutes
<bvernoux> yes the CI build time is awfull
<azonenberg> sure i dont have to isntall packages first
<bvernoux> on windows it take more than 2h ;)
<azonenberg> johnsel is already looking into that. if we can get funding i want to just build a box and slap it in a rack somewhere
<azonenberg> and dedicate either one machine running a bare metal version of each OS, or one machine with a hypervisor and a couple pcie passthru GPUs
<azonenberg> and dedicated CI VMs
<bvernoux> already 50min to build glslang
<bvernoux> it is awfull
<azonenberg> anyway so i have to add some tooltips to the multimeter dialog and then it will be done
<azonenberg> at least, as done as it can get without me adding more features to the APIs
<azonenberg> next up will probably be function generator as that's easy
<bvernoux> I really think we will need to also build glslang for Linux to have something customizable especially for the Debug build
<azonenberg> (this is me killing time building UI stuff because i can't do actual scope control until lain finishes the renderer rewrite... poke poke)
<bvernoux> but it is not something which shall be built each time and it can be cached
<azonenberg> Yes having an internal binary package in a repo/server we can just wget and install will help save time
<azonenberg> bvernoux: anyway i'm still waiting for a PR to scopehal-docs to update the build instructions
<bvernoux> it is WIP ;)
<azonenberg> ok just making sure it doesnt get forgotten
<bvernoux> Will need to validate it to be sure too
<bvernoux> so tester are welcome ;)
<bvernoux> I plan to push it in few minutes
<_whitenotifier-7> [scopehal-apps] azonenberg closed pull request #485: Fix build for Windows(mingw64) & Linux (Ubuntu 20.04 LTS & 22.04 LTS) - https://github.com/glscopeclient/scopehal-apps/pull/485
<_whitenotifier-7> [scopehal-apps] azonenberg pushed 29 commits to master [+53/-11/±90] https://github.com/glscopeclient/scopehal-apps/compare/12e7490b614a...ffbfa617323b
<_whitenotifier-7> [scopehal-apps] bvernoux 136770f - Temporary disable Run Tests
<_whitenotifier-7> [scopehal-apps] bvernoux 9974344 - Temporary disable Run Tests
<_whitenotifier-7> [scopehal-apps] bvernoux e12650c - Try to fix windows Test
<_whitenotifier-7> [scopehal-apps] ... and 26 more commits.
<_whitenotifier-7> [scopehal] azonenberg pushed 1 commit to master [+0/-0/±1] https://github.com/glscopeclient/scopehal/compare/4346296088d0...c28a7efb3052
<_whitenotifier-7> [scopehal] azonenberg c28a7ef - HMC8012: implemented autoranging support for all currently implemented measurement types
<_whitenotifier-7> [scopehal-apps] azonenberg pushed 2 commits to master [+0/-0/±7] https://github.com/glscopeclient/scopehal-apps/compare/ffbfa617323b...1d062bae8c2e
<_whitenotifier-7> [scopehal-apps] azonenberg be458b5 - MultimeterDialog: added autoranging etc
<_whitenotifier-7> [scopehal-apps] azonenberg 1d062ba - Merge branch 'master' of github.com:glscopeclient/scopehal-apps
<_whitenotifier-7> [scopehal-apps] azonenberg pushed 1 commit to master [+0/-0/±1] https://github.com/glscopeclient/scopehal-apps/compare/1d062bae8c2e...9852b12fdd05
<_whitenotifier-7> [scopehal-apps] azonenberg 9852b12 - Fixed possible crash if destroying a session while we still have dialogs open
<d1b2> <Makerprobe> @bvernoux I tried again after a fetch, same missing include file error. I'm out for today
<bvernoux> very strange
<bvernoux> I have just updated the doc
<_whitenotifier-7> [scopehal-docs] bvernoux opened pull request #46: Update how to build On Debian/Ubuntu & Windows(MinGW64) - https://github.com/glscopeclient/scopehal-docs/pull/46
<bvernoux> Feedback are welcome
<bvernoux> For Linux the build is done on Release
<bvernoux> and on Windows mingw64 it is done on Debug build
<bvernoux> why Debug on Windows mingw64
<electronic_eel> re ci builds: maybe it is an option to move the ci builds to AWS. they offer sponsoring for open source projects: https://aws.amazon.com/blogs/opensource/aws-promotional-credits-open-source-projects/
<bvernoux> because of scopehal-apps/msys2/PKGBUILD which does not define the CBUILD so it is Debug by default
<electronic_eel> aws also has windows and arm mac clients
<electronic_eel> i haven't tried their open source sponsoring thing yet, but i just stumbled upon it while researching something else
<azonenberg> electronic_eel: so the arm mac ones are expensive
<azonenberg> because they have a 24 hour minimum per apple licensing requirements
<azonenberg> you cant spin up spot instances
<azonenberg> it ends up being better to just grab an older m1 machine from somebody who upgraded and shove it on a shelf with a cable coming out the back
<electronic_eel> yeah, they are expensive to rent. but i don't know what kind of sponsoring aws offers. for some other projects they are quite generous
<_whitenotifier-7> [scopehal] ehntoo commented on issue #685: Vulkan Queue Management on MoltenVK - https://github.com/glscopeclient/scopehal/issues/685#issuecomment-1243049784
<azonenberg> aws is an option but i suspect it would end up costing a lot of money. we dont need huge amounts of ultrafast disk and network bw and crazy high uptime
<azonenberg> (assuming we werent sponsored)
<azonenberg> what we need is a little bit of GPU and a lot of CPU, for short periods with a lot of downtime in between
<electronic_eel> i don't think aws would make much sense if they don't sponsor it
<azonenberg> yeah i was tempted to just slap an instance down on my xen server
<bvernoux> yes lot of CPU mainly means lot of CPU in // to build quickly
<electronic_eel> i just wanted to let you know that the option of sponsoring exists
<azonenberg> although i need a better CPU on it first
<bvernoux> with enough RAM of course ;)
<bvernoux> Ryzen9 shall do the trick
<bvernoux> I'm waiting the new Ryzen ;)
<azonenberg> ehntoo: re the font texture in the left panes, that is normal and expected
<ehntoo> gotcha
<azonenberg> lain is still working on (hasn't started yet?) porting the opengl waveform rendering shader and infrastructure to vulkan
<_whitenotifier-7> [scopehal] ehntoo edited a comment on issue #685: Vulkan Queue Management on MoltenVK - https://github.com/glscopeclient/scopehal/issues/685#issuecomment-1243049784
<azonenberg> so until we have actual waveform data to draw, i'm drawing the first texture i had handy
<azonenberg> and that was the font :p
<bvernoux> yes the bitmap font ;)
<ehntoo> '=D
<bvernoux> so yes I confirm it is the same rendering on Windows/Linux
<azonenberg> bvernoux: Imgui uses bitmap fonts for everything afaik. if you load a TTF it just gets rasterized to a bitmap and then treated the same, no?
<bvernoux> no TTF are better
<azonenberg> oh it does vector rendering of them?
<bvernoux> yes
<bvernoux> it is why it is a must
<azonenberg> anyway, switching to better fonts is definitely important. just have to do it in a portable fashion
<bvernoux> it use the vertex correctly with the TTF
<bvernoux> as everything is already vector
<azonenberg> might have to find a freely licensed font and redistribute it
<azonenberg> to keep things simple
<bvernoux> the bitmap are just faster/easier to use IIRC
<azonenberg> yeah i skimmed things briefly but didnt have a chance to investigate in detail. that's something i can worry about later after we get the rest of the infrastructure set up
<bvernoux> yes to be checked
<bvernoux> haha what a joke
<bvernoux> fail to build on Windows
<bvernoux> not enough disk ;)
<bvernoux> Windows
<bvernoux> You are running out of disk space. The runner will stop working when the machine runs out of disk space. Free space left: 71 MB
<bvernoux> I do not know how to fix that with GitHub CI Build
<azonenberg> loool
<bvernoux> yes ;)
<azonenberg> can you delete object files or something from the previous build steps?
<bvernoux> ha yes maybe
<azonenberg> before you proceed further?
<bvernoux> I do not know how that work
<bvernoux> maybe it is cumulated build from the whole day
<bvernoux> on my gith
<azonenberg> no the vms are fully reset each time
<azonenberg> its a clean slate
<azonenberg> so if you are running out it's because of stuff you generated
<bvernoux> Windows
<bvernoux> You are running out of disk space. The runner will stop working when the machine runs out of disk space. Free space left: 97 MB
<azonenberg> I think in general this project is getting to be too heavy for the free github runners
<bvernoux> We can free some disk space
<azonenberg> 2+ hour builds and then ultimately failures are not acceptable
<azonenberg> yes you can. but the question is how much it's worth trying to stagger on
<bvernoux> like delete VulkanSDK setup and so on after install
<d1b2> <david.rysk> why is build taking this long? just a lot of stuff to compile?
<azonenberg> vs just trying to spin up a dedicated builder somewhere
<azonenberg> its compiling on a tiny azure instance with like 2GB of ram and one or two vCPUs
<azonenberg> i forget the exact spec but it's wimpy
<azonenberg> the free github CI runners are not meant for a codebase this heavyweight with so many big dependencies
<bvernoux> it was working 2h ago ;)
<bvernoux> waiting 3hours to have a full windows build
<bvernoux> what a shame
<d1b2> <david.rysk> do they have macOS CI?
<azonenberg> No
<azonenberg> well, you can host your own runners
<azonenberg> and they do apparently support osx arm64 despite the docs not being updated to say so
<azonenberg> but the free runners are windows and linux only, and quite wimpy spec wise
<azonenberg> They also lack GPUs which is a whole other can of worms
<d1b2> <david.rysk> IIRC azure had better CI
<d1b2> <david.rysk> but was more annoying to set up
<d1b2> <johnsel> there are less wimpy options that you can use
<d1b2> <johnsel> if you pay
<azonenberg> So i think we are going to just have to bite the bullet and deploy actual hardware from somewhere
<d1b2> <johnsel> and this is actually azure ci
<azonenberg> johnsel: i dont think the github runners support higher spec
<azonenberg> iirc if you pay you jsuit get the minute cap removed
<azonenberg> just*
<d1b2> <johnsel> they do
<d1b2> <johnsel> it's in beta
<azonenberg> link?
<azonenberg> i can definitely get a bit of budget for it if it's not unreasonable
<d1b2> <johnsel> you'd have to go to your org and go the runners in the org config
<d1b2> <johnsel> there you can request access to the beta and set it up
<ehntoo> got it! Somehow the call to `glfwInitHint(GLFW_COCOA_MENUBAR, GLFW_FALSE);` was responsible for both breaking input handling and preventing the
<ehntoo> app from registering in the task switcher
<d1b2> <johnsel> ooops
<azonenberg> ehntoo: interesting
<azonenberg> i just wanted to say "there is no top level menu" since we have our menu in the app
<azonenberg> johnsel: any idea if they support GPUs?
<d1b2> <johnsel> I do, they don't
<ehntoo> I'm extremely puzzled by that interaction.
<ehntoo> but :shrug:
<d1b2> <david.rysk> "no top level menu" isn't great on macOS 😦
<azonenberg> (if we can get something beefy enough, we should be fine using swiftshader)
<d1b2> <johnsel> maybe, but it might also introduce a whole new can of worms with CI-only problems to fix
<d1b2> <johnsel> but given the effort to move away from it I think it's worth attempting for sure
<azonenberg> yes. I'm still open to deploying dedicated hardware and i think we can get budget
<azonenberg> (using github actions still, just hosted endpoints)
<d1b2> <johnsel> nothing beats an actual test
<azonenberg> self hosted*
<azonenberg> yeah we'd just need an actual github enterprise plan and a bunch of infrastructure set up around that
<d1b2> <johnsel> yeah I gathered that, but we know self hosted Windows will be shitty w/ mingw to set up
<azonenberg> (and that's a bit expensive - $231 *per user* per year)
<d1b2> <johnsel> you don't need enterprise for self hosted though
<azonenberg> no i meant for the hosted big runners
<azonenberg> actually, it's uncelar
<azonenberg> team or enterprise
<azonenberg> the docs are contradictory
<d1b2> <johnsel> well regardless I think downsizing the repo is best, there is no need to build everything in one
<d1b2> <johnsel> just split it out to it's own repos
<d1b2> <johnsel> we had that discussion for scopehal, which we can disagree on but keep monorepo but dependencies for sure can be moved out of the main repo
<azonenberg> well as we refactor things, and transition to ngscopeclient, things should get lighter weight
<azonenberg> ditching the opencl stuff already helped
<azonenberg> ditching gtk and ffts should too
<azonenberg> there is room to optimize global #includes wrt build time
<d1b2> <johnsel> sure but same for vulkan etc, we should be able to just prepare and build our dependencies in some other repo and just have a tar.gz output that we pull back in in the main repo
<azonenberg> i think we can cut a fair bit of time off the builds by some careful inspection and include-what-you-use deployment
<azonenberg> yes caching some of that will help. i dont build the SDK in our normal build proecss, that is purely CI
<azonenberg> having a cached artifact of the SDK should help enormously
<d1b2> <johnsel> sure but the CI is at hours of build time, your local build isn't
<azonenberg> well i also dont install the sdk anew and compile from source every build :p
<_whitenotifier-7> [scopehal] ehntoo commented on issue #685: Vulkan Queue Management on MoltenVK - https://github.com/glscopeclient/scopehal/issues/685#issuecomment-1243054002
<bvernoux> yes caching stuff will help
<bvernoux> johnsel could you check how work the CI Build caching ?
<d1b2> <johnsel> sure, but starting from 0 also proves you have a working build that can work on somebody else's system if those steps are followed
<d1b2> <johnsel> but we need to find some middle ground where we don't do all the work all the times
<d1b2> <johnsel> yes I will do a pass over the CI config and work out some method for caching in the next days
<bvernoux> we can always take a CI Build doing all for month check
<bvernoux> to be sure nothing is broken
<_whitenotifier-7> [scopehal-docs] azonenberg closed pull request #46: Update how to build On Debian/Ubuntu & Windows(MinGW64) - https://github.com/glscopeclient/scopehal-docs/pull/46
<_whitenotifier-7> [scopehal-docs] azonenberg pushed 2 commits to master [+0/-0/±2] https://github.com/glscopeclient/scopehal-docs/compare/3462b25d386c...da62209b0077
<_whitenotifier-7> [scopehal-docs] bvernoux ced1b3e - Update how to build On Debian/Ubuntu & Windows(MinGW64)
<_whitenotifier-7> [scopehal-docs] azonenberg da62209 - Merge pull request #46 from bvernoux/master Update how to build On Debian/Ubuntu & Windows(MinGW64)
<_whitenotifier-7> [scopehal-apps] azonenberg pushed 2 commits to master [+0/-0/±2] https://github.com/glscopeclient/scopehal-apps/compare/9852b12fdd05...1755e593b226
<_whitenotifier-7> [scopehal-apps] azonenberg 6c4226a - Added help tooltips to MultimeterDialog
<_whitenotifier-7> [scopehal-apps] azonenberg 1755e59 - Updated docs
<azonenberg> ok, help tooltips etc for the multimeter dialog are done
<azonenberg> i think function generator will come next as that's straightforward
<azonenberg> and quite simple
<azonenberg> with any luck i'll have all three working and demo-able for the call tomorrow
<azonenberg> although that depends on how many other things i have to do tonight
<azonenberg> ehntoo: also were you planning on joining the developer call tomorrow? the osx porting effort is one of the main agenda items for it
<ehntoo> Depends on what's going on at work, but I'd be interested in joining if nothing's on fire.
<azonenberg> ehntoo: let me pm you the zoom link and you can join or not
<_whitenotifier-7> [scopehal] ehntoo opened pull request #687: macOS Compile Fixes - https://github.com/glscopeclient/scopehal/pull/687
<ehntoo> oh, wow. glscopeclient launches too.
<ehntoo> I hadn't bothered trying previously, I'd assumed something would probably be broken
<_whitenotifier-7> [scopehal-apps] ehntoo opened pull request #486: macOS fixes - https://github.com/glscopeclient/scopehal-apps/pull/486
<ehntoo> there's some nontrivial CMake modifications dealing with the way Vulkan libraries are linked in #687 - After staring into FindVulkan.cmake abyss for longer than I'd like, I'm _fairly_ confident it should be portable across platforms, but it'll be good to verify.
<azonenberg> ehntoo: glscopeclient was compiling and running on osx as of a week or two ago thanks to lain's porting work. but it's not actually usable
<azonenberg> in particular, it will fail as soon as you create a waveform plot
<ehntoo> ahhh, gotcha
<azonenberg> because it is attempting to use opengl 4.3
<azonenberg> the key item left on her docket right now is getting the renderer converted from gl 4.3 to vulkan
<azonenberg> once that's done, we can merge it into glscopeclient (using gl 2.x - which runs on osx - as the compositor) and get the basics operational
<ehntoo> awesome
<azonenberg> and then take the same converted shader and rendering logic and plug it into ngscopeclient as the future-facing path
<azonenberg> which will skip a gpu-cpu-gpu copy and a bunc hof overhead plus all the baggage GTK drags along
<azonenberg> and just take the output of the vulkan compute shader and plug it right into a texture imgui can render
<_whitenotifier-7> [scopehal-apps] ehntoo edited pull request #486: macOS fixes - https://github.com/glscopeclient/scopehal-apps/pull/486
<azonenberg> the other known failure on osx (arm64 at least) at this point is FFTS
<azonenberg> which is currently used in the FFT, de-embed, channel emulation, and CTLE filters as a fallback if you run --nogpufilter, and in the unit tests for cross checking results agianst vkFFT
<azonenberg> it is also used in the spectrogram filter which is currently not gpu accelerated
<azonenberg> fixing this is on my todo list
<azonenberg> at that point it should be possible to do a pure vkfft build and maybe even make ffts a compile time option that's disabled if not present
<azonenberg> (in which case --nogpufilter will result in these filters not running)
<azonenberg> but that's fine as that is a developer/debug option intended for troubleshooting filters
<azonenberg> not something an end user wouuld ever use
<azonenberg> the intent is for as much processing as possible to be done on the gpu and ideally keep waveform data there indefinitely
<_whitenotifier-7> [scopehal-apps] ehntoo edited pull request #486: macOS fixes - https://github.com/glscopeclient/scopehal-apps/pull/486
<ehntoo> would there be any short-term value in looking into the FFTS issues on arm64 macOS?
<azonenberg> Minimal. You can't use glscopeclient until the renderer rewrite is done
<azonenberg> after that, the only things affected are unit tests and the spectrogram filter
<azonenberg> which is due for a gpu accelerated rewrite anyway
<azonenberg> We are moving away from FFTS specifically because it's basically dead, the last commit was in 2017
<azonenberg> i dont want to lift a finger to give it more life than needed at this point
<azonenberg> that effort is much better spent elsewhere
<ehntoo> makes sense to me.
<azonenberg> (We also were leaving clFFT for the same reason, it's also abandonware, however that effort was successfully concluded and we're now using vkFFT everywhere we had been using clFFT)
<d1b2> <david.rysk> Yeah and OpenCL is basically dead
<azonenberg> my big problem was that nvidia's dev tools for it were literally nonexistent
<d1b2> <david.rysk> Vulkan and Metal is where everything is going (and DX12 but that can be generally be ignored)
<azonenberg> you couldnt profile it or anything
<azonenberg> also major thread safety issues causing crashes i had worked around, and occasional garbage results i had not solved
<azonenberg> despite various methods being documented as thread safe, some were in fact not
<d1b2> <david.rysk> it got mostly abandoned after Apple pulled out of 2.0, and nvidia has an interest in keeping developers on CUDA
<azonenberg> i do find it ironic that apple was one of the key players in opencl early on, if not the single biggest driving force
<azonenberg> and then they ended up deprecating it
<azonenberg> anyway, nvidia's tooling eats vulkan just fine
<d1b2> <david.rysk> There is some serious private legal dispute going on between Apple and Khronos. I wish they would just settle…
<d1b2> <david.rysk> And yeah Vulkan seems to be the way to go especially with MoltenVK seeming to be workable
<azonenberg> Yeah
<azonenberg> it's definitely the way of the future for cross platform gpu acceleration
<azonenberg> My original plan had been to migrate to vulkan when we transitioned glscopeclient to gtk4
<azonenberg> because gtk4 had at least some vulkan integration
<azonenberg> over time it became clear that a) this was going to hold us back a lot on portability, b) gtk was slow, and c) gtk4 used vulkan on the backend but actually did not have a great way to integrate with it as an app rendering directly
<azonenberg> and d) gtk4 wasn't going to hit stable distros until mid 2023 at the soonest
<azonenberg> so if we were going to put that much work in, it made sense to change things up
<_whitenotifier-7> [scopehal-apps] bvernoux opened pull request #487: Fix Windows mingw64 build - https://github.com/glscopeclient/scopehal-apps/pull/487
<bvernoux> I have finally fixed build for windows again ;)
<bvernoux> in the CI
<bvernoux> it was not the disk error even if we are not far
<bvernoux> it was because the CI build for glslang was done for Debug and in fact it is hard coded in glcopeclient to use the Release lib
<bvernoux> so it was not finding the lib ...
<_whitenotifier-7> [scopehal-apps] azonenberg closed pull request #487: Fix Windows mingw64 build - https://github.com/glscopeclient/scopehal-apps/pull/487
<_whitenotifier-7> [scopehal-apps] azonenberg pushed 4 commits to master [+0/-0/±5] https://github.com/glscopeclient/scopehal-apps/compare/1755e593b226...051cf63c3b41
<_whitenotifier-7> [scopehal-apps] bvernoux 4a04c51 - Delete VulkanSDK-1.3.224.1-Installer.exe after install
<_whitenotifier-7> [scopehal-apps] bvernoux 62fb088 - Merge branch 'glscopeclient:master' into master
<_whitenotifier-7> [scopehal-apps] bvernoux 55e6131 - Fix Windows mingw64 build
<_whitenotifier-7> [scopehal-apps] azonenberg 051cf63 - Merge pull request #487 from bvernoux/master Fix Windows mingw64 build
<_whitenotifier-7> [scopehal-docs] bvernoux opened pull request #47: Fix Windows mingw64 Build for glslang to Release - https://github.com/glscopeclient/scopehal-docs/pull/47
<_whitenotifier-7> [scopehal-apps] ehntoo synchronize pull request #486: macOS fixes - https://github.com/glscopeclient/scopehal-apps/pull/486
<_whitenotifier-7> [scopehal-apps] ehntoo synchronize pull request #486: macOS fixes - https://github.com/glscopeclient/scopehal-apps/pull/486