Report effective visibility and stable GPU instance identity
Native and manual checks / native (ubuntu-24.04) (push) Failing after 36s
Native and manual checks / manual (push) Successful in 28s
Windows editor and software Vulkan / windows-graphics (push) Canceled after 0s
Native and manual checks / native (windows-2025) (push) Canceled after 0s

This commit is contained in:
Emil
2026-09-24 00:28:12 +03:00
parent 433bce08c0
commit 22012c1a80
12 changed files with 157 additions and 18 deletions
+18
View File
@@ -119,6 +119,23 @@ void lod_thresholds_have_hysteresis_and_fallback() {
rejects([&] { select_lod(std::numeric_limits<float>::quiet_NaN(), 0, thresholds, .1f); },
"Nonfinite projected size cannot silently select a level");
}
void effective_mode_exposes_device_fallback() {
require(select_effective_visibility_mode(VisibilityMode::Direct, true, true) ==
VisibilityMode::Direct,
"Direct request stays Direct even on a fully capable device");
require(select_effective_visibility_mode(VisibilityMode::GpuFrustum, false, true) ==
VisibilityMode::Direct,
"Missing GPU culling profile falls back to Direct");
require(select_effective_visibility_mode(VisibilityMode::GpuFrustum, true, false) ==
VisibilityMode::GpuFrustum,
"GPU frustum does not depend on HZB support");
require(select_effective_visibility_mode(VisibilityMode::GpuOcclusion, true, false) ==
VisibilityMode::GpuFrustum,
"Missing HZB exposes a frustum-only effective mode");
require(select_effective_visibility_mode(VisibilityMode::GpuOcclusion, true, true) ==
VisibilityMode::GpuOcclusion,
"Supported occlusion keeps the requested effective mode");
}
} // namespace
int main() {
try {
@@ -126,6 +143,7 @@ int main() {
ids_track_rendered_frames_and_generation();
owned_mesh_identity_outlives_reimport_gap();
lod_thresholds_have_hysteresis_and_fallback();
effective_mode_exposes_device_fallback();
std::cout << "Visibility bounds, instance identity and LOD policy passed\n";
return 0;
} catch (const std::exception& error) {