authorgravatar for me@t3.ggTheo Browne <me@t3.gg> 2026-08-18 23:47:39-04:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-08-18 23:47:39-04:00
log5ea5a80a83c21c50f97f0851a8bd2cb9871f413a
tree0dfd977a01f4f212f9fd4f3864da97ca3ba3783c
parent324ddda3146d54cc7195a67ef5506e93674085ba
signature Signed by PGP key B5690EEEBB952194

fix(marketing): Safari gets the arm64 Mac download (#7473)


2 files changed, 7 insertions(+), 6 deletions(-)

apps/marketing/src/lib/macArch.test.ts+5-2
......@@ -13,8 +13,11 @@ describe("macArchFromGpuRenderer", () => {
1313 );
1414 });
1515
16 it("uses x64 for ambiguous Safari and unavailable renderer values", () => {
17 expect(macArchFromGpuRenderer("Apple GPU")).toBe("x64");
16 it("detects Safari's generic Apple Silicon renderer", () => {
17 expect(macArchFromGpuRenderer("Apple GPU")).toBe("arm64");
18 });
19
20 it("uses x64 when the renderer is unavailable", () => {
1821 expect(macArchFromGpuRenderer("")).toBe("x64");
1922 });
2023});
apps/marketing/src/lib/macArch.ts+2-4
......@@ -1,5 +1,5 @@
11const INTEL_GPU_PATTERN = /intel|amd|radeon|nvidia|geforce/i;
2const APPLE_SILICON_GPU_PATTERN = /\bapple\s+m\d/i;
2const APPLE_SILICON_GPU_PATTERN = /\bapple\s+(?:m\d|gpu)\b/i;
33
44export function macArchFromGpuRenderer(renderer: string): "arm64" | "x64" {
55 if (INTEL_GPU_PATTERN.test(renderer)) {
......@@ -9,8 +9,6 @@ export function macArchFromGpuRenderer(renderer: string): "arm64" | "x64" {
99 return "arm64";
1010 }
1111
12 // Generic "Apple GPU" renderers are ambiguous on Safari. x64 is the safe
13 // fallback because Apple Silicon can run it through Rosetta, while Intel
14 // Macs cannot run an arm64 build.
12 // Keep the fallback compatible with Intel Macs when WebGL is unavailable.
1513 return "x64";
1614}