ChanServ changed the topic of ##yamahasynths to: Channel dedicated to questions and discussion of Yamaha FM Synthesizer internals and corresponding REing. Discussion of synthesis methods similar to the Yamaha line of chips, Sound Blasters + clones, PCM chips like RF5C68, and CD theory of operation are also on-topic. Channel logs: https://freenode.irclog.whitequark.org/~h~yamahasynths
cr1901_modern2 has quit [Quit: Leaving.]
cr1901_modern has joined ##yamahasynths
emeb has quit [Quit: Leaving.]
HXLNT has joined ##yamahasynths
futarisIRCcloud has quit [Quit: Connection closed for inactivity]
<cr1901_modern>
Hilariously, this one change also got gcc at -O3 to do 12 seconds of VGM in 250 seconds (20.8)
<cr1901_modern>
So we know where the bottleneck is :P
<whitequark>
er, what
<cr1901_modern>
I think part of the hot path is checking whether the character is 0x0A
<cr1901_modern>
to convert it to CRLF
<cr1901_modern>
if you are in binary mode, you skip that check
<whitequark>
oh, factor of 20 nstead of factor of 30
<whitequark>
that's still... super slow
<cr1901_modern>
right, but might be gcc. Also 10 year old hardware. Recompiling w/ clang now
<cr1901_modern>
And it might be that write single bytes is inefficient
<cr1901_modern>
on Windoze*
<cr1901_modern>
errr, single 16-bit ints
<whitequark>
the writes should be buffered i think?
<whitequark>
hm, maybe not
<cr1901_modern>
This wouldn't be the first time I've seen behavior like this. Claire's libxsvf library is (was?) extremely slow on Windows. Like 5 minutes to program a low-end Xilinx CPLD slow. And profiling showed it to be waiting for libusb due to lack of bufferring.
<cr1901_modern>
Not saying it's related/the same reason of course
<whitequark>
cr1901_modern: updated, i've also added some code that fixes the WAV file size
<whitequark>
so players don't get confused
<cr1901_modern>
Awesome, thanks. And disregard re: optimization. I think it's a gcc vs clang thing. Clang speed is about the same: 11 seconds of VGM in 377 seconds w/ the binary fix. Still very slow; I should do a profile.
KitsuWhooa has quit [Ping timeout: 256 seconds]
KitsuWhooa has joined ##yamahasynths
brendantcc has joined ##yamahasynths
<cr1901_modern>
whitequark: If you want I'll still do a profile later. I got distracted (nap) and have meatspace stuff to take care of