<feed xmlns='http://www.w3.org/2005/Atom'>
<title>eglantine-cirakg/src/qt_common/config/shared_translation.cpp, 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-03T17:33:16+00:00</updated>
<entry>
<title>yuzu: show NVIDIA's DLSS files in the Graphics tab and fetch them from NVIDIA</title>
<updated>2026-11-03T17:33:16+00:00</updated>
<author>
<name>Duck912</name>
<email>350528965+Duck912@users.noreply.github.com</email>
</author>
<published>2026-11-03T17:13:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=98cc44dadd7ab4b63cf0685360ac50738e8e5c3e'/>
<id>urn:sha1:98cc44dadd7ab4b63cf0685360ac50738e8e5c3e</id>
<content type='text'>
Under the NVIDIA DLSS checkbox, a panel says whether the Streamline loader and DLSS were found and
which versions, with "Open Folder" and a link to NVIDIA's Streamline releases. When files are
missing, "Download from NVIDIA" takes only those files out of NVIDIA's Streamline 2.14.16 release
zip on GitHub with HTTP range requests (about 1 MB for the loader, 32 MB with DLSS, of the 276 MB
zip), after showing the Streamline and DLSS licence texts from the release for acceptance. Each
file's CRC and signature are checked before it is saved to the user folder's "streamline" folder.

Assisted-by: Claude Opus 5.5 (implementation)
Signed-off-by: Duck912 &lt;350528965+Duck912@users.noreply.github.com&gt;
</content>
</entry>
<entry>
<title>video_core: NVIDIA DLSS through NVIDIA Streamline in place of a game's DLSS</title>
<updated>2026-11-03T17:33:16+00:00</updated>
<author>
<name>Duck912</name>
<email>350528965+Duck912@users.noreply.github.com</email>
</author>
<published>2026-11-03T17:13:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=63e87a22c60394bc4f427ee5f8d6ddbce7b0ac7f'/>
<id>urn:sha1:63e87a22c60394bc4f427ee5f8d6ddbce7b0ac7f</id>
<content type='text'>
Adds a Graphics setting, "Use NVIDIA DLSS in place of a game's DLSS" (nvidia_dlss, off by
default). When it is on, in Windows builds configured with EGLANTINE_STREAMLINE_SDK, the
evaluation Eglantine already replaces with FSR 3.1 goes to NVIDIA DLSS on GeForce RTX cards, with
the same inputs (colour, depth, motion vectors, jitter). When DLSS can't run, FSR 3.1 runs as
before.

Only Streamline's MIT-licensed headers are compiled in; nothing of NVIDIA's is linked or shipped.
At run time Eglantine looks for sl.interposer.dll in the user folder's "streamline" folder (or
EDEN_STREAMLINE_DIR, or "streamline" next to the executable), checks its Streamline signature and
starts Streamline with manual hooking. Streamline's plugins come from that folder or the NVIDIA
app's downloads. DLSS itself is nvngx_dlss.dll in the same folder, else the newest DLSS 310 or
later that the NVIDIA app has downloaded, checked for NVIDIA's Authenticode signature and copied
as streamline/nvidia-app/nvngx_dlss.dll. Like other tools that call DLSS outside a game, it uses
its own fixed project id with the custom engine type.

- Preset K for all modes (EDEN_NX2_DLSS_PRESET overrides it): the default Performance model (M)
  and L draw thin dark horizontal lines in some frames at 2x resolution scale; K doesn't.
- HDR input with auto exposure; the mode follows the render/output ratio.
- Buffer device address stays enabled when DLSS needs it, for DLSS only.
- The upscaler waits for the device instead of submitting when it is destroyed: by then the
  game's channels are released, and a submit read the state tracker's stale flags (a crash when
  stopping a game).

With the setting off, or in builds without the SDK path (the setting is hidden there), nothing
changes.

Testing: Windows 11, RTX 5080, Fire Emblem: Fortune's Weave docked at 1x (720p -&gt; 1440p) and 2x
(1440p -&gt; 2880p), CLI runs and GUI play, stopping and restarting games with DLSS on. Not tested on
other GPUs or games.

