Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 4d4a69df0d2109f7d125e634a24c5d58bcab930e
      
https://github.com/WebKit/WebKit/commit/4d4a69df0d2109f7d125e634a24c5d58bcab930e
  Author: Roberto Rodriguez <[email protected]>
  Date:   2026-07-14 (Tue, 14 Jul 2026)

  Changed paths:
    M Source/ThirdParty/ANGLE/src/compiler/translator/msl/ProgramPrelude.cpp

  Log Message:
  -----------
  [ANGLE] Fix WebGL out/inout shaders failing to compile on newer Metal
https://bugs.webkit.org/show_bug.cgi?id=319298
rdar://181719662

Reviewed by Mike Wyrzykowski.

ANGLE translates GLSL out and inout function parameters into Metal using small
helper structs whose conversion operator returns a reference into the struct.
Older Metal compilers placed that reference in the thread address space by
default, but a recent Metal compiler change defaults unlabeled references to the
generic address space instead. The returned reference no longer matches the
declared thread reference, so the shader fails to compile and WebGL pages that
pass out/inout parameters render nothing, producing many console errors.

Fix by adding a trailing thread qualifier to the conversion operator of each
helper struct (ANGLE_Out, ANGLE_InOut, ANGLE_VectorElemRef, and
ANGLE_SwizzleRef), which keeps both the object and the reference it returns in
the thread address space and restores the previous behavior.

* Source/ThirdParty/ANGLE/src/compiler/translator/msl/ProgramPrelude.cpp:

Canonical link: https://commits.webkit.org/317176@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to