bsnes/nall
Tim Allen 716c95f279 Update to 20180728 release.
byuu says:

Sigh, I seem to be spiraling a bit here ... but the work is very
important. Hopefully I can get a solid WIP together soon. But for now...

I've integrated dynamic rate control into ruby::Audio via
setDynamic(bool) for now. It's very demanding, as you would expect. When
it's not in use, I realized the OSS driver's performance was pretty bad
due to calling write() for every sample for every channel. I implemented
a tiny 256-sample buffer and bsnes went from 290fps to 330fps on my
FreeBSD desktop. It may be possible to do the same buffering with DRC,
but for now, I'm not doing so, and adjusting the audio input frequency
on every sample.

I also added ruby::Video::setFlush(bool), which is available only in the
OpenGL drivers, and this causes glFinish() to be called after swapping
display buffers. I really couldn't think of a good name for this, "hard
GPU sync" sounds kind of silly. In my view, flush is what commits queued
events. Eg fflush(). OpenGL of course treats glFlush differently (I
really don't even know what the point of it is even after reading the
manual ...), and then has glFinish ... meh, whatever. It's
setFlush(bool) until I come up with something better. Also as expected,
this one's a big hit to performance.

To implement the DRC, I started putting helper functions into the ruby
video/audio/input core classes. And then the XVideo driver started
crashing. It took hours and hours and hours to track down the problem:
you have to clear XSetWindowAttributes to zero before calling
XCreateWindow. No amount of `--sync`, `gdb break gdk_x_error`, `-Og`,
etc will make Xlib be even remotely helpful in debugging errors like
this.

The GLX, GLX2, and XVideo drivers basically worked by chance before. If
the stack frame had the right memory cleared, it worked. Otherwise it'd
crash with BadValue, and my changing things broke that condition on the
XVideo driver. So this has been fixed in all three now.

Once XVideo was running again, I realized that non-power of two video
sizes were completely broken for the YUV formats. It took a while, but I
managed to fix all of that as well.

