From a2fb9bb50755206ea4a4c4c9f2ab26f5fd51014c Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 1 Aug 2026 15:08:42 -0400 Subject: [PATCH] docs(twitter): add 2074108624553554387 corpus (NOTimothyLottes Vulkan loader Lib() pattern + 32-bit offset symbols) 3-post thread, 1 PNG, 20 likes, 2054 views. Vulkan starts with the ping pong between getting an instance proc addr for vkCreateInstance, then using that to create an instance to get the remaining functions. Lottes reuses his Lib() code modified for VK: keeps a 64-bit base and 32-bit offsets for symbols. @nullspector asks if 4GB max distance between symbols is a real guarantee; Lottes: 'It's working thus far, if I find a case it doesn't work I'll change it. I keep a different base per library, so likely safe enough.' Same pattern as the register-as-memory / pre-emptive scatter approach: 64-bit base + 32-bit offset = compact symbol table. Sibling to the 2074725506050642021 RADV + queue setup and the 2075769880092037309 VK queue rethink. --- .../media/2074108624553554387_1.png | Bin 0 -> 5133 bytes docs/twitter/2074108624553554387/thread.md | 29 +++++++++ .../2074108624553554387/thread_data.json | 56 ++++++++++++++++++ 3 files changed, 85 insertions(+) create mode 100644 docs/twitter/2074108624553554387/media/2074108624553554387_1.png create mode 100644 docs/twitter/2074108624553554387/thread.md create mode 100644 docs/twitter/2074108624553554387/thread_data.json diff --git a/docs/twitter/2074108624553554387/media/2074108624553554387_1.png b/docs/twitter/2074108624553554387/media/2074108624553554387_1.png new file mode 100644 index 0000000000000000000000000000000000000000..5cb1755567b90d252c71143b7cc9d30068702b2d GIT binary patch literal 5133 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 literal 0 HcmV?d00001 diff --git a/docs/twitter/2074108624553554387/thread.md b/docs/twitter/2074108624553554387/thread.md new file mode 100644 index 00000000..ce1210f2 --- /dev/null +++ b/docs/twitter/2074108624553554387/thread.md @@ -0,0 +1,29 @@ +--- +title: "Vulkan starts with the ping pong between getting an instance proc addr so one ca" +author: "NOTimothyLottes" +handle: "@NOTimothyLottes" +post_url: "https://x.com/NOTimothyLottes/status/2074108624553554387" +post_id: "2074108624553554387" +timestamp: "2026-07-06 12:30:05" +post_count: 3 +reply_count: 1 +repost_count: 0 +like_count: 20 +view_count: 2054 +--- + +# @NOTimothyLottes — Vulkan starts with the ping pong between getting an instance proc addr so one ca + +## Post 1 (2026-07-06 12:30:05) + +Vulkan starts with the ping pong between getting an instance proc addr so one can get vkCreateInstance, then using that to create an instance so one can get the remaining functions. I reuse my Lib() code modified for VK, that keeps a 64-bit base and 32-bit offsets for symbols. + +![Media 1](./media/2074108624553554387_1.png) + +## Post 2 (2026-07-08 16:09:55) — reply to Post 1 + +@NOTimothyLottes That's very neat, but is it really true in practice that the max distance between symbols can't exceed 4GB? I think it would be a sane guarantee that it can't, but I assumed the worst and got scared off from the idea... + +## Post 3 (2026-07-08 16:24:40) — reply to Post 2 + +@nullspector It’s working thus far, if I find a case it doesn’t work I’ll change it. I keep a different base per library, so likely safe enough. diff --git a/docs/twitter/2074108624553554387/thread_data.json b/docs/twitter/2074108624553554387/thread_data.json new file mode 100644 index 00000000..51269bc8 --- /dev/null +++ b/docs/twitter/2074108624553554387/thread_data.json @@ -0,0 +1,56 @@ +{ + "root_post_id": "2074108624553554387", + "posts": [ + { + "post_id": "2074108624553554387", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "Vulkan starts with the ping pong between getting an instance proc addr so one can get vkCreateInstance, then using that to create an instance so one can get the remaining functions. I reuse my Lib() code modified for VK, that keeps a 64-bit base and 32-bit offsets for symbols.", + "timestamp": "2026-07-06 12:30:05", + "media_urls": [ + "https://pbs.twimg.com/media/HMi2ZkFXEAAy767?format=png&name=orig" + ], + "reply_to_id": null, + "quote_of_id": null, + "metrics": { + "reply_count": 1, + "repost_count": 0, + "like_count": 20, + "view_count": 2054 + } + }, + { + "post_id": "2074888721959149995", + "author": "Michael Spector", + "handle": "nullspector", + "text": "@NOTimothyLottes That's very neat, but is it really true in practice that the max distance between symbols can't exceed 4GB? I think it would be a sane guarantee that it can't, but I assumed the worst and got scared off from the idea...", + "timestamp": "2026-07-08 16:09:55", + "media_urls": [], + "reply_to_id": "2074108624553554387", + "quote_of_id": null, + "metrics": { + "reply_count": 1, + "repost_count": 0, + "like_count": 0, + "view_count": 25 + } + }, + { + "post_id": "2074892435038077125", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "@nullspector It’s working thus far, if I find a case it doesn’t work I’ll change it. I keep a different base per library, so likely safe enough.", + "timestamp": "2026-07-08 16:24:40", + "media_urls": [], + "reply_to_id": "2074888721959149995", + "quote_of_id": null, + "metrics": { + "reply_count": 0, + "repost_count": 0, + "like_count": 1, + "view_count": 37 + } + } + ], + "source_url": "https://x.com/NOTimothyLottes/status/2074108624553554387" +} \ No newline at end of file