aboutsummaryrefslogtreecommitdiff
path: root/src/yuzu/configuration/nvidia_dlss_panel.cpp
Commit message (Collapse)AuthorAgeFilesLines
* yuzu: bound the zip directory reads in the DLSS downloadDuck9128 hours1-2/+7
| | | | | | | | | | | | | | | The central-directory parser trusted each entry's name, extra and comment lengths and the Zip64 extra field's length, so a malformed directory could make it read past the downloaded buffer. The data comes from NVIDIA's GitHub release over TLS and the saved files are signature-checked, so the risk is low. Stop with an error when an entry runs past the directory, and read Zip64 fields only inside their record. Found by CodeRabbit review. Assisted-by: Claude Opus 5.5 (implementation) Signed-off-by: Duck912 <350528965+Duck912@users.noreply.github.com>
* video_core, yuzu: write NVIDIA DLSS file paths to logs as UTF-8Duck9128 hours1-6/+8
| | | | | | | | | | | | | | | The Streamline start-up and DLSS download code formatted paths with std::filesystem::path::string(), which on MSVC converts to the active code page and throws when a character has no mapping there, for example a user name in another script under %APPDATA%. The start-up log runs inside the renderer's constructor, which only catches vk::Exception, so such a user would crash at game start with the setting on. Use Common::FS::PathToUTF8String for every path in these logs and messages. Found by CodeRabbit review. Assisted-by: Claude Opus 5.5 (implementation) Signed-off-by: Duck912 <350528965+Duck912@users.noreply.github.com>
* yuzu: show NVIDIA's DLSS files in the Graphics tab and fetch them from NVIDIADuck9128 hours1-0/+549
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 <350528965+Duck912@users.noreply.github.com>