render: drop the static sun forced-failure debug hook
This commit is contained in:
parent
77283fe3fb
commit
b8a8180475
2 changed files with 2 additions and 21 deletions
|
|
@ -710,17 +710,6 @@ REXCVAR_DEFINE_INT32(skate3_native_render_scene_shadow_static_size, 4096,
|
||||||
"~9 cm. Applies live: the map recreates on change.")
|
"~9 cm. Applies live: the map recreates on change.")
|
||||||
.range(1024, 8192)
|
.range(1024, 8192)
|
||||||
.lifecycle(rex::cvar::Lifecycle::kHotReload);
|
.lifecycle(rex::cvar::Lifecycle::kHotReload);
|
||||||
REXCVAR_DEFINE_INT32(skate3_native_render_scene_debug_fail_static_sun, 0,
|
|
||||||
"Skate 3",
|
|
||||||
"DEBUG: make static sun-shadow map creation fail as if "
|
|
||||||
"the allocation had been rejected, driving the "
|
|
||||||
"renderer's unrecoverable-failure path (sticky fallback "
|
|
||||||
"to emulated output). 0 = off, 1 = fail every creation, "
|
|
||||||
"2 = fail only hot recreates (size changes after a "
|
|
||||||
"successful first build). Exercises the failure "
|
|
||||||
"indicator and the shutdown path from the failed state.")
|
|
||||||
.range(0, 2)
|
|
||||||
.lifecycle(rex::cvar::Lifecycle::kHotReload);
|
|
||||||
REXCVAR_DEFINE_BOOL(skate3_native_render_scene_shadow_pcss, true, "Skate 3",
|
REXCVAR_DEFINE_BOOL(skate3_native_render_scene_shadow_pcss, true, "Skate 3",
|
||||||
"Contact-hardening soft shadows (PCSS): a blocker search "
|
"Contact-hardening soft shadows (PCSS): a blocker search "
|
||||||
"estimates the caster distance per pixel and the filter "
|
"estimates the caster distance per pixel and the filter "
|
||||||
|
|
|
||||||
|
|
@ -106,7 +106,6 @@ REXCVAR_DECLARE(double, skate3_native_render_scene_shadow_pcss_sun_deg);
|
||||||
REXCVAR_DECLARE(double, skate3_native_render_scene_shadow_static_bias);
|
REXCVAR_DECLARE(double, skate3_native_render_scene_shadow_static_bias);
|
||||||
REXCVAR_DECLARE(double, skate3_native_render_scene_shadow_static_radius);
|
REXCVAR_DECLARE(double, skate3_native_render_scene_shadow_static_radius);
|
||||||
REXCVAR_DECLARE(int32_t, skate3_native_render_scene_shadow_static_size);
|
REXCVAR_DECLARE(int32_t, skate3_native_render_scene_shadow_static_size);
|
||||||
REXCVAR_DECLARE(int32_t, skate3_native_render_scene_debug_fail_static_sun);
|
|
||||||
REXCVAR_DECLARE(double, skate3_native_render_scene_shadow_static_strength);
|
REXCVAR_DECLARE(double, skate3_native_render_scene_shadow_static_strength);
|
||||||
REXCVAR_DECLARE(bool, skate3_native_render_scene_shadows);
|
REXCVAR_DECLARE(bool, skate3_native_render_scene_shadows);
|
||||||
REXCVAR_DECLARE(bool, skate3_native_render_scene_shafts);
|
REXCVAR_DECLARE(bool, skate3_native_render_scene_shafts);
|
||||||
|
|
@ -3313,13 +3312,6 @@ bool EnsureShadowResources(const NativeGuestOutputRenderContext& context) {
|
||||||
// tiles side by side: inner (r/6, centimeter contact detail with
|
// tiles side by side: inner (r/6, centimeter contact detail with
|
||||||
// useful reach), mid (r/2) and far (full radius, large-caster
|
// useful reach), mid (r/2) and far (full radius, large-caster
|
||||||
// coverage); size is per tile.
|
// coverage); size is per tile.
|
||||||
// Forced-failure debug hook (see the cvar's help text): mode 1 fails
|
|
||||||
// every creation, mode 2 only hot recreates; retries are skipped so the
|
|
||||||
// sticky-failed path below engages like a hard driver rejection.
|
|
||||||
const int32_t debug_fail =
|
|
||||||
REXCVAR_GET(skate3_native_render_scene_debug_fail_static_sun);
|
|
||||||
const bool force_fail =
|
|
||||||
debug_fail == 1 || (debug_fail == 2 && g_r.static_sun_requested != 0);
|
|
||||||
g_r.static_sun_requested = want_static_size;
|
g_r.static_sun_requested = want_static_size;
|
||||||
g_r.static_sun_size = want_static_size;
|
g_r.static_sun_size = want_static_size;
|
||||||
nrhi::TextureDesc desc;
|
nrhi::TextureDesc desc;
|
||||||
|
|
@ -3330,11 +3322,11 @@ bool EnsureShadowResources(const NativeGuestOutputRenderContext& context) {
|
||||||
desc.initial_state = nrhi::ResourceState::kRenderTarget;
|
desc.initial_state = nrhi::ResourceState::kRenderTarget;
|
||||||
desc.clear_color[0] = 1.0f; // depth: far = lit
|
desc.clear_color[0] = 1.0f; // depth: far = lit
|
||||||
desc.clear_color[1] = 1.0f;
|
desc.clear_color[1] = 1.0f;
|
||||||
g_r.static_sun = force_fail ? nullptr : device->CreateTexture(desc);
|
g_r.static_sun = device->CreateTexture(desc);
|
||||||
// Allocation-failure fallback (VRAM pressure, driver limits): a
|
// Allocation-failure fallback (VRAM pressure, driver limits): a
|
||||||
// coarser static sun map beats marking the whole renderer failed and
|
// coarser static sun map beats marking the whole renderer failed and
|
||||||
// dropping the session to emulated output.
|
// dropping the session to emulated output.
|
||||||
while (!force_fail && g_r.static_sun == nullptr && g_r.static_sun_size > 1024) {
|
while (g_r.static_sun == nullptr && g_r.static_sun_size > 1024) {
|
||||||
g_r.static_sun_size /= 2;
|
g_r.static_sun_size /= 2;
|
||||||
desc.width = g_r.static_sun_size * 3;
|
desc.width = g_r.static_sun_size * 3;
|
||||||
desc.height = g_r.static_sun_size;
|
desc.height = g_r.static_sun_size;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue