mirror of
https://github.com/mitch030504/Wiicompiled_VR_Frame.git
synced 2026-10-06 05:00:27 +02:00
Added foveated rendering for the Quest
- Eyes render under a VK_EXT_fragment_density_map: full rate around each eye's forward direction, 2x2 then 4x4 pixel blocks towards the edges ([vr] foveation = off|low|medium|high, default off). XR_FB_foveation cannot help here: the runtime's maps only shape passes drawing into its swapchain, and the eyes reach it through a copy. - aurora-main/patches/dawn/aurora_fdm.inc: Dawn enables the extension only on request and for dynamic rendering, flags every render pipeline, and chains an immutable RG8 map into any pass whose first color attachment is a view bound to one (ABI: include/aurora/dawn_fdm_abi.h). - android/Build-QuestDawn.ps1 builds the pinned Dawn revision with those patches for arm64 (dawn-build CI flags, protobuf off) into a cached package; Build-Quest.ps1 links it (-StockDawn opts out) and AuroraDawnProvider.cmake enables the ABI from its manifest. - lib/gfx/foveation.hpp generates the maps (32 px per texel, densities 255/127/63); an eye is foveated only when single_pass_eyes draws it in one render pass. Menus never are. - Live level from the headset panel's VR tab and the launcher; the launch decides whether the device has maps. debug.wiicompiled.foveation and debug.wiicompiled.fdm for A/B. - Tests: Foveation cases in gx_fifo_tests, mkw_vr_config_tests. Docs: OPENXR.md, quest-port.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
ceeeba0332
commit
cc653272c8
30 files changed
+1527
-14
No files matched your search
+12
-1
@@ -15,13 +15,19 @@
|
||||
# Prerequisites (see docs/quest-port.md): JDK 17, the Android SDK with NDK
|
||||
# 29.0.14206865 and CMake 3.22.1, and android/Prepare-QuestDependencies.ps1
|
||||
# having staged the SDL3 AAR.
|
||||
#
|
||||
# Dawn is built from source with Aurora's patches (android/Build-QuestDawn.ps1:
|
||||
# fragment density maps for foveated rendering) and cached under
|
||||
# .scratch/quest-dawn; the first build takes a while. -StockDawn links the
|
||||
# stock prebuilt package instead, which leaves foveated rendering unavailable.
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[string]$Generated = '',
|
||||
[string]$Dependencies = '',
|
||||
[string]$CMakeDir = '',
|
||||
[ValidateSet('debug', 'release')] [string]$Configuration = 'debug',
|
||||
[switch]$Install
|
||||
[switch]$Install,
|
||||
[switch]$StockDawn
|
||||
)
|
||||
$ErrorActionPreference = 'Stop'
|
||||
|
||||
@@ -79,6 +85,11 @@ $gradleArgs = @(
|
||||
"-PmkwGeneratedDir=$Generated"
|
||||
)
|
||||
if ($Dependencies) { $gradleArgs += "-PmkwDependenciesDir=$Dependencies" }
|
||||
if (-not $StockDawn) {
|
||||
$dawnWork = Join-Path $repo '.scratch\quest-dawn'
|
||||
& (Join-Path $root 'Build-QuestDawn.ps1') -WorkDirectory $dawnWork
|
||||
$gradleArgs += "-PmkwQuestDawnDir=$(Join-Path $dawnWork 'package')"
|
||||
}
|
||||
$gradleArgs += $task
|
||||
Write-Host "gradlew $($gradleArgs -join ' ')"
|
||||
& (Join-Path $root 'gradlew.bat') @gradleArgs
|
||||
|
||||
Reference in new issue
Block a user