1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-08-16 16:28:59 +00:00
Commit Graph

129 Commits

Author SHA1 Message Date
Thomas Harte
4ee4400801 Removed dead code. 2016-11-16 11:57:22 +08:00
Thomas Harte
44d3fd6d5b Fixed mistimed reset of the target output line. Now all that's left is occasional noise. 2016-11-16 11:22:12 +08:00
Thomas Harte
7a737e0790 Both pathways start with a buffer that clears to black. So no need to keep going on about it. 2016-11-16 11:12:08 +08:00
Thomas Harte
f63e849092 Sought completely to eliminate the outgoing concept of 'clearing zones'. 2016-11-16 11:10:34 +08:00
Thomas Harte
294adde344 Eliminated zoned clearing, in favour of a complete buffer clear on each load and attempted to reduce locking. But imperfectly. 2016-11-16 10:59:12 +08:00
Thomas Harte
ccedb6bea6 Introduced an intermediate buffer that collects lines before flushing them to the output buffer. 2016-11-16 10:49:18 +08:00
Thomas Harte
ba2adf8bb1 Normalised on std::vector rather than std::unique_ptr<uint8_t *> as (probably?) more idiomatic. Improved structure slightly. Introduced a container for line data, albeit one that isn't yet used. 2016-11-16 10:34:54 +08:00
Thomas Harte
eefd0c17b6 Actually, I guess that to fulfil the contract I can't silently decide not to draw if I'm being told I definitely need to draw. 2016-07-01 16:27:45 -04:00
Thomas Harte
4ac619f569 glClientWaitSync appears to be a busy wait, at least on my machine. But why wait indefinitely anyway? 2016-06-29 21:32:47 -04:00
Thomas Harte
ff53accca0 Demonstrated that issue is coloured borders, made a guess as to buffer exhaustion, upped limits as a temporary fix. 2016-06-29 21:16:34 -04:00
Thomas Harte
2bd71e7e9b .reset is the more normal way to reassign a unique_ptr. 2016-06-23 20:52:44 -04:00
Thomas Harte
2992183aae Switched to a lookup table for phase, temporarily in YUV colour space, probably. Working on it. 2016-06-12 14:39:17 -04:00
Thomas Harte
68a8851c52 Increased parallelism, allowing a simplification in the GL view. 2016-06-02 22:29:09 -04:00
Thomas Harte
8d52765f40 Realised why new shaders weren't taking. Very negligibly decreased Atari drawing cost. 2016-05-12 22:22:24 -04:00
Thomas Harte
6d65bc9b3a Permitted a wider error window on vertical sync, tidied things up a little and started trying to move towards full implementation of the OpenGL contract. 2016-05-11 22:11:01 -04:00
Thomas Harte
4b3c4082d2 These functions appear correctly to model the NTSC and PAL palettes; the CRT's attempt to switch function doesn't work properly yet though. 2016-05-11 21:07:18 -04:00
Thomas Harte
0d2d6a452d Fixed some dangling buffer management issues. 2016-05-10 19:55:34 -04:00
Thomas Harte
b6d2c8cb63 Switched to instaced drawing for source[/intermediate] runs too, reducing that data transfer footprint by 50%. 2016-05-10 19:50:12 -04:00
Thomas Harte
7369139f7e Realised that phase time can fit inside a single byte, since it's always (well) within the first quarter of the line — and if it somehow weren't (?) then taking it modulo the frequency would do. 2016-05-10 19:14:57 -04:00
Thomas Harte
47ae402f7e Introduced a shorthand for setting up array attributes. 2016-05-10 19:11:48 -04:00
Thomas Harte
1d0bcb416d Dropped the size per output run back down to 8 bytes. 2016-05-10 07:47:47 -04:00
Thomas Harte
86dab3a5d6 Quickest first attempt to switch to instancing for the output array. Texture coordinates seem to be off. 2016-05-10 07:23:47 -04:00
Thomas Harte
daec21d3d8 Found and fixed off-by-one error. Display should now be completely fixed. 2016-05-09 21:14:59 -04:00
Thomas Harte
7e2bd78891 With an eye towards instancing, moved away from circular buffers. 2016-05-09 19:14:30 -04:00
Thomas Harte
45af963b9a Moved more of the circular logic inside getCircularRanges in order to eliminate one more potential source of error. 2016-05-09 07:34:37 -04:00
Thomas Harte
986019f9f9 Fixed error that could lead to split output run vertex writes. 2016-05-08 20:30:59 -04:00
Thomas Harte
1a214a8308 Fence sync tied up. Remaining glitches are likely off-by-one-type errors but we'll see. 2016-05-08 19:45:36 -04:00
Thomas Harte
ef3b91d3aa Made an attempt to get formal on synchronisation. 2016-05-08 19:42:33 -04:00
Thomas Harte
dd469fe83a Switched back to normal frame drawing logic and cleaned up the circular range stuff a little, to make it clear that no errors lie there. 2016-05-08 18:50:30 -04:00
Thomas Harte
ccdbec3ffc Corrected for potential lost lines. 2016-05-08 16:43:11 -04:00
Thomas Harte
9485ef2c8c At last a genuine bug fixed: was nudging the wrong amount in intermediate shaders. 2016-05-08 16:07:36 -04:00
Thomas Harte
8e4ab37719 Things are back pretty much to where they were, but offset is eliminated as an input. 2016-05-07 18:37:18 -04:00
Thomas Harte
c73751b15a Reverted deliberately broken segments to produce something mergeable. 2016-05-05 21:27:13 -04:00
Thomas Harte
a74f081aa9 Put lateral lookup table directly into the shader. 2016-05-05 21:21:27 -04:00
Thomas Harte
8284b272ad Picked appropriate new-world values for various buffers. 2016-05-05 20:00:28 -04:00
Thomas Harte
284b310074 Attempted to implement end-of-buffer tests for all stages. 2016-05-05 19:52:05 -04:00
Thomas Harte
f621cc8523 Withdrew the pixel unpack buffer in order to avoid the potential for a paused machine to be undrawable. The cost is at least an extra memcpy per frame; I'm letting the driver worry about the whole process for now. 2016-05-04 21:27:10 -04:00
Thomas Harte
2e7ac0e6db With a lot of logging also currently ongoing, fixed circular ranges for clearing and when covering an entire buffer. 2016-05-04 21:08:38 -04:00
Thomas Harte
3684c6404f Proven through deliberate inefficiency: the issues are (i) texture upload; and (ii) buffer wraparound. 2016-05-03 22:22:12 -04:00
Thomas Harte
759fbd89ca Switched pixel unpack buffer back to explicit flushes. 2016-05-03 21:26:09 -04:00
Thomas Harte
2541711061 Made attempts (i) to flush buffers before unmapping them; and (ii) to bring texture uploads within the new orthodoxy. 2016-05-03 20:56:47 -04:00
Thomas Harte
fc1a67c157 Lateral is no longer written per vertex. It's a fixed list. 2016-05-03 18:45:55 -04:00
Thomas Harte
6d5a1b33ee Turned the colour up just a little, slightly lowered luminance signal strength. 2016-05-03 07:51:14 -04:00
Thomas Harte
31f1e6d5c0 Introduced a separate stage for luminance filtering. 2016-05-03 07:46:40 -04:00
Thomas Harte
29e7c96e4c Brought monitor mode inside the pipeline and added an intermediate filter. 2016-05-02 21:05:58 -04:00
Thomas Harte
4a0e1dc789 Switched to explicit flushing of data. 2016-05-01 22:33:00 -04:00
Thomas Harte
c93bcf9f28 Discovered cause of clears: stale code. Tweaked persistence, again. 2016-05-01 22:28:33 -04:00
Thomas Harte
09ed8eb654 Quelle surprise, failure to find strikes again. Fixed. 2016-05-01 21:07:27 -04:00
Thomas Harte
1b6754c5f8 Shuffled code, realised I wasn't actually binding my shader. 2016-05-01 19:22:24 -04:00
Thomas Harte
6982e945fb Fixed those issues breaking GL state, I hope. 2016-05-01 16:17:52 -04:00