Render buffer sizes other than 512, 1024, 2048 or 4096?
I have a serious problem with my app that comes up on specific systems that I can't reproduce on any of my Macs or mobile devices.
The thing is, my render routines rely on the fact that the number of frames in render routines is one of: 512, 1024, 2048 or 4096. I do an assert() to make sure it's one of these numbers because otherwise my code will be a lot more complicated (I do FFT, equalization and other stuff).
The documentation says 4096 is possible only on iOS and only when the screen is locked. Fine. But then some of my OS X users reported crashes and one user was kind enough to tell me the details: it's because the buffer size on his system is always 4096 and consequently my assert() fails because I don't expect 4096 on OS X. I sent him a test version that accepts 4096 but now he says there is no audio. The short sound effects are played but the audio files are not. He says he has some pro video and audio apps installed on his system, including Adobe stuff, but otherwise it's the latest OS X 10.11.1.
Now iOS. I have some crash reports from the App Analytics that point at that same assert() which means sometimes on just some of the phones the buffer size is neither of 512, 1024, 2048 or 4096. In this case it would be difficult to debug as I personally don't know anyone who has this problem on their phone or iPad.
Can anyone give any hints as to what's going on?
The general approach (i.e. drop any assumptions on what the buffer size can be) would complicate things for me big time. Any other way to solve this?
I would appreciate your help guys. Thanks!