diff --git a/docs/twitter/1688491417109196800/media/1688491417109196800_1.jpg b/docs/twitter/1688491417109196800/media/1688491417109196800_1.jpg new file mode 100644 index 00000000..eb97b639 Binary files /dev/null and b/docs/twitter/1688491417109196800/media/1688491417109196800_1.jpg differ diff --git a/docs/twitter/1688491417109196800/media/1688491417109196800_2.jpg b/docs/twitter/1688491417109196800/media/1688491417109196800_2.jpg new file mode 100644 index 00000000..5be5e9f5 Binary files /dev/null and b/docs/twitter/1688491417109196800/media/1688491417109196800_2.jpg differ diff --git a/docs/twitter/1688491417109196800/media/1688492237775142912_1.png b/docs/twitter/1688491417109196800/media/1688492237775142912_1.png new file mode 100644 index 00000000..75a68d6e Binary files /dev/null and b/docs/twitter/1688491417109196800/media/1688492237775142912_1.png differ diff --git a/docs/twitter/1688491417109196800/media/1688493686554849280_1.png b/docs/twitter/1688491417109196800/media/1688493686554849280_1.png new file mode 100644 index 00000000..640d0bb1 Binary files /dev/null and b/docs/twitter/1688491417109196800/media/1688493686554849280_1.png differ diff --git a/docs/twitter/1688491417109196800/media/1689479056448684032_1.png b/docs/twitter/1688491417109196800/media/1689479056448684032_1.png new file mode 100644 index 00000000..fa26f982 Binary files /dev/null and b/docs/twitter/1688491417109196800/media/1689479056448684032_1.png differ diff --git a/docs/twitter/1688491417109196800/media/1689479056448684032_2.png b/docs/twitter/1688491417109196800/media/1689479056448684032_2.png new file mode 100644 index 00000000..41b592f9 Binary files /dev/null and b/docs/twitter/1688491417109196800/media/1689479056448684032_2.png differ diff --git a/docs/twitter/1688491417109196800/thread.md b/docs/twitter/1688491417109196800/thread.md new file mode 100644 index 00000000..ca1a4dcc --- /dev/null +++ b/docs/twitter/1688491417109196800/thread.md @@ -0,0 +1,49 @@ +--- +title: "CRT emulation on LCDs can be hard. For example it's often easy to generate a pat" +author: "NOTimothyLottes" +handle: "@NOTimothyLottes" +post_url: "https://x.com/NOTimothyLottes/status/1688491417109196800" +post_id: "1688491417109196800" +timestamp: "2023-08-07 10:04:59" +post_count: 6 +reply_count: 2 +repost_count: 18 +like_count: 98 +view_count: 12960 +--- + +# @NOTimothyLottes — CRT emulation on LCDs can be hard. For example it's often easy to generate a pat + +## Post 1 (2023-08-07 10:04:59) + +CRT emulation on LCDs can be hard. For example it's often easy to generate a pattern that causes a LCD hardware bug. NOT joking. Here is an example on the Steam Deck. The pattern in the window affects the scan (Deck scan is rotated) outside the window. + +![Media 1](./media/1688491417109196800_1.jpg) +![Media 2](./media/1688491417109196800_2.jpg) + +## Post 2 (2023-08-07 10:08:14) — reply to Post 1 + +The actual pattern is this (it's a 2x1 pixel checker of {G,RB}). + +![Media 1](./media/1688492237775142912_1.png) + +## Post 3 (2023-08-07 10:14:00) — reply to Post 2 + +The theory: Deck's 90deg scan results in {(bottom)R, G, B (top)} sub-pixel components. So could alternate {G,RB} only per pixel in a checker pattern to generate a new sub-pixel pattern at a different resolution. In this case trying for 640x400 virtual resolution. + +![Media 1](./media/1688493686554849280_1.png) + +## Post 4 (2023-08-07 10:18:28) — reply to Post 3 + +For virtual pixel, shift energy into masked virtual phosphor. So 50% brightness red, would be {100%, 0%} for {in, out} of phosphor pixels. Over 50% one starts to increase non-phosphor pixels until some maximum so mask is still visible, but brightness isn't too compromised. + +## Post 5 (2023-08-07 10:23:35) — reply to Post 4 + +Of course this is done in linear, so it's energy conserving in theory. But when the panel fails, it breaks down and doesn't work. I see this problem on a bunch of different devices. My personal AMD laptop has the exact same fail case (but rotated differently). + +## Post 6 (2023-08-10 03:29:30) — reply to Post 1 + +@NOTimothyLottes Very interesting "crosstalk from voltage inversion" artifact. Some repeating patterns or flicker patterns can trigger crosstalk artifacts too. Behavior varies a lot between TN, IPS, and VA, but all of them have to alternate voltage polarity spatially and temporally. + +![Media 1](./media/1689479056448684032_1.png) +![Media 2](./media/1689479056448684032_2.png) diff --git a/docs/twitter/1688491417109196800/thread_data.json b/docs/twitter/1688491417109196800/thread_data.json new file mode 100644 index 00000000..b8dd8350 --- /dev/null +++ b/docs/twitter/1688491417109196800/thread_data.json @@ -0,0 +1,112 @@ +{ + "root_post_id": "1688491417109196800", + "posts": [ + { + "post_id": "1688491417109196800", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "CRT emulation on LCDs can be hard. For example it's often easy to generate a pattern that causes a LCD hardware bug. NOT joking. Here is an example on the Steam Deck. The pattern in the window affects the scan (Deck scan is rotated) outside the window.", + "timestamp": "2023-08-07 10:04:59", + "media_urls": [ + "https://pbs.twimg.com/media/F265_JZXsAAInpa?format=jpg&name=orig", + "https://pbs.twimg.com/media/F265_hLXkAAnfek?format=jpg&name=orig" + ], + "reply_to_id": null, + "quote_of_id": null, + "metrics": { + "reply_count": 2, + "repost_count": 18, + "like_count": 98, + "view_count": 12960 + } + }, + { + "post_id": "1688492237775142912", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "The actual pattern is this (it's a 2x1 pixel checker of {G,RB}).", + "timestamp": "2023-08-07 10:08:14", + "media_urls": [ + "https://pbs.twimg.com/media/F266epnW4AAdCiK?format=png&name=orig" + ], + "reply_to_id": "1688491417109196800", + "quote_of_id": null, + "metrics": { + "reply_count": 1, + "repost_count": 0, + "like_count": 3, + "view_count": 905 + } + }, + { + "post_id": "1688493686554849280", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "The theory: Deck's 90deg scan results in {(bottom)R, G, B (top)} sub-pixel components. So could alternate {G,RB} only per pixel in a checker pattern to generate a new sub-pixel pattern at a different resolution. In this case trying for 640x400 virtual resolution.", + "timestamp": "2023-08-07 10:14:00", + "media_urls": [ + "https://pbs.twimg.com/media/F267UYuXAAAO50A?format=png&name=orig" + ], + "reply_to_id": "1688492237775142912", + "quote_of_id": null, + "metrics": { + "reply_count": 1, + "repost_count": 0, + "like_count": 3, + "view_count": 868 + } + }, + { + "post_id": "1688494811366506496", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "For virtual pixel, shift energy into masked virtual phosphor. So 50% brightness red, would be {100%, 0%} for {in, out} of phosphor pixels. Over 50% one starts to increase non-phosphor pixels until some maximum so mask is still visible, but brightness isn't too compromised.", + "timestamp": "2023-08-07 10:18:28", + "media_urls": [], + "reply_to_id": "1688493686554849280", + "quote_of_id": null, + "metrics": { + "reply_count": 1, + "repost_count": 0, + "like_count": 1, + "view_count": 1002 + } + }, + { + "post_id": "1688496100460605442", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "Of course this is done in linear, so it's energy conserving in theory. But when the panel fails, it breaks down and doesn't work. I see this problem on a bunch of different devices. My personal AMD laptop has the exact same fail case (but rotated differently).", + "timestamp": "2023-08-07 10:23:35", + "media_urls": [], + "reply_to_id": "1688494811366506496", + "quote_of_id": null, + "metrics": { + "reply_count": 0, + "repost_count": 0, + "like_count": 2, + "view_count": 957 + } + }, + { + "post_id": "1689479056448684032", + "author": "Blur Busters", + "handle": "BlurBusters", + "text": "@NOTimothyLottes Very interesting \"crosstalk from voltage inversion\" artifact. Some repeating patterns or flicker patterns can trigger crosstalk artifacts too. Behavior varies a lot between TN, IPS, and VA, but all of them have to alternate voltage polarity spatially and temporally.", + "timestamp": "2023-08-10 03:29:30", + "media_urls": [ + "https://pbs.twimg.com/media/F3I8AZmW0AEy6jn?format=png&name=orig", + "https://pbs.twimg.com/media/F3I8BVlXoAAnuJB?format=png&name=orig" + ], + "reply_to_id": "1688491417109196800", + "quote_of_id": null, + "metrics": { + "reply_count": 1, + "repost_count": 0, + "like_count": 1, + "view_count": 159 + } + } + ], + "source_url": "https://x.com/NOTimothyLottes/status/1688491417109196800" +} \ No newline at end of file