{"id":19817150,"url":"https://github.com/nvpro-samples/vk_streamline","last_synced_at":"2025-09-07T01:34:02.354Z","repository":{"id":185665483,"uuid":"673104978","full_name":"nvpro-samples/vk_streamline","owner":"nvpro-samples","description":"DLSS Super Resolution and DLSS Frame Generation via Streamline","archived":false,"fork":false,"pushed_at":"2025-02-01T14:56:14.000Z","size":67,"stargazers_count":21,"open_issues_count":2,"forks_count":0,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-05-01T11:36:23.550Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nvpro-samples.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-07-31T22:12:17.000Z","updated_at":"2025-04-04T02:17:29.000Z","dependencies_parsed_at":"2024-06-28T11:09:24.918Z","dependency_job_id":"77b9defa-46c4-4b03-88c1-ce317df4b12b","html_url":"https://github.com/nvpro-samples/vk_streamline","commit_stats":null,"previous_names":["nvpro-samples/vk_streamline"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nvpro-samples/vk_streamline","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nvpro-samples%2Fvk_streamline","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nvpro-samples%2Fvk_streamline/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nvpro-samples%2Fvk_streamline/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nvpro-samples%2Fvk_streamline/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nvpro-samples","download_url":"https://codeload.github.com/nvpro-samples/vk_streamline/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nvpro-samples%2Fvk_streamline/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273986614,"owners_count":25202704,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-06T02:00:13.247Z","response_time":2576,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T10:11:50.860Z","updated_at":"2025-09-07T01:34:02.328Z","avatar_url":"https://github.com/nvpro-samples.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DLSS Super Resolution and DLSS Frame Generation via Streamline\n\nThis sample demonstrates integration of [Streamline](https://developer.nvidia.com/rtx/streamline) into a Vulkan-based application and using it to add [NVIDIA Reflex](https://developer.nvidia.com/performance-rendering-tools/reflex), [DLSS Super Resolution, and DLSS Frame Generation](https://developer.nvidia.com/rtx/dlss/get-started).\n\nStreamline generally supports two methods of integrating it, either automatically by linking against the `sl.interposer.lib` library instead of `vulkan-1.lib` (assuming the application was previously statically linking Vulkan already), or manually by only retrieving the relevant Vulkan entry points from Streamline and having the rest go directly through Vulkan as usual (an application can use the `vkGetInstanceProcAddr`/`vkGetDeviceProcAddr` provided by Streamline to fill its dispatch tables). This sample implements both methods, which can be toggled between via a CMake option called `STREAMLINE_MANUAL_HOOKING`.\\\nWhen enabled, the sample will link against Vulkan normally, dynamically load Streamline at runtime and only get the required Vulkan functions from it to call. When disabled, the sample will link against `sl.interposer.lib` instead of `vulkan-1.lib`.\\\nThe manual hooking method can offer better performance because of less overhead (avoids having to redirect all Vulkan calls through Streamline) and is not too difficult to implement when an application already loads all the Vulkan entry points dynamically. It does however also require querying and adding all the necessary Vulkan extensions and features Streamline wants, while the automatic method will add those during device creation behind the scenes without changes to the application.\n\nTo debug DLSS, you can replace the DLSS DLLs installed by CMake with their [development variants](https://github.com/NVIDIAGameWorks/Streamline/tree/main/bin/x64/development) and enable their overlay with a [special registry key](https://github.com/NVIDIAGameWorks/Streamline/blob/main/scripts/ngx_driver_onscreenindicator.reg).\\\nIn addition, check out the Streamline ImGui plugin [documentation](https://github.com/NVIDIAGameWorks/Streamline/tree/main/docs). It can be enabled by adding `sl::kFeatureImGUI` to the `SL_FEATURES` array at the top of main.cpp.\n\n## Build and Run\n\nClone https://github.com/nvpro-samples/nvpro_core.git next to this repository (or pull latest `master` if you already have it).\n\n`mkdir build \u0026\u0026 cd build \u0026\u0026 cmake .. # Or use CMake GUI`\n\nIf there are missing dependencies (e.g. glfw), run `git submodule update --init --recursive --checkout --force` in the `nvpro_core` repository (and also this one).\n\nThen start the generated `.sln` in VS or run `make -j`.\n\nRun `vk_streamline` or `../../bin_x64/Release/vk_streamline.exe`.\n\n## License\n\nReleased under the Apache License, Version 2.0. Please see the copyright notice in the [LICENSE](LICENSE) file.\n\nThis project uses the NVIDIA nvpro-samples framework and NVIDIA Streamline SDK. Please see the license for nvpro_core [here](https://github.com/nvpro-samples/nvpro_core/blob/master/LICENSE), and the third-party packages it uses [here](https://github.com/nvpro-samples/nvpro_core/tree/master/PACKAGE-LICENSES). Please see the license for Streamline [here](https://github.com/NVIDIAGameWorks/Streamline/blob/main/license.txt), and the third-party packages it uses [here](https://github.com/NVIDIAGameWorks/Streamline/blob/main/3rd-party-licenses.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnvpro-samples%2Fvk_streamline","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnvpro-samples%2Fvk_streamline","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnvpro-samples%2Fvk_streamline/lists"}