Add Metal support for macOS (arm64) and iOS

This commit is contained in:
Stuart Carnie
2024-02-20 05:52:00 +11:00
committed by Rémi Verschelde
parent 826de7976a
commit 2d0165574d
72 changed files with 67923 additions and 28 deletions

View File

@ -1,7 +1,7 @@
def can_build(env, platform):
# glslang is only needed when Vulkan or Direct3D 12-based renderers are available,
# glslang is only needed when Vulkan, Direct3D 12 or Metal-based renderers are available,
# as OpenGL doesn't use glslang.
return env["vulkan"] or env["d3d12"]
return env["vulkan"] or env["d3d12"] or env["metal"]
def configure(env):

View File

@ -73,6 +73,9 @@ static Vector<uint8_t> _compile_shader_glsl(RenderingDevice::ShaderStage p_stage
// - SPIRV-Reflect won't be able to parse the compute workgroup size.
// - We want to play it safe with NIR-DXIL.
TargetVersion = glslang::EShTargetSpv_1_3;
} else if (capabilities.device_family == RDD::DEVICE_METAL) {
ClientVersion = glslang::EShTargetVulkan_1_1;
TargetVersion = glslang::EShTargetSpv_1_6;
} else {
// once we support other backends we'll need to do something here
if (r_error) {