Fix HexTile centerline cell selection

Evaluate the third cube coordinate symmetrically to retain the intended centerline tie. Keep the existing pixel oracle and tolerance.

Scope the Mem fixture mutex unwrap allowance so the original strict CI can validate this base.

Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
sanyamsingh001andCodex committed 2026-10-18 05:52:04 +00:00
1 parent 2d805d1b69
commit 2de015fe9f
2 files changed
+5 -1

No files matched your search

+3 -1
View File
@@ -647,7 +647,9 @@ fn fp2_hextile(@builtin(global_invocation_id) gid: vec3<u32>) {
// stylize3::hex_cell (cube rounding).
let q = (0.5773502691896257 * u - v / 3.0) / r;
let rr = (2.0 / 3.0 * v) / r;
let ccy = -q - rr;
// Evaluate the third cube coordinate symmetrically with q so the centerline
// tie is not broken by subtracting separately rounded coordinates.
let ccy = (-0.5773502691896257 * u - v / 3.0) / r;
var rx = round_away(q);
let ry = round_away(ccy);
var rz = round_away(rr);
+2
View File
@@ -11,6 +11,8 @@ use crate::run_code;
#[derive(Default)]
struct Mem(Mutex<HashMap<String, Vec<u8>>>);
// A poisoned fixture mutex should fail the test.
#[allow(clippy::unwrap_used)]
impl Services for Mem {
fn read_file(&self, path: &str) -> std::io::Result<Vec<u8>> {
self.0.lock().unwrap().get(path).cloned().ok_or_else(|| std::io::Error::new(std::io::ErrorKind::NotFound, path.to_string()))