Search
Friday, 30th of October 2020, 15:05:11 UTC
15:05:58
SAL9000
can you try running with no optimization and/or debug flags?
15:06:08
Shinmera
I have debug flags always on
15:06:21
SAL9000
also remember that the x64dbg "all stack frames" mode can have a LOT of red herrings
15:06:36
SAL9000
it's meant for recovering from weird stack misalignments and such, from what I can tell
15:07:13
Shinmera
I don't care at this point. I'm not paid enough to deal with this level of bullshit
15:07:25
Shinmera
In fact I'm not being paid at all!!!
15:09:27
SAL9000
Yeah. "Useful experience" and "for fun" can only go so far when you run into those brick walls :(
15:10:09
Shinmera
I'm not doing this for fun, people out there do have surround systems.
15:10:17
Shinmera
It'd be bad if my game croaks because of that.
15:11:18
SAL9000
I mean the whole game is "for fun", no?
15:11:34
Shinmera
This is my full time job.
15:11:50
Shinmera
It would be if I didn't have to deal with this shit.
15:12:06
SAL9000
True. On the upside you did find a full-time job where you get to (mostly) use CL.
15:12:20
Shinmera
we'll see how long I last.
15:13:18
SAL9000
oof. insufficient renumeration is not fun.
15:13:18
Shinmera
I really don't understand the interaction between Kandria and the sound thread. If it were something that's related to the channel conversion, it would have to show even if nothing's being actively played back
15:13:44
Shinmera
since it just pipes empty samples in that case, but all the memory logic is still there
15:13:53
SAL9000
are the samples floats?
15:14:08
SAL9000
maybe something to do with denormals?
15:14:09
Shinmera
internally, anyway. they're not when they leave to WASAPI.
15:14:19
Shinmera
how would that cause memory faults?
15:14:40
SAL9000
but it's something that is different between "empty" samples and actual sound
15:14:43
Shinmera
and again, then it would have to show on Linux, which it does not.
15:14:44
SAL9000
and may have an effect on the timing of stuff
15:14:55
SAL9000
timing changes -> subtle sync bug -> kaboom
15:15:14
Shinmera
there's no memory sharing between threads going on
15:15:31
Shinmera
and if it were that you'd think it would also happen in stereo mode
15:15:39
SAL9000
how is data passed around then?
15:17:10
Shinmera
well-- what I mean is that while the audio thread is accessing samples, nothing else is touching them. audio processing happens exclusively in one thread.
15:17:20
SAL9000
that is good. hmmmmm...
15:17:36
SAL9000
could there be some issues with buffers being drained faster than you fill them?
15:17:37
Shinmera
you need to explicitly park the audio thread just to do stuff like attach a new source to a mixer.
15:17:52
Shinmera
no, in that case it would just stutter.
15:18:48
Shinmera
a -1 deref is so weird. It's almost like an error code is treated as memory and derefed or something.
15:18:59
Shinmera
*treated as an address
15:19:42
SAL9000
Have you found the point where the deref occurs?
15:20:55
SAL9000
is this built with msvc or clang?
15:21:03
SAL9000
you might be able to use ASan
15:49:14
SAL9000
Shinmera: -fsanitize=address works since GCC 4.8, apparently. Not sure how it'll interact with SBCL's GC, though!
15:54:54
Shinmera
what does that do? (google shows zero results lol)
16:00:00
Shinmera
ah. some form of alternative to valgrind?
16:08:30
Shinmera
okey, not available in msys
16:08:31
SAL9000
Shinmera: AddressSanitizer is basically faster valgrind, yeah. -fno-omit-frame-pointer helps with stack traces, too.
16:09:07
SAL9000
maaaaybe you can get it if you use clang?
16:09:14
Shinmera
isn't -fno-omit-frame-pointer alredy there if you have -g?
16:10:12
Shinmera
ugh, I really really really really wish I didn't have to debug this myself
16:12:14
Shinmera
Also interesting, sometimes, rarely, I get a mixed error saying "allocation failed"
16:12:34
SAL9000
something somewhere in malloc died, I guess?
16:13:55
Shinmera
-fno-omit-frame-pointer didn't change shit
16:23:38
Shinmera
Trying to run sbcl under drmemory just leads to crashes even earlier
16:25:03
Shinmera
Also fun: the game works fine under WINE
16:25:42
Shinmera
Ugh, can someone else repro this shit
16:26:40
Shinmera
need latest of shirakumo/trial shirakumo/harmony shirakumo/cl-mixed shirakumo/alloy shinmera/kandria
19:21:57
Shinmera
Fuck why is there no sensible audio editor on Linux
19:22:15
Shinmera
everything's either a DAW, sucks shit and crashes, or is Audacity and crashes my entire Jack server.
19:32:19
Shinmera
Audacity manages to crash Jack so hard I can't kill jack and have to reboot
19:32:37
Shinmera
so cool very cool thank you linux is such a mature and stable system linux ond the desktop 2020
19:33:32
Shinmera
you mean you can try, or you mean you already tried and are reproducing the error?
19:33:42
selwyn
i can try now, have some free time
19:35:26
selwyn
on vanilla windows? not wine or anything
19:37:06
Shinmera
Yes. Wine cannot reproduce it.
19:40:30
Shinmera
You'll also have to configure your sound output device to be on 5.1 surround.
19:47:01
selwyn
i've configured 5.1 surround sound and cloned the repos
19:47:16
selwyn
how should i run kandria?
19:48:49
selwyn
System "messagebox" not found - i guess that's just a dependency i haven't got yet
19:49:35
selwyn
it has been a while since i developed on this windows box :/
19:55:10
selwyn
looks like i need feedback as well. pulling the latest version
19:55:30
Shinmera
ah, yeah, forgot about that.
19:58:30
Shinmera
a few too many yeah cause trial isn't properly modularised.
19:58:37
Shinmera
should factor out image loaders and such.
19:58:52
Shinmera
for things like that having optional dependencies and ways to trigger when loaded would be so good
19:58:58
Shinmera
but ASDF sucks so we can't have that.
19:59:10
selwyn
i don't mind personally though
19:59:24
selwyn
that there are so many dependencies that is
20:01:57
selwyn
i'm getting Unhandled memory fault at #xFFFFFFFFFFFFFFFF.
20:02:07
Shinmera
yay so you can reproduce it.
20:02:15
Shinmera
now enjoy figuring out what causes it.
20:02:36
Shinmera
bonus points if you just abort and run kandria again (in the same image). it'll likely work then.
20:03:51
selwyn
it won't let me abort everything kind of freezes up
20:04:02
selwyn
no bonus points for me :)
20:04:56
selwyn
i can hear some clicks in the left headphone as it crashes
20:05:32
selwyn
it only happens with 5.1 surround sound configured?
20:05:46
Shinmera
only with 5.1 on windows with kandria.
20:05:51
Shinmera
doesn't happen with stereo
20:05:54
Shinmera
doesn't happen on linux
20:05:58
Shinmera
doesn't happen with harmony alone
20:06:23
Shinmera
doesn't even happen with wine.
20:07:04
Shinmera
if we at least knew where the deref happens that would go a long way
20:09:11
selwyn
well this seems like a good occasion to ask - if i get a foreign function in the backtrace like ("foreign function: #x6A2E52B5") is there any way to tell where the function 'comes from'
20:09:45
Shinmera
that function I can tell you is libmixed's mixed_buffer_request_read.
20:10:11
Shinmera
you figure this out by attaching a debugger and looking at where libraries are mapped.
20:10:24
Shinmera
but it's likely that's a red herring and SBCL isn't reading the stack right.
20:10:56
Shinmera
you'd have to catch the moment the deref happens in an external debugger
20:11:05
Shinmera
which is hard because segfaults happen a lot as part of normal operation.
20:11:25
Shinmera
I couldn't be bothered to figure out if gdb had a way to only catch segfaults at certain addresses.
20:12:08
selwyn
oh cool, we have gdb on windows
20:12:49
Shinmera
we do but it kinda blows
20:14:53
Shinmera
and lldb is still very broken
20:19:41
selwyn
why do you think it's a red herring?
20:19:48
Shinmera
because it makes no sense.
20:21:09
Shinmera
that function doesn't do any dereffing of memory that's not either a stack variable used as output, or a buffer object that is heap allocated
20:21:22
Shinmera
it doesn't use negative offsets, so -1 is extremely unlikely.
20:23:22
Shinmera
another function on the stack that's seen in the debugger is mixed_err.
20:23:28
Shinmera
request_read does not call mixed_err
20:23:43
Shinmera
and mixed_err only sets a thread local variable.
20:24:23
Shinmera
so yeah, it seems to me like something else has to be going wrong
20:24:51
Shinmera
the fact that it doesn't even crash under wine is also extremely suspicious
20:26:45
selwyn
could it be a bug in windows? that is inadvertently fixed in wine
20:27:14
Shinmera
it could be but that wouldn't help us.
20:30:17
Shinmera
it's more likely a bug in either SBCL/windows or libmixed.
20:31:02
selwyn
on the bright side, that means it could be fixed relatively quickly
20:31:13
Shinmera
if it can be figured out.
20:32:17
Shinmera
it's really getting me down a lot that after all this trouble things still just aren't working right
20:32:34
Shinmera
harmony has been a bug undertaking
20:33:01
selwyn
don't be too hard on yourself, this bug is one of those real mindbenders
20:33:19
Shinmera
sure, I just don't want to be dealing with it at all
20:34:37
Shinmera
I don't think Kandria runs on CCL so we can't even test if it's SBCL
20:44:47
Shinmera
Good news: I can reproduce even on Windows 7, so it's very unlikely this is a Windows bug.
21:03:44
MetaYan
Shinmera: Is it only on Windows, or is it the same one you mentioned 10Z today? "creating a channel converter segment on OSX crashes with a memory fault"
21:04:07
Shinmera
the osx crash is elsewhere and I can't explain that one either.
21:05:06
Shinmera
though just as with this one I'd be very happy if someone else were to figure out what's happening.
21:05:44
MetaYan
Yeah, I can have a peek at that one.
21:06:17
Shinmera
you'll probably have a much easier time too since you can actually use lldb/gdb on osx.
21:09:31
MetaYan
What's the setup to trigger it?
21:09:38
Shinmera
just load kandria and launch it.
21:10:11
Shinmera
you can even use the latest release from itch if you don't want to build it yourself.
21:12:04
MetaYan
I have your stuff in local, so alright to build.
21:15:32
MetaYan
I hear choppy music, but no graphics.
21:16:01
Shinmera
you sure you got everything on latest?
21:17:07
MetaYan
I'll check the list I saw here somwhere earlier.
21:18:52
MetaYan
Apparently not kandria.
21:19:46
Shinmera
https://plaster.tymoon.eu/view/650
21:19:47
Colleen
plaster.tymoon.eu/view/650 Website (XHTML), Title: update-all.lisp - Plaster
21:21:30
MetaYan
Thanks. Have been wanting to throw together something like that to replace my bash stuff.
21:25:46
MetaYan
Same behaviour. Slightly choppy music, but no graphics.
21:26:55
Shinmera
https://studio.tymoon.eu/api/studio/file?id=1711
21:26:55
Colleen
studio.tymoon.eu/api/studio... Image (PNG)
21:27:15
Shinmera
what version of os x is this?
21:28:09
MetaYan
Could it have something to do with MBP only supporting OpengL 4.1 under macOS?
21:28:31
MetaYan
Alright. It's High Sierra.
21:29:02
Shinmera
do you have a libmixed of your own taht it's using somehow?
21:29:34
Shinmera
I also don't understand how audio is choppy on a fuckin' mbp, my air ran things without chop.
21:31:39
Shinmera
I just I hate computers, you know?
21:36:34
Shinmera
MetaYan: in the startup logs, look for trial.steam messages
21:36:43
Shinmera
MetaYan: does it say whether they succeeded or not?
21:39:38
MetaYan
Or wait, what logs? I just checked the repl.
21:40:23
Shinmera
there should be messages in the TRIAL.STEAM category
21:40:25
MetaYan
There is no mention of steam.
21:40:44
Shinmera
oh- right, it doesn't try when run in dev mode.
21:41:17
Shinmera
(defmethod org.shirakumo.fraf.trial.steam:steam-required-p ((main kandria::main)) T)
21:42:38
MetaYan
"The low-level file is not present."
21:43:30
Shinmera
you'd have to get your hands on the steamworks sdk and all
21:43:56
Shinmera
Thanks for testing-- no idea why it works for you but not me (and others)
21:45:11
MetaYan
Ah, alright. Wish you success.
21:46:10
MetaYan
The music plays even though the rest stops in trial.steam .
21:46:42
Shinmera
steam is initialised very late
21:58:59
MetaYan
Noticed something strange when trying it in portacle now - there's a kandria.asd in your leaf project as well, and now it's trying to load that one.
21:59:49
Shinmera
uuuh, kandria is leaf. if you still have leaf, delete it. that's the old repo.
22:06:15
MetaYan
Quicklisp wasn't updated in my portacle installation. Was using plain SLIME in a terminal before where it was updated. Just so you know.
22:36:23
MetaYan
Ha. In portacle I get graphics now - without the steam-required-p defmethod. Music is still choppy, and got this: https://termbin.com/dcoi
22:36:23
Colleen
termbin.com/dcoi Text (PLAIN)
22:37:47
Shinmera
that's... interesting.
22:45:07
MetaYan
Got "No animation named KANDRIA::LIGHT-AERIAL-1 found." when kicking the lamp.
22:46:11
Shinmera
that's expected. you're testing features that aren't fully in yet.
22:46:22
Shinmera
and it's from trying to attack while in the air
22:46:39
Shinmera
Fred is working on aerials now.
22:46:52
Shinmera
well, not now now, but as in that's a thing he's doing next
22:47:10
MetaYan
I'm not really into playing games, so I'm out on a limb here. No idea what I'm doing...
22:49:47
Shinmera
Not a customer, then :(
22:53:36
MetaYan
Nope. But I like real-life challenges and to test things...
23:02:51
MetaYan
Another read-sequence error: https://termbin.com/972d
23:02:51
Colleen
termbin.com/972d Text (PLAIN)
23:05:30
Shinmera
this implies that something's changing the file-position outside of whatever this is doing
23:08:00
Shinmera
anyway, I'm off to bed.
Saturday, 31st of October 2020, 3:05:11 UTC