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
@@ -218,6 +218,17 @@ void aurora_end_frame();
|
||||
// Seal the current frame with an opaque application safety tag. Aurora rejects
|
||||
// an immersive provider packet unless its contentTag matches this exact frame.
|
||||
void aurora_end_frame_tagged(uint64_t contentTag);
|
||||
// aurora_end_frame_tagged() plus the host-owned ImGui frame to present with it (the handle from
|
||||
// aurora_imgui_host_frame_end(), which this call consumes; NULL presents no host ImGui frame).
|
||||
void aurora_end_frame_ex(uint64_t contentTag, void* imguiFrame);
|
||||
// When the host pumps SDL events itself (aurora_update() on the window's thread) and drives
|
||||
// begin/end frame from another thread, this stops those calls from pumping events.
|
||||
void aurora_set_host_event_pump(bool hostPumps);
|
||||
typedef void (*AuroraFrameLogCallback)(char* buffer, uint32_t bufferSize, double windowSeconds,
|
||||
uint32_t frames);
|
||||
// Called with each five-second frame-rate log window (where that log is enabled); a non-empty
|
||||
// buffer is logged as one extra line.
|
||||
void aurora_set_frame_log_callback(AuroraFrameLogCallback callback);
|
||||
/**
|
||||
* Relocates the immersive camera for the frame about to be sealed.
|
||||
*
|
||||
|
||||
Reference in new issue
Block a user