<feed xmlns='http://www.w3.org/2005/Atom'>
<title>eglantine-cirakg/src/common/scratch_buffer.h, branch nx2</title>
<subtitle>Mirror of github.com/cira0100/Eglantine-public nx2, a fork of Djihads80/Eglantine.</subtitle>
<id>https://git.cirakg.xyz/eglantine-cirakg/atom?h=nx2</id>
<link rel='self' href='https://git.cirakg.xyz/eglantine-cirakg/atom?h=nx2'/>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/'/>
<updated>2026-10-30T16:27:04+00:00</updated>
<entry>
<title>texture_cache: re-decode only the written layers of large ASTC arrays</title>
<updated>2026-10-30T16:27:04+00:00</updated>
<author>
<name>Takoroka</name>
<email>137927095+Takoroka@users.noreply.github.com</email>
</author>
<published>2026-10-30T08:39:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=97ce27ab35153884d2fd05c278433928e429cd91'/>
<id>urn:sha1:97ce27ab35153884d2fd05c278433928e429cd91</id>
<content type='text'>
Any write into an image marked all of it CPU-modified, so each terrain
tile Mario Kart World streams into its 8192x8192x68 ASTC arrays re-read
and re-decoded the whole 1.45 GB array: a 2 GiB staging buffer and a
full GPU wait each time, 15-16 GB of uploads per 600 frames.

Large layered images on the accelerated ASTC path (64 MiB and up) now
record the layers written since their last upload and stay tracked; a
refresh reads and decodes only those layers, one dispatch per layer and
level into a single-layer storage view. The texture cache's 600-frame
report counts uploads from guest memory, their size and how many went by
layer. Upload scratch buffers grown past 64 MiB for one huge image (341
MiB for the terrain layer pools) are freed at the next frame instead of
kept for the session.

