diff --git a/docs/twitter/1687062786273062912/media/1687062786273062912_1.jpg b/docs/twitter/1687062786273062912/media/1687062786273062912_1.jpg new file mode 100644 index 00000000..1a35baf5 Binary files /dev/null and b/docs/twitter/1687062786273062912/media/1687062786273062912_1.jpg differ diff --git a/docs/twitter/1687062786273062912/media/1687066126268674048_1.jpg b/docs/twitter/1687062786273062912/media/1687066126268674048_1.jpg new file mode 100644 index 00000000..1611adc2 Binary files /dev/null and b/docs/twitter/1687062786273062912/media/1687066126268674048_1.jpg differ diff --git a/docs/twitter/1687062786273062912/thread.md b/docs/twitter/1687062786273062912/thread.md new file mode 100644 index 00000000..41e1da06 --- /dev/null +++ b/docs/twitter/1687062786273062912/thread.md @@ -0,0 +1,39 @@ +--- +title: "SPC: Using 8 deep swap all aliasing same BO (image) fixes Game Mode crash with e" +author: "NOTimothyLottes" +handle: "@NOTimothyLottes" +post_url: "https://x.com/NOTimothyLottes/status/1687062786273062912" +post_id: "1687062786273062912" +timestamp: "2023-08-03 11:28:07" +post_count: 5 +reply_count: 1 +repost_count: 1 +like_count: 4 +view_count: 654 +--- + +# @NOTimothyLottes — SPC: Using 8 deep swap all aliasing same BO (image) fixes Game Mode crash with e + +## Post 1 (2023-08-03 11:28:07) + +SPC: Using 8 deep swap all aliasing same BO (image) fixes Game Mode crash with external display. Pipelined load gets to black screen in 2 ms. Takes 460 ms to allocate 4 GiB GTT video ram, 558 ms to copy 256 MiB cart from page cache to USWC (page faults), all in parallel. + +![Media 1](./media/1687062786273062912_1.jpg) + +## Post 2 (2023-08-03 11:40:20) — reply to Post 1 + +Clearing page cache to simulate a cold launch: Takes 1.5 sec to read 256 MiB from the stock SSD. This is worst case load time in desktop mode. Won't be any compile/etc after this. So literally in game at this point. Speed of light. This is how it is done. + +## Post 3 (2023-08-03 11:41:23) — reply to Post 2 + +Forgot the timing capture ... Load from SSD. + +![Media 1](./media/1687066126268674048_1.jpg) + +## Post 4 (2023-08-03 11:50:33) — reply to Post 3 + +There are only 3 threads on load: (1.) to open X11 then spin doing present/keyboard, (2.) to open the AMDgpu device, SDMA copy after CART read, and then eventually spin doing dispatchs, (3.) one to load the CART from disk to mapped USWC GTT via read(). + +## Post 5 (2023-08-03 11:53:14) — reply to Post 4 + +Something I don't know: does read() since it's kernel- side automatically get some multi-core parallelism? Not a good idea to manually thread the read() because SSD needs linear reads to be fast. Not possible to know if the reads are page cache hits in advance either ... diff --git a/docs/twitter/1687062786273062912/thread_data.json b/docs/twitter/1687062786273062912/thread_data.json new file mode 100644 index 00000000..894aa907 --- /dev/null +++ b/docs/twitter/1687062786273062912/thread_data.json @@ -0,0 +1,90 @@ +{ + "root_post_id": "1687062786273062912", + "posts": [ + { + "post_id": "1687062786273062912", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "SPC: Using 8 deep swap all aliasing same BO (image) fixes Game Mode crash with external display. Pipelined load gets to black screen in 2 ms. Takes 460 ms to allocate 4 GiB GTT video ram, 558 ms to copy 256 MiB cart from page cache to USWC (page faults), all in parallel.", + "timestamp": "2023-08-03 11:28:07", + "media_urls": [ + "https://pbs.twimg.com/media/F2mmqYXWoAAG3fj?format=jpg&name=orig" + ], + "reply_to_id": null, + "quote_of_id": null, + "metrics": { + "reply_count": 1, + "repost_count": 1, + "like_count": 4, + "view_count": 654 + } + }, + { + "post_id": "1687065863512285185", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "Clearing page cache to simulate a cold launch: Takes 1.5 sec to read 256 MiB from the stock SSD. This is worst case load time in desktop mode. Won't be any compile/etc after this. So literally in game at this point. Speed of light. This is how it is done.", + "timestamp": "2023-08-03 11:40:20", + "media_urls": [], + "reply_to_id": "1687062786273062912", + "quote_of_id": null, + "metrics": { + "reply_count": 1, + "repost_count": 0, + "like_count": 1, + "view_count": 105 + } + }, + { + "post_id": "1687066126268674048", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "Forgot the timing capture ... Load from SSD.", + "timestamp": "2023-08-03 11:41:23", + "media_urls": [ + "https://pbs.twimg.com/media/F2mpszoXMAE00Hy?format=jpg&name=orig" + ], + "reply_to_id": "1687065863512285185", + "quote_of_id": null, + "metrics": { + "reply_count": 2, + "repost_count": 0, + "like_count": 1, + "view_count": 127 + } + }, + { + "post_id": "1687068433584738304", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "There are only 3 threads on load: (1.) to open X11 then spin doing present/keyboard, (2.) to open the AMDgpu device, SDMA copy after CART read, and then eventually spin doing dispatchs, (3.) one to load the CART from disk to mapped USWC GTT via read().", + "timestamp": "2023-08-03 11:50:33", + "media_urls": [], + "reply_to_id": "1687066126268674048", + "quote_of_id": null, + "metrics": { + "reply_count": 1, + "repost_count": 0, + "like_count": 0, + "view_count": 307 + } + }, + { + "post_id": "1687069108355866625", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "Something I don't know: does read() since it's kernel- side automatically get some multi-core parallelism? Not a good idea to manually thread the read() because SSD needs linear reads to be fast. Not possible to know if the reads are page cache hits in advance either ...", + "timestamp": "2023-08-03 11:53:14", + "media_urls": [], + "reply_to_id": "1687068433584738304", + "quote_of_id": null, + "metrics": { + "reply_count": 0, + "repost_count": 0, + "like_count": 0, + "view_count": 285 + } + } + ], + "source_url": "https://x.com/NOTimothyLottes/status/1687062786273062912" +} \ No newline at end of file