<juli965>
azonenberg: yes changing it to ffts/ffts.h let me compile it. I was also able to compile it without the -DLIBFFTS flags.
<juli965>
Now I'm getting a Segmentation Fault on Startup. I'm not sure but I replaced aligned_alloc with _aligned_malloc in WaveformArea_rendering and AlignedAllocator perhaps that's not the right replacement?
Degi has quit [Ping timeout: 264 seconds]
Degi_ has joined #scopehal
Degi_ is now known as Degi
electronic_eel has quit [Ping timeout: 265 seconds]
electronic_eel has joined #scopehal
<azonenberg>
juli965: have you done any investigation to figure out where? backtrace?
<azonenberg>
_aligned_malloc needs to be paired with _aligned_free
<azonenberg>
so if it's freeing that memory with free() that might be the problem
_whitelogger has joined #scopehal
<azonenberg>
monochroma: attempting to simulate some MAXWELL geometry in the sonnet pro demo with all 8 layers
<azonenberg>
but first i need to shrink the board to something that fits
<azonenberg>
the sonnet geometry editor does not scale well to complex things with lots of segments, like ground pours
<azonenberg>
there's some poor scaling somewhere
Nero_ has joined #scopehal
Nero_ is now known as NeroTHz
<azonenberg>
NeroTHz: So i got the sonnet demo license straightened out
<azonenberg>
And i discovered that the geometry editor does *not* like my board the size of a sheet of A4 paper
<azonenberg>
I deleted as much as i could outside the region of interest in a gerber editor but i had trouble trimming the ground and power pours
<azonenberg>
so i was hoping to use the sonnet editor to trim that. Problem is, when i click and drag to select the stuff i want to highlight, it takes many minutes to respond :p
<azonenberg>
So clearly i need to find a better way of chopping down giant designs so i can simulate pieces of them
<azonenberg>
Are your EM sims mostly board level, chip level, or what? i.e. working with GDS, gerbers, custom drawn geometry?
<Degi>
Nice! @ license
<azonenberg>
Degi: now i just have to do as much as i can by september 10th when it expires lol
<Degi>
lol
<azonenberg>
as of now i intend to upgrade to gold at the end of the year if i can find budget
<azonenberg>
i hoooope to get pro next year
<azonenberg>
we'll see
azonenberg has quit [Ping timeout: 244 seconds]
azonenberg has joined #scopehal
electronic_eel has quit [Ping timeout: 256 seconds]
electronic_eel has joined #scopehal
<juli965>
So I think I checked all free()'s and the only free without _aligned_free() was in the AlignedAllocator but it makes no difference, Segmentation fault is still there.
<azonenberg>
juli965: did you try attaching a debugger to see where the crash is?
<juli965>
No actually not. You know a good tutorial for debugging Windows Applications? Actually I only did that with Visual Studio.
<azonenberg>
I havent done windows dev in over a decade
<azonenberg>
when i did, i used visual studio 2005 :p
<azonenberg>
You can probably use gdb from the mingw shell too
<azonenberg>
If that's more your style
<juli965>
Ok I think I will read me through it :D The problem seems to come from libscopehal.dll and it tries to read Address 0xFFFFFFFFFFFFFFFF
<azonenberg>
If you can narrow it down to a function/line it will be much easier to investigate
<juli965>
Yes,sorry I have now gdb on it and let it run until I got into the SIGSEGV and use then where.
<juli965>
So it prints _mm256_load_si256 avxitnrin.h :910 and it gets called from LeCroyOscilloscope::Convert8BitSamplesAVX2 : 1415
<azonenberg>
Ok
<azonenberg>
let's see...
<azonenberg>
Oh
<azonenberg>
I bet i know what's going on
<azonenberg>
Do you know how to navigate stack frames in gdb?
<juli965>
Not really
<azonenberg>
run "bt" to display a backtrace
<azonenberg>
then "frame 12345" to navigate to a particular frame from that trace
<azonenberg>
Go to the Convert8BitSamplesAVX2 frame if you're not in it already, not sure if the intrinsic shows up as its own frame or not
<azonenberg>
then print &ones_x4
<juli965>
The frame number is the # number ?
<azonenberg>
Yeah
<azonenberg>
it's probably frame 0 or 1
<juli965>
Yes it was #1 ok I printed it $1 = (int64_t (*)[4]) 0xdccf4d0
<azonenberg>
Aaand that's the problem
<azonenberg>
It's aligned on a 16-byte boundary
<azonenberg>
not 32, as needed for AVX instructions
<azonenberg>
i guess gcc on linux correctly aligned it but on windows it didn't
<azonenberg>
So i just need to add some directives to force the compiler to align it properly
<azonenberg>
gimme a few
<juli965>
Oh ok that makes sense
<azonenberg>
yeah i did aligned allocations for all of the input and output buffers
<azonenberg>
Just went back and checked the other AVX optimizations i did over the weekend and this appears to be the only instance of this bug
<juli965>
Oh yes, I get Waveforms :-) Thanks!
<_whitenotifier-b>
[scopehal] azonenberg pushed 1 commit to master [+0/-0/±1] https://git.io/JJyB3
<_whitenotifier-b>
[scopehal] azonenberg c96f62d - LeCroyOscilloscope: fixed missing alignment specifier for constants in Convert8BitSamplesAVX2
<azonenberg>
juli965: what scope are you using, out of curiosity?
<azonenberg>
i think you're the only lecroy user here other than me and lain/monochroma
<juli965>
I actually using an old WaveRunner 64Xi from the office. But I also have a Rohde&Schwarz HMO2024 but only with RS232.
<azonenberg>
Let me add this to the list of supported scopes then
<azonenberg>
what's the series, waverunner 6Xi?
<juli965>
I think just Waverunner Xi
<azonenberg>
oh the 6 is the bandwidth not the family number
<azonenberg>
Got it
<azonenberg>
Glad to know hardware that old still works
<azonenberg>
I mean i'm not surprised, it worked on a DDA5005A which is about the same era
<azonenberg>
what's it run, windows xp?
<azonenberg>
2000?
<juli965>
It's XP
<azonenberg>
ah ok so yeah about the same age as monochroma's dda
<azonenberg>
Hers is 5 GHz but not really usable at that bandwidth because only 10 Gsps so you literally barely hit nyquist
<azonenberg>
Is this your first time using glscopeclient or had you used it before on linux successfully?
<juli965>
I tried it once before but I hadn't a Linux Machine with OpenGL (just using Linux on my server and a VM) so I waited until there was a Windows manual.
<azonenberg>
ah ok
<azonenberg>
well glad you got it to run
<azonenberg>
the windows build is still pretty experimental, as you can see it's not nearly at the level of maturity of the linux version
<azonenberg>
but the software is cross platform enough most things should work well
<juli965>
Yes and that time I was trying it I tried to write a driver for my Rohde&Schwarz but it was pretty slow perhaps because of RS232 or I write it really bad and so I waited until I have a LeCroy here on my desk.
<juli965>
Thinking about getting a better Scope with Ethernet sometime at home.
<juli965>
But I want to test it in office I think with Eye Diagrams and the protocol decoders it would be really nice to check some PCB's.
<azonenberg>
Probably because of rs232 :p
<azonenberg>
and yeah does lecroy even have eye diagram or decode capabilities on that scope?
<azonenberg>
i looked at the docs when you mentioned what it was and literlaly the only decode i saw available as an option was CAN
<juli965>
Yes afaik is CAN Decoding the only decode option. All the more interesting Protocol decoders are implemented in the newer scopes.
<azonenberg>
And thats the nice thing about using glscopeclient
<azonenberg>
it doesnt care what scope you're using, only about sample rate and bandwidth because physics
* miek
shakes fist at physics
<azonenberg>
Lol
<azonenberg>
I still need to make an AVX version of the sample conversion loop for HDOs