mirror of
				https://github.com/PancakeTAS/lsfg-vk.git
				synced 2025-10-30 07:01:10 +00:00 
			
		
		
		
	Compare commits
	
		
			17 commits
		
	
	
		
			0902f127dd
			...
			c4c8024f6f
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | c4c8024f6f | ||
|   | 0048283a8a | ||
|   | 8b87a0c71b | ||
|   | 714326ce11 | ||
|   | a22ad81056 | ||
|   | 45ae660e78 | ||
|   | 6a2fa943c4 | ||
|   | 4260f29bc6 | ||
|   | bfd8d0b8e5 | ||
|   | 1ab4f2ef56 | ||
|   | 60d4e10c5c | ||
|   | 68c10561de | ||
|   | ccd4d92a3e | ||
|   | 2de618809c | ||
|   | 7deeea9e98 | ||
|   | acd3366e0c | ||
|   | 4c4452c9e5 | 
					 21 changed files with 428 additions and 71 deletions
				
			
		
							
								
								
									
										36
									
								
								.github/workflows/build.yml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										36
									
								
								.github/workflows/build.yml
									
										
									
									
										vendored
									
									
								
							|  | @ -3,10 +3,6 @@ name: Build lsfg-vk | |||
| on: | ||||
|   push: | ||||
|     branches: ["release"] | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| env: | ||||
|   CARGO_TERM_COLOR: always | ||||
| 
 | ||||
| jobs: | ||||
|   build: | ||||
|  | @ -15,8 +11,6 @@ jobs: | |||
|     # prepare system | ||||
|     - name: Checkout repository | ||||
|       uses: actions/checkout@v4 | ||||
|       with: | ||||
|         submodules: true | ||||
|     - name: Install build dependencies | ||||
|       uses: awalsh128/cache-apt-pkgs-action@latest | ||||
|       with: | ||||
|  | @ -35,7 +29,7 @@ jobs: | |||
|       run: | | ||||
|         cmake -B build -G Ninja \ | ||||
|           -DCMAKE_BUILD_TYPE=Release \ | ||||
|           -DCMAKE_INSTALL_PREFIX=./build-release \ | ||||
|           -DCMAKE_INSTALL_PREFIX=./target \ | ||||
|           -DCMAKE_C_COMPILER=clang \ | ||||
|           -DCMAKE_CXX_COMPILER=clang++ \ | ||||
|           -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=On | ||||
|  | @ -45,33 +39,33 @@ jobs: | |||
|     - name: Install with CMake | ||||
|       run: | | ||||
|         cmake --install build --strip | ||||
|     - name: Build lsfg-vk-ui with appimage.sh | ||||
|     - name: Build lsfg-vk-ui | ||||
|       run: | | ||||
|         pushd ui | ||||
|         chmod +x ../scripts/build/appimage.sh | ||||
|         ../scripts/build/appimage.sh | ||||
|         chmod +x ./build_appimage.sh | ||||
|         ./build_appimage.sh | ||||
|         popd | ||||
|     - name: Install lsfg-vk-ui | ||||
|       run: | | ||||
|         mkdir -p build-release/{bin,share/applications,share/icons/hicolor/256x256/apps} | ||||
|         mv ui/lsfg-vk-ui.AppImage build-release/bin/lsfg-vk-ui | ||||
|         cp ui/rsc/gay.pancake.lsfg-vk-ui.desktop build-release/share/applications/lsfg-vk-ui.desktop | ||||
|         cp ui/rsc/icon.png build-release/share/icons/hicolor/256x256/apps/gay.pancake.lsfg-vk-ui.png | ||||
|         mkdir -p target/{bin,share/applications,share/icons/hicolor/256x256/apps} | ||||
|         mv ui/lsfg-vk-ui.AppImage target/bin/lsfg-vk-ui | ||||
|         cp ui/rsc/gay.pancake.lsfg-vk-ui.desktop target/share/applications/lsfg-vk-ui.desktop | ||||
|         cp ui/rsc/icon.png target/share/icons/hicolor/256x256/apps/gay.pancake.lsfg-vk-ui.png | ||||
|     # upload all files | ||||
|     - name: Upload lsfg-vk artifact | ||||
|       uses: actions/upload-artifact@v4 | ||||
|       with: | ||||
|         name: lsfg-vk | ||||
|         path: | | ||||
|           build-release/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json | ||||
|           build-release/share/applications/lsfg-vk-ui.desktop | ||||
|           build-release/share/icons/hicolor/256x256/apps/gay.pancake.lsfg-vk-ui.png | ||||
|           build-release/lib/liblsfg-vk.so | ||||
|           build-release/bin/lsfg-vk-ui | ||||
|           target/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json | ||||
|           target/share/applications/lsfg-vk-ui.desktop | ||||
|           target/share/icons/hicolor/256x256/apps/gay.pancake.lsfg-vk-ui.png | ||||
|           target/lib/liblsfg-vk.so | ||||
|           target/bin/lsfg-vk-ui | ||||
|     - name: Upload lsfg-vk artifact (without UI) | ||||
|       uses: actions/upload-artifact@v4 | ||||
|       with: | ||||
|         name: lsfg-vk_noui | ||||
|         path: | | ||||
|           build-release/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json | ||||
|           build-release/lib/liblsfg-vk.so | ||||
|           target/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json | ||||
|           target/lib/liblsfg-vk.so | ||||
|  |  | |||
							
								
								
									
										71
									
								
								.github/workflows/build_ci.yml
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								.github/workflows/build_ci.yml
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,71 @@ | |||
| name: (CI) Build lsfg-vk | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: ["develop"] | ||||
| 
 | ||||