At this point, most of ruby is going to be broken outside of FreeBSD, as
I still need to finish updating all the drivers.
2018-07-28 21:25:42 +10:00
..
arithmetic Update to v106r47 release. 2018-07-14 13:59:29 +10:00
beat Update to v106r30 release. 2018-05-28 11:16:27 +10:00
cipher Update to v101r19 release. 2016-10-28 08:16:58 +11:00
database Update to 20160106 OS X Preview for Developers release. 2016-01-07 19:17:15 +11:00
decode Update to v106r27 release. 2018-05-25 18:02:38 +10:00
dsp Update to 20180728 release. 2018-07-28 21:25:42 +10:00
elliptic-curve Update to v106r47 release. 2018-07-14 13:59:29 +10:00
emulation Update to v101r18 release. 2016-09-14 21:55:53 +10:00
encode Update to v106r45 release. 2018-07-02 11:57:04 +10:00
hash Update to v106r47 release. 2018-07-14 13:59:29 +10:00
http Update to v106r47 release. 2018-07-14 13:59:29 +10:00
image Update to v103r23 release. 2017-07-30 23:00:31 +10:00
mac Update to v106r30 release. 2018-05-28 11:16:27 +10:00
macos Update to v106r45 release. 2018-07-02 11:57:04 +10:00
posix Update to v106r30 release. 2018-05-28 11:16:27 +10:00
string Update to v106r52 release. 2018-07-25 22:24:03 +10:00
vector Update to v106r52 release. 2018-07-25 22:24:03 +10:00
vfs Update to v106r47 release. 2018-07-14 13:59:29 +10:00
windows Update to v103r14 release. 2017-07-15 22:00:20 +10:00
xorg Update to v101r19 release. 2016-10-28 08:16:58 +11:00
GNUmakefile Update to v106r50 release. 2018-07-21 21:06:40 +10:00
adaptive-array.hpp Update to v106r36 release. 2018-06-04 12:44:57 +10:00
algorithm.hpp Update to 20160106 OS X Preview for Developers release. 2016-01-07 19:17:15 +11:00
any.hpp Update to v101r19 release. 2016-10-28 08:16:58 +11:00
arithmetic.hpp Update to v101r19 release. 2016-10-28 08:16:58 +11:00
array.hpp Update to v106r36 release. 2018-06-04 12:44:57 +10:00
atoi.hpp Update to v101r02 release. 2016-08-09 21:07:18 +10:00
bit-field.hpp Update to v099r15 release. 2016-07-04 21:48:17 +10:00
bit-vector.hpp Update to v106r30 release. 2018-05-28 11:16:27 +10:00
bit.hpp Update to v101r02 release. 2016-08-09 21:07:18 +10:00
chrono.hpp Update to v100r16 release. 2016-08-03 22:32:40 +10:00
directory.hpp Update to v106r52 release. 2018-07-25 22:24:03 +10:00
dl.hpp Update to v104r15 release. 2017-09-29 20:36:35 +10:00
endian.hpp Update to 20160106 OS X Preview for Developers release. 2016-01-07 19:17:15 +11:00
file.hpp Update to v101r02 release. 2016-08-09 21:07:18 +10:00
filemap.hpp Update to 20160106 OS X Preview for Developers release. 2016-01-07 19:17:15 +11:00
function.hpp Update to v101r19 release. 2016-10-28 08:16:58 +11:00
hashset.hpp Update to v098r11 release. 2016-05-25 21:13:02 +10:00
hid.hpp Update to 20180728 release. 2018-07-28 21:25:42 +10:00
image.hpp Update to 20160106 OS X Preview for Developers release. 2016-01-07 19:17:15 +11:00
inode.hpp Update to v100r16 release. 2016-08-03 22:32:40 +10:00
interpolation.hpp Update to v098r14 release. 2016-06-01 21:23:22 +10:00
intrinsics.hpp Update to v106r52 release. 2018-07-25 22:24:03 +10:00
iterator.hpp Update to v106r47 release. 2018-07-14 13:59:29 +10:00
locale.hpp Update to v106r52 release. 2018-07-25 22:24:03 +10:00
location.hpp Update to v106r52 release. 2018-07-25 22:24:03 +10:00
main.hpp Update to v106r52 release. 2018-07-25 22:24:03 +10:00
map.hpp Update to 20160106 OS X Preview for Developers release. 2016-01-07 19:17:15 +11:00
matrix.hpp Update to v098r11 release. 2016-05-25 21:13:02 +10:00
maybe.hpp Update to v099r11 release. 2016-06-27 23:07:57 +10:00
memory.hpp Update to v106r30 release. 2018-05-28 11:16:27 +10:00
nall.hpp Update to v106r52 release. 2018-07-25 22:24:03 +10:00
path.hpp Update to v106r52 release. 2018-07-25 22:24:03 +10:00
platform.hpp Update to v106r2 release. 2018-02-01 19:20:37 +11:00
pointer.hpp Update to v106r36 release. 2018-06-04 12:44:57 +10:00
primitives.hpp Update to v106r49 release. 2018-07-19 19:01:44 +10:00
property.hpp Update to v099r09 release. 2016-06-25 18:53:11 +10:00
queue.hpp Update to v103r23 release. 2017-07-30 23:00:31 +10:00
random.hpp Update to v098r11 release. 2016-05-25 21:13:02 +10:00
range.hpp Update to v106r47 release. 2018-07-14 13:59:29 +10:00
run.hpp Update to v106r52 release. 2018-07-25 22:24:03 +10:00
serial.hpp Update to v098r08 release. 2016-05-02 19:57:04 +10:00
serializer.hpp Update to v106r45 release. 2018-07-02 11:57:04 +10:00
service.hpp Update to 20160106 OS X Preview for Developers release. 2016-01-07 19:17:15 +11:00
set.hpp Update to v098r11 release. 2016-05-25 21:13:02 +10:00
shared-memory.hpp Update to 20160106 OS X Preview for Developers release. 2016-01-07 19:17:15 +11:00
shared-pointer.hpp Update to v101r19 release. 2016-10-28 08:16:58 +11:00
smtp.hpp Update to v098r11 release. 2016-05-25 21:13:02 +10:00
sort.hpp Update to v098r11 release. 2016-05-25 21:13:02 +10:00
stdint.hpp Update to v101r19 release. 2016-10-28 08:16:58 +11:00
string.hpp Update to v106r52 release. 2018-07-25 22:24:03 +10:00
thread.hpp Update to v101r02 release. 2016-08-09 21:07:18 +10:00
traits.hpp Update to v101r19 release. 2016-10-28 08:16:58 +11:00
unique-pointer.hpp Update to v097r02 release. 2016-01-25 22:27:18 +11:00
utility.hpp Update to v101r15 release. 2016-09-04 23:51:27 +10:00
varint.hpp Update to v101r02 release. 2016-08-09 21:07:18 +10:00
vector.hpp Update to v106r52 release. 2018-07-25 22:24:03 +10:00
vfs.hpp Update to v099r05 release. 2016-06-20 21:00:32 +10:00
view.hpp Update to v106r52 release. 2018-07-25 22:24:03 +10:00