<feed xmlns='http://www.w3.org/2005/Atom'>
<title>eglantine-cirakg/src/common/range_sets.inc, 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-30T00:49:47+00:00</updated>
<entry>
<title>common: pass-through hash for integer and pointer keys; RangeSet::Intersects</title>
<updated>2026-10-30T00:49:47+00:00</updated>
<author>
<name>Takoroka</name>
<email>137927095+Takoroka@users.noreply.github.com</email>
</author>
<published>2026-10-29T11:05:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=6b7185676d59976bf02f6666368032067ff344bc'/>
<id>urn:sha1:6b7185676d59976bf02f6666368032067ff344bc</id>
<content type='text'>
Common::unordered_map/set defaulted to std::hash, a byte-wise FNV-1a on MSVC for
integers and pointers, which boost's flat containers then mix again: the GPU thread's
page maps (shader and query cache invalidation, per inline upload) spent ~1% in it.
Integer and pointer keys now go through as they are and boost mixes them.
BufferCache::IsRegionGpuModified visited every GPU-written range inside the query just
to answer yes or no; without per-fence downloads those ranges stay fragmented and it was
~4% of title 1's GPU thread (inline uploads). RangeSet::Intersects answers with one
lookup. Inline uploads: 10.5% -&gt; 7.5% of the GPU thread.
</content>
</entry>
<entry>
<title>video_core: skip empty fences; one lock per cache per fence; single-pass overlap subtract</title>
<updated>2026-10-30T00:49:47+00:00</updated>
<author>
<name>Takoroka</name>
<email>137927095+Takoroka@users.noreply.github.com</email>
</author>
<published>2026-10-29T08:40:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=1c2ed2a072ba24a3d21a25dfa6cfcce1bf1ae905'/>
<id>urn:sha1:1c2ed2a072ba24a3d21a25dfa6cfcce1bf1ae905</id>
<content type='text'>
Switch 2 titles signal a fence for each compute dispatch's release (5,000-7,000 a
second in title 1). With fast GPU fences the callback runs at once, so a fence with
no downloads, queries or queued operations does nothing: those (~20%) are no longer
made (one in 64 still is, for the operations fences carry). Each cache's lock is now
taken once per fence (the flush check took both together first). The overlap range
set's Subtract restarted its search after every erase (quadratic); the fencing thread
runs it for every downloaded range while holding the buffer cache. The GPU profiler
counts fences, skipped fences and buffer download bytes.
</content>
</entry>
<entry>
<title>[cmake] enable clang-cl and WoA builds (#348)</title>
<updated>2025-09-09T18:47:49+00:00</updated>
<author>
<name>lizzie</name>
<email>lizzie@eden-emu.dev</email>
</author>
<published>2025-09-09T18:47:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=9d2681ecc9565681db623fb71799e76381998512'/>
<id>urn:sha1:9d2681ecc9565681db623fb71799e76381998512</id>
<content type='text'>
Compilation and CMake fixes for both Windows on ARM and clang-cl, meaning Windows can now be built on both MSVC and clang on both amd64 and aarch64.

Compiling on clang is *dramatically* faster so this should be useful for CI.

Co-authored-by: crueter &lt;crueter@eden-emu.dev&gt;
Co-authored-by: crueter &lt;crueter@crueter.xyz&gt;
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/348
Reviewed-by: CamilleLaVey &lt;camillelavey99@gmail.com&gt;
Reviewed-by: crueter &lt;crueter@eden-emu.dev&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>Common: Rename SplitRangeSet to OverlapRangeSet</title>
<updated>2024-02-05T22:01:17+00:00</updated>
<author>
<name>Fernando Sahmkow</name>
<email>fsahmkow27@gmail.com</email>
</author>
<published>2024-02-05T11:46:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=758d8954081fe4775def72725fa9482b54e0858b'/>
<id>urn:sha1:758d8954081fe4775def72725fa9482b54e0858b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Buffer Cache: Refactor to use Range sets instead</title>
<updated>2024-02-05T10:06:52+00:00</updated>
<author>
<name>Fernando Sahmkow</name>
<email>fsahmkow27@gmail.com</email>
</author>
<published>2024-02-04T18:16:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=80d505b5cf7b8253cb84e6052cb1ed31775840b8'/>
<id>urn:sha1:80d505b5cf7b8253cb84e6052cb1ed31775840b8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Common: Introduce Range Sets</title>
<updated>2024-02-04T19:01:50+00:00</updated>
<author>
<name>Fernando Sahmkow</name>
<email>fsahmkow27@gmail.com</email>
</author>
<published>2024-02-04T13:44:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=75f5d982a02103c84b07a4bdbd6cc46eaa652613'/>
<id>urn:sha1:75f5d982a02103c84b07a4bdbd6cc46eaa652613</id>
<content type='text'>
</content>
</entry>
</feed>
