diff --git a/dist/index.js b/dist/index.js index 7ffa95af..17716455 100644 Binary files a/dist/index.js and b/dist/index.js differ diff --git a/dist/index.js.map b/dist/index.js.map index ccde7107..0d3bde33 100644 Binary files a/dist/index.js.map and b/dist/index.js.map differ 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 + } +}