 	vec3 d = v * maxTraceDistance;
 
 	int level = HIZ_START_LEVEL;
+#if DEBUG_LINEAR_SEARCH
+	level = 0;
+#endif
 	uint iterations = 0;
 	bool isBackwardRay = v.z < 0;
 	float rayDir = isBackwardRay ? -1.0 : 1.0;

}

bool crossedCellBoundary(ivec2 oldCellIx, ivec2 newCellIx) {
	return oldCellIx.x != newCellIx.x || oldCellIx.y != newCellIx.y;
	//return any(notEqual(oldCellIx, newCellIx));
}

// Minimum depth of the current cell in the current HiZ level.

		if (crossed) {
			ray = intersectCellBoundary(o, d, oldCellIx, cellCount, crossStep, crossOffset);
			level = min(maxLevel, level + 1);
#if DEBUG_LINEAR_SEARCH
			level = 0;
#endif
		} else {
			ray = tempRay;
			level = level - 1;