| jobs: | ||||
|   build: | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|     # prepare system | ||||
|     - name: Checkout repository | ||||
|       uses: actions/checkout@v4 | ||||
|     - name: Install build dependencies | ||||
|       uses: awalsh128/cache-apt-pkgs-action@latest | ||||
|       with: | ||||
|         packages: git wget xvfb | ||||
|           clang clang-tools llvm rustup | ||||
|           cmake ninja-build pkg-config | ||||
|           libdecor-0-0 libvulkan-dev | ||||
|           libgtk-4-dev libadwaita-1-dev | ||||
|         version: 1.0 | ||||
|         execute_install_scripts: true | ||||
|     - name: Install rust dependency | ||||
|       run: | | ||||
|         rustup default stable | ||||
|     # build the project | ||||
|     - name: Configure with CMake and Ninja | ||||
|       run: | | ||||
|         cmake -B build -G Ninja \ | ||||
|           -DCMAKE_BUILD_TYPE=Release \ | ||||
|           -DCMAKE_INSTALL_PREFIX=./target \ | ||||
|           -DCMAKE_C_COMPILER=clang \ | ||||
|           -DCMAKE_CXX_COMPILER=clang++ \ | ||||
|           -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=On | ||||
|     - name: Build with Ninja | ||||
|       run: | | ||||
|         ninja -C build | ||||
|     - name: Install with CMake | ||||
|       run: | | ||||
|         cmake --install build --strip | ||||
|     - name: Build lsfg-vk-ui | ||||
|       run: | | ||||
|         pushd ui | ||||
|         chmod +x ./build_appimage.sh | ||||
|         ./build_appimage.sh | ||||
|         popd | ||||
|     - name: Install lsfg-vk-ui | ||||
|       run: | | ||||
|         mkdir -p target/{bin,share/applications,share/icons/hicolor/256x256/apps} | ||||
|         mv ui/lsfg-vk-ui.AppImage target/bin/lsfg-vk-ui | ||||
|         cp ui/rsc/gay.pancake.lsfg-vk-ui.desktop target/share/applications/lsfg-vk-ui.desktop | ||||
|         cp ui/rsc/icon.png target/share/icons/hicolor/256x256/apps/gay.pancake.lsfg-vk-ui.png | ||||
|     # upload all files | ||||
|     - name: Upload lsfg-vk artifact | ||||
|       uses: actions/upload-artifact@v4 | ||||
|       with: | ||||
|         name: lsfg-vk | ||||
|         path: | | ||||
|           target/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json | ||||
|           target/share/applications/lsfg-vk-ui.desktop | ||||
|           target/share/icons/hicolor/256x256/apps/gay.pancake.lsfg-vk-ui.png | ||||
|           target/lib/liblsfg-vk.so | ||||
|           target/bin/lsfg-vk-ui | ||||
|     - name: Upload lsfg-vk artifact (without UI) | ||||
|       uses: actions/upload-artifact@v4 | ||||
|       with: | ||||
|         name: lsfg-vk_noui | ||||
|         path: | | ||||
|           target/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json | ||||
|           target/lib/liblsfg-vk.so | ||||
							
								
								
									
										24
									
								
								.github/workflows/flatpak.yml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								.github/workflows/flatpak.yml
									
										
									
									
										vendored
									
									
								
							|  | @ -1,11 +1,11 @@ | |||
| name: Build lsfg-vk Flatpak extensions | ||||
| name: Build lsfg-vk for Flatpak | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: ["release"] | ||||
| 
 | ||||
