diff options
| author | Duck <350528965+Duck912@users.noreply.github.com> | 2026-11-03 15:44:36 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-11-03 15:44:36 -0500 |
| commit | 05e3b9d8b08414d3163cde36de61514cb4aa2400 (patch) | |
| tree | 499efe72b68afd9e1741e5c1331adce7b6ee8ecc /src/video_core/vulkan_common/streamline_api.h | |
| parent | f347ae083af5595083a5706ff857462ed8c11596 (diff) | |
| parent | 1889602c7a0dc17850692594eae2e77e16ac13fc (diff) | |
Merge pull request #434 from Duck912/streamline-dlss
video_core: NVIDIA DLSS through NVIDIA Streamline in place of a game's DLSS
Diffstat (limited to 'src/video_core/vulkan_common/streamline_api.h')
| -rw-r--r-- | src/video_core/vulkan_common/streamline_api.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/video_core/vulkan_common/streamline_api.h b/src/video_core/vulkan_common/streamline_api.h new file mode 100644 index 0000000000..0a82c1dd7d --- /dev/null +++ b/src/video_core/vulkan_common/streamline_api.h @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + +// Streamline's API as loaded from the user's sl.interposer.dll. Only for the +// Streamline sources: it pulls in <windows.h> and Streamline's (MIT-licensed) headers. + +#pragma once + +#include <windows.h> + +#include "video_core/vulkan_common/vulkan_wrapper.h" + +#include <sl.h> +#include <sl_dlss.h> +#include <sl_helpers_vk.h> + +namespace Vulkan::Streamline { + +struct Api { + PFun_slInit* init{}; + PFun_slShutdown* shutdown{}; + PFun_slIsFeatureSupported* is_feature_supported{}; + PFun_slGetFeatureRequirements* get_feature_requirements{}; + PFun_slGetFeatureVersion* get_feature_version{}; + PFun_slGetFeatureFunction* get_feature_function{}; + PFun_slGetNewFrameToken* get_new_frame_token{}; + PFun_slSetConstants* set_constants{}; + PFun_slEvaluateFeature* evaluate_feature{}; + PFun_slFreeResources* free_resources{}; + PFun_slSetVulkanInfo* set_vulkan_info{}; +}; + +/// The loaded functions; only valid while IsDlssAvailable(). +[[nodiscard]] const Api& GetApi(); + +} // namespace Vulkan::Streamline |
