From 1f87a7aaeb6f0f95d5904e661970a4ed9d2c0fc9 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Tue, 25 Aug 2026 11:16:05 -0400 Subject: [PATCH] 1951346857017250014, 1990260050485797063 --- ...on-the-cart-style-memory-model-i-assume.md | 65 +++++++++++++++++++ .../index.md | 2 + ...-still-on-opengles-and-webgl-which-dont.md | 2 +- ...-had-real-depth-precision-issues-in-our.md | 2 +- ...e-far-doesnt-apply-to-ortho-and-many-of.md | 2 +- ...really-done-graphics-in-a-while-but-ive.md | 2 +- .../index.md | 19 +++++- 7 files changed, 88 insertions(+), 6 deletions(-) create mode 100644 archive/threads/NOTimothyLottes/2025-08-01-at-least-for-my-next-at-home-project-i-think-the/2025-08-01-VPCOMPRESSB-elaborate-on-the-cart-style-memory-model-i-assume.md diff --git a/archive/threads/NOTimothyLottes/2025-08-01-at-least-for-my-next-at-home-project-i-think-the/2025-08-01-VPCOMPRESSB-elaborate-on-the-cart-style-memory-model-i-assume.md b/archive/threads/NOTimothyLottes/2025-08-01-at-least-for-my-next-at-home-project-i-think-the/2025-08-01-VPCOMPRESSB-elaborate-on-the-cart-style-memory-model-i-assume.md new file mode 100644 index 0000000..7ad8db1 --- /dev/null +++ b/archive/threads/NOTimothyLottes/2025-08-01-at-least-for-my-next-at-home-project-i-think-the/2025-08-01-VPCOMPRESSB-elaborate-on-the-cart-style-memory-model-i-assume.md @@ -0,0 +1,65 @@ +--- +title: "elaborate on the \"CART\"-style memory model?" +type: archive +source: twitter +source_url: "https://x.com/VPCOMPRESSB/status/1951359238787186957" +author: "/i:'mɪər/" +handle: VPCOMPRESSB +post_id: "1951359238787186957" +date: 2025-08-01 +archived: 2026-08-25 +draft: false +tags: + - archive + - twitter + - NOTimothyLottes +description: "elaborate on the \"CART\"-style memory model?" +in_reply_to: "" +parent_post_id: "1951346857017250014" +--- + +## Source + +- URL: https://x.com/VPCOMPRESSB/status/1951359238787186957 +- Author: /i:'mɪər/ (@VPCOMPRESSB) +- Posted: 2025-08-01 19:07:51 + +## Branch + +**1/** + +elaborate on the "CART"-style memory model? + +i assume you initialize with the default start-up state that's maybe loaded from disk into a static buffer (the "CART"). you read from the CART, then perform transformations in a separate region of [dynamic] memory (the pool), and periodically copy data from the pool back into the CART (the snapshots)? + +saving the game would then just be copying a region to disk contiguously—zero fragmentation. which means you can stream-in data linearly, provided that the layout of the CART maps to the ordering of the transformation stages. you can also compress the data in the CART quiet well i imagine. you can implement this as a double buffering system? the CART used strictly for rendering, and the pool strictly for transformations? + +**2/** + +@VPCOMPRESSB There is a Vulkan extension on PC that enables one to take a mapped file (aka the page cache) and access it from the GPU directly. + +**3/** + +@NOTimothyLottes @VPCOMPRESSB @VPCOMPRESSB I believe the benefit here is that it avoids an extra copy. + +https://registry.khronos.org/vulkan/specs/latest/man/html/VK_EXT_external_memory_host.html + +**4/** + +@AgileJebrim @NOTimothyLottes that API seems very opaque. how can a person tell/preset the size and behavior of the page cache? would i just need to manage it similar to managing the CPU's cache? + +**5/** + +@VPCOMPRESSB @NOTimothyLottes There’s a win32 version too but yeah I would just generally assume that pages are 4096 bytes unless I have reason to believe otherwise. Apparently the intent that Timothy had is to use CreateFileMappingA() as well. + +**6/** + +@AgileJebrim @VPCOMPRESSB In an ideal world the OS would allow pinning the file's pages. Since there is no guarantee, I can walk (read) the first cache line of the 4 kb pages periodically to try to force pinned behavior. + +**7/** + +@NOTimothyLottes @VPCOMPRESSB VirtualLock()? + +## Related + +- Spine: [[archive/threads/NOTimothyLottes/2025-08-01-at-least-for-my-next-at-home-project-i-think-the]] diff --git a/archive/threads/NOTimothyLottes/2025-08-01-at-least-for-my-next-at-home-project-i-think-the/index.md b/archive/threads/NOTimothyLottes/2025-08-01-at-least-for-my-next-at-home-project-i-think-the/index.md index 94ef72c..001ed2a 100644 --- a/archive/threads/NOTimothyLottes/2025-08-01-at-least-for-my-next-at-home-project-i-think-the/index.md +++ b/archive/threads/NOTimothyLottes/2025-08-01-at-least-for-my-next-at-home-project-i-think-the/index.md @@ -35,6 +35,8 @@ Branches: [[archive/threads/NOTimothyLottes/2025-08-01-at-least-for-my-next-at-h It won't require RT, but it also won't run on Intel iGPUs [to low binding limits, etc]. Memory model will be 'CART' style where you get the a RAM CART [buffer] in memory which gets state snapshot, followed by dynamic GPU memory which is not snapshotted +Branches: [[archive/threads/NOTimothyLottes/2025-08-01-at-least-for-my-next-at-home-project-i-think-the/2025-08-01-VPCOMPRESSB-elaborate-on-the-cart-style-memory-model-i-assume]] + **3/** Also run-from GPU-side editing tools for shader source and bind everything tables. And build-the-editors-in-it style. Which load/store to the CART. So it won't be for people who want TBs of giant team gen content, but rather sized for what a single person could pull off diff --git a/archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/2025-11-17-bgolus-many-are-still-on-opengles-and-webgl-which-dont.md b/archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/2025-11-17-bgolus-many-are-still-on-opengles-and-webgl-which-dont.md index 024a0ec..fab06a3 100644 --- a/archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/2025-11-17-bgolus-many-are-still-on-opengles-and-webgl-which-dont.md +++ b/archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/2025-11-17-bgolus-many-are-still-on-opengles-and-webgl-which-dont.md @@ -7,7 +7,7 @@ author: "Ben Golus⚠️⭕" handle: bgolus post_id: "1990285316054503566" date: 2025-11-17 -archived: 2026-08-23 +archived: 2026-08-25 draft: true tags: - archive diff --git a/archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/2025-11-17-terekhov_de-ive-never-had-real-depth-precision-issues-in-our.md b/archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/2025-11-17-terekhov_de-ive-never-had-real-depth-precision-issues-in-our.md index 3796977..bf8f32d 100644 --- a/archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/2025-11-17-terekhov_de-ive-never-had-real-depth-precision-issues-in-our.md +++ b/archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/2025-11-17-terekhov_de-ive-never-had-real-depth-precision-issues-in-our.md @@ -7,7 +7,7 @@ author: "Dmitrii Terekhov" handle: terekhov_de post_id: "1990284522508927371" date: 2025-11-17 -archived: 2026-08-23 +archived: 2026-08-25 draft: true tags: - archive diff --git a/archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/2025-11-18-Alecazam123-infinite-far-doesnt-apply-to-ortho-and-many-of.md b/archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/2025-11-18-Alecazam123-infinite-far-doesnt-apply-to-ortho-and-many-of.md index 9c349d9..6cd8b52 100644 --- a/archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/2025-11-18-Alecazam123-infinite-far-doesnt-apply-to-ortho-and-many-of.md +++ b/archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/2025-11-18-Alecazam123-infinite-far-doesnt-apply-to-ortho-and-many-of.md @@ -7,7 +7,7 @@ author: "Alec Miller" handle: Alecazam123 post_id: "1990818990059671922" date: 2025-11-18 -archived: 2026-08-23 +archived: 2026-08-25 draft: true tags: - archive diff --git a/archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/2025-11-19-stainless_code-i-havent-really-done-graphics-in-a-while-but-ive.md b/archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/2025-11-19-stainless_code-i-havent-really-done-graphics-in-a-while-but-ive.md index 0bc818f..49cc0d4 100644 --- a/archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/2025-11-19-stainless_code-i-havent-really-done-graphics-in-a-while-but-ive.md +++ b/archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/2025-11-19-stainless_code-i-havent-really-done-graphics-in-a-while-but-ive.md @@ -7,7 +7,7 @@ author: "Yuriy Stets" handle: stainless_code post_id: "1991219165978370275" date: 2025-11-19 -archived: 2026-08-23 +archived: 2026-08-25 draft: true tags: - archive diff --git a/archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/index.md b/archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/index.md index 089d626..92eba1e 100644 --- a/archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/index.md +++ b/archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/index.md @@ -7,7 +7,7 @@ author: "NOTimothyLottes" handle: NOTimothyLottes post_id: "1990260050485797063" date: 2025-11-17 -archived: 2026-08-23 +archived: 2026-08-25 draft: false tags: - archive @@ -30,4 +30,19 @@ in_reply_to: "" I wish everyone would just adopt "reversed with infinite far" projection matrixes so I could only optimize for the fastest and highest precision option, but I'm guessing people haven't all migrated over :( ![](https://pbs.twimg.com/media/G57SXPJW8AAvEhh?format=png&name=orig) -Branches: [[archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/2025-11-17-AgileJebrim-reversed-is-a-significant-improvement-but-it]], [[archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/2025-11-17-terekhov_de-ive-never-had-real-depth-precision-issues-in-our]], [[archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/2025-11-17-bgolus-many-are-still-on-opengles-and-webgl-which-dont]], [[archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/2025-11-18-Alecazam123-infinite-far-doesnt-apply-to-ortho-and-many-of]], [[archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/2025-11-19-stainless_code-i-havent-really-done-graphics-in-a-while-but-ive]] + +Branches: [[archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/2025-11-17-terekhov_de-ive-never-had-real-depth-precision-issues-in-our]], [[archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/2025-11-17-bgolus-many-are-still-on-opengles-and-webgl-which-dont]], [[archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/2025-11-18-Alecazam123-infinite-far-doesnt-apply-to-ortho-and-many-of]], [[archive/threads/NOTimothyLottes/2025-11-17-i-wish-everyone-would-just-adopt-reversed-with/2025-11-19-stainless_code-i-havent-really-done-graphics-in-a-while-but-ive]] + +**2/** + +Reversed is a significant improvement but it still has its limitations when doing planetary-scale rendering that needs good precision up both close and far away. Your options there are either a logarithmic depth buffer to linearize things (albeit losing early z), your own integer-based depth test system in compute shaders, or a stack of multiple frustums layered on top of one another. + +**3/** + +@AgileJebrim Yes for my non-tri stuff I'm log depth already. This is just for games, not simulation. + +**4/** + +Simulation can usually localize enough that reverse Z is good enough. Google Earth style geospatial visualization is where things get trickier. + +Another option is to dynamically change the far plane, moving it closer as you get closer to the terrain and further back as you move further back. I don’t think I tried this one but I imagine it requires a lot of tuning.