Thomas Harte
|
c5e9a74c88
|
Uses DisplayMetrics to disable supersampling when too slow.
|
2020-09-13 21:07:59 -04:00 |
|
Thomas Harte
|
d7972a7b86
|
Enforces across-the-board supersampling.
I'm damned if I can figure out how to talk an MTKView, or Metal in general, into supersampling so as a first effort this does it in software.
|
2020-09-13 19:30:26 -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
|
e113780fd1
|
Minor: ensures no possibility of a dangling(-ish) pointer within the Mac video.
|
2020-09-10 22:13:19 -04:00 |
|
Thomas Harte
|
e32ae6c191
|
Adds UGLY HACKs to workaround uncovered issues in the OpenGL scan target.
|
2020-09-10 22:10:24 -04:00 |
|
Thomas Harte
|
bcaceff378
|
Simplifies in-Metal transform logic, loading responsibility for setup onto the CPU.
I think I've also finally excised whatever order-of-operations issue I was having with regard to non-4:3 displays.
|
2020-09-10 20:32:58 -04:00 |
|
Thomas Harte
|
d7b405c6f8
|
Ensures direct luminance -> 'RGB' video doesn't go down the composition pipeline.
|
2020-09-10 13:20:40 -04:00 |
|
Thomas Harte
|
edf8cf4dc6
|
Completes the set of with/without gamma, and ensures correct alpha selection.
Also culls some other repetitive TODOs.
|
2020-09-09 19:28:38 -04:00 |
|
Thomas Harte
|
dfcc8e9822
|
Switches some of the interpolated fields to half precision.
|
2020-09-09 18:17:05 -04:00 |
|
Thomas Harte
|
016e96e6f8
|
Extends usage of half . Possibly towards its conclusion.
|
2020-09-09 15:10:19 -04:00 |
|
Thomas Harte
|
e7ce03c418
|
Attempts to ensure initial finalised line texture state.
This was an attempt to remove the vertical line on the left of a composite display. Obviously the cause is not as suspected.
|
2020-09-09 13:15:21 -04:00 |
|
Thomas Harte
|
3d392dd81d
|
Completes conversion of composite & S-Video per-pixel processing to 16-bit floats.
|
2020-09-09 13:02:04 -04:00 |
|
Thomas Harte
|
42d810db7f
|
Switches per-pixel uniforms to halfs.
|
2020-09-09 10:53:09 -04:00 |
|
Thomas Harte
|
18571e8351
|
Also calculates a chroma kernel size, though it isn't used for anything yet.
|
2020-09-08 20:08:56 -04:00 |
|
Thomas Harte
|
dda1649ab7
|
Introduces smaller luma kernel functions where useable.
|
2020-09-08 19:55:37 -04:00 |
|
Thomas Harte
|
c82e0df071
|
Starts a transition towards half-precision arithmetic.
|
2020-09-08 19:37:36 -04:00 |
|
Thomas Harte
|
06b7ea5a6e
|
Strips the luma kernel back to 1d.
|
2020-09-08 19:15:19 -04:00 |
|
Thomas Harte
|
c49fcb9ec9
|
Based on further play: one box filter to separate luma/chroma, another to filter chroma, plus a FIR sharpen on luma.
|
2020-09-08 16:35:05 -04:00 |
|
Thomas Harte
|
0e44d6d214
|
Experiments with an all-box filter.
|
2020-09-08 16:19:08 -04:00 |
|
Thomas Harte
|
6adad7fbf5
|
Starts experimenting again with box filters.
|
2020-09-07 22:47:49 -04:00 |
|
Thomas Harte
|
de6ed7b615
|
Corrects phase-linked luminance support.
|
2020-09-07 20:53:28 -04:00 |
|
Thomas Harte
|
07dcb4dbb1
|
Starts reintroducing brightness, gamma and transparency for composite and S-Video pipelines.
|
2020-09-07 18:19:13 -04:00 |
|
Thomas Harte
|
e99896eadc
|
At least nominates alpha, gamma and brightness to metal.
|
2020-09-04 16:07:58 -04:00 |
|
Thomas Harte
|
489701afcb
|
Fixes window resizing.
|
2020-09-03 21:28:39 -04:00 |
|
Thomas Harte
|
55e576cc57
|
Ensures unpainted areas in composite displays have a non-asymptotic effect on luminance calculations.
|
2020-09-03 21:10:30 -04:00 |
|
Thomas Harte
|
6bd8ec9545
|
Alas, 1.0 seems to be the limit for proper artefact colour.
|
2020-09-03 20:53:45 -04:00 |
|
Thomas Harte
|
5cd8d86eef
|
Switches to dynamic generation of the 'sharpness' filter, correcting issues with the Apple II (amongst others).
|
2020-09-03 20:48:44 -04:00 |
|
Thomas Harte
|
74d0acdaec
|
Fixes non-RGB colour composite generation.
The hard-coded sharpen filter proves to be a really bad fit for the Apple II though.
|
2020-09-03 19:04:17 -04:00 |
|
Thomas Harte
|
0288a1974b
|
Tries: separate filters for chroma and luma, plus a post-separation sharpen filter on the latter.
|
2020-09-03 13:18:21 -04:00 |
|
Thomas Harte
|
6efd8782fe
|
Tweaks coefficients some more; makes sure that data is never larger than the intermediate buffers.
|
2020-09-02 20:14:41 -04:00 |
|
Thomas Harte
|
8bab9d5d60
|
Corrects S-Video and composite generation for RGB[1/2/4] sources.
Also toys with a double luminance filter in order to try to sharpen chrominance. But maybe I should be looking at other convolutions entirely?
|
2020-09-02 19:13:54 -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
|
0f0c3e616d
|
Tweaks some numbers.
I'm largely treading water here. Probably time to think about the race.
|
2020-09-02 08:17:01 -04:00 |
|
Thomas Harte
|
c7ce65ea4c
|
Attempts fully to restore composite video.
Subject to some sort of nasty race condition for the time being.
|
2020-09-02 08:03:10 -04:00 |
|
Thomas Harte
|
c36247b609
|
Ensures reuse of offset buffers.
There seems to be some sort of epic race condition as the drawing pipeline lags though. Will need to investigate.
|
2020-09-01 22:11:48 -04:00 |
|
Thomas Harte
|
15296e43a4
|
Attempts correctly to set up the CPU side of a composite video pipeline, at least.
So: I think this is really close, but I'm out of time for the day.
|
2020-09-01 21:58:33 -04:00 |
|
Thomas Harte
|
f2929230a2
|
[Experimentally] introduces blending between computed S-Video fragments.
|
2020-09-01 21:37:36 -04:00 |
|
Thomas Harte
|
bf252b8061
|
Fixes sizing of buffers to the current output.
|
2020-09-01 21:33:54 -04:00 |
|
Thomas Harte
|
9e2bf2af7e
|
Restricts S-Video processing to updated lines.
|
2020-09-01 21:27:40 -04:00 |
|
Thomas Harte
|
245f2654f0
|
Shifts S-Video processing into the compute shader.
|
2020-09-01 20:37:11 -04:00 |
|
Thomas Harte
|
67ca298a72
|
Forces a no-op compute shader into the S-Video pipeline.
The intention is to restrict the area acted over, and to do the S-Video filtering in there. Then I'll just need two such stages for composite.
|
2020-09-01 18:39:52 -04:00 |
|
Thomas Harte
|
67d4dbf91a
|
Starts girding for a third pipeline.
|
2020-08-31 20:01:59 -04:00 |
|
Thomas Harte
|
b344269140
|
I think I accept the need for intermediate steps now.
This allocates storage.
|
2020-08-30 20:21:01 -04:00 |
|
Thomas Harte
|
bb547610f2
|
Adds commentary, shrinks some intermediate texture sizes.
|
2020-08-30 12:06:29 -04:00 |
|
Thomas Harte
|
1e1f007bb7
|
Possibly convinces myself that no-separation chroma/luma isn't practical.
... as appealing as it may be, were filters perfect.
|
2020-08-29 21:25:49 -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
|
3d564d85fd
|
Proves that per-pixel sine/cos evaluation avoids phase issues.
Even in PAL mode. But I'd rather not _require_ this as it kind of negates directly-sampled input.
|
2020-08-29 18:53:37 -04:00 |
|
Thomas Harte
|
02cea40ffa
|
Attempts to avoid introducing phase error in scanToComposition.
Also brightens S-Video up to RGB levels.
|
2020-08-25 22:41:37 -04:00 |
|
Thomas Harte
|
e502d336db
|
Having decided that these things probably need to be separate, starts drilling down on S-Video.
|
2020-08-25 22:05:19 -04:00 |
|