Trust fall

- Trigger a fallback if any exception is caught during rendering
This commit is contained in:
Jozufozu 2025-02-28 22:00:14 -08:00
parent 5c584d3a9e
commit 1c0e562b6a

View file

@ -15,7 +15,6 @@ import dev.engine_room.flywheel.api.task.Plan;
import dev.engine_room.flywheel.api.visualization.VisualEmbedding; import dev.engine_room.flywheel.api.visualization.VisualEmbedding;
import dev.engine_room.flywheel.api.visualization.VisualizationContext; import dev.engine_room.flywheel.api.visualization.VisualizationContext;
import dev.engine_room.flywheel.backend.FlwBackend; import dev.engine_room.flywheel.backend.FlwBackend;
import dev.engine_room.flywheel.backend.compile.core.ShaderException;
import dev.engine_room.flywheel.backend.engine.embed.EmbeddedEnvironment; import dev.engine_room.flywheel.backend.engine.embed.EmbeddedEnvironment;
import dev.engine_room.flywheel.backend.engine.embed.Environment; import dev.engine_room.flywheel.backend.engine.embed.Environment;
import dev.engine_room.flywheel.backend.engine.embed.EnvironmentStorage; import dev.engine_room.flywheel.backend.engine.embed.EnvironmentStorage;
@ -96,7 +95,7 @@ public class EngineImpl implements Engine {
Uniforms.update(context); Uniforms.update(context);
environmentStorage.flush(); environmentStorage.flush();
drawManager.render(lightStorage, environmentStorage); drawManager.render(lightStorage, environmentStorage);
} catch (ShaderException e) { } catch (Exception e) {
FlwBackend.LOGGER.error("Falling back", e); FlwBackend.LOGGER.error("Falling back", e);
triggerFallback(); triggerFallback();
} }
@ -106,7 +105,7 @@ public class EngineImpl implements Engine {
public void renderCrumbling(RenderContext context, List<CrumblingBlock> crumblingBlocks) { public void renderCrumbling(RenderContext context, List<CrumblingBlock> crumblingBlocks) {
try (var state = GlStateTracker.getRestoreState()) { try (var state = GlStateTracker.getRestoreState()) {
drawManager.renderCrumbling(crumblingBlocks); drawManager.renderCrumbling(crumblingBlocks);
} catch (ShaderException e) { } catch (Exception e) {
FlwBackend.LOGGER.error("Falling back", e); FlwBackend.LOGGER.error("Falling back", e);
triggerFallback(); triggerFallback();
} }