Streaming pop-in, edge-of-view retention + vehicle palette fixes
This commit is contained in:
parent
2854f562c9
commit
4776a8d514
3 changed files with 1003 additions and 43 deletions
|
|
@ -21,6 +21,8 @@ REXCVAR_DECLARE(bool, skate3_native_render_scene_splines);
|
||||||
REXCVAR_DECLARE(bool, skate3_native_render_scene_quadlists);
|
REXCVAR_DECLARE(bool, skate3_native_render_scene_quadlists);
|
||||||
REXCVAR_DECLARE(bool, skate3_native_render_scene_world_items);
|
REXCVAR_DECLARE(bool, skate3_native_render_scene_world_items);
|
||||||
REXCVAR_DECLARE(bool, skate3_native_render_scene_dynamic_items);
|
REXCVAR_DECLARE(bool, skate3_native_render_scene_dynamic_items);
|
||||||
|
REXCVAR_DECLARE(bool, skate3_native_render_scene_retain_offscreen);
|
||||||
|
REXCVAR_DECLARE(bool, skate3_native_render_scene_tex_lookaside);
|
||||||
REXCVAR_DECLARE(bool, skate3_native_render_scene_tex_revalidate);
|
REXCVAR_DECLARE(bool, skate3_native_render_scene_tex_revalidate);
|
||||||
REXCVAR_DECLARE(bool, skate3_native_render_scene_mesh_revalidate);
|
REXCVAR_DECLARE(bool, skate3_native_render_scene_mesh_revalidate);
|
||||||
REXCVAR_DECLARE(bool, skate3_native_render_scene_tex_mips);
|
REXCVAR_DECLARE(bool, skate3_native_render_scene_tex_mips);
|
||||||
|
|
@ -221,6 +223,22 @@ void NativeDebugDialog::OnDraw(ImGuiIO& io) {
|
||||||
REXCVAR_GET(skate3_native_render_scene_quadlists),
|
REXCVAR_GET(skate3_native_render_scene_quadlists),
|
||||||
"Non-indexed quad-list captures (particle systems; off by "
|
"Non-indexed quad-list captures (particle systems; off by "
|
||||||
"default: render as white squares without sprite textures)"));
|
"default: render as white squares without sprite textures)"));
|
||||||
|
REXCVAR_SET(
|
||||||
|
skate3_native_render_scene_retain_offscreen,
|
||||||
|
CvarCheckbox("Retain off-screen statics",
|
||||||
|
REXCVAR_GET(skate3_native_render_scene_retain_offscreen),
|
||||||
|
"Keep recently seen statics drawn while the game view-culls "
|
||||||
|
"them: the smoothed render camera trails the guest pose, so "
|
||||||
|
"without this world geometry visibly tears down right at the "
|
||||||
|
"screen edges during pans/traversal"));
|
||||||
|
REXCVAR_SET(
|
||||||
|
skate3_native_render_scene_tex_lookaside,
|
||||||
|
CvarCheckbox("Texture mip lookaside",
|
||||||
|
REXCVAR_GET(skate3_native_render_scene_tex_lookaside),
|
||||||
|
"Keep decodes displaced by streaming mip rebinds parked by "
|
||||||
|
"their fetch words and swap them back in instantly when the "
|
||||||
|
"words return; kills the black/white-then-reload decal "
|
||||||
|
"recycling while approaching"));
|
||||||
|
|
||||||
ImGui::SeparatorText("Overlays");
|
ImGui::SeparatorText("Overlays");
|
||||||
REXCVAR_SET(skate3_native_render_scene_2d,
|
REXCVAR_SET(skate3_native_render_scene_2d,
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -195,6 +195,13 @@ struct DrawItem {
|
||||||
// (ib_obj, vb_obj, world translation) render into the native outline mask
|
// (ib_obj, vb_obj, world translation) render into the native outline mask
|
||||||
// (see kOutlineShaderSource).
|
// (see kOutlineShaderSource).
|
||||||
bool selected = false;
|
bool selected = false;
|
||||||
|
// Re-appended from the off-screen retention map (edge-of-view guard band):
|
||||||
|
// the game view-culled this item this frame, but the re-timed render
|
||||||
|
// camera trails the guest pose and can still see it. Retained items
|
||||||
|
// outlive their guest-side lifetime guarantees, so the render path draws
|
||||||
|
// only their exact cached decodes: no guest-memory reads, no heals, no
|
||||||
|
// miss enqueues.
|
||||||
|
bool retained = false;
|
||||||
// Bone palette snapshot taken on the game thread: raw staged rows, 3
|
// Bone palette snapshot taken on the game thread: raw staged rows, 3
|
||||||
// float4s per bone (column-vector affine [R | t], model -> world). The
|
// float4s per bone (column-vector affine [R | t], model -> world). The
|
||||||
// guest staging bank is reused draw to draw, hence the copy.
|
// guest staging bank is reused draw to draw, hence the copy.
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue