Icecream95
0499dbd4cf
Align Scan to be a multiple of four bytes
...
Some GPUs (e.g. r600) require the stride of vertex attributes to be a
multiple of four bytes, add two bytes of padding to the Scan struct to
meet this alignment requirement and reduce driver CPU overhead.
2022-08-29 16:32:25 +12:00
Thomas Harte
8f2e94a1d8
Switch name back to emphasise _async_.
2022-07-16 14:41:04 -04:00
Thomas Harte
60f997a52c
Fix stereo buffering, various audio asserts.
2022-07-14 21:59:40 -04:00
Thomas Harte
bf03bda314
Generalise AsyncTaskQueue, DeferringAsyncTaskQueue and AsyncUpdater into a single template.
2022-07-14 16:39:26 -04:00
Thomas Harte
75f3f1a77f
Avoid the whole thread hop for a zero-length run_for.
2022-07-13 15:05:34 -04:00
Thomas Harte
0270997acd
Add insurance against calls before setup.
2022-07-12 16:03:09 -04:00
Thomas Harte
51ed3f2ed0
Reduce modal-related thread hopping.
2022-07-09 13:03:45 -04:00
Thomas Harte
887ab705d1
Add missing <cassert>.
2021-12-02 13:00:25 -05:00
Thomas Harte
ff6ddaed2e
Full scale is 65536.
2021-12-02 12:55:11 -05:00
Thomas Harte
3a26f6b8bf
Ensure full buffer provision.
2021-12-02 12:52:43 -05:00
Thomas Harte
6f6e09d200
Correct: load
-> store
.
2021-11-22 15:18:12 -05:00
Thomas Harte
24e2fd4184
Avoid implicit conversion.
2021-11-22 11:28:02 -05:00
Thomas Harte
1aada996dc
Correct const
ing.
2021-11-22 11:18:17 -05:00
Thomas Harte
f5d3d6bcea
Splits the lowpass filter into push and pull variants.
2021-11-21 15:37:29 -05:00
Thomas Harte
986c4006a6
Corrected: PAL machines can now be overt in terms of odd/even colour burst.
2021-03-20 23:45:49 -04:00
Thomas Harte
091bce9350
Merge branch 'master' into AppleIIgs
2020-11-29 00:09:20 -05:00
Thomas Harte
5ee9630624
Use compositeAmplitude
in favour of its reciprocal.
2020-11-28 19:53:34 -05:00
Thomas Harte
1b3836eb1c
Adds an overt branch for mono/colour composite selection.
2020-11-28 19:47:04 -05:00
Thomas Harte
33dec3c220
Given that lineCompositeAmplitude
is not normalised, ups threshold.
2020-11-28 17:19:28 -05:00
Thomas Harte
0b4b271e3d
Pulls out redundant check.
2020-11-27 21:04:20 -05: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
8a805b6ba1
Ensures that get_average_output_peak() returns something sensible even before a set_relative_volumes.
2020-11-21 22:52:57 -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
96e79301f3
Clamps 16-bit positioning values.
2020-11-15 19:14:57 -05:00
Thomas Harte
5698aa6499
Corrects colour mapping and improves documentation for self.
2020-11-11 20:41:30 -05:00
Thomas Harte
894269aa06
Allows for permitted 1/32nd timing error in time_multiplier_
.
2020-09-17 18:12:21 -04:00
Thomas Harte
f783ec6269
Since input and output are floating point, using an integer Stepper is not appropriate.
2020-09-16 18:53:44 -04:00
Thomas Harte
a17d0e428f
Protects against some further uninitialised values.
2020-09-16 18:15:57 -04:00
Thomas Harte
b1aefbfe85
Separates asserts.
2020-09-15 23:24:06 -04:00
Thomas Harte
69d21daaa3
Improves commentary.
2020-09-15 22:21:05 -04: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
35476063b7
Resolves potential data races.
2020-09-14 21:07:50 -04:00
Thomas Harte
c5e9a74c88
Uses DisplayMetrics to disable supersampling when too slow.
2020-09-13 21:07:59 -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
6ef1dfd8be
Sets a more realistic colour subcarrier amplitude.
2020-09-02 15:52:05 -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
807cb99f6d
Composite angles are signed.
2020-08-23 21:39:04 -04:00
Thomas Harte
8b6879a782
Brief detour: introduces myself to C++11 multiline string literals.
...
A full cleaning coming soon, I imagine.
2020-08-23 21:18:38 -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
637ec35d6a
Adds getters for standard colour-space conversion matrices.
...
These are just more details on the meaning of the colour spaces, so I think they belong here.
2020-08-11 19:58:57 -04:00