beeradmoore / dlss-archive

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DLSS Archive

This DLSS Archive is used to track and archive different versions of NVIDIAs DLSS dlls.

This repository is intended to be used by tools such as DLSS Swapper.. If you intend to add DLSS to a game you are creating I insist you go through the correct channels and obtain the latest DLSS dlls through the NVIDIA developer portal.

All dlls in this archive are property of NVIDIA. I have not altered the binaries in any way. I did however change the file creation date to match when the binary was signed by NVIDIA, rather than be the date I extracted it on my own machine.

How it works

dlss_records.json will constantly be updated with new DLSS versions as they are discovered. The dlls themselves will be uploaded in the releases section not in the git repository itself.

NOTE: A newer release does not mean a newer DLSS version. Please keep an eye on the DLSS version to ensure you are attempting to use the latest version.

dlss_records.json file schema

The main structure of dlss_records.json is two json arrays. stable contains any dll found in released games or SDKs. experimental contains any dll distributed by NVIDIA as part of their DLSS research.

{
  "stable": [
    ...
  ],
  "experimental": [
    ...
  ]
}

Each of these sections contain any number of json objects that look like the following:

{
    "version": "2.2.16.0",
    "version_number": 562958544404480,
    "additional_label": "",
    "md5_hash": "8FED151AA1B7975A1E5968B82DF4E918",
    "zip_md5_hash": "19743B2751D1794445E5B5BE51AD9AFA",
    "download_url": "https://github.com/beeradmoore/dlss-archive/releases/download/v2.2.16.0/nvngx_dlss_2.2.16.0.zip",
    "file_description": "NVIDIA DLSSv2 - DVS PRODUCTION",
    "is_signature_valid": true,
    "file_size": 14448328,
    "zip_file_size": 9856696
},

version - Version of the dll itself as a human readable number.

version_number - The 4 parts of the dll version used as 16bit integers combined to make a single 64bit integer. This is explained in more detail inside the DLSSRecord class. This method is also mentioned in the .NET FileVersionInfo documentation.

additional_label - If a dll has a label deemed important for display next to its version number (eg. "Beta - White Collie 1")

md5_hash - MD5 hash of the dll. This should not be used to validate the dll has not been tampered with.

zip_md5_hash - MD5 hash of the zip. This should not be used to validate the zip has not been tampered with.

download_url - URL to download the zip from.

file_description - Details from the file description field. Mostly not helpful to anyone, but used to create additional_label.

is_signature_valid - If the dll is signed with a certificate fully trusted by Windows. If this is false it does not mean the dll has been tampered with maliciously. (eg.DLSS v1.0.11.0 and v1.0.13.0 both come from fresh game installs, but neither pass the signature verification. Not sure why 🤷‍♂️)

file_size - dll file size in bytes.

zip_file_size - final zip file size in bytes.

What is DLSSArchiveBuilder?

This tool is what generates dlss_records.json. I point it at a directory of zipped DLSS dlls and let it run.

It will validate, create new zips, and output the dlss_records.json file. Different computers running different OS or different versions of .NET may produce a different file hash (potentially using a different zip algorithm). If this happens while preparing a new release then the changed hashes will not be updated, only new files and their updated hashes will be added to dlss_records.json and uploaded to the releases section.

Know of a DLSS version not found in this archive?

Please file a new issue so I can validate and track it down.

Special thanks

Special thanks to TechPowerUp for doing the groundwork to allow all of this to happen.

About


Languages

Language:C# 100.0%