From c9c58020d89e8096a4a2e21cb4e0292fa7667d0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pa=CC=84vels=20Nadtoc=CC=8Cajevs?= <7645683+bruvzg@users.noreply.github.com> Date: Wed, 25 Mar 2026 12:56:24 +0200 Subject: [PATCH] Fix Metal driver build with Xcode 26.4. --- drivers/metal/metal_objects_shared.cpp | 10 +++++----- drivers/metal/pixel_formats.cpp | 4 ++-- drivers/metal/rendering_device_driver_metal.cpp | 10 +++++----- drivers/metal/rendering_shader_container_metal.cpp | 10 +++++----- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/drivers/metal/metal_objects_shared.cpp b/drivers/metal/metal_objects_shared.cpp index 49822ba857..69a399ff34 100644 --- a/drivers/metal/metal_objects_shared.cpp +++ b/drivers/metal/metal_objects_shared.cpp @@ -634,11 +634,11 @@ void MDCommandBufferBase::encode_push_constant_data(RDD::ShaderID p_shader, Vect #pragma mark - Metal Library static const char *SHADER_STAGE_NAMES[] = { - [RDC::SHADER_STAGE_VERTEX] = "vert", - [RDC::SHADER_STAGE_FRAGMENT] = "frag", - [RDC::SHADER_STAGE_TESSELATION_CONTROL] = "tess_ctrl", - [RDC::SHADER_STAGE_TESSELATION_EVALUATION] = "tess_eval", - [RDC::SHADER_STAGE_COMPUTE] = "comp", + "vert", // RDC::SHADER_STAGE_VERTEX + "frag", // RDC::SHADER_STAGE_FRAGMENT + "tess_ctrl", // RDC::SHADER_STAGE_TESSELATION_CONTROL + "tess_eval", // RDC::SHADER_STAGE_TESSELATION_EVALUATION + "comp", // RDC::SHADER_STAGE_COMPUTE }; void ShaderCacheEntry::notify_free() const { diff --git a/drivers/metal/pixel_formats.cpp b/drivers/metal/pixel_formats.cpp index cce5bd349a..0c64ac0c87 100644 --- a/drivers/metal/pixel_formats.cpp +++ b/drivers/metal/pixel_formats.cpp @@ -583,7 +583,7 @@ void PixelFormats::initDataFormatCapabilities() { void PixelFormats::addMTLPixelFormatDescImpl(MTL::PixelFormat p_pix_fmt, MTL::PixelFormat p_pix_fmt_linear, MTLViewClass p_view_class, MTLFmtCaps p_fmt_caps, const char *p_name) { - _mtl_pixel_format_descs[p_pix_fmt] = { .mtlPixelFormat = p_pix_fmt, DataFormat::DATA_FORMAT_MAX, p_fmt_caps, p_view_class, p_pix_fmt_linear, p_name }; + _mtl_pixel_format_descs[p_pix_fmt] = { .mtlPixelFormat = p_pix_fmt, .dataFormat = DataFormat::DATA_FORMAT_MAX, .mtlFmtCaps = p_fmt_caps, .mtlViewClass = p_view_class, .mtlPixelFormatLinear = p_pix_fmt_linear, .name = p_name }; } #define addMTLPixelFormatDescFull(mtlFmt, mtlFmtLinear, viewClass, appleGPUCaps) \ @@ -787,7 +787,7 @@ void PixelFormats::addMTLVertexFormatDescImpl(MTL::VertexFormat mtlVtxFmt, MTLFm if (mtlVtxFmt >= _mtl_vertex_format_descs.size()) { _mtl_vertex_format_descs.resize(mtlVtxFmt + 1); } - _mtl_vertex_format_descs[mtlVtxFmt] = { .mtlVertexFormat = mtlVtxFmt, RDC::DATA_FORMAT_MAX, vtxCap, MTLViewClass::None, MTL::PixelFormatInvalid, name }; + _mtl_vertex_format_descs[mtlVtxFmt] = { .mtlVertexFormat = mtlVtxFmt, .dataFormat = RDC::DATA_FORMAT_MAX, .mtlFmtCaps = vtxCap, .mtlViewClass = MTLViewClass::None, .mtlPixelFormatLinear = MTL::PixelFormatInvalid, .name = name }; } // Check mtlVtx exists on platform, to avoid overwriting the MTL::VertexFormatInvalid entry. diff --git a/drivers/metal/rendering_device_driver_metal.cpp b/drivers/metal/rendering_device_driver_metal.cpp index 672998c161..ef5b38112c 100644 --- a/drivers/metal/rendering_device_driver_metal.cpp +++ b/drivers/metal/rendering_device_driver_metal.cpp @@ -1603,14 +1603,14 @@ RDD::RenderPassID RenderingDeviceDriverMetal::render_pass_create(VectorView attachments; diff --git a/drivers/metal/rendering_shader_container_metal.cpp b/drivers/metal/rendering_shader_container_metal.cpp index cfb781229a..e0bc77e410 100644 --- a/drivers/metal/rendering_shader_container_metal.cpp +++ b/drivers/metal/rendering_shader_container_metal.cpp @@ -217,11 +217,11 @@ Error RenderingShaderContainerMetal::compile_metal_source(const char *p_source, #pragma clang diagnostic ignored "-Wunguarded-availability" static spv::ExecutionModel SHADER_STAGE_REMAP[RDD::SHADER_STAGE_MAX] = { - [RDD::SHADER_STAGE_VERTEX] = spv::ExecutionModelVertex, - [RDD::SHADER_STAGE_FRAGMENT] = spv::ExecutionModelFragment, - [RDD::SHADER_STAGE_TESSELATION_CONTROL] = spv::ExecutionModelTessellationControl, - [RDD::SHADER_STAGE_TESSELATION_EVALUATION] = spv::ExecutionModelTessellationEvaluation, - [RDD::SHADER_STAGE_COMPUTE] = spv::ExecutionModelGLCompute, + spv::ExecutionModelVertex, // RDD::SHADER_STAGE_VERTEX + spv::ExecutionModelFragment, // RDD::SHADER_STAGE_FRAGMENT + spv::ExecutionModelTessellationControl, // RDD::SHADER_STAGE_TESSELATION_CONTROL + spv::ExecutionModelTessellationEvaluation, // RDD::SHADER_STAGE_TESSELATION_EVALUATION + spv::ExecutionModelGLCompute, // RDD::SHADER_STAGE_COMPUTE }; spv::ExecutionModel get_stage(uint32_t p_stages_mask, RDD::ShaderStage p_stage) {