{"id":19248613,"url":"https://github.com/nvidiagameworks/streamline_sample","last_synced_at":"2025-04-21T11:34:33.515Z","repository":{"id":39856451,"uuid":"468126621","full_name":"NVIDIAGameWorks/Streamline_Sample","owner":"NVIDIAGameWorks","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-15T16:00:00.000Z","size":58223,"stargazers_count":24,"open_issues_count":7,"forks_count":16,"subscribers_count":30,"default_branch":"main","last_synced_at":"2025-04-15T16:52:45.387Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NVIDIAGameWorks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2022-03-09T23:36:16.000Z","updated_at":"2025-04-15T15:59:41.000Z","dependencies_parsed_at":"2022-09-02T16:12:38.148Z","dependency_job_id":"b9f2f427-12f5-4ddd-963d-6eeb3be061f7","html_url":"https://github.com/NVIDIAGameWorks/Streamline_Sample","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NVIDIAGameWorks%2FStreamline_Sample","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NVIDIAGameWorks%2FStreamline_Sample/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NVIDIAGameWorks%2FStreamline_Sample/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NVIDIAGameWorks%2FStreamline_Sample/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NVIDIAGameWorks","download_url":"https://codeload.github.com/NVIDIAGameWorks/Streamline_Sample/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250048117,"owners_count":21366177,"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","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-09T18:09:21.941Z","updated_at":"2025-04-21T11:34:28.477Z","avatar_url":"https://github.com/NVIDIAGameWorks.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SL Version 2.4.10\r\n\r\n# StreamlineSample\r\n\r\nThis project combines Streamline (https://github.com/NVIDIAGameWorks/Streamline) and Donut (https://github.com/NVIDIAGameWorks/donut) to create a sample app demonstrating a Streamline integration.\r\n\r\n## Prerequisites\r\n\r\n- CMake 3.20+\r\n- Windows SDK 10.0.22000+\r\n- Vulkan SDK\r\n\r\n## To get this project setup:\r\n1. Ensure you have CMake 3.20+ and the vulkan sdk (https://vulkan.lunarg.com) on your system.\r\n2. Ensure that a VK-compatible dxc.exe is available in your system `PATH`.  The best way to do this is to install a recent (1.2.198.1 or newer) Vulkan SDK from https://www.vulkan.org/ and ensure that its `bin` directory is in the build machine's system `PATH`.\r\n3. Clone this repository, then run in the commandline: `git submodule update --init --recursive`\r\n4. Copy your streamline SDK contents (`bin`, `lib`, `include` and, optionally, `scripts`) into the `streamline` folder\r\n5. Use Cmake to make the project solution (or use `make.bat`). Cmake will attempt to locate plugins by searching first the `streamline/bin/x64` and then the `streamline/bin/x64/development` folders for `sl.interposer.dll`. If found, it will load all SL plugin DLLs from the folder where `sl.interposer.dll` was located.\r\n6. Open the solution and build (or use `build.bat`)\r\n7. Run the executable (or use `run.bat`)\r\n\r\n\r\n## Integration notes\r\n- D3D11 and D3D12 are integrated using the advanced 'hooking' mechanism by which we have two seperate native/proxy devices and swapchains that are passed into specific api calls. We statically link sl.interposer.lib instead of D3D libs.\r\n- D3D12 additionally features swapchain re-creation when toggling DLSSG. This removes all swapchain interposition when it is not needed.\r\n- Vulkan is integrated using the basic mechanism, by which streamline hooks all of the api calls. We dynamically link sl.\r\ninterposer.dll instead of vulkan-1.dll. \r\n- Runing make.bat with `-AMD_AGS`, adds support for AMD AGS, and shows how devs might go about integrating SL around this. \r\n- To enable to sl.imgui plugin for debugging, the app must use the development dlls. and the user must manualy place the sl.imgui.dll and sl.interposer.json in the executable directory.\r\n\r\n## Useful commandLine arguments: \r\nArguments                                                                                 | Effect\r\n---                                                                                       | ---\r\n-vk                                                                                       | Run with Vulkan\r\n-d3d11                                                                                    | Run with D3D11\r\n-d3d12                                                                                    | Run with D3D12\r\n-height 1080                                                                              | Sets height\r\n-fullscreen                                                                               | Sets fullscreen (by default game runs in windowed)\r\n-verbose                                                                                  | Allows vebose info level logging logging\r\n-logToFile                                                                                | Logs to file\r\n-debug                                                                                    | Enables NVRHI and Graphics API validation Layer\r\n-noSigCheck                                                                               | Does not do streamline dll signiture check \r\n-vsync                                                                                    | Enables Vsync\r\n-sllog                                                                                    | Enables streamline logging\r\n-scene \"/myscene.fbx\"                                                                     | Loads a custom scene\r\n-maxFrames 100                                                                            | Sets number of frames to render before the app shuts down\r\n-Reflex_mode 1                                                                            | Sets Reflex mode: 1:On 2:Boost\r\n-Reflex_fpsCap 60                                                                         | Sets Refex FPS cap to a given number\r\n-DLSS_mode 1                                                                              | Sets the DLSS mode startup: 0:Off 1:MaxPerf 2:Balanced 3:MaxQual 4:UtraPerf 5:DLAA\r\n-viewport                                                                                 | Specifies backbuffer viewport extent in the format: (offsetLeft,offsetTop,widthxheight) e.g. (320,180,1280x720)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnvidiagameworks%2Fstreamline_sample","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnvidiagameworks%2Fstreamline_sample","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnvidiagameworks%2Fstreamline_sample/lists"}