| jobs: | ||||
|   flatpak: | ||||
|   flatpak-extensions: | ||||
|     runs-on: ubuntu-latest | ||||
|     strategy: | ||||
|       matrix: | ||||
|  | @ -20,5 +20,21 @@ jobs: | |||
|         uses: flatpak/flatpak-github-actions/flatpak-builder@v6 | ||||
|         with: | ||||
|           bundle: "org.freedesktop.Platform.VulkanLayer.lsfg_vk_${{ matrix.version }}.flatpak" | ||||
|           manifest-path: "scripts/flatpak/org.freedesktop.Platform.VulkanLayer.lsfgvk_${{ matrix.version }}.yml" | ||||
|           verbose: true | ||||
|           manifest-path: "flatpak/org.freedesktop.Platform.VulkanLayer.lsfgvk_${{ matrix.version }}.yml" | ||||
|           branch: "${{ matrix.version }}" | ||||
|           cache: false | ||||
|   flatpak-ui: | ||||
|     runs-on: ubuntu-latest | ||||
|     container: | ||||
|       image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-48 | ||||
|       options: --privileged | ||||
|     steps: | ||||
|       - name: Checkout repository | ||||
|         uses: actions/checkout@v4 | ||||
|       - name: Build Flatpak | ||||
|         uses: flatpak/flatpak-github-actions/flatpak-builder@v6 | ||||
|         with: | ||||
|           bundle: "gay.pancake.lsfg-vk-ui.flatpak" | ||||
|           manifest-path: "flatpak/gay.pancake.lsfg-vk-ui.yml" | ||||
|           branch: "release" | ||||
|           cache: false | ||||
|  |  | |||
							
								
								
									
										40
									
								
								.github/workflows/flatpak_ci.yml
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								.github/workflows/flatpak_ci.yml
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,40 @@ | |||
| name: (CI) Build lsfg-vk for Flatpak | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: ["develop"] | ||||
| 
 | ||||
| jobs: | ||||
|   flatpak-extensions: | ||||
|     runs-on: ubuntu-latest | ||||
|     strategy: | ||||
|       matrix: | ||||
|         version: ["23.08", "24.08"] | ||||
|     container: | ||||
|       image: ghcr.io/flathub-infra/flatpak-github-actions:freedesktop-${{ matrix.version }} | ||||
|       options: --privileged | ||||
|     steps: | ||||
|       - name: Checkout repository | ||||
|         uses: actions/checkout@v4 | ||||
|       - name: Build Flatpak extension (${{ matrix.version }}) | ||||
|         uses: flatpak/flatpak-github-actions/flatpak-builder@v6 | ||||
|         with: | ||||
|           bundle: "org.freedesktop.Platform.VulkanLayer.lsfg_vk_${{ matrix.version }}.flatpak" | ||||
|           manifest-path: "flatpak/org.freedesktop.Platform.VulkanLayer.lsfgvk_${{ matrix.version }}.yml" | ||||
|           branch: "${{ matrix.version }}" | ||||
|           cache: false | ||||
|   flatpak-ui: | ||||
|     runs-on: ubuntu-latest | ||||
|     container: | ||||
|       image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-48 | ||||
|       options: --privileged | ||||
|     steps: | ||||
|       - name: Checkout repository | ||||
|         uses: actions/checkout@v4 | ||||
|       - name: Build Flatpak | ||||
|         uses: flatpak/flatpak-github-actions/flatpak-builder@v6 | ||||
|         with: | ||||
|           bundle: "gay.pancake.lsfg-vk-ui.flatpak" | ||||
|           manifest-path: "flatpak/gay.pancake.lsfg-vk-ui.yml" | ||||
|           branch: "develop" | ||||
|           cache: false | ||||
							
								
								
									
										11
									
								
								.github/workflows/package.yml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								.github/workflows/package.yml
									
										
									
									
										vendored
									
									
								
							|  | @ -1,4 +1,5 @@ | |||
| name: Package lsfg-vk | ||||
| run-name: ${{ github.event.workflow_run.head_commit.message }} | ||||
| 
 | ||||
| on: | ||||
|   workflow_run: | ||||
|  | @ -11,9 +12,11 @@ jobs: | |||
|     runs-on: ubuntu-latest | ||||
|     if: ${{ github.event.workflow_run.conclusion == 'success' }} | ||||
|     steps: | ||||
|     # prepare system | ||||
|     - name: Checkout repository | ||||
|       uses: actions/checkout@v4 | ||||
|       with: | ||||
|         ref: ${{ github.event.workflow_run.head_sha }} | ||||
|         fetch-depth: 0 | ||||
|     - name: Download lsfg-vk artifacts | ||||
|       uses: actions/download-artifact@v4 | ||||
|       with: | ||||
|  | @ -23,9 +26,9 @@ jobs: | |||
|         run-id: ${{ github.event.workflow_run.id }} | ||||
|     - name: Package lsfg-vk for various distros | ||||
|       run: | | ||||
|         export VERSION=$(grep -oP ' VERSION\s+\K[\d.]+' CMakeLists.txt) | ||||
|         chmod +x scripts/package/package.sh | ||||
|         bash ./scripts/package/package.sh | ||||
|         export VERSION=1.0.0 | ||||
|         chmod +x ./package/package.sh | ||||
|         ./package/package.sh | ||||
|     - name: Upload lsfg-vk for dpkg | ||||
|       uses: actions/upload-artifact@v4 | ||||
|       with: | ||||
|  |  | |||
							
								
								
									
										48
									
								
								.github/workflows/package_ci.yml
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								.github/workflows/package_ci.yml
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,48 @@ | |||
| name: (CI) Package lsfg-vk | ||||
| run-name: ${{ github.event.workflow_run.head_commit.message }} | ||||
| 
 | ||||
