mirror of
https://github.com/mitch030504/Wiicompiled_VR_Frame.git
synced 2026-10-06 06:00:25 +02:00
Refactor stereo frame worker and interpolation tests for enhanced VR performance
- Updated stereo_frame_worker_smoke.cpp to allow dynamic headset rates and prediction lead time. - Improved logging to include motion diagnostics and adjusted frame submission logic based on headset frequency. - Enhanced stereo_interpolation_test.cpp with additional tests for camera motion separation and playback cadence. - Introduced MkwVRReadSceneView function to read the camera view matrix for improved scene rendering. - Modified VR first-person logic to support scene view reading and validation. - Added scene_camera.hpp to encapsulate camera motion handling and inverse view calculations. - Ensured that the VR integration layer correctly logs motion diagnostics and handles scene playback accurately.
This commit is contained in:
1 parent
85fab2fa09
commit
e7eab8a6b2
19 files changed
+1978
-114
No files matched your search
@@ -582,7 +582,8 @@ static Mat4x4<float> effective_projection() noexcept {
|
||||
|
||||
UniformRanges build_uniform(const ShaderInfo& info, u32 vtxStart, const BindGroupRanges& ranges,
|
||||
const FrameInterpolationDrawIdentity& drawIdentity, bool perspective,
|
||||
uint16_t usedPnMtxMask) noexcept {
|
||||
uint16_t usedPnMtxMask, DrawVertexMotion vertexMotion,
|
||||
const DrawVertexShape& vertexShape) noexcept {
|
||||
ZoneScoped;
|
||||
|
||||
auto [buf, range] = gfx::map_uniform(info.uniformSize);
|
||||
@@ -793,6 +794,7 @@ UniformRanges build_uniform(const ShaderInfo& info, u32 vtxStart, const BindGrou
|
||||
.normalMatrixCount = layout.nrmCount,
|
||||
.perspective = perspective,
|
||||
.indexedMatrices = info.indexAttr.test(GX_VA_PNMTXIDX),
|
||||
.vertexMotion = vertexMotion,
|
||||
.nativeEfbEffect = nativeEfbEffect,
|
||||
.compositeDepthCopy = nativeEfbEffect ? compositeDepthCopy : nullptr,
|
||||
};
|
||||
@@ -818,6 +820,8 @@ UniformRanges build_uniform(const ShaderInfo& info, u32 vtxStart, const BindGrou
|
||||
// A compacted position region holds the current matrix at slot 0.
|
||||
.currentMatrix = layout.absolutePosRegion ? std::min<size_t>(g_gxState.currentPnMtx, MaxPnMtx - 1) : 0,
|
||||
.indexedMatrices = info.indexAttr.test(GX_VA_PNMTXIDX),
|
||||
.vertexMotion = vertexMotion,
|
||||
.vertexShape = vertexShape,
|
||||
},
|
||||
&previousUniform);
|
||||
g_gxState.stateDirty = false;
|
||||
|
||||
Reference in new issue
Block a user