From b48b256ab3ea5b83ea29a8cda0a25723935c1c5a Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Thu, 14 Sep 2017 17:20:54 -0700 Subject: [PATCH] Actually reverse indices for early Z! 2x performance improvement. I feel silly. --- demo/client/src/3d-demo.ts | 2 +- demo/client/src/view.ts | 4 ++-- demo/server/src/main.rs | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/demo/client/src/3d-demo.ts b/demo/client/src/3d-demo.ts index 12e1aa9a..8017414e 100644 --- a/demo/client/src/3d-demo.ts +++ b/demo/client/src/3d-demo.ts @@ -333,7 +333,7 @@ class ThreeDView extends PathfinderDemoView { return transform; } - protected clearForResolve(): void { + protected clearForDirectRendering(): void { this.gl.clearColor(1.0, 1.0, 1.0, 1.0); this.gl.clearDepth(1.0); this.gl.depthMask(true); diff --git a/demo/client/src/view.ts b/demo/client/src/view.ts index eaf47101..aa164434 100644 --- a/demo/client/src/view.ts +++ b/demo/client/src/view.ts @@ -269,7 +269,7 @@ export abstract class PathfinderDemoView extends PathfinderView { antialiasingStrategy.prepare(this); // Clear. - this.clearForResolve(); + this.clearForDirectRendering(); // Draw "scenery" (used in the 3D view). this.drawSceneryIfNecessary(); @@ -514,7 +514,7 @@ export abstract class PathfinderDemoView extends PathfinderView { protected drawSceneryIfNecessary(): void {} - protected clearForResolve(): void { + protected clearForDirectRendering(): void { this.gl.clearColor(1.0, 1.0, 1.0, 1.0); this.gl.clearDepth(0.0); this.gl.depthMask(true); diff --git a/demo/server/src/main.rs b/demo/server/src/main.rs index 7ab42868..b4a98bee 100644 --- a/demo/server/src/main.rs +++ b/demo/server/src/main.rs @@ -330,7 +330,7 @@ fn partition_paths(partitioner: &mut Partitioner, subpath_indices: &[SubpathRang // Reverse interior indices for early Z optimizations. let mut new_cover_interior_indices = Vec::with_capacity(cover_interior_indices.len()); - for path_indices in &mut path_indices { + for path_indices in path_indices.iter_mut().rev() { let old_byte_start = path_indices.cover_interior_indices.start * mem::size_of::(); let old_byte_end = path_indices.cover_interior_indices.end * mem::size_of::(); let new_start_index = new_cover_interior_indices.len() / mem::size_of::();