mirror of
https://github.com/mitch030504/Wiicompiled_VR_Frame.git
synced 2026-10-06 04:04:18 +02:00
Implement GX Thread for Asynchronous Rendering
- Introduced a new GX thread to handle the rendering pipeline, allowing the game thread to post commands without blocking. - Added `gx_thread.h` and `gx_thread.cpp` to manage the command ring buffer and thread synchronization. - Updated `vi.cpp` to utilize the GX thread for rendering tasks, improving frame pacing and responsiveness. - Modified `main.cpp` to configure and start the GX thread, ensuring it integrates with the existing rendering workflow. - Enhanced `openxr_integration.cpp` to register the GX thread with OpenXR for better performance in VR scenarios. - Refactored `settings_overlay.cpp` to remove unnecessary waits for the frame worker, as the overlay now draws directly into the game thread's ImGui frame. - Improved error handling and logging in the GX thread to capture exceptions during command execution.
This commit is contained in:
1 parent
ffa63fa60a
commit
6a1641e0b7
33 files changed
+1532
-527
No files matched your search
@@ -78,7 +78,7 @@ object GameStorage {
|
||||
// Written line by line: trimIndent runs after interpolation, so an interpolated line
|
||||
// would take the indent off every other one.
|
||||
val lines = mutableListOf(
|
||||
"# WiiCompiled Quest configuration. Edit with the launcher, the in-game panel or adb pull/push.",
|
||||
"# WiiCompiled Quest configuration. Edit with the launcher or the in-game panel. After an adb push, run chmod 664 on it or the app can no longer save settings.",
|
||||
"[paths]",
|
||||
"dvd_root = \"${discDirectory(context).absolutePath}\"",
|
||||
)
|
||||
|
||||
@@ -227,6 +227,11 @@ class SettingsPage(
|
||||
read = { it.bool("video", "skip_unready_pipelines") ?: true },
|
||||
write = { c, value -> c.setBool("video", "skip_unready_pipelines", value) },
|
||||
)
|
||||
toggle(
|
||||
R.string.graphics_gx_thread, R.string.graphics_gx_thread_helper,
|
||||
read = { it.bool("video", "gx_thread") ?: true },
|
||||
write = { c, value -> c.setBool("video", "gx_thread", value) },
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -188,6 +188,8 @@
|
||||
<string name="graphics_bloom_helper">Bloom\'s bright glow reads poorly in a headset, so it starts off.</string>
|
||||
<string name="graphics_skip_unready">Prevent shader stutters</string>
|
||||
<string name="graphics_skip_unready_helper">Skips a draw for a moment while its shader compiles instead of pausing the game.</string>
|
||||
<string name="graphics_gx_thread">Graphics thread</string>
|
||||
<string name="graphics_gx_thread_helper">Prepares the drawing on a second CPU core so busy scenes keep their speed. Turn off only to compare against the single-threaded path. Takes effect on the next launch.</string>
|
||||
|
||||
<!-- Controls tab -->
|
||||
<string name="section_controls">Controllers</string>
|
||||
|
||||
Reference in new issue
Block a user