<feed xmlns='http://www.w3.org/2005/Atom'>
<title>eglantine-cirakg/src/video_core/gpu_thread.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-11-02T19:53:47+00:00</updated>
<entry>
<title>nx2: map GPU memory before later command lists are read</title>
<updated>2026-11-02T19:53:47+00:00</updated>
<author>
<name>Sssnowyyy</name>
<email>78863999+Sssnowyyy@users.noreply.github.com</email>
</author>
<published>2026-11-02T18:18:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=9f4f01f76e8556941c0c0c3f57edc1d600ed23ea'/>
<id>urn:sha1:9f4f01f76e8556941c0c0c3f57edc1d600ed23ea</id>
<content type='text'>
837133792d queues the GMMU maps on the GPU thread (GPU::RunInOrder) so the
service thread never waits for the texture cache. With the GPU split
(Low GPU accuracy) the GPU thread defers queued functions to its back, but
its front reads the command lists: it read the lists submitted after a map
through GPU addresses that weren't mapped yet. Pokopia stopped after its
first frame.

Add GPU::MapInOrder for the GMMU maps and the sparse tile remaps. It runs
in order like RunInOrder, and with the split it runs on the front after
draining the back, before the front reads further command lists. The
service thread still never takes the texture cache lock, and the back is
idle while the map changes the caches. Unmaps and the other queued work
still run on the back.

Assisted-by: Claude Opus 5.5 (bisect, fix, testing and commit message)
</content>
</entry>
<entry>
<title>nx2: unmap GPU memory in submission order</title>
<updated>2026-10-28T11:47:45+00:00</updated>
<author>
<name>Takoroka</name>
<email>137927095+Takoroka@users.noreply.github.com</email>
</author>
<published>2026-10-28T11:47:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=598bb7750c71ea1378724ddfe9418f27330fa279'/>
<id>urn:sha1:598bb7750c71ea1378724ddfe9418f27330fa279</id>
<content type='text'>
NormalUnmapGpuMemory4K and destroying GPU memory are jobs the console's
graphics server completes behind the work already submitted. Run the GMMU
unmaps on the GPU thread after the command lists queued before them
(GPU::RunInOrder) and signal the job's event only then, instead of unmapping
and signalling at once while Eden's GPU thread may still be behind.