Assisted-by: Claude Opus 5.5 (implementation, debugging)
Signed-off-by: Duck912 &lt;350528965+Duck912@users.noreply.github.com&gt;
</content>
</entry>
<entry>
<title>video_core: replace Fortune's Weave's DLSS with AMD FSR 3.1</title>
<updated>2026-11-02T21:28:01+00:00</updated>
<author>
<name>Duck912</name>
<email>350528965+Duck912@users.noreply.github.com</email>
</author>
<published>2026-11-02T21:12:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=11cebf56014a5015db28179a8acc81cad0caf641'/>
<id>urn:sha1:11cebf56014a5015db28179a8acc81cad0caf641</id>
<content type='text'>
Fire Emblem: Fortune's Weave's DLSS network can't run here, and the
temporal stand-in is only an approximation of it. FSR 3.1 takes the
same inputs DLSS does: the jittered colour, motion vectors, the jitter
and the depth, which the game's first DLSS pass reads through
cbuf0+0x298 (Z32, reversed, the colour's size). Kepler compute keeps it
next to the motion vectors.

Fsr3Upscaler ports the host side of the SDK's ffx_fsr3upscaler.cpp: the
eight passes (prepare inputs, luma and shading-change pyramids, shading
change, reactivity, luma instability, accumulate, RCAS), the internal
images and the constants, recorded through the scheduler with the
shaders from externals/FidelityFX-SDK. It takes HDR colour, render-size
motion vectors and reversed depth, computes its own exposure, and uses
the no-wave SPD variants on devices without compute quad operations.
The SDK's GLSL uses separate textures and samplers, so DescriptorBankInfo
gains sampled image and sampler counts (default 0). FSR's RCAS follows
the RCAS Sharpness slider. The result goes to FSR's own RGBA16F image
and is drawn into the game's output, which keeps its format.

TextureCacheRuntime::TemporalUpscale runs FSR 3.1 first. Without the
depth, at mismatched scales, on a device lacking FSR's formats or
features, or if its pipelines fail to build, the stand-in runs instead,
and the bilinear blit stays last. EDEN_NX2_DLSS_REPLACEMENT=standin
forces the stand-in. A gap of more than 250 ms between evaluations
restarts the history.

The BlitColor overload that takes a raw image view transitions its
source to SHADER_READ_ONLY_OPTIMAL but described it as GENERAL in the
descriptor (a validation error); it now describes the layout it uses.

Assisted-by: Claude Opus 5.5 (debugging, implementation and drafting)
Signed-off-by: Duck912 &lt;350528965+Duck912@users.noreply.github.com&gt;
</content>
</entry>
<entry>
<title>video_core: sharpen the temporal DLSS stand-in</title>
<updated>2026-11-02T21:28:01+00:00</updated>
<author>
<name>Duck912</name>
<email>350528965+Duck912@users.noreply.github.com</email>
</author>
<published>2026-11-02T21:07:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=960ebcc73d998c7c596c3377b0ec8a1d6eefccf1'/>
<id>urn:sha1:960ebcc73d998c7c596c3377b0ec8a1d6eefccf1</id>
<content type='text'>
Fire Emblem: Fortune's Weave's DLSS input matches Eden's (same 720p
image, same detail), but the stand-in's 1440p output was blurrier than a
plain bilinear 2x of it (Laplacian 0.0066 vs 0.0081; Eden's real DLSS
0.0111), and the image drifted darker over time:

- the sample kernel was about twice too wide for the output resolution;
- the history was kept in the output's B10G11R11 format, whose 5-6 bit
  mantissas round away a frame's 0.03-0.1 share;
- the 1-sigma neighbourhood clip removed detail that only some jitter
  positions sample (railings, thin edges).

The history is now an RGBA16F pair the shader writes as a storage image,
with no per-frame copy. Still pixels use a third of the kernel width and
a 1.5-sigma clip, so detail from many jitter positions accumulates.
Moving pixels keep the old kernel and 1-sigma clip, and so do pixels
that moved recently or whose history falls far outside the
neighbourhood (content that changes without motion vectors), remembered
in the history's alpha. Static output goes from 0.0066 to 0.0102 with
no brightness drift and no new ghosting.

With resolution scaling the stand-in used to fall back to a bilinear
blit. The images are now scaled up as BlitImage does, the jitter is
scaled to host pixels and the history follows the framebuffer's render
area.

RCAS (temporal_sharpen.frag) sharpens a copy of each result, never the
history, in range-compressed space since the output is HDR. Its strength
is the sharpness slider, relabelled "RCAS Sharpness" (0% turns it off).
EDEN_NX2_TEMPORAL_KERNEL, _CLIP, _KERNEL_MOTION, _CLIP_MOTION and
_WEIGHT tune the filter (all four filter values at 1 give the old one),
and EDEN_NX2_TEMPORAL_SHARPEN=&lt;stops&gt;|off overrides the slider.

Assisted-by: Claude Opus 5.5 (debugging, implementation and drafting)
Signed-off-by: Duck912 &lt;350528965+Duck912@users.noreply.github.com&gt;
</content>
</entry>
<entry>
<title>qt_common: name the FSR filter and frame generation entries by what they do</title>
<updated>2026-11-02T21:28:01+00:00</updated>
<author>
<name>Duck912</name>
<email>350528965+Duck912@users.noreply.github.com</email>
</author>
<published>2026-11-02T21:06:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=bb8fdfac21434db0bfd62c56b0a409ce26070a38'/>
<id>urn:sha1:bb8fdfac21434db0bfd62c56b0a409ce26070a38</id>
<content type='text'>
The window filter "AMD FidelityFX Super Resolution 3" (present/fsr3.cpp)
runs FSR 1's EASU and RCAS with RCAS at 0.8x the slider and no temporal
blending, and the frame generation type "FSR 3"
(present/fsr3_frame_gen.cpp) is Eglantine's own optical-flow
interpolation, not AMD's. Both names suggested AMD's FSR 3 upscaler.
Label them "AMD FidelityFX Super Resolution 1, softer sharpening" (FSR 1
Soft) and "Optical Flow Interpolation (built-in)" (Optical Flow), and
the plain FSR filter "AMD FidelityFX Super Resolution 1 (FSR 1)". Only
the display text changes; setting ids and enum values stay, so configs
carry over.

