<_whitenotifier-9>
[scopehal-apps] azonenberg fd4fa0d - Fixed race condition when WaveformGroup could access areas in rendering thread that had already been removed in UI thread
<_whitenotifier-9>
[scopehal-apps] bvernoux edited issue #589: ngscopeclient Windows crash when loading with "File => RecentFiles" (work fine when using "File => Open Offline...") - https://github.com/glscopeclient/scopehal-apps/issues/589
bvernoux has joined #scopehal
<azonenberg>
bvernoux: tl;dr WaveformGroup could access waveform areas that had already been deleted
<azonenberg>
because of lack of mutexing around the array of areas
<bvernoux>
great fix
<bvernoux>
I'm building it
<azonenberg>
now i have locks in a few places where i really need them
<azonenberg>
but otherwise i do mutexed atomic snapshots of the array and then unlock
<bvernoux>
I have finished the port to clean C of mingw-bundledlls
<azonenberg>
the idea being it's all shared pointers anywy
<azonenberg>
it's OK if i render a waveform one frame after i delete it
<azonenberg>
as long as all of the attached pointers remain valid for that frame
<azonenberg>
wasted effort but not going to break anything
<azonenberg>
After we deprecate glscopeclient i plan to refactor a bunch more stuff to use shared/unique pointers, like filter creation
<azonenberg>
and maybe instrument creation
<azonenberg>
that will make a lot of stuff simpler
<bvernoux>
it is strange but it seems the Open Recent is also fixed
<azonenberg>
May have been the same race condition
<azonenberg>
Close them all i guess, can reopen the tickets if they come back?
<bvernoux>
the slow down is not fixed on 2 steps
<bvernoux>
exactly the same steps
<azonenberg>
slowdown is not fixed? ok i'll troubleshoot further
<azonenberg>
i had not intended to debug it yet :p
<azonenberg>
i may have just got lucky with the one test i ran
<bvernoux>
just checked now on WIn11
<bvernoux>
Rasterize time >250ms
<bvernoux>
Tone map time seems ok now about 140us
<azonenberg>
I think what's happening is the same issue
<azonenberg>
something holds a lock too long or that it doesnt need
<bvernoux>
it is hard to say in fact as we do not have min/max for exch perf counter
<azonenberg>
rasterize and tone map both separately acquire that lock
<azonenberg>
so either one might hit it
<azonenberg>
and yes min/max might not be bad to add
<bvernoux>
So on Win11 Pro it is not fixed for me
<bvernoux>
I need to switch to Ubuntu to check
<bvernoux>
The Open Offline from recent is not fixed in fact ;)
<bvernoux>
it seems also linked to a race condition
juri__ has quit [Read error: Connection reset by peer]
<d1b2>
<Aleksorsist> I'm about to do some testing on a Windows machine (my signal hound doesn't support Linux), can I just grab the windows portable from https://github.com/glscopeclient/scopehal-apps/actions/runs/5102972543 ? Or do I need to do something else to get it to work? I've looked at issue 569 but I don't quite understand it
juri_ has joined #scopehal
juri_ has quit [Read error: Connection reset by peer]
juri_ has joined #scopehal
bvernoux has joined #scopehal
<azonenberg>
bvernoux: (09:42:32) d1b2: <Aleksorsist> I'm about to do some testing on a Windows machine (my signal hound doesn't support Linux), can I just grab the windows portable from https://github.com/glscopeclient/scopehal-apps/actions/runs/5102972543 ? Or do I need to do something else to get it to work? I've looked at issue 569 but I don't quite understand it
<azonenberg>
i'm not testing on windows so cant comment on that
<d1b2>
<Aleksorsist> Ok I just tried the portable. The following DLLs aren't found: libgmodule-2.0.0.dll, libfontconfig-1.dll,libfreetype-6.dll,libpixman-1-0
<d1b2>
<Aleksorsist> This is a fresh install of windows btw, I will try installing MSYS2 now and see if that's got the DLLs I need
<azonenberg>
Ot
<azonenberg>
It's going to get a lot easier soon
<azonenberg>
when we deprecate glscopeclient and stop using mingw
<azonenberg>
the windows build will become far simpler
<d1b2>
<Aleksorsist> Looking forward to that, I can do linux fine but the extra layer of MSYS2 for windows is throwing me for a loop
<d1b2>
<Aleksorsist> I did install MSYS2 and no change for portable
bvernoux has quit [Remote host closed the connection]
<d1b2>
<Aleksorsist> I'll try the .msi and if that doesn't work then I'll try to figure out building from source
<d1b2>
<Aleksorsist> Ok, I still get a slew of DLLs missing
<azonenberg>
yeah the from source build should work but is a bit of a pain to set up
bvernoux has joined #scopehal
<d1b2>
<Aleksorsist> Been following the build from source guide and got this error while compiling glslang: In file included from MachineIndependent/glslang.y:86: C:\msys64\home\EEVengers-Lab0\glslang\glslang\MachineIndependent\SymbolTable.h:648:18: error: 'uint32_t' does not name a type
<azonenberg>
hmmm, interesting
<azonenberg>
that's a third party library, it should compile :p
<d1b2>
<Aleksorsist> I added #include <cstdint> to line 71 of SymbolTable.h as the compiler suggested and it worked
<azonenberg>
yeah that sounds like an upstream issue
bvernoux has quit [Read error: Connection reset by peer]
<d1b2>
<Aleksorsist> I got it running, now to see if I can get waveforms in from ThunderScope
Degi has joined #scopehal
<whitequark>
sometimes programs unintentionally rely on C headers implicitly included by other C headers
<whitequark>
standard C headers, I mean
<whitequark>
so when you change the C library (also happens with C++), like when you swap to Windows or macOS, you end up with this kind of issue
<Bird|ghosted>
yeah, inadvertently depending on an indirect dep is kinda bad :P
<azonenberg>
yeah we've fixed severla such issues in scopehal but i expected glslang to be better lol
<azonenberg>
otoh, khronos also shipped a completely broken (didnt even compile) vulkan-hpp in one sdk release sooooo