Also EDEN_NX2_FRAMES_AHEAD (experimental): wait for the previous frame's
fence at present instead of this one's.
</content>
</entry>
<entry>
<title>[gpu] Fix infinite hangup/freezes at shutdown/reset (#4395)</title>
<updated>2026-09-11T13:29:52+00:00</updated>
<author>
<name>lizzie</name>
<email>lizzie@eden-emu.dev</email>
</author>
<published>2026-09-11T13:29:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=c95ad020fb529d47f9c3106a53553bec955c1586'/>
<id>urn:sha1:c95ad020fb529d47f9c3106a53553bec955c1586</id>
<content type='text'>
Thread may be destroyed at dtor(), but it hasn't fully shut down, so before notify shutdown, request immediate stop (effective immediately).

Like the issue was that the thread didn't want to stop running, thus it would hang, it would also reference objects which were being destroyed without waiting for them to actually be destroyed
So it would reference invalid data
This PR tells the thread: "hey, STOP now, and DESTROY yourself"
So all of that should be avoided

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/4395
Reviewed-by: Maufeat &lt;sahyno1996@gmail.com&gt;
Reviewed-by: MaranBr &lt;maranbr@eden-emu.dev&gt;
</content>
</entry>
<entry>
<title>[video_core, hle] remove redundant parent references in system structs (#3908)</title>
<updated>2026-06-23T04:31:25+00:00</updated>
<author>
<name>lizzie</name>
<email>lizzie@eden-emu.dev</email>
</author>
<published>2026-06-23T04:31:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=3aa0d462598beb2021308eee1d757d74fe33b312'/>
<id>urn:sha1:3aa0d462598beb2021308eee1d757d74fe33b312</id>
<content type='text'>
reworked a bit to remove references of parent objects and instead pass as arguments to methods to prevent useless reloads

Signed-off-by: lizzie &lt;lizzie@eden-emu.dev&gt;
Co-authored-by: maufeat &lt;sahyno1996@gmail.com&gt;
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3908
Reviewed-by: Maufeat &lt;sahyno1996@gmail.com&gt;
Reviewed-by: crueter &lt;crueter@eden-emu.dev&gt;
</content>
</entry>
<entry>
<title>[texture_cache, buffer_cache] Added TLS handling + changed command queue for GPU threading. (#3579)</title>
<updated>2026-02-19T23:52:07+00:00</updated>
<author>
<name>lizzie</name>
<email>lizzie@eden-emu.dev</email>
</author>
<published>2026-02-19T23:52:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=c9c136bea7567c825be19c1dcb481a47ee6536f6'/>
<id>urn:sha1:c9c136bea7567c825be19c1dcb481a47ee6536f6</id>
<content type='text'>
(Merge of #3495 + #3108)

This PR works around to simplify math operations on hot pointers inside the access and requests to the cache of buffers and texture cache, removing previous logic of indirection and replaced by a PoD approach.

This will ensure less CPU times spended on the same request and flow directly into another chain of the render, in the same way, command queue currently uses an internal mutex that constraints the flow of data within the GPU threads, we're moving over a single command, I verified to keep using mutexes instead of internal mutex + mutex per operation, which are resolved by themselves.

In simplier words, this aims to improve performance on those games and devices where the waits for next orders on GPU commands were heavier than a single verification.

Co-Authored-by: @CamilleLaVey
Co-Authored-by: @Lizzie
Co-authored-by: CamilleLaVey &lt;camillelavey99@gmail.com&gt;
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3579
Reviewed-by: CamilleLaVey &lt;camillelavey99@gmail.com&gt;
Co-authored-by: lizzie &lt;lizzie@eden-emu.dev&gt;
Co-committed-by: lizzie &lt;lizzie@eden-emu.dev&gt;
</content>
</entry>
<entry>
<title>nvnflinger/gpu: implement layer stack composition</title>
<updated>2024-01-31T16:27:21+00:00</updated>
<author>
<name>Liam</name>
<email>byteslice@airmail.cc</email>
</author>
<published>2024-01-22T17:40:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=5ec76db3927e41f84e0628af161f1427eb8f7575'/>
<id>urn:sha1:5ec76db3927e41f84e0628af161f1427eb8f7575</id>
<content type='text'>
</content>
</entry>
<entry>
<title>SMMU: Initial adaptation to video_core.</title>
<updated>2024-01-19T02:12:30+00:00</updated>
<author>
<name>Fernando Sahmkow</name>
<email>fsahmkow27@gmail.com</email>
</author>
<published>2023-12-25T06:32:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=9db159da71875db9d9b9fbb7697fc2c2f9575cf2'/>
<id>urn:sha1:9db159da71875db9d9b9fbb7697fc2c2f9575cf2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>gpu_thread: Use bounded queue</title>
<updated>2023-03-04T01:20:56+00:00</updated>
<author>
<name>Behunin</name>
<email>l3ehunin@gmail.com</email>
</author>
<published>2023-02-11T16:28:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=43c3c6e3dce6587da9022049f0bcb5ea8047c6d3'/>
<id>urn:sha1:43c3c6e3dce6587da9022049f0bcb5ea8047c6d3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove OnCommandListEndCommand</title>
<updated>2023-02-08T00:21:17+00:00</updated>
<author>
<name>Behunin</name>
<email>l3ehunin@gmail.com</email>
</author>
<published>2023-02-08T00:21:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=09f64e648ae0ccbb0a3fea41c8505d5d48b0e1eb'/>
<id>urn:sha1:09f64e648ae0ccbb0a3fea41c8505d5d48b0e1eb</id>
<content type='text'>
Call rasterizer-&gt;ReleaseFences() directly
</content>
</entry>
<entry>
<title>general: fix compile for Apple Clang</title>
<updated>2022-11-23T03:22:28+00:00</updated>
<author>
<name>Liam</name>
<email>byteslice@airmail.cc</email>
</author>
<published>2022-11-21T16:31:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=5a712bb51a39628b3a484445e16065ebe621ed90'/>
<id>urn:sha1:5a712bb51a39628b3a484445e16065ebe621ed90</id>
<content type='text'>
</content>
</entry>
</feed>