| on: | ||||
|   workflow_run: | ||||
|     workflows: ["(CI) Build lsfg-vk"] | ||||
|     types: | ||||
|       - completed | ||||
| 
 | ||||
| jobs: | ||||
|   package: | ||||
|     runs-on: ubuntu-latest | ||||
|     if: ${{ github.event.workflow_run.conclusion == 'success' }} | ||||
|     steps: | ||||
|     - name: Checkout repository | ||||
|       uses: actions/checkout@v4 | ||||
|       with: | ||||
|         ref: ${{ github.event.workflow_run.head_sha }} | ||||
|         fetch-depth: 0 | ||||
|     - name: Download lsfg-vk artifacts | ||||
|       uses: actions/download-artifact@v4 | ||||
|       with: | ||||
|         name: lsfg-vk | ||||
|         path: . | ||||
|         github-token: ${{ secrets.GITHUB_TOKEN }} | ||||
|         run-id: ${{ github.event.workflow_run.id }} | ||||
|     - name: Package lsfg-vk for various distros | ||||
|       run: | | ||||
|         chmod +x ./package/package.sh | ||||
|         ./package/package.sh | ||||
|     - name: Upload lsfg-vk for dpkg | ||||
|       uses: actions/upload-artifact@v4 | ||||
|       with: | ||||
|         name: lsfg-vk.dpkg | ||||
|         path: | | ||||
|           *.deb | ||||
|     - name: Upload lsfg-vk for rpm | ||||
|       uses: actions/upload-artifact@v4 | ||||
|       with: | ||||
|         name: lsfg-vk.rpm | ||||
|         path: | | ||||
|           *.rpm | ||||
|     - name: Upload lsfg-vk for alpm | ||||
|       uses: actions/upload-artifact@v4 | ||||
|       with: | ||||
|         name: lsfg-vk.alpm | ||||
|         path: | | ||||
|           *.zst | ||||
							
								
								
									
										122
									
								
								.github/workflows/test.yml
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										122
									
								
								.github/workflows/test.yml
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,122 @@ | |||
| name: (Manual) Build lsfg-vk | ||||
| 
 | ||||
| on: | ||||
|   issue_comment: | ||||
|     types: ["created"] | ||||
| 
 | ||||
| permissions: | ||||
|   pull-requests: write | ||||
| 
 | ||||
