Thomas Harte
|
e885438363
|
The penny has finally dropped that I can drive the CPU stuff in a manner completely decoupled from the GPU stuff. For much improved parallelisation.
|
2016-04-06 19:34:34 -04:00 |
|
Thomas Harte
|
5aa6da221f
|
Shifted responsibility for byte shifts, probably to a more logical place.
|
2016-04-05 22:19:14 -04:00 |
|
Thomas Harte
|
2248769df9
|
Pulled a bunch of selection parts outside of the loops. Probably exhausting this angle of attack.
|
2016-04-05 22:17:44 -04:00 |
|
Thomas Harte
|
8f87973a96
|
Switched to table-based byte to output conversion.
|
2016-04-05 22:07:10 -04:00 |
|
Thomas Harte
|
e35456612a
|
Simplified 40-column to pixel conversion.
|
2016-04-05 20:44:05 -04:00 |
|
Thomas Harte
|
6dbd20ffde
|
Expanded interface to rgb_sample to eliminate its need to make assumptions about globals, used expanded interface to compact Electron data to two pixels per byte.
|
2016-04-05 20:32:55 -04:00 |
|
Thomas Harte
|
7838507a7a
|
Simplified sound generation.
|
2016-04-04 22:22:19 -04:00 |
|
Thomas Harte
|
c0cd1ed89e
|
Made an attempt to consolidate timestamp bases to a single vector and hence to lump all geometry into one or two calls, with no repetitive setting of a uniform. I'm not sure the result is correct yet.
|
2016-04-04 21:57:27 -04:00 |
|
Thomas Harte
|
4595741ab0
|
Made an attempt not to interrupt the display link queue too much when emulation is running slowly.
|
2016-04-04 20:22:33 -04:00 |
|
Thomas Harte
|
729fddea1c
|
Switched to integer textures, likely to simplify for most use cases.
|
2016-04-04 19:39:01 -04:00 |
|
Thomas Harte
|
a6ef78862c
|
This'll probably do for now.
|
2016-03-24 22:20:00 -04:00 |
|
Thomas Harte
|
f1caf62ff2
|
Continuing the switch around.
|
2016-03-24 19:31:41 -04:00 |
|
Thomas Harte
|
738186e323
|
Edging back towards shifting things to the stack.
|
2016-03-24 19:17:44 -04:00 |
|
Thomas Harte
|
3ca58b2a57
|
Attemted further to diminish jumpiness.
|
2016-03-22 22:07:30 -04:00 |
|
Thomas Harte
|
8cd5d40e00
|
Made an attempt to reduce the amount of data heading to the GPU.
|
2016-03-22 21:16:32 -04:00 |
|
Thomas Harte
|
3038704977
|
Attempted to introduce a lowpass filter to the graphics output, reverted 6502 optimisations as seemingly not working.
|
2016-03-21 22:01:25 -04:00 |
|
Thomas Harte
|
5db0f9e2d5
|
Shunted a few more things onto the stack.
|
2016-03-20 22:59:21 -04:00 |
|
Thomas Harte
|
9a82f028aa
|
operation is now also stack local.
|
2016-03-20 22:52:49 -04:00 |
|
Thomas Harte
|
2f174b3a3e
|
Moved operand to stack-local storage.
|
2016-03-20 22:50:16 -04:00 |
|
Thomas Harte
|
5966ac845f
|
Switched symbols and updated all-RAM 6502 in order to fix unit test target.
|
2016-03-20 22:48:56 -04:00 |
|
Thomas Harte
|
197cf2a834
|
Commented out sync; it can probably be implicit.
|
2016-03-20 21:42:05 -04:00 |
|
Thomas Harte
|
902017a962
|
Fixes: drop any processing backlog, try not to allow an Electron document to close mid-draw, perform a frame grab even if the emulated machine is over-processing, really really don't create a CRT until it's safe.
|
2016-03-20 18:42:37 -04:00 |
|
Thomas Harte
|
fb6fb5d948
|
Switched to two-phase setup to deal with OpenGL scheduling.
|
2016-03-20 13:50:13 -04:00 |
|
Thomas Harte
|
eabc382540
|
Fixed: of course I can't rely on the pointer to CVTimeStamp not becoming dangling during a queue jump.
|
2016-03-19 23:02:42 -04:00 |
|
Thomas Harte
|
4c5d66c317
|
Made sure GL context isn't activated until it's locked.
|
2016-03-19 22:54:56 -04:00 |
|
Thomas Harte
|
a546277f88
|
Added the simplest mechanism to decouple emulation from the display link queue.
|
2016-03-19 22:53:37 -04:00 |
|
Thomas Harte
|
9da7716c72
|
Attempted to simplify threading, thereby allowing machines to be constructed within a valid GL context, and started adding appropriate GL syncs. Which all oddly drops everything to a negligible FPS. Investigation will follow.
|
2016-03-19 22:46:17 -04:00 |
|
Thomas Harte
|
aa8a192c7e
|
Simplified API down to their being a single texture with a specified depth.
|
2016-03-19 17:37:55 -04:00 |
|
Thomas Harte
|
4ac1f959e9
|
A shortcut here and a shortcut there; this allows me at least to determine whether use of a PBO gains anything.
|
2016-03-19 17:07:05 -04:00 |
|
Thomas Harte
|
5b37a651ac
|
Made an attemp to deal with glUnmapBuffer(GL_ARRAY_BUFFER) == GL_FALSE .
|
2016-03-18 21:35:52 -04:00 |
|
Thomas Harte
|
0b1c9fb291
|
Ensured I don't interrupt triangle strips for the purpose of glDrawArrays.
|
2016-03-18 21:28:53 -04:00 |
|
Thomas Harte
|
620257e29e
|
Switched to a client wait, as I try to figure out what's going on.
|
2016-03-18 21:21:35 -04:00 |
|
Thomas Harte
|
2e4af90e2d
|
Resolved output errors.
|
2016-03-18 21:19:11 -04:00 |
|
Thomas Harte
|
10bc33464d
|
I don't think this is quite correct, but it's better.
|
2016-03-18 21:14:06 -04:00 |
|
Thomas Harte
|
b074860031
|
Updated to latest information on interrupt timing.
|
2016-03-18 21:11:25 -04:00 |
|
Thomas Harte
|
61e880de03
|
Keeping a buffer permanently bound is apparently illegal. So back to copying in on demand. Which I think still improves on synchronisation, but not much.
|
2016-03-18 21:11:09 -04:00 |
|
Thomas Harte
|
c8ecfb89d8
|
Some cleaning.
|
2016-03-16 22:52:33 -04:00 |
|
Thomas Harte
|
0d27d3bb7f
|
As messy as it is, this use glMapBufferRange to avoid explicit buffer submits.
|
2016-03-16 22:29:22 -04:00 |
|
Thomas Harte
|
ca35a7e222
|
Ensured that a much greater input rate than output is handled correctly.
|
2016-03-16 20:38:17 -04:00 |
|
Thomas Harte
|
4cd0aa3416
|
Completed FIR filter based audio output.
|
2016-03-15 23:37:35 -04:00 |
|
Thomas Harte
|
726c98446a
|
Fixed a couple of memory leaks, at least got as far as instantiating a filter.
|
2016-03-15 21:34:00 -04:00 |
|
Thomas Harte
|
5b509e5360
|
Fixed: const should have been static constexpr; should probably use new and delete rather than malloc and new.
|
2016-03-15 21:33:18 -04:00 |
|
Thomas Harte
|
a4ec0b023c
|
Made some type conversions explicit.
|
2016-03-15 21:25:02 -04:00 |
|
Thomas Harte
|
7694297c83
|
Introduced an adapted version of the previous Clock Signal's FIR filter.
|
2016-03-15 21:05:20 -04:00 |
|
Thomas Harte
|
0edf165401
|
Fixed sound pitch, though I'm not yet exactly sure why.
|
2016-03-14 22:52:16 -04:00 |
|
Thomas Harte
|
9a492ac15f
|
Made a further guess at the state interrupts would probably be left; slightly simplified interface.
|
2016-03-14 22:42:52 -04:00 |
|
Thomas Harte
|
15120d8fb6
|
Switched to probably more accurate contended memory, resolved issue of not leaving the tape data received interrupt set when returning a byte from the fast tape, fixing Joe Blade, and tested slightly further to determine that interrupts probably signal upon entry into horizontal sync.
|
2016-03-14 19:29:28 -04:00 |
|
Thomas Harte
|
fb26b38ff9
|
This is as simplified as things seem to be able to get without breaking at least Northern Star. Joe Blade et al remain stubbornly broken but I'm not immediately able to determine why.
|
2016-03-13 19:55:20 -04:00 |
|
Thomas Harte
|
f797e6b5b6
|
Started taking baby steps towards a genuine unification of the tape interrupt generating code.
|
2016-03-13 19:45:50 -04:00 |
|
Thomas Harte
|
bc554dedf7
|
Fixed: attempting to read the screen start address no longer alters it.
|
2016-03-13 18:50:23 -04:00 |
|