mirror of
				https://github.com/PancakeTAS/lsfg-vk.git
				synced 2025-10-30 07:01:10 +00:00 
			
		
		
		
	docs: readme & license
This commit is contained in:
		
							parent
							
								
									e03fcaf4b0
								
							
						
					
					
						commit
						533cc97a05
					
				
					 2 changed files with 62 additions and 0 deletions
				
			
		
							
								
								
									
										21
									
								
								LICENSE.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								LICENSE.md
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | |||
| ## MIT License | ||||
| 
 | ||||
| Copyright (c) 2025 lsfg-vk | ||||
| 
 | ||||
| Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
| of this software and associated documentation files (the "Software"), to deal | ||||
| in the Software without restriction, including without limitation the rights | ||||
| to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
| copies of the Software, and to permit persons to whom the Software is | ||||
| furnished to do so, subject to the following conditions: | ||||
| 
 | ||||
| The above copyright notice and this permission notice shall be included in all | ||||
| copies or substantial portions of the Software. | ||||
| 
 | ||||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
| AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||
| SOFTWARE. | ||||
							
								
								
									
										41
									
								
								README.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								README.md
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,41 @@ | |||
| # lsfg-vk | ||||
| This project brings [Lossless Scaling's Frame Generation](https://store.steampowered.com/app/993090/Lossless_Scaling/) to Linux! | ||||
| 
 | ||||
| ## How does it work? | ||||
| LSFG is primarily written in DirectX 11 compute shaders, which means we can use DXVK to translate it into SPIR-V. The surrounding parts have been rewritten in plain Vulkan code in order to make LSFG run natively on Linux. | ||||
| By specifying an `LD_PRELOAD`, lsfg-vk can place itself inbetween your game and Vulkan. That way it can fetch frames from the game and insert its own frames without any problems. (Beware of anticheats please!) | ||||
| 
 | ||||
| ## Building, Installing and Running | ||||
| In order to compile LSFG, make sure you have the following components installed on your system: | ||||
| - Traditional build tools (+ bash, sed, git) | ||||
| - Clang compiler (this project does NOT compile easily with GCC) | ||||
| - Vulkan and SPIR-V header files | ||||
| - CMake build system | ||||
| - Meson build system (for DXVK) | ||||
| - Ninja build system (backend for CMake) | ||||
| - openssl's libcrypto | ||||
| 
 | ||||
| Compiling lsfg-vk is relatively straight forward, as everything is neatly integrated into CMake: | ||||
| ```bash | ||||
| $ CC=clang CXX=clang++ cmake -B build -G Ninja \ | ||||
|     -DCMAKE_BUILD_TYPE=Release \ | ||||
|     -DCMAKE_INSTALL_PREFIX=absolute-install-path-here | ||||
| $ cmake --build build | ||||
| $ cmake --install build | ||||
| ``` | ||||
| (Make sure you change `absolute-install-path-here` to the path you'd like to install this project to) | ||||
| 
 | ||||
| Next, you'll need to download Lossless Scaling from Steam. Switch to the `legacy_3.1` branch or download the corresponding depot. | ||||
| Copy or note down the path of "Lossless.dll" from the game files. | ||||
| 
 | ||||
| Finally, let's actually start a program with frame generation enabled. I'm going to be using `vkcube` for this example: | ||||
| ```bash | ||||
| LD_PRELOAD="/home/pancake/.lsfg-vk/liblsfg-vk.so" LSFG_DLL_PATH="/home/pancake/games/Lossless Scaling/Lossless.dll" LSFG_MULTIPLIER=4 vkcube | ||||
| ``` | ||||
| Make sure you adjust the paths. Let's examine each one: | ||||
| - `LD_PRELOAD`: This is how you let the loader know that you want to load lsfg-vk before anything else. This HAS to be either an ABSOLUTE path, or a path starting with `./` to make it relative. Specify `liblsfg-vk.so` here. | ||||
| - `LSFG_DLL_PATH`: Here you specify the Lossless.dll you downloaded from Steam. This is either an absolute path, or a relative path from where you are running the app. | ||||
| - `LSFG_MULTIPLIER`: This is the multiplier you should be familiar with. Specify `2` for doubling the framerate, etc. | ||||
| 
 | ||||
| >[!WARNING] | ||||
| > Unlike on Windows, LSFG_MULTIPLIER is heavily limited here (at the moment!). If your hardware can create 8 swapchain images, then setting LSFG_MULTIPLIER to 4 occupies 4 of those, leaving only 4 to the game. If the game requested 5 or more, it will crash. | ||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 PancakeTAS
						PancakeTAS