| jobs: | ||||
|   build: | ||||
|     runs-on: ubuntu-latest | ||||
|     if: | | ||||
|       github.event.issue.pull_request && | ||||
|       github.event.comment.body == '@actions build' && | ||||
|       github.event.comment.user.login == 'PancakeTAS' | ||||
|     steps: | ||||
|     # prepare system | ||||
|     - name: Find commit hash | ||||
|       id: prRef | ||||
|       run: | | ||||
|         echo "ref=$(gh pr view $PR_NUMBER --repo ${{ github.repository }} --json headRefName \ | ||||
|           | jq -r '.headRefName')" >> $GITHUB_OUTPUT | ||||
|       env: | ||||
|         GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||
|         PR_NUMBER: ${{ github.event.issue.number }} | ||||
|     - name: Checkout repository | ||||
|       uses: actions/checkout@v4 | ||||
|       with: | ||||
|         ref: ${{ steps.prRef.outputs.ref }} | ||||
|         fetch-depth: 0 | ||||
|     - name: Install build dependencies | ||||
|       uses: awalsh128/cache-apt-pkgs-action@latest | ||||
|       with: | ||||
|         packages: git wget xvfb | ||||
|           clang clang-tools llvm rustup | ||||
|           cmake ninja-build pkg-config | ||||
|           libdecor-0-0 libvulkan-dev | ||||
|           libgtk-4-dev libadwaita-1-dev | ||||
|         version: 1.0 | ||||
|         execute_install_scripts: true | ||||
|     - name: Install rust dependency | ||||
|       run: | | ||||
|         rustup default stable | ||||
|     # build the project | ||||
|     - name: Configure with CMake and Ninja | ||||
|       run: | | ||||
|         cmake -B build -G Ninja \ | ||||
|           -DCMAKE_BUILD_TYPE=Debug \ | ||||
|           -DCMAKE_INSTALL_PREFIX=./target \ | ||||
|           -DCMAKE_C_COMPILER=clang \ | ||||
|           -DCMAKE_CXX_COMPILER=clang++ | ||||
|     - name: Build with Ninja | ||||
|       run: | | ||||
|         ninja -C build | ||||
|     - name: Install with CMake | ||||
|       run: | | ||||
|         cmake --install build | ||||
|     - name: Build lsfg-vk-ui | ||||
|       run: | | ||||
|         pushd ui | ||||
|         chmod +x ./build_appimage.sh | ||||
|         ./build_appimage.sh | ||||
|         popd | ||||
|     - name: Install lsfg-vk-ui | ||||
|       run: | | ||||
|         mkdir -p target/{bin,share/applications,share/icons/hicolor/256x256/apps} | ||||
|         mv ui/lsfg-vk-ui.AppImage target/bin/lsfg-vk-ui | ||||
|         cp ui/rsc/gay.pancake.lsfg-vk-ui.desktop target/share/applications/lsfg-vk-ui.desktop | ||||
|         cp ui/rsc/icon.png target/share/icons/hicolor/256x256/apps/gay.pancake.lsfg-vk-ui.png | ||||
|     # create packages for various distros | ||||
|     - name: Package lsfg-vk for various distros | ||||
|       run: | | ||||
|         cp -rv target/* . | ||||
|         chmod +x ./package/package.sh | ||||
|         ./package/package.sh | ||||
|     # upload all files | ||||
|     - name: Upload lsfg-vk artifact | ||||
|       uses: actions/upload-artifact@v4 | ||||
|       with: | ||||
|         name: lsfg-vk | ||||
|         path: | | ||||
|           target/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json | ||||
|           target/share/applications/lsfg-vk-ui.desktop | ||||
|           target/share/icons/hicolor/256x256/apps/gay.pancake.lsfg-vk-ui.png | ||||
|           target/lib/liblsfg-vk.so | ||||
|           target/bin/lsfg-vk-ui | ||||
|     - name: Upload lsfg-vk artifact (without UI) | ||||
|       uses: actions/upload-artifact@v4 | ||||
|       with: | ||||
|         name: lsfg-vk_noui | ||||
|         path: | | ||||
|           target/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json | ||||
|           target/lib/liblsfg-vk.so | ||||
|     - name: Upload lsfg-vk for dpkg | ||||
|       uses: actions/upload-artifact@v4 | ||||
|       with: | ||||
|         name: lsfg-vk.dpkg | ||||
|         path: | | ||||
|           *.deb | ||||
|     - name: Upload lsfg-vk for rpm | ||||
|       uses: actions/upload-artifact@v4 | ||||
|       with: | ||||
|         name: lsfg-vk.rpm | ||||
|         path: | | ||||
|           *.rpm | ||||
|     - name: Upload lsfg-vk for alpm | ||||
|       uses: actions/upload-artifact@v4 | ||||
|       with: | ||||
|         name: lsfg-vk.alpm | ||||
|         path: | | ||||
|           *.zst | ||||
|     # comment on pull request | ||||
|     - name: Comment on PR | ||||
|       uses: thollander/actions-comment-pull-request@v3 | ||||
|       with: | ||||
|         pr-number: ${{ github.event.issue.number }} | ||||
|         message: | | ||||
|           **Development Build** | ||||
| 
 | ||||
|           I have built this lsfg-vk pull request for you: | ||||
|           https://github.com/PancakeTAS/lsfg-vk/actions/runs/${{ github.run_id }} | ||||
|  | @ -20,7 +20,6 @@ endif() | |||
| 
 | ||||
| # main project | ||||
| project(lsfg-vk | ||||
|     VERSION 1.0.0 | ||||
|     DESCRIPTION "Lossless Scaling Frame Generation on Linux" | ||||
|     LANGUAGES CXX) | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										30
									
								
								flatpak/gay.pancake.lsfg-vk-ui.metainfo.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								flatpak/gay.pancake.lsfg-vk-ui.metainfo.xml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,30 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <component type="desktop-application"> | ||||
|   <id>gay.pancake.lsfg-vk-ui</id> | ||||
| 
 | ||||
|   <name>lsfg-vk-ui</name> | ||||
|   <summary>Lossless Scaling Frame Generation on Linux (user interface only)</summary> | ||||
|   <developer id="gay.pancake"> | ||||
|     <name>PancakeTAS</name> | ||||
|   </developer> | ||||
| 
 | ||||
|   <url type="homepage">https://github.com/PancakeTAS/lsfg-vk</url> | ||||
|   <url type="bugtracker">https://github.com/PancakeTAS/lsfg-vk/issues</url> | ||||
|   <url type="faq">https://github.com/PancakeTAS/lsfg-vk/wiki</url> | ||||
|   <url type="help">https://github.com/PancakeTAS/lsfg-vk/wiki</url> | ||||
| 
 | ||||
|   <metadata_license>MIT</metadata_license> | ||||
|   <project_license>MIT</project_license> | ||||
| 
 | ||||
|   <description> | ||||
|     <p>The lsfg-vk project brings Lossless Scaling's frame generation to Linux users by acting as a Vulkan layer inbetween your game and your graphics card.</p> | ||||
|   </description> | ||||
| 
 | ||||
|   <releases> | ||||
|     <release date="2025-08-28" version="1.1.0-dev" /> | ||||
|     <release date="2025-07-30" version="1.0.0" /> | ||||
|   </releases> | ||||
| 
 | ||||
|   <launchable type="desktop-id">gay.pancake.lsfg-vk-ui.desktop</launchable> | ||||
|   <content_rating type="oars-1.1" /> | ||||
| </component> | ||||
							
								
								
									
										37
									
								
								flatpak/gay.pancake.lsfg-vk-ui.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								flatpak/gay.pancake.lsfg-vk-ui.yml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,37 @@ | |||
| id: gay.pancake.lsfg-vk-ui | ||||
| command: lsfg-vk-ui | ||||
| default-branch: develop | ||||
| 
 | ||||
| runtime: org.gnome.Platform | ||||
| runtime-version: '48' | ||||
| sdk: org.gnome.Sdk | ||||
| 
 | ||||
| finish-args: | ||||
|   - --share=ipc | ||||
|   - --socket=x11 | ||||
|   - --socket=wayland | ||||
|   - --device=dri | ||||
|   - --filesystem=xdg-config | ||||
| 
 | ||||
| sdk-extensions: | ||||
|   - org.freedesktop.Sdk.Extension.rust-stable | ||||
| 
 | ||||
| build-options: | ||||
|   append-path: /usr/lib/sdk/rust-stable/bin | ||||
|   build-args: | ||||
|     - --share=network | ||||
| 
 | ||||
| modules: | ||||
|   - name: lsfg-vk-ui | ||||
|     buildsystem: simple | ||||
|     build-commands: | ||||
|       - cargo build --release --locked | ||||
|       - install -Dm755 ./target/release/lsfg-vk-ui /app/bin/lsfg-vk-ui | ||||
|       - install -Dm644 ./rsc/gay.pancake.lsfg-vk-ui.desktop /app/share/applications/gay.pancake.lsfg-vk-ui.desktop | ||||
|       - install -Dm644 ./rsc/icon.png /app/share/icons/hicolor/256x256/apps/gay.pancake.lsfg-vk-ui.png | ||||
|       - install -Dm644 ./gay.pancake.lsfg-vk-ui.metainfo.xml /app/share/metainfo/gay.pancake.lsfg-vk-ui.metainfo.xml | ||||
|     sources: | ||||
|       - type: dir | ||||
|         path: ../ui | ||||
|       - type: file | ||||
|         path: gay.pancake.lsfg-vk-ui.metainfo.xml | ||||
|  | @ -1,8 +1,10 @@ | |||
| id: org.freedesktop.Platform.VulkanLayer.lsfgvk | ||||
| branch: '23.08' | ||||
| default-branch: develop | ||||
| 
 | ||||
| runtime: org.freedesktop.Platform | ||||
| runtime-version: '23.08' | ||||
| sdk: org.freedesktop.Sdk | ||||
| branch: '23.08' | ||||
| build-extension: true | ||||
| 
 | ||||
| sdk-extensions: | ||||
|  | @ -10,21 +12,19 @@ sdk-extensions: | |||
| 
 | ||||
| build-options: | ||||
|   prefix: /usr/lib/extensions/vulkan/lsfgvk | ||||
|   append-path: /usr/lib/sdk/llvm18/bin | ||||
|   prepend-ld-library-path: /usr/lib/sdk/llvm18/lib | ||||
| 
 | ||||
| modules: | ||||
|   - name: lsfg-vk | ||||
|     buildsystem: cmake-ninja | ||||
|     build-options: | ||||
|       append-path: /usr/lib/sdk/llvm18/bin | ||||
|       prepend-ld-library-path: /usr/lib/sdk/llvm18/lib | ||||
|     config-opts: | ||||
|       - -DCMAKE_BUILD_TYPE=Release | ||||
|       - -DCMAKE_C_COMPILER=clang | ||||
|       - -DCMAKE_CXX_COMPILER=clang++ | ||||
|       - -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=On | ||||
|     sources: | ||||
|       - type: git | ||||
|         url: https://github.com/PancakeTAS/lsfg-vk.git | ||||
|         branch: release | ||||
|       - type: dir | ||||
|         path: .. | ||||
|       - type: patch | ||||
|         path: VkLayer_LS_frame_generation.patch | ||||
|  | @ -1,8 +1,10 @@ | |||
| id: org.freedesktop.Platform.VulkanLayer.lsfgvk | ||||
| branch: '24.08' | ||||
| default-branch: develop | ||||
| 
 | ||||
| runtime: org.freedesktop.Platform | ||||
| runtime-version: '24.08' | ||||
| sdk: org.freedesktop.Sdk | ||||
| branch: '24.08' | ||||
| build-extension: true | ||||
| 
 | ||||
| sdk-extensions: | ||||
|  | @ -10,21 +12,19 @@ sdk-extensions: | |||
| 
 | ||||
| build-options: | ||||
|   prefix: /usr/lib/extensions/vulkan/lsfgvk | ||||
|   append-path: /usr/lib/sdk/llvm20/bin | ||||
|   prepend-ld-library-path: /usr/lib/sdk/llvm20/lib | ||||
| 
 | ||||
| modules: | ||||
|   - name: lsfg-vk | ||||
|     buildsystem: cmake-ninja | ||||
|     build-options: | ||||
|       append-path: /usr/lib/sdk/llvm20/bin | ||||
|       prepend-ld-library-path: /usr/lib/sdk/llvm20/lib | ||||
|     config-opts: | ||||
|       - -DCMAKE_BUILD_TYPE=Release | ||||
|       - -DCMAKE_C_COMPILER=clang | ||||
|       - -DCMAKE_CXX_COMPILER=clang++ | ||||
|       - -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=On | ||||
|     sources: | ||||
|       - type: git | ||||
|         url: https://github.com/PancakeTAS/lsfg-vk.git | ||||
|         branch: release | ||||
|       - type: dir | ||||
|         path: .. | ||||
|       - type: patch | ||||
|         path: VkLayer_LS_frame_generation.patch | ||||
|  | @ -1,6 +1,6 @@ | |||
| pkgname = lsfg-vk | ||||
| pkgbase = lsfg-vk | ||||
| pkgver = ${VERSION}-1 | ||||
| pkgver = ${ALPM_VERSION}-1 | ||||
| pkgdesc = "Lossless Scaling Frame Generation on Linux via DXVK/Vulkan" | ||||
| url = https://discord.gg/losslessscaling | ||||
| packager = "PancakeTAS <???>" | ||||
|  | @ -2,7 +2,7 @@ Package: lsfg-vk | |||
| Description: Lossless Scaling Frame Generation on Linux via DXVK/Vulkan | ||||
| Homepage: https://discord.gg/losslessscaling | ||||
| Maintainer: "PancakeTAS <???>" | ||||
| Version: ${VERSION}-1 | ||||
| Version: ${DPKG_VERSION} | ||||
| Architecture: amd64 | ||||
| Section: utils | ||||
| Priority: optional | ||||
|  | @ -1,11 +1,17 @@ | |||
| #!/bin/bash | ||||
| if [ -z "$VERSION" ]; then | ||||
|     echo "VERSION environment variable is not set." | ||||
|     exit 1 | ||||
|     set -eux | ||||
|     export VERSION="1.1.0" | ||||
|     export ALPM_VERSION=$(git describe --long --tags | sed 's/\([^-]*-\)g/r\1/;s/-/./g' | sed "s/.\..\../$VERSION/") | ||||
|     export DPKG_VERSION=$(git describe --long --tags | sed 's/\([^-]*-\)g/r\1/;s/-/./g' | sed "s/^v.\..\..\.r[1-9]\+./$VERSION~git$(date '+%Y%m%d')./") | ||||
|     export RPM_VERSION=$(git describe --long --tags | sed 's/\([^-]*-\)g/r\1/;s/-/./g' | sed "s/v.\..\...r/$VERSION^/") | ||||
| else | ||||
|     set -eux | ||||
|     export ALPM_VERSION="$VERSION" | ||||
|     export DPKG_VERSION="$VERSION" | ||||
|     export RPM_VERSION="$VERSION" | ||||
| fi | ||||
| 
 | ||||
| set -eux | ||||
| 
 | ||||
| # set permission bits | ||||
| chmod 755 bin/lsfg-vk-ui | ||||
| chmod 755 lib/liblsfg-vk.so | ||||
|  | @ -17,7 +23,7 @@ chmod 644 share/icons/hicolor/256x256/apps/gay.pancake.lsfg-vk-ui.png | |||
| echo "Building ALPM package..." | ||||
| 
 | ||||
| mkdir -pv alpm | ||||
| envsubst < scripts/package/alpm.PKGINFO > alpm/.PKGINFO | ||||
| envsubst < package/alpm.PKGINFO > alpm/.PKGINFO | ||||
| 
 | ||||
| mkdir -pv alpm/usr/{bin,lib,share/vulkan/implicit_layer.d,share/applications,share/icons/hicolor/256x256/apps} | ||||
| cp -v bin/lsfg-vk-ui alpm/usr/bin/lsfg-vk-ui | ||||
|  | @ -36,7 +42,7 @@ tar -cvzf "lsfg-vk-$VERSION.x86_64.tar.zst" -C alpm \ | |||
| echo "Building DEB package..." | ||||
| 
 | ||||
| mkdir -pv deb/DEBIAN | ||||
| envsubst < scripts/package/dpkg.control > deb/DEBIAN/control | ||||
| envsubst < package/dpkg.control > deb/DEBIAN/control | ||||
| 
 | ||||
| mkdir -pv deb/usr/{bin,lib,share/vulkan/implicit_layer.d,share/applications,share/icons/hicolor/256x256/apps} | ||||
| cp -v bin/lsfg-vk-ui deb/usr/bin/lsfg-vk-ui | ||||
|  | @ -54,7 +60,7 @@ dpkg-deb --root-owner-group --build deb "lsfg-vk-$VERSION.x86_64.deb" | |||
| echo "Building RPM package..." | ||||
| 
 | ||||
| mkdir -pv rpm | ||||
| envsubst < scripts/package/rpm.spec > rpm/lsfg-vk.spec | ||||
| envsubst < package/rpm.spec > rpm/lsfg-vk.spec | ||||
| 
 | ||||
| mkdir -pv rpm/SOURCES | ||||
| cp -v bin/lsfg-vk-ui rpm/SOURCES | ||||
|  | @ -67,7 +73,7 @@ cp -v share/icons/hicolor/256x256/apps/gay.pancake.lsfg-vk-ui.png \ | |||
|     rpm/SOURCES/gay.pancake.lsfg-vk-ui.png | ||||
| 
 | ||||
| rpmbuild -bb rpm/lsfg-vk.spec --define "_topdir $(pwd)/rpm" | ||||
| mv -v "rpm/RPMS/x86_64/lsfg-vk-$VERSION-1.x86_64.rpm" "lsfg-vk-$VERSION.x86_64.rpm" | ||||
| mv -v "rpm/RPMS/x86_64/lsfg-vk-$RPM_VERSION-1.x86_64.rpm" "lsfg-vk-$VERSION.x86_64.rpm" | ||||
| 
 | ||||
| # cleanup | ||||
| rm -rf alpm deb rpm | ||||
|  | @ -1,6 +1,6 @@ | |||
| Name: lsfg-vk | ||||
| Summary: Lossless Scaling Frame Generation on Linux via DXVK/Vulkan | ||||
| Version: ${VERSION} | ||||
| Version: ${RPM_VERSION} | ||||
| Release: 1%{?dist} | ||||
| URL: https://discord.gg/losslessscaling | ||||
| Packager: "PancakeTAS <???>" | ||||
|  | @ -26,6 +26,11 @@ using namespace Config; | |||
| GlobalConfiguration Config::globalConf{}; | ||||
| std::optional<GameConfiguration> Config::currentConf{}; | ||||
| 
 | ||||
| extern "C" __attribute__((visibility("default"))) | ||||
| void lsfg_get_active_conf(Configuration *cfg) { | ||||
|     *cfg = Config::activeConf; | ||||
| } | ||||
| 
 | ||||
| namespace { | ||||
|     /// Turn a string into a VkPresentModeKHR enum value.
 | ||||
|     VkPresentModeKHR into_present(const std::string& mode) { | ||||
|  |  | |||
							
								
								
									
										2
									
								
								ui/Cargo.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								ui/Cargo.lock
									
										
									
										generated
									
									
									
								
							|  | @ -682,7 +682,7 @@ checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" | |||
| 
 | ||||
| [[package]] | ||||
| name = "lsfg-vk-ui" | ||||
| version = "1.0.0" | ||||
| version = "0.0.0" | ||||
| dependencies = [ | ||||
|  "anyhow", | ||||
|  "glib-build-tools", | ||||
|  |  | |||
|  | @ -1,6 +1,5 @@ | |||
| [package] | ||||
| name = "lsfg-vk-ui" | ||||
| version = "1.0.0" | ||||
| edition = "2021" | ||||
| 
 | ||||
| [dependencies] | ||||
|  |  | |||
|  | @ -8,10 +8,6 @@ URUNTIME="https://github.com/VHSgunzo/uruntime/releases/latest/download/uruntime | |||
| URUNTIME_LITE="https://github.com/VHSgunzo/uruntime/releases/latest/download/uruntime-appimage-dwarfs-lite-x86_64" | ||||
| SHARUN="https://github.com/VHSgunzo/sharun/releases/latest/download/sharun-x86_64-aio" | ||||
| 
 | ||||
| LIBXML_URL="https://github.com/pkgforge-dev/llvm-libs-debloated/releases/download/continuous/libxml2-iculess-x86_64.pkg.tar.zst" | ||||
| MESA_URL="https://github.com/pkgforge-dev/llvm-libs-debloated/releases/download/continuous/mesa-mini-x86_64.pkg.tar.zst" | ||||
| LLVM_URL="https://github.com/pkgforge-dev/llvm-libs-debloated/releases/download/continuous/llvm-libs-nano-x86_64.pkg.tar.zst" | ||||
| 
 | ||||
| VERSION=$(awk -F'=|"' '/^version/{print $3}' ./Cargo.toml) | ||||
| echo "$VERSION-dev" > ~/version | ||||
| 
 | ||||
|  | @ -25,16 +21,7 @@ chmod +x uruntime uruntime-lite | |||
| 
 | ||||
| # build lsfg-vk-ui | ||||
| echo "Building lsfg-vk-ui..." | ||||
| cargo build --release # doesn't compile with debloated llvm | ||||
| 
 | ||||
| # install debloated dependencies | ||||
| echo "Installing debloated packages..." | ||||
| wget -O libxml2.pkg.tar.zst "$LIBXML_URL" | ||||
| wget -O mesa.pkg.tar.zst "$MESA_URL" | ||||
| wget -O llvm-libs.pkg.tar.zst "$LLVM_URL" | ||||
| 
 | ||||
| #pacman -U --noconfirm *.pkg.tar.zst | ||||
| rm -fv *.pkg.tar.zst | ||||
| cargo build --release | ||||
| 
 | ||||
| # deploy app directory | ||||
| echo "Deploying app directory..." | ||||
		Loading…
	
	Add table
		
		Reference in a new issue