1
0
mirror of https://github.com/TomHarte/CLK.git synced 2026-03-12 10:42:14 +00:00
Commit Graph

56 Commits

Author SHA1 Message Date
Thomas Harte
0643a81e4f Always alternate fields. 2026-02-23 16:47:12 -05:00
Thomas Harte
26afdf972c Explain fields. 2026-02-23 14:20:26 -05:00
Thomas Harte
486a67586a Include interlacing information in Field. 2026-02-22 23:16:33 -05:00
Thomas Harte
2cf0c4f8aa Switch horses only when certain. 2026-02-21 22:42:22 -05:00
Thomas Harte
ea3e9a96f1 Detect and expose is-interlaced flag.
With plenty of exposition to avoid confusing the reader into thinking that the emulator is predicated on this in an unrealistic fashion.
2026-02-21 21:17:35 -05:00
Thomas Harte
69b9aa9b57 Remove done TODO. 2026-02-19 12:31:45 -05:00
Thomas Harte
406fc85186 First blush: force always-horizontal, always. 2026-02-16 23:35:30 -05:00
Thomas Harte
abe844505f Eliminate LineMetadata, redundant memory barriers. 2026-02-15 15:53:26 -05:00
Thomas Harte
dc9e9f194c Capture completeness. 2026-02-15 13:35:32 -05:00
Thomas Harte
5abff02d56 Factor out the stuff of being a circular counter. 2026-02-15 13:10:24 -05:00
Thomas Harte
4b9e37f163 Attempt to update frame areas. 2026-02-15 07:51:38 -05:00
Thomas Harte
f24a8ea93f Continue baby steps towards keeping per-frame records. 2026-02-14 18:17:08 -05:00
Thomas Harte
9a55cc1f55 Eat own dogfood on spin locks. 2026-02-14 11:21:23 -05:00
Thomas Harte
ed061fa9b3 Factor out spin lock, get a bit stricter on PointerSets. 2026-02-14 11:14:20 -05:00
Thomas Harte
b64da038d6 Eliminate unused Line properties. 2026-02-13 21:17:17 -05:00
Thomas Harte
0650eb9d16 Adopt idiomatic name. 2026-02-05 12:32:45 -05:00
Thomas Harte
961669168a Slim perform call path; establish that uniforms are now in place. 2026-02-02 11:00:02 -05:00
Thomas Harte
c491ba5cac Use sized types and std::copy_n. 2025-12-10 17:24:07 -05:00
Thomas Harte
00a2fd5cb0 Add consts, avoid macros. 2025-12-10 09:18:27 -05:00
Thomas Harte
8fdf32cde8 Avoid OpenGL churn. 2025-10-06 20:43:12 -04:00
Thomas Harte
e008a02b99 Shuffle further to avoid optics of a fallthrough. 2025-04-21 15:13:10 -04:00
Thomas Harte
eab4274737 Capture 'this' by reference. 2025-02-27 11:56:51 -05:00
Thomas Harte
348a593dc1 Flail in attempt to implement fast loading. 2025-01-21 14:13:42 -05:00
Thomas Harte
58f04848a9 Fix: allow allocations on invisible areas. 2024-06-02 21:59:27 -04:00
Thomas Harte
71d337c10e Avoid std::memory_order::. 2024-05-29 21:51:07 -04:00
Thomas Harte
51ed3f2ed0 Reduce modal-related thread hopping. 2022-07-09 13:03:45 -04:00
Thomas Harte
73d28838c0 Slightly rebalances template.
More clearly to ensure the lock_guard stays in the correct place.
2020-11-26 13:08:40 -05:00
Thomas Harte
c6c12209e8 Corrects end_data thread safety; permits caller not to have reached new_modals before a machine starts trying to push data. 2020-11-25 23:32:37 -05:00
Thomas Harte
dd816c5a0a Restore valid buffering. 2020-11-21 22:55:54 -05:00
Thomas Harte
3cc89cb4d2 Seeks to avoid false assert failures. 2020-11-21 22:52:19 -05:00
Thomas Harte
c7ab3d4075 Reduces cost of bookending video data. 2020-11-18 17:32:11 -05:00
Thomas Harte
b831b31382 Adds a further sanity check. 2020-09-15 17:04:04 -04:00
Thomas Harte
2fd5cc056c Adds std::atomic_thread_fences, but these seem not to be a magic bullet. 2020-09-15 16:34:34 -04:00
Thomas Harte
eb9903cd10 Defensively disables allocation of anything outside of visible lines. 2020-09-14 22:29:05 -04:00
Thomas Harte
227e98d6d7 Slightly simplifies control flow. 2020-09-14 22:27:25 -04:00
Thomas Harte
7dd4c67304 Corrects access to data_type_size, adds sanity check on output area return. 2020-09-13 18:59:27 -04:00
Thomas Harte
7e58648743 Corrects front-running bug, plays further with colour amplitude. 2020-09-02 15:51:48 -04:00
Thomas Harte
c40d858f02 Switches back to angular stuff at input resolution; ensures all S-Video modes work.
Now to roll back onto composite. Fingers crossed!
2020-08-29 20:54:46 -04:00
Thomas Harte
246b474a25 Removes ONE_BIG_LOCK, having effectively neutered it anyway.
Starts work on more explicit API usage validation. Maybe the issue isn't a race condition?
2020-08-16 22:09:25 -04:00
Thomas Harte
745797b596 Introduces a stencil buffer plus the inter-frame clearing it allows. 2020-08-16 16:42:32 -04:00
Thomas Harte
940e9e037e Adds first_scan to LineMetadata.
Also reorders `Line` fields to match `Scan` fields, just for visual consistency.
2020-08-16 08:59:37 -04:00
Thomas Harte
230b9fc9e6 Permits multiple simultaneous scan reading ranges.
Also updates the OpenGL scan target as per the latest movements of things.
2020-08-12 22:08:41 -04:00
Thomas Harte
6384ff3ee7 Add fix for data_type_size_ for owners that don't change texture pointer upon new modals. 2020-08-09 21:17:51 -04:00
Thomas Harte
6bc66d8b96 Tidies, ensures ::will_change_owner acquires the producer mutex. 2020-07-29 23:18:03 -04:00
Thomas Harte
23f381f381 Fixes frame_is_complete_, gets rid of active_line_, explains ONE_BIG_LOCK in set_write_area. 2020-07-29 23:03:38 -04:00
Thomas Harte
51ad423eca Resolves off-by-one error in line writing, adds diagnostic one-big-lock option. 2020-07-29 22:45:13 -04:00
Thomas Harte
72a8fef989 Switches to much more straightforward Line/LineMetadata storage.
Spoiler: covering this whole segment behind producer_mutex_ seems to resolve all output issues, so clearly the existing logic isn't functioning correctly. Making it simpler seems like a pretty obvious way to get to the bottom of that.
2020-07-29 21:49:17 -04:00
Thomas Harte
02f41ee513 This has become the general producer mutex, might as well name it as such. 2020-07-29 21:34:07 -04:00
Thomas Harte
b7760bb052 Reorders code, gets explicit about memory ordering. 2020-07-28 22:02:22 -04:00
Thomas Harte
2470055d90 Hides the modals. 2020-07-27 23:33:39 -04:00