From 35d92b37f75a989dc24e27693e40a91e0f22528e Mon Sep 17 00:00:00 2001 From: DoctorGester Date: Tue, 6 May 2025 23:30:58 +0200 Subject: [PATCH] Added install_llvmpipe script --- dist/index.js | Bin 15142537 -> 15161486 bytes dist/index.js.map | Bin 16834012 -> 16854779 bytes dist/platforms/windows/build.ps1 | 2 +- dist/platforms/windows/entrypoint.ps1 | 3 ++ dist/platforms/windows/install_llvmpipe.ps1 | 55 ++++++++++++++++++++ 5 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 dist/platforms/windows/install_llvmpipe.ps1 diff --git a/dist/index.js b/dist/index.js index 7ffa95afa17d8170df1abe277b44721221e89e71..177164559508b4712fbeecea080212ab73cb41a7 100644 GIT binary patch delta 12691 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 diff --git a/dist/platforms/windows/build.ps1 b/dist/platforms/windows/build.ps1 index 6b126058..f0c3702c 100644 --- a/dist/platforms/windows/build.ps1 +++ b/dist/platforms/windows/build.ps1 @@ -154,7 +154,7 @@ $_, $customParametersArray = Invoke-Expression('Write-Output -- "" ' + $Env:CUST $unityArgs = @( "-quit", "-batchmode", - "-nographics", + ($Env:LLVMPIPE_INSTALLED -eq "true" ? "-force-opengl" : "-nographics"), "-silent-crashes", "-customBuildName", "`"$Env:BUILD_NAME`"", "-projectPath", "`"$Env:UNITY_PROJECT_PATH`"", diff --git a/dist/platforms/windows/entrypoint.ps1 b/dist/platforms/windows/entrypoint.ps1 index 4d7057e6..17606efa 100644 --- a/dist/platforms/windows/entrypoint.ps1 +++ b/dist/platforms/windows/entrypoint.ps1 @@ -13,6 +13,9 @@ Get-Process -Name regsvr32 | ForEach-Object { Stop-Process -Id $_.Id -Force } # Setup Git Credentials . "c:\steps\set_gitcredential.ps1" +# Install LLVMpipe software graphics driver +. "c:\steps\install_llvmpipe.ps1" + # Activate Unity if ($env:SKIP_ACTIVATION -ne "true") { . "c:\steps\activate.ps1" diff --git a/dist/platforms/windows/install_llvmpipe.ps1 b/dist/platforms/windows/install_llvmpipe.ps1 new file mode 100644 index 00000000..253d9b0c --- /dev/null +++ b/dist/platforms/windows/install_llvmpipe.ps1 @@ -0,0 +1,55 @@ +$Private:repo = "mmozeiko/build-mesa" +$Private:downloadPath = "$Env:TEMP\mesa.zip" +$Private:extractPath = "$Env:TEMP\mesa" +$Private:destinationPath = "$Env:UNITY_PATH\Editor\" + +$LLVMPIPE_INSTALLED = "false" + +try { + # Get the latest release info from GitHub API + $releaseUrl = "https://api.github.com/repos/$repo/releases/latest" + $release = Invoke-RestMethod -Uri $releaseUrl -Headers @{ "User-Agent" = "PowerShell" } + + # Get the download URL for the zip asset + $zipUrl = $release.assets | Where-Object { $_.name -like "mesa-llvmpipe-x64*.zip" } | Select-Object -First 1 -ExpandProperty browser_download_url + + if (-not $zipUrl) { + throw "No zip file found in the latest release." + } + + # Download the zip file + Write-Host "Downloading $zipUrl..." + Invoke-WebRequest -Uri $zipUrl -OutFile $downloadPath + + # Create extraction directory if it doesn't exist + if (-not (Test-Path $extractPath)) { + New-Item -ItemType Directory -Path $extractPath | Out-Null + } + + # Extract the zip file + Write-Host "Extracting $downloadPath to $extractPath..." + Expand-Archive -Path $downloadPath -DestinationPath $extractPath -Force + + # Create destination directory if it doesn't exist + if (-not (Test-Path $destinationPath)) { + New-Item -ItemType Directory -Path $destinationPath | Out-Null + } + + # Copy extracted files to destination + Write-Host "Copying files to $destinationPath..." + Copy-Item -Path "$extractPath\*" -Destination $destinationPath -Recurse -Force + + Write-Host "Successfully downloaded, extracted, and copied Mesa files to $destinationPath" + + $LLVMPIPE_INSTALLED = "true" +} catch { + Write-Error "An error occurred: $_" +} finally { + # Clean up temporary files + if (Test-Path $downloadPath) { + Remove-Item $downloadPath -Force + } + if (Test-Path $extractPath) { + Remove-Item $extractPath -Recurse -Force + } +}