Repository navigation
Releases
Releases · Nullpoint56/SharpNRI
SharpNRI v192.0.0-beta.1
Bound libraries
- NRI: v192
- Agility SDK: 1.620.2 (restored by the application through SharpNRI.AgilitySDK)
- NVIDIA Image Scaling: 1.0.3 (compiled in)
- AMD FidelityFX SDK: 2.4.0 (
amd_fidelityfx_loader_dx12.dll2.3.0.4555,amd_fidelityfx_loader_vk.dll1.0.2.4555,amd_fidelityfx_upscaler_dx12.dll4.1.2.4555,amd_fidelityfx_upscaler_vk.dll4.1.2.4555) - Intel XeSS SDK: 3.0.2 (
libxess.dll2.0.2.68) - NVIDIA DLSS: 310.9.16 (not packaged)
Added
- NRI v192
Nri.BindingVersion,Nri.DescsVersion,Nri.BindingNriVersion,Nri.DescsNriVersion: the loaded packages' versions, read at run timeNriExternalException: a failed third-party call (Result.EXT_ERROR: an upscaler SDK, NVIDIA Reflex), for falling back- D3D12: a refused pipeline cache reports why as an INFO (another driver version, another adapter, not a pipeline library); still
OUT_OF_DATE
Fixed
- A failed vendor upscaler creation throws
NriExternalException(orNriUnsupportedException, orNriExceptionwithINVALID_ARGUMENTorOUT_OF_MEMORY, when the vendor's code says so) and reports an ERROR naming the call; a failed dispatch reports one too - D3D12 device creation with the debug layer: no
[989]CheckFeatureSupportwarnings - D3D12 debug layer: no warnings
[963],[964],[971]for a pipeline not yet in the cache or a cache from another driver or adapter - An application's
ResolvingUnmanagedDllhandler for "NRI" runs whenever it was registered (SharpNRI's own handler threw and ended the chain); a missing NRI library is explained at device creation and adapter enumeration - A
SharpNRI.Descspackage other than the oneSharpNRIdepends on fails the build (SHARPNRI005) and device creation (INVALID_SDK) NriPipelineLayoutDesc.ShaderStagesdocuments NRI's rules- The guide and README describe the latest release without naming a version
Breaking changes
- Every package moves to NRI v192: 192.0.0-beta.1,
SharpNRI.Descsincluded SharpNRI.AgilitySDKrequiresMicrosoft.Direct3D.D3D121.620.2- D3D12
EnableGraphicsApiValidationon an Agility SDK path withoutd3d12SDKLayers.dllthrowsNriUnsupportedException(the device ran unvalidated); setSharpNRIAgilityDebugLayerin a Release build that validates
Verified
- NVIDIA GeForce RTX 4070 SUPER, Vulkan and D3D12: ddd1579 (coverage)
- Mesa lavapipe, Vulkan, Linux: ddd1579
- WARP (D3D12), lavapipe (Vulkan, Windows and Linux): CI on the tagged commit
API changes
Public surface against v191.0.0-beta.4, per package.
-
SharpNRI 191.0.0-beta.4 → 192.0.0-beta.1: 0 removed, 1 changed, 6 added
Changed (1)
const int SharpNRI.Nri.NriVersion = 191→const int SharpNRI.Nri.NriVersion = 192
Added (6)
SharpNRI.NriExternalException(string call, string detail = null)static int SharpNRI.Nri.BindingNriVersion { get; }static string SharpNRI.Nri.BindingVersion { get; }static int SharpNRI.Nri.DescsNriVersion { get; }static string SharpNRI.Nri.DescsVersion { get; }sealed class SharpNRI.NriExternalException : SharpNRI.NriException, System.Runtime.Serialization.ISerializable
-
SharpNRI.Descs 191.0.0-beta.1 → 192.0.0-beta.1: 0 removed, 1 changed, 1 added
Changed (1)
const int SharpNRI.NriHeaders.Version = 191→const int SharpNRI.NriHeaders.Version = 192
Added (1)
SharpNRI.Native.Result.EXT_ERROR = -5
-
SharpNRI.Testing 191.0.0-beta.4 → 192.0.0-beta.1: unchanged
Downloads
- NuGet.org: SharpNRI 192.0.0-beta.1, SharpNRI.Descs 192.0.0-beta.1, SharpNRI.Testing 192.0.0-beta.1, SharpNRI.Native.Upscalers 192.0.0-beta.1, SharpNRI.AgilitySDK 192.0.0-beta.1
- osx-arm64: native library as a zip below, not in the packages
- Symbols: NRI's PDB per win-x64 payload as a zip below (
SharpNRI-symbols-*); managed PDBs in the packages
SharpNRI v191.0.0-beta.4
Bound libraries
- NRI: v191
- Agility SDK: 1.620.1 (restored by the application through SharpNRI.AgilitySDK)
- NVIDIA Image Scaling: 1.0.3 (compiled in)
- AMD FidelityFX SDK: 2.4.0 (
amd_fidelityfx_loader_dx12.dll2.3.0.4555,amd_fidelityfx_loader_vk.dll1.0.2.4555,amd_fidelityfx_upscaler_dx12.dll4.1.2.4555,amd_fidelityfx_upscaler_vk.dll4.1.2.4555) - Intel XeSS SDK: 3.0.2 (
libxess.dll2.0.2.68) - NVIDIA DLSS: 310.9.16 (not packaged)
Fixed
- SharpNRI.Native.Upscalers and SharpNRI.AgilitySDK declare .NET 11 (nuget.org showed no framework)
Breaking changes
- Package versions follow NRI: every package's major is the NRI version (
191.xis NRI v191); SharpNRI, SharpNRI.Testing, SharpNRI.Native.Upscalers and SharpNRI.AgilitySDK move from 1.0.0-beta.3 to 191.0.0-beta.4 - SharpNRI.Descs stays 191.0.0-beta.1 (unchanged)
Verified
- NVIDIA GeForce RTX 4070 SUPER, Vulkan and D3D12: a139c24 (coverage)
- Mesa lavapipe, Vulkan, Linux: a139c24
- WARP (D3D12), lavapipe (Vulkan, Windows and Linux): CI on the tagged commit
API changes
Public surface against v1.0.0-beta.3, per package.
- SharpNRI 1.0.0-beta.3 → 191.0.0-beta.4: unchanged
- SharpNRI.Descs 191.0.0-beta.1: unchanged
- SharpNRI.Testing 1.0.0-beta.3 → 191.0.0-beta.4: unchanged
- No public API changed
Downloads
- NuGet.org: SharpNRI 191.0.0-beta.4, SharpNRI.Descs 191.0.0-beta.1, SharpNRI.Testing 191.0.0-beta.4, SharpNRI.Native.Upscalers 191.0.0-beta.4, SharpNRI.AgilitySDK 191.0.0-beta.4
- osx-arm64: native library as a zip below, not in the packages
- Symbols: NRI's PDB per win-x64 payload as a zip below (
SharpNRI-symbols-*); managed PDBs in the packages
SharpNRI v1.0.0-beta.3
Bound libraries
- NRI: v191
- Agility SDK: 1.620.1 (restored by the application through SharpNRI.AgilitySDK)
- NVIDIA Image Scaling: 1.0.3 (compiled in)
- AMD FidelityFX SDK: 2.4.0 (
amd_fidelityfx_loader_dx12.dll2.3.0.4555,amd_fidelityfx_loader_vk.dll1.0.2.4555,amd_fidelityfx_upscaler_dx12.dll4.1.2.4555,amd_fidelityfx_upscaler_vk.dll4.1.2.4555) - Intel XeSS SDK: 3.0.2 (
libxess.dll2.0.2.68) - NVIDIA DLSS: 310.9.16 (not packaged)
Added
- SharpNRI.AgilitySDK: copies the Agility SDK runtime at NRI's version into
AgilitySDK\, build error on another version; debug layer in Debug builds - With SharpNRI.AgilitySDK, a missing
AgilitySDK\D3D12Core.dllis an error, not the inbox runtime - Device creation refuses an NRI library or SharpNRI.Descs of another NRI version (
INVALID_SDK, both versions named) TryCreateSharedFence,TryCreateSharedBinaryFence,TryCreateSharedBuffer,TryCreateSharedTextureNri.NriVersion,NriHeaders.Version- NRI's header comments as XML docs on the generated types
- Trimming and Native AOT declared (
IsAotCompatible) - A missing native library names the file, the RID, the directories searched and the package
- Licences copied to
licenses\<package>\<rid>\beside the application - Windows:
NRI.dllneeds no Visual C++ runtime (static C runtime)
Fixed
dotnet publish -rfailed, or the licences overwrote each other and the application'sLICENSE.txt- SharpNRI.Native.Upscalers did nothing unless SharpNRI was referenced with
ExcludeAssets="native" - Package dependencies were minimums; SharpNRI → SharpNRI.Descs, SharpNRI.Testing → SharpNRI, SharpNRI.Native.Upscalers → SharpNRI are exact
- SharpNRI.Testing:
SHARPNRI_TEST_SOFTWARE=0did not override GitHub Actions - SharpNRI.Testing: probing Vulkan created D3D12 devices
- SharpNRI.Testing: a validation layer older than NRI's headers failed every Vulkan test instead of reporting it
- Package README linked master instead of the release
- Package description named macOS arm64 and "Alpha"
Breaking changes
- SharpNRI.Descs versioned by NRI: 191.0.0-beta.1, new only when the descs change
- SharpNRI.Native.Upscalers depends on SharpNRI and replaces its native library
Verified
- NVIDIA GeForce RTX 4070 SUPER, Vulkan and D3D12: 05cbf77 (coverage)
- Mesa lavapipe, Vulkan, Linux: 05cbf77
- WARP (D3D12), lavapipe (Vulkan, Windows and Linux): CI on the tagged commit
API changes
Public surface against v1.0.0-beta.2, per package.
-
SharpNRI 1.0.0-beta.2 → 1.0.0-beta.3: 0 removed, 0 changed, 5 added
Added (5)
const int SharpNRI.Nri.NriVersion = 191bool SharpNRI.NriDevice.TryCreateSharedBinaryFence(out SharpNRI.NriFence fence)bool SharpNRI.NriDevice.TryCreateSharedBuffer(in SharpNRI.Native.BufferDesc desc, out SharpNRI.NriBuffer buffer, float priority = 0)bool SharpNRI.NriDevice.TryCreateSharedFence(out SharpNRI.NriFence fence, ulong initialValue = 0)bool SharpNRI.NriDevice.TryCreateSharedTexture(in SharpNRI.Native.TextureDesc desc, out SharpNRI.NriTexture texture, float priority = 0)
-
SharpNRI.Descs 1.0.0-beta.2 → 191.0.0-beta.1: 0 removed, 0 changed, 2 added
Added (2)
const int SharpNRI.NriHeaders.Version = 191static class SharpNRI.NriHeaders
-
SharpNRI.Testing 1.0.0-beta.2 → 1.0.0-beta.3: unchanged
Downloads
- NuGet.org: SharpNRI 1.0.0-beta.3, SharpNRI.Descs 191.0.0-beta.1, SharpNRI.Testing 1.0.0-beta.3, SharpNRI.Native.Upscalers 1.0.0-beta.3, SharpNRI.AgilitySDK 1.0.0-beta.3
- osx-arm64: native library as a zip below, not in the packages
- Symbols: NRI's PDB per win-x64 payload as a zip below (
SharpNRI-symbols-*); managed PDBs in the packages
SharpNRI v1.0.0-beta.2
Bound libraries
- NRI: v191
- NVIDIA Image Scaling: 1.0.3 (compiled in)
- AMD FidelityFX SDK: 2.4.0 (
amd_fidelityfx_loader_dx12.dll2.3.0.4555,amd_fidelityfx_loader_vk.dll1.0.2.4555,amd_fidelityfx_upscaler_dx12.dll4.1.2.4555,amd_fidelityfx_upscaler_vk.dll4.1.2.4555) - Intel XeSS SDK: 3.0.2 (
libxess.dll2.0.2.68) - NVIDIA DLSS: 310.9.16 (not packaged)
Added
- Published on NuGet.org
- XML documentation in the packages
runtimes/<rid>/upscaler-runtimes.jsonin SharpNRI.Native.Upscalers: vendor runtime versions and SHA-256- Vendor upscaler failures (creation and dispatch) reported as errors, in release builds too
- Zero allocation measured for every per-frame call of the binding
Fixed
- Vulkan: crash at the first present under RivaTuner Statistics Server
- D3D12: micromap creation refused by the debug layer
- Vulkan: AV1 session parameters without a colour description refused (NVIDIA still needs a host-visible AV1 bitstream)
CreateStreamerwith no constant buffer refused by validation- Lavapipe on Windows: crash for pipelines without a logic op
WriteShaderGroupIdentifierspast the pipeline's groups crashed the process; nowINVALID_ARGUMENT- Vulkan: pipeline-statistics pools without mesh-shader queries refused, with a wrong query size
- Vulkan:
ENABLE_DRAW_PARAMETERS_EMULATIONrefused plain indirect draw records NriAccelerationStructure.Buffer,NriMicromap.Buffer: a new wrapper per read- Annotations: native allocation per call
- Docs:
LATEST_READYwithVSYNCdoes not cap the frame rate
Breaking changes
NriDeviceOptions.VkEnumeratePhysicalDevicesAfterCreationremovedNriApi.HAS_BUFFERisstatic readonlyNriCopyImguiDataDesc,NriStreamBufferDataDesc,NriStreamTextureDataDescarereadonly ref struct
Verified
- NVIDIA GeForce RTX 4070 SUPER, Vulkan and D3D12: 4f0f48c (coverage)
- Mesa lavapipe, Vulkan, Linux: 4f0f48c
- WARP (D3D12), lavapipe (Vulkan, Windows and Linux): CI on 8906ad5
Downloads
- NuGet.org: SharpNRI, SharpNRI.Descs, SharpNRI.Testing, SharpNRI.Native.Upscalers
- osx-arm64: native library as a zip below, not in the packages
SharpNRI v1.0.0-beta.1
Bound libraries
- NRI: v191
- NVIDIA Image Scaling: 1.0.3 (compiled in)
- AMD FidelityFX SDK: 2.4.0 (
amd_fidelityfx_loader_dx12.dll2.3.0.4555,amd_fidelityfx_loader_vk.dll1.0.2.4555,amd_fidelityfx_upscaler_dx12.dll4.1.2.4555,amd_fidelityfx_upscaler_vk.dll4.1.2.4555) - Intel XeSS SDK: 3.0.2 (
libxess.dll2.0.2.68) - NVIDIA DLSS: 310.9.16 (not packaged)
Added
- C# binding over NRI: Vulkan, D3D12, NONE; every NRI object, command and extension
- Packages:
SharpNRI,SharpNRI.Descs(descs and enums, no native code),SharpNRI.Testing(validated headless devices),SharpNRI.Native.Upscalers(NIS, FSR, XeSS) - Zero allocation per frame on the managed heap
- D3D12 on the Agility SDK from
Microsoft.Direct3D.D3D12
Fixed
- Vulkan without tessellation, geometry, task, mesh or ray tracing shaders:
ALL_SHADERS/ALLstages refused by the validation layer - FSR on Vulkan: runtime check named FidelityFX SDK 1.1.4's
amd_fidelityfx_vk.dll
Breaking changes
- From PrismNRI 0.4.0-alpha: package ids, assemblies and namespaces
SharpNRI*; environment variablesSHARPNRI_*; MSBuild propertiesSharpNRI* - No Agility package: reference
Microsoft.Direct3D.D3D12
Verified
- NVIDIA GeForce RTX 4070 SUPER, Vulkan and D3D12: 92a8416 (coverage)
- WARP (D3D12), lavapipe (Vulkan): fafd375, same code as 92a8416
Downloads
- NuGet packages: attached below only
- osx-arm64: native library as a zip below, not in the packages