Mario Kart World, 180 s: after loading, uploads drop from 15-16 GB to
0.2-0.5 GB per 600 frames, the largest from 1453 MiB to 2-15 MiB.
</content>
</entry>
<entry>
<title>[common] Use `std::make_unique_for_overwrite&lt;T&gt;` in ScratchBuffer, remove polyfill (#4432)</title>
<updated>2026-09-25T05:54:49+00:00</updated>
<author>
<name>lizzie</name>
<email>lizzie@eden-emu.dev</email>
</author>
<published>2026-09-25T05:54:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=bebc19da3253f13ceb5abfe8560cdbdc32ea7d8a'/>
<id>urn:sha1:bebc19da3253f13ceb5abfe8560cdbdc32ea7d8a</id>
<content type='text'>
Original `make_unique_for_overwrite.h` is well defined acc. to standard https://en.cppreference.com/cpp/memory/unique_ptr/make_unique, but by now most libc++ supports the function, so no need for polyfill.

Test that this didn't break anything (for example, Megaman game that has video at the start), or anything using VIC/IPC.

Signed-off-by: lizzie &lt;lizzie@eden-emu.dev&gt;

- [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions).
- [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md)
- [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability.

-------------------

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4432
Reviewed-by: MaranBr &lt;maranbr@eden-emu.dev&gt;
Reviewed-by: CamilleLaVey &lt;camillelavey99@gmail.com&gt;
</content>
</entry>
<entry>
<title>[cmake] Fix some macOS compilation errors (#4350)</title>
<updated>2026-09-05T21:43:46+00:00</updated>
<author>
<name>lizzie</name>
<email>lizzie@eden-emu.dev</email>
</author>
<published>2026-09-05T21:43:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=11de2645411ba83e6fcf47bf30ae48a7ee6ae090'/>
<id>urn:sha1:11de2645411ba83e6fcf47bf30ae48a7ee6ae090</id>
<content type='text'>
Don't compile GLSL/GLASM backends without OpenGL enabled. These codepaths are unused on non-OpenGL platforms.

Fixes other miscellaneous errors that pop up on Clang 23 as well.

Signed-off-by: Lizzie lizzie@eden-emu.dev
Signed-off-by: crueter crueter@eden-emu.dev

- [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions).
- [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md)
- [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability.

-------------------

Co-authored-by: crueter &lt;crueter@eden-emu.dev&gt;
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4350
Reviewed-by: crueter &lt;crueter@eden-emu.dev&gt;
Reviewed-by: CamilleLaVey &lt;camillelavey99@gmail.com&gt;
</content>
</entry>
<entry>
<title>Fix ScratchBuffer moves</title>
<updated>2023-07-04T15:02:58+00:00</updated>
<author>
<name>Kelebek1</name>
<email>eeeedddccc@hotmail.co.uk</email>
</author>
<published>2023-07-04T15:02:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=ba4569eab72faf4fd145fd13c71ae3de0c14bb03'/>
<id>urn:sha1:ba4569eab72faf4fd145fd13c71ae3de0c14bb03</id>
<content type='text'>
</content>
</entry>
<entry>
<title>scratch_buffer: Add member types to ScratchBuffer</title>
<updated>2023-06-30T17:33:13+00:00</updated>
<author>
<name>Morph</name>
<email>39850852+Morph1984@users.noreply.github.com</email>
</author>
<published>2023-06-24T23:58:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=8d75397bd9d89c4f2759e67fe41fa62efcb6a00c'/>
<id>urn:sha1:8d75397bd9d89c4f2759e67fe41fa62efcb6a00c</id>
<content type='text'>
Allows for implicit conversion to std::span&lt;T&gt;.
</content>
</entry>
<entry>
<title>Remove memory allocations in some hot paths</title>
<updated>2023-06-22T07:05:10+00:00</updated>
<author>
<name>Kelebek1</name>
<email>eeeedddccc@hotmail.co.uk</email>
</author>
<published>2023-05-23T13:45:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=c7430e51e38356742de52817a1ee82dcd0c97b76'/>
<id>urn:sha1:c7430e51e38356742de52817a1ee82dcd0c97b76</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Allow Fermi blit accelerate to add src/dst to the cache if they don't exist already. Use ScratchBuffers in the software blit path.</title>
<updated>2023-05-11T05:42:38+00:00</updated>
<author>
<name>Kelebek1</name>
<email>eeeedddccc@hotmail.co.uk</email>
</author>
<published>2023-05-01T17:46:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=fc6c77f7ae5be9e1ee5769dc7a6e15d4d1cc9fb0'/>
<id>urn:sha1:fc6c77f7ae5be9e1ee5769dc7a6e15d4d1cc9fb0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>texture_cache: Add async texture decoding</title>
<updated>2023-02-22T05:26:07+00:00</updated>
<author>
<name>ameerj</name>
<email>52414509+ameerj@users.noreply.github.com</email>
</author>
<published>2023-02-22T05:26:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=08c1dc95872a0fdaddad77c4a38b30307bfb7279'/>
<id>urn:sha1:08c1dc95872a0fdaddad77c4a38b30307bfb7279</id>
<content type='text'>
</content>
</entry>
<entry>
<title>scratch_buffer: Explicitly defing resize and resize_destructive functions</title>
<updated>2022-12-20T03:40:50+00:00</updated>
<author>
<name>ameerj</name>
<email>52414509+ameerj@users.noreply.github.com</email>
</author>
<published>2022-12-20T03:40:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=4d5adfb3c99944b2d4fbbf50c4cbfd301c0c8690'/>
<id>urn:sha1:4d5adfb3c99944b2d4fbbf50c4cbfd301c0c8690</id>
<content type='text'>
resize keeps previous data intact when the buffer grows
resize_destructive destroys the previous data when the buffer grows
</content>
</entry>
<entry>
<title>tests: Add ScratchBuffer tests</title>
<updated>2022-12-19T23:08:04+00:00</updated>
<author>
<name>ameerj</name>
<email>52414509+ameerj@users.noreply.github.com</email>
</author>
<published>2022-12-19T17:30:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=37ac7d784130f70dd3bd4087b5345cfb8104bbac'/>
<id>urn:sha1:37ac7d784130f70dd3bd4087b5345cfb8104bbac</id>
<content type='text'>
</content>
</entry>
</feed>
