Thomas Harte
|
a5075d9eb5
|
Formalised the reasoning behind the colour phase fix-up and made it an opt-in per-caller value. Only the Oric currently needs to opt in.
|
2017-05-16 20:31:39 -04:00 |
|
Thomas Harte
|
e01f3f06c8
|
Completed curly bracket movement.
|
2017-03-26 14:34:47 -04:00 |
|
Thomas Harte
|
e63229a5e5
|
Pulled vertical sync detection entirely outside the loop, and gave it greater perspective.
|
2017-03-06 19:15:33 -05:00 |
|
Thomas Harte
|
ad73379d1c
|
Took vertical sync detection logic entirely out of the loop.
|
2017-03-05 20:17:55 -05:00 |
|
Thomas Harte
|
4751615623
|
Fixed NTSC colour cycle count, and hence the 2600's reported line lengths and phase offset.
|
2017-03-04 17:31:39 -05:00 |
|
Thomas Harte
|
a3fcd15980
|
Loosened sync charge level requirement.
|
2017-03-01 22:16:56 -05:00 |
|
Thomas Harte
|
fcf8cafb5d
|
Sought to ensure that communicating a colour burst in multiple parts doesn't ruin the phase.
|
2017-02-06 18:27:44 -05:00 |
|
Thomas Harte
|
4d6e78e641
|
Reinstated temporary Oric-related fix.
|
2017-01-24 22:16:15 -05:00 |
|
Thomas Harte
|
d0a93409e6
|
Made an attempt to simplify in-shader phase calculation, now that output position is a direct multiple of phase.
|
2017-01-11 08:18:00 -05:00 |
|
Thomas Harte
|
4c3669f210
|
Reduced precision of input phase, but I'm not necessarily persuaded by it as a move. However it's clear that something is off in that whole area. But if phase is locked by output position, do I need to retain this level of complexity? Also ensured that intermediate buffers prior to the final are sampled using the nearest sampling mode, also to reduce precision errors.
|
2017-01-10 22:08:07 -05:00 |
|
Thomas Harte
|
d2a7d39749
|
Ensured the output lock isn't held while talking to the delegate.
|
2017-01-08 19:49:21 -05:00 |
|
Thomas Harte
|
5740015f56
|
Temporarily disabled composite processing to show the pure stream. Fixed both automatic calculations of phase — per line and, at input, per pixel.
|
2017-01-07 12:38:00 -05:00 |
|
Thomas Harte
|
c84004bfa3
|
Fixed: colour_cycle_numerator_ doesn't need to be multiplied by the time multiplier because it'll get that for free from the calculation of next_run_length.
|
2017-01-06 21:36:19 -05:00 |
|
Thomas Harte
|
a549fd1ecc
|
Introduced the ability simply to piggy-back off the CRT's natural phase for the colour burst, thereby eliminating a couple of redundant independent attempts in the Oric and Electron.
|
2016-12-10 13:42:34 -05:00 |
|
Thomas Harte
|
5216dda675
|
Added some brief extra exposition to the texture builder, cut all internal tex_x/y and source_divider stuff from the CRT.
|
2016-12-06 19:08:55 -05:00 |
|
Thomas Harte
|
4ff33254e1
|
Sought to shift locking back up to the CRT. And to be a bit more RAII-ish.
|
2016-12-06 18:48:30 -05:00 |
|
Thomas Harte
|
0fee8096c1
|
Made an attempt to shuffle the texture builder to a similar flush/submit pattern as the input builder. Don't care about thread safety yet, as it's obvious I'm going to need to move that back up to the CRT.
|
2016-12-06 07:24:07 -05:00 |
|
Thomas Harte
|
0edc043378
|
Started introducing an extra layer of indirection so as to be able to bind the texture builder to the same flush and submit patern as the array builder.
|
2016-12-03 20:47:19 -05:00 |
|
Thomas Harte
|
cb3c837e30
|
Simplified interface by baking in last-minute-only updates.
|
2016-12-03 18:19:12 -05:00 |
|
Thomas Harte
|
5bc165960a
|
Completed refactoring.
|
2016-11-20 09:12:06 +08:00 |
|
Thomas Harte
|
aca1fa0577
|
Returned some video output. Enough significantly to reduce my paranoia.
|
2016-11-17 13:37:53 +08:00 |
|
Thomas Harte
|
1f91d29434
|
Progressed to usage of an array builder and a texture builder up to the point of a successful build.
|
2016-11-17 12:26:04 +08:00 |
|
Thomas Harte
|
0f3b02edb7
|
Switched to postfix underscores and gave this class ownership of a texture builder and an array builder, though it presently uses neither.
|
2016-11-17 11:00:11 +08:00 |
|
Thomas Harte
|
6cb4950db4
|
Improved run-off area.
|
2016-11-16 11:53:15 +08:00 |
|
Thomas Harte
|
9ee11d7765
|
At the expense of API simplicity, at least for now, resolved the most glaring cause of dirty lines.
|
2016-11-16 11:34:05 +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
|
c628b7c5c5
|
This is the real PAL frequency, I think.
|
2016-10-17 08:05:02 -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
|
c18cc4c8f5
|
It appears the Vic's output is sine-ish, after all. Also adjusted centre of display, simultaneously adding some validation on that.
|
2016-06-14 07:29:35 -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
|
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
|
257420b0f7
|
Fixed potential output error if buffer top were hit; clarified buffer size constants.
|
2016-05-10 19:04:03 -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
|
cec9ad0dc6
|
Switched to a more rational interface, ensured output_level will work when eventually needed, and that neither it nor output_data attempts a recursive lock.
|
2016-05-09 07:02:12 -04:00 |
|
Thomas Harte
|
a82fa31370
|
Switched back to broad locking for CRT updates. To eliminate one more thing.
|
2016-05-09 06:58:26 -04:00 |
|
Thomas Harte
|
47302de23a
|
Switched to simpler storage for _image .
|
2016-05-08 21:11:56 -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
|
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
|
284b310074
|
Attempted to implement end-of-buffer tests for all stages.
|
2016-05-05 19:52:05 -04:00 |
|
Thomas Harte
|
87df57195d
|
Started on an attempt not to treat the various buffers as free to loop within, starting with the input texture.
|
2016-05-04 07:39:45 -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
|
29e7c96e4c
|
Brought monitor mode inside the pipeline and added an intermediate filter.
|
2016-05-02 21:05:58 -04:00 |
|
Thomas Harte
|
501ab74eaf
|
Fixed time multiplier calculation.
|
2016-04-28 22:12:59 -04:00 |
|
Thomas Harte
|
ef3647f6cf
|
Being bold: per-scan timing isn't coming back, I think, so started completely removing it.
|
2016-04-27 23:00:43 -04:00 |
|
Thomas Harte
|
496d979aca
|
Made a decision to clean up by creating per-shader classes. Well, more or less. First thing to be factored out: the output shader.
|
2016-04-27 22:29:54 -04:00 |
|