refactor: clarify Quest frame shaders

This commit is contained in:
XxJSONDeruloxX committed 2026-10-14 19:24:19 -04:00
1 parent 2ef2d4b53d
commit dbd277d5bd
2 files changed
+27 -5

No files matched your search

+25 -3
View File
@@ -107,12 +107,12 @@ certificate matched the expected release certificate. Updating the standard
previous APK is retained locally under ignored `build/installed-original.apk`.
No uninstall or data reset was performed.
The latest source adds the Quest-specific SteamVR Start flow, ongoing SteamVR
At that stage, source added the Quest-specific SteamVR Start flow, ongoing SteamVR
status telemetry, a clean native Back/exit path, and bounded Android event
draining. It removes UI-thread waits from native surface handoff to avoid a
NativeActivity destruction deadlock, and restores proximity after tests unless
`--keep-awake` is specified. These changes compile locally but require a fresh
integrated APK before their device validation.
`--keep-awake` is specified. These changes compiled locally and subsequently
shipped in the integrated APK described in the final build evidence.
Later device runs stopped rendering because the OS displayed **Finding position
in room**, saying it cannot detect headset movement. Logs show the XR session
@@ -213,6 +213,28 @@ Vulkan 1.2 for its core image-format-list use. Focused Kotlin tests and the new
validation classifier tests pass. The broad Linux suite had one unrelated
AppImage log-tail failure under WSL; the full CI suite passed at `040d31c1`.
### Final build and requested pause
Full CI run 38652176155 passed at `2ef2d4b5`, including the expanded IPC tests,
Kotlin/Python tests and ELF checks. The APK was downloaded, release-signed with
the external key and installed over the standard package with `adb install -r`.
The device provider confirms `remote clean · feat/quest-openxr at 2ef2d4b`,
version 0.4.0, retained r9 runtime and an idle session. MainActivity launches
without an AndroidRuntime error. No uninstall or data reset was used.
A final cosmetic shader-variable cleanup compiled for both native targets and
was deployed in the companion. Its repeated device test passed both Android IPC
executables and the known-pattern GPU upload: 144 received, zero rejected,
126 uploaded, source/GPU-verified ID 144 and checksum 1815165381. The earlier
interrupted repeat remains a recorded failure; sustained tracked rendering and
guest SteamVR remain unverified. The unrelated AppImage test suite passed all
eight cases on a focused rerun without code changes.
The diagnostic companion is stopped, simulated proximity is restored to far,
and the USB stay-awake setting introduced during testing is restored to off.
The user requested pausing the goal until they can help with Steam sign-in,
on-device Debugging tools, tracking and controllers. The goal is not complete.
## Remaining stages
- Android/Linux eye-image bridge and frame ownership/synchronization.
+2 -2
View File
@@ -561,9 +561,9 @@ private:
glGenFramebuffers(1, &framebuffer_);
if (frameInput_) {
vertex = shader(GL_VERTEX_SHADER,
"#version 300 es\nout vec2 uv; uniform float eye; void main(){vec2 p=vec2(float((gl_VertexID<<1)&2),float(gl_VertexID&2));uv=vec2(p.x*0.5+eye*0.5,1.0-p.y);gl_Position=vec4(p*2.0-1.0,0.0,1.0);}");
"#version 300 es\nout vec2 uv; uniform float eye; void main(){vec2 coordinate=vec2(float((gl_VertexID<<1)&2),float(gl_VertexID&2));uv=vec2(coordinate.x*0.5+eye*0.5,1.0-coordinate.y);gl_Position=vec4(coordinate*2.0-1.0,0.0,1.0);}");
fragment = shader(GL_FRAGMENT_SHADER,
"#version 300 es\nprecision highp float; in vec2 uv; uniform sampler2D source; uniform float eye; out vec4 outputColor; void main(){float edge=0.5/float(textureSize(source,0).x);vec2 p=vec2(clamp(uv.x,eye*0.5+edge,(eye+1.0)*0.5-edge),uv.y);outputColor=texture(source,p);}");
"#version 300 es\nprecision highp float; in vec2 uv; uniform sampler2D source; uniform float eye; out vec4 outputColor; void main(){float edge=0.5/float(textureSize(source,0).x);vec2 coordinate=vec2(clamp(uv.x,eye*0.5+edge,(eye+1.0)*0.5-edge),uv.y);outputColor=texture(source,coordinate);}");
sourceProgram_ = glCreateProgram(); glAttachShader(sourceProgram_, vertex); glAttachShader(sourceProgram_, fragment);
glLinkProgram(sourceProgram_); glDeleteShader(vertex); glDeleteShader(fragment);
glGetProgramiv(sourceProgram_, GL_LINK_STATUS, &linked);