18 Oct 2024 |
emily | oh interesting, it's in Chromium | 09:17:21 |
Marcus | ye | 09:17:33 |
emily | this might be painful | 09:19:11 |
emily | https://github.com/google/angle/commit/db38707af45b3b39c62cb7323b358d35ee840aa6 | 09:20:36 |
emily | metallibs are now compiled at build time using gn actions.
This allows the Chrome and WebKit build process to use the same code
for loading the builtin shaders even though they compile them in
different ways. | 09:20:42 |
emily | the good news is that this doesn't look like the worst commit in the world to carry a revert of | 09:21:14 |
emily | there's also a ANGLE_METAL_XCODE_BUILDS_SHADERS define which seems promising | 09:21:39 |
emily | also, this isn't very urgent because Qt 6 WebEngine was already broken on Darwin previously | 09:22:26 |
emily | hmm | 09:24:14 |
emily | I can't find where ANGLE_METAL_XCODE_BUILDS_SHADERS / ANGLE_METAL_HAS_PREBUILT_INTERNAL_SHADERS are set, which is annoying. | 09:24:29 |
emily | never mind, I found them :) | 09:24:43 |
Marcus | true. btw, is there a way to override qt6.full to exclude webengine? | 09:25:29 |
emily | ok, phew | 09:25:34 |
emily | they actually, since that commit, added a metal_internal_shader_compilation_supported thing | 09:25:41 |
emily | https://github.com/google/angle/commit/a9b01747f6454356a53c377c980c6b549e982fb4 | 09:25:50 |
emily | # We can build the ANGLE internal shaders at build-time if we have access to the Mac SDK in the "build" dir.
# Building internal shaders for the iOS simulator is not supported.
metal_internal_shader_compilation_supported =
angle_has_build && !(is_ios && target_environment == "simulator")
| 09:26:09 |
emily | I think all we need to do is override this definition | 09:26:24 |
Marcus | Nice find | 09:26:31 |
emily | Marcus: since you have a lot more of staging-next built than I do, are you up for testing patches for me? | 09:26:44 |
emily | also, this is interesting: that comment now says
# Building internal shaders for iOS is not supported. The Chromium Mac SDK does not have all the required files.
| 09:27:26 |
emily | so actually Chromium isn't even doing this :) | 09:27:31 |
vcunat | How is iOS related? | 09:28:25 |
vcunat | (or am I confused?) | 09:28:37 |
emily | the interesting part is the second sentence | 09:28:54 |
Marcus | In reply to @emilazy:matrix.org Marcus: since you have a lot more of staging-next built than I do, are you up for testing patches for me? Sure, I'd be happy to try. | 09:29:04 |
emily | the relevant thing about this whole variable existing is that it lets us opt-out of the thing we can't do | 09:29:06 |
emily | thankfully, since Chromium also can't do it (because of their weird cross-compilation situation), we can rely on not doing it to be supported | 09:29:21 |
emily | now all I have to do is figure out three layers of nested build system 🤪 | 09:29:55 |
emily | K900: help do you know anything about the WebEngine build | 09:32:20 |
K900 | No | 09:32:49 |