Skip to content

Releases

SharpNRI v192.0.0-beta.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Nov 16:24
c564bbc

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.dll 2.3.0.4555, amd_fidelityfx_loader_vk.dll 1.0.2.4555, amd_fidelityfx_upscaler_dx12.dll 4.1.2.4555, amd_fidelityfx_upscaler_vk.dll 4.1.2.4555)
  • Intel XeSS SDK: 3.0.2 (libxess.dll 2.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 time
  • NriExternalException: 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 (or NriUnsupportedException, or NriException with INVALID_ARGUMENT or OUT_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] CheckFeatureSupport warnings
  • 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 ResolvingUnmanagedDll handler 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.Descs package other than the one SharpNRI depends on fails the build (SHARPNRI005) and device creation (INVALID_SDK)
  • NriPipelineLayoutDesc.ShaderStages documents 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.Descs included
  • SharpNRI.AgilitySDK requires Microsoft.Direct3D.D3D12 1.620.2
  • D3D12 EnableGraphicsApiValidation on an Agility SDK path without d3d12SDKLayers.dll throws NriUnsupportedException (the device ran unvalidated); set SharpNRIAgilityDebugLayer in 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

SharpNRI v191.0.0-beta.4

Pre-release

Choose a tag to compare

@github-actions github-actions released this 07 Nov 20:44
d7784d5

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.dll 2.3.0.4555, amd_fidelityfx_loader_vk.dll 1.0.2.4555, amd_fidelityfx_upscaler_dx12.dll 4.1.2.4555, amd_fidelityfx_upscaler_vk.dll 4.1.2.4555)
  • Intel XeSS SDK: 3.0.2 (libxess.dll 2.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.x is 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

SharpNRI v1.0.0-beta.3

Pre-release

Choose a tag to compare

@github-actions github-actions released this 07 Nov 18:59
3960b59

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.dll 2.3.0.4555, amd_fidelityfx_loader_vk.dll 1.0.2.4555, amd_fidelityfx_upscaler_dx12.dll 4.1.2.4555, amd_fidelityfx_upscaler_vk.dll 4.1.2.4555)
  • Intel XeSS SDK: 3.0.2 (libxess.dll 2.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.dll is 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, TryCreateSharedTexture
  • Nri.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.dll needs no Visual C++ runtime (static C runtime)

Fixed

  • dotnet publish -r failed, or the licences overwrote each other and the application's LICENSE.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=0 did 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 = 191
    • bool 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 = 191
    • static class SharpNRI.NriHeaders
  • SharpNRI.Testing 1.0.0-beta.2 → 1.0.0-beta.3: unchanged

Downloads

SharpNRI v1.0.0-beta.2

Pre-release

Choose a tag to compare

@github-actions github-actions released this 07 Nov 02:20
8906ad5

Bound libraries

  • NRI: v191
  • NVIDIA Image Scaling: 1.0.3 (compiled in)
  • AMD FidelityFX SDK: 2.4.0 (amd_fidelityfx_loader_dx12.dll 2.3.0.4555, amd_fidelityfx_loader_vk.dll 1.0.2.4555, amd_fidelityfx_upscaler_dx12.dll 4.1.2.4555, amd_fidelityfx_upscaler_vk.dll 4.1.2.4555)
  • Intel XeSS SDK: 3.0.2 (libxess.dll 2.0.2.68)
  • NVIDIA DLSS: 310.9.16 (not packaged)

Added

  • Published on NuGet.org
  • XML documentation in the packages
  • runtimes/<rid>/upscaler-runtimes.json in 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)
  • CreateStreamer with no constant buffer refused by validation
  • Lavapipe on Windows: crash for pipelines without a logic op
  • WriteShaderGroupIdentifiers past the pipeline's groups crashed the process; now INVALID_ARGUMENT
  • Vulkan: pipeline-statistics pools without mesh-shader queries refused, with a wrong query size
  • Vulkan: ENABLE_DRAW_PARAMETERS_EMULATION refused plain indirect draw records
  • NriAccelerationStructure.Buffer, NriMicromap.Buffer: a new wrapper per read
  • Annotations: native allocation per call
  • Docs: LATEST_READY with VSYNC does not cap the frame rate

Breaking changes

  • NriDeviceOptions.VkEnumeratePhysicalDevicesAfterCreation removed
  • NriApi.HAS_BUFFER is static readonly
  • NriCopyImguiDataDesc, NriStreamBufferDataDesc, NriStreamTextureDataDesc are readonly 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

SharpNRI v1.0.0-beta.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 04 Nov 18:31
140fec1

Bound libraries

  • NRI: v191
  • NVIDIA Image Scaling: 1.0.3 (compiled in)
  • AMD FidelityFX SDK: 2.4.0 (amd_fidelityfx_loader_dx12.dll 2.3.0.4555, amd_fidelityfx_loader_vk.dll 1.0.2.4555, amd_fidelityfx_upscaler_dx12.dll 4.1.2.4555, amd_fidelityfx_upscaler_vk.dll 4.1.2.4555)
  • Intel XeSS SDK: 3.0.2 (libxess.dll 2.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 / ALL stages 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 variables SHARPNRI_*; MSBuild properties SharpNRI*
  • No Agility package: reference Microsoft.Direct3D.D3D12

Verified

Downloads

  • NuGet packages: attached below only
  • osx-arm64: native library as a zip below, not in the packages