diff --git a/include/neural-graphics-primitives/testbed.h b/include/neural-graphics-primitives/testbed.h
index 6bac7082d387331723874589b070c675ef4f5434..704903ac5e2afdf3b3e69fa8b98fcb84c23e21f4 100644
--- a/include/neural-graphics-primitives/testbed.h
+++ b/include/neural-graphics-primitives/testbed.h
@@ -154,7 +154,7 @@ public:
 			const Eigen::Vector2i& distortion_resolution,
 			Eigen::Array4f* frame_buffer,
 			float* depth_buffer,
-			uint8_t *grid,
+			uint8_t* grid,
 			int show_accel,
 			float cone_angle_constant,
 			ERenderMode render_mode,
diff --git a/src/testbed.cu b/src/testbed.cu
index 78db133b36655a23263ed039a20a247d73cd6237..4553c54d827a6a19960cac446df5200a202b09cb 100644
--- a/src/testbed.cu
+++ b/src/testbed.cu
@@ -3057,11 +3057,12 @@ void Testbed::load_snapshot(const std::string& filepath_string) {
 			density_grid[i] = (float)density_grid_fp16[i];
 		});
 
-		if (m_nerf.density_grid.size() != NERF_GRIDSIZE() * NERF_GRIDSIZE() * NERF_GRIDSIZE() * (m_nerf.max_cascade + 1)) {
+		if (m_nerf.density_grid.size() == NERF_GRIDSIZE() * NERF_GRIDSIZE() * NERF_GRIDSIZE() * (m_nerf.max_cascade + 1)) {
+			update_density_grid_mean_and_bitfield(nullptr);
+		} else if (m_nerf.density_grid.size() != 0) {
+			// A size of 0 indicates that the density grid was never populated, which is a valid state of a (yet) untrained model.
 			throw std::runtime_error{"Incompatible number of grid cascades."};
 		}
-
-		update_density_grid_mean_and_bitfield(nullptr);
 	}
 
 	m_network_config_path = filepath_string;
diff --git a/src/testbed_nerf.cu b/src/testbed_nerf.cu
index e717ea4bb1d2a4d318feede9c964dfdf4c7ebf91..479e1f6da9f38f8522a4b10655b51c8d42b73a19 100644
--- a/src/testbed_nerf.cu
+++ b/src/testbed_nerf.cu
@@ -1984,7 +1984,7 @@ void Testbed::NerfTracer::init_rays_from_camera(
 	const Vector2i& distortion_resolution,
 	Eigen::Array4f* frame_buffer,
 	float* depth_buffer,
-	uint8_t *grid,
+	uint8_t* grid,
 	int show_accel,
 	float cone_angle_constant,
 	ERenderMode render_mode,