Assisted-by: Claude Opus 5.5 (investigation and drafting)
Signed-off-by: Duck912 &lt;350528965+Duck912@users.noreply.github.com&gt;
</content>
</entry>
<entry>
<title>Added FSR 3 Upscaling and Frame Generation</title>
<updated>2026-10-30T18:37:31+00:00</updated>
<author>
<name>Djihads80</name>
<email>mahboubijoujou111@gmail.com</email>
</author>
<published>2026-10-30T18:34:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=8a72dc011e0a30a6bddd1f2476a94927787e6e15'/>
<id>urn:sha1:8a72dc011e0a30a6bddd1f2476a94927787e6e15</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[video_core, settings] readback for nce invalidations (#4490) optimization and nuke toggles (#4502) (#4531)</title>
<updated>2026-10-26T16:24:28+00:00</updated>
<author>
<name>xbzk</name>
<email>xbzk@eden-emu.dev</email>
</author>
<published>2026-10-26T16:24:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=0e11fe8b5e3d3b563946726ed06cb44b2bf5ccb3'/>
<id>urn:sha1:0e11fe8b5e3d3b563946726ed06cb44b2bf5ccb3</id>
<content type='text'>
- [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.

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

Follow up for #4490: Originally i was racing locks between dirty and clean invalidations, but +94% were clean so it was causing useless locks. Solutioin was to share locks between both.

P.S.: THIS IS INTENDED TO FIX RANDOM CRASHES IN UE, OBJECTIVELY REPRODUCIBLE IN ENDER MAGNOLIA IN ANDROID.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4531
Reviewed-by: CamilleLaVey &lt;camillelavey99@gmail.com&gt;
Reviewed-by: Shinmegumi &lt;shinmegumi@eden-emu.dev&gt;
</content>
</entry>
<entry>
<title>[patcher, ro, settings] runtime tls patch (#4492) optimization and nuke toggle (#4502) (#4523)</title>
<updated>2026-10-15T10:13:17+00:00</updated>
<author>
<name>xbzk</name>
<email>xbzk@eden-emu.dev</email>
</author>
<published>2026-10-15T10:13:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=aaa0bcb9bf5694d62538c361b210147294a5ce3d'/>
<id>urn:sha1:aaa0bcb9bf5694d62538c361b210147294a5ce3d</id>
<content type='text'>
- [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.

-------------------
This is a follow up for the biomutant fix. By the time i knew it was shallow, coz i was running patchtext routine even for svc and modules, causing a routine which were needed to run 14 times to run 4000+ instead.
Since some perf loss was reported in 30 sep nightly, and it caused ac3r to not boot, we had added a temp toggle, which is now being removed as optimizations + fix are in.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4523
Reviewed-by: lizzie &lt;lizzie@eden-emu.dev&gt;
Reviewed-by: MaranBr &lt;maranbr@eden-emu.dev&gt;
</content>
</entry>
<entry>
<title>[video_core] Skip fragment shaders with known issues on non-NVIDIA drivers (#4503)</title>
<updated>2026-10-08T21:11:34+00:00</updated>
<author>
<name>MaranBr</name>
<email>maranbr@outlook.com</email>
</author>
<published>2026-10-08T21:11:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=67bada77f8a43a90da2e94e89b8e7da73c256989'/>
<id>urn:sha1:67bada77f8a43a90da2e94e89b8e7da73c256989</id>
<content type='text'>
- [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.

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

Skip fragment shaders using a pattern that is not supported by non-NVIDIA drivers.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4503
Reviewed-by: CamilleLaVey &lt;camillelavey99@gmail.com&gt;
</content>
</entry>
<entry>
<title>[settings] add PR4490 &amp; PR4492 toggles (#4502)</title>
<updated>2026-10-05T20:37:30+00:00</updated>
<author>
<name>xbzk</name>
<email>xbzk@eden-emu.dev</email>
</author>
<published>2026-10-05T20:37:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=10bcd2d849843b146a79c61a21df615e1bdcfcde'/>
<id>urn:sha1:10bcd2d849843b146a79c61a21df615e1bdcfcde</id>
<content type='text'>
- [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.

-------------------
TEMPORARY! Pushed under Camille's instruction. Will be dropped as soon as they get optimized.
Aimed to avoid reported perf impact from PRs 4490 and 4492 on 30-sep-2026 nightly,

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4502
Reviewed-by: MaranBr &lt;maranbr@eden-emu.dev&gt;
Reviewed-by: CamilleLaVey &lt;camillelavey99@gmail.com&gt;
</content>
</entry>
</feed>
