Skip to content

Compiled failed about metal on macbook #112090

@Maplely

Description

@Maplely

Tested versions

4.5.1-stable

System information

Godot v4.5.1.stable - macOS Sequoia (15.3.1) - Multi-window, 2 monitors - Metal (Forward+) - integrated Apple M3 (Apple9) - Apple M3 (8 threads) - 16.00 GiB memory

Issue description

command: scons platform=macos dev_build=yes -j8
errors:

drivers/metal/metal_objects.h:325:26: error: property 'commandBuffer' not found on object of type '__strong id<MTLCommandQueue>'
  325 |                         commandBuffer = queue.commandBuffer;
      |                                               ^
In file included from drivers/metal/rendering_device_driver_metal.mm:51:
In file included from drivers/metal/rendering_device_driver_metal.h:33:
drivers/metal/metal_objects.h:325:26: error: property 'commandBuffer' not found on object of type '__strong id<MTLCommandQueue>'
  325 |                         commandBuffer = queue.commandBuffer;
      |                                               ^
In file included from drivers/metal/rendering_context_driver_metal.mm:31:
In file included from drivers/metal/rendering_context_driver_metal.h:41:
drivers/metal/metal_objects.h:325:26: error: property 'commandBuffer' not found on object of type '__strong id<MTLCommandQueue>'
  325 |                         commandBuffer = queue.commandBuffer;
      |                                               ^
drivers/metal/metal_objects.h:852:12: error: no known instance method for selector 'setDepthBias:slopeScale:clamp:'
  852 |                                 [p_enc setDepthBias:depth_bias slopeScale:slope_scale clamp:clamp];
      |                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/metal/metal_objects.h:864:12: error: no known instance method for selector 'setStencilFrontReferenceValue:backReferenceValue:'
  864 |                                 [p_enc setStencilFrontRedrivers/metal/metal_objects.hf:e852r:en12c:e Verror: aluno known einstance method for selector 'setDepthBias:slopeScale:clamp:'
  852 |                 :                fr[op_netn_cr esfeetrDeenpcteh BbackiRaesf:edreepntche_Vbailause :sblaocpke_Srceafleer:esnlcoep]e;_s
c      a| le cl                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~a
mp:clamp];
      |                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/metal/metal_objects.h:878:12: drivers/metal/metal_objects.h:864error: :12:no  known error: instance methodno  forknown  selectorinstance drivers/metal/metal_objects.h'setBlendColorRed:green:blue:alpha:' method:
 852for: selector 'setStencilFrontReferenceValue:backReferenceValue:'12  :
878  |           864        error:          |                                 no[ p        known_[ epinstancenc_ se enmethodtcSt  sforee nselectortcilBFlroe nntRedf'setDepthBias:slopeScale:clamp:'ereCn
coeVallueo:  rfrRoen852dt_ | :rer         feg        rreenecen :gb abclkuRefe        ree:n        bc[ epa_Vleapnlhcua e:as]:e;btaDc
ek      _| pre                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ftehrB
eias:ndceep]t;drivers/metal/metal_objects.hh:_b
i      883a| :s s                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~11l
: opeerror: Scanoldrivers/metal/metal_objects.he ::known878s instance lmethodo:p12e_: s forcale  selectorcerror:  l'setCullMode:'anomp 
:knownc   linstance883am p | method]         for;        
       selector | 'setBlendColorRed:green:blue:alpha:'                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

          878[ |         p                _        drivers/metal/metal_objects.h:e864:n[12p:c _enerror:  c noss eteBtlknowne nCinstanced uCllmethodMolood refor:Re dselector: r'setStencilFrontReferenceValue:backReferenceValue:' g
c  u864 | l        l_        rm        oe        [pe_ned:ncg e sb]el;tuSet
:be       | na                               ^~~~~~~~~~~c
lphia:a]l;F
rodrivers/metal/metal_objects.hn:t884R:e11f:       | er                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~error: 
encno eknownV ainstancedrivers/metal/metal_objects.hl :umethod883e::11 fforr oselectorn: t _re'setTriangleFillMode:'ferror: 
no known   e884instance rmethode  | nfor         selector         c'setCullMode:'        e[ pb
_a  883 |         ecn                c[ kpsRe_teeTnfrcei rasenegltneCcFueilVlaMloudee::bcauclkl_r_lemlfoeMdore]de;n
c      e| ];                               ^~~~~~~~~~~

      |                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/metal/metal_objects.h:884:11:e drivers/metal/metal_objects.h::error: 878no known instance:f12 imethod: for  selectorl lerror: 'setTriangleFillMode:'_no 
mknown  o 884dinstance | e                 ]        ;[p
_      e| nc                               ^~~~~~~~~~~~~~~~~~~ 
setmethodTrdrivers/metal/metal_objects.hi a:forn885 g:selectorle11 :'setBlendColorRed:green:blue:alpha:'F 
i  l878error: l |                         Mno         [knownp oinstance_ dmethodenc setBlen ed:forC ofselectorl o'setDepthClipMode:'irR
lel  d_885:m | rod         e        g]        r;ee
n:[g      p | _bel                               ^~~~~~~~~~~~~~~~~~~nu
ce se:tDbep tdrivers/metal/metal_objects.hha:l885pC:hli11pM:o da:eaerror: :c]li;p_
nomo      d|  e]known                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ;instance
 method
       for|  drivers/metal/metal_objects.hselector:                               ^~~~~~~~~~~~~~~~ 883
'setDepthClipMode:':11
:   885error:  | drivers/metal/metal_objects.h        no: 886        known instance        : [11method pfor _:selectore  n'setCullMode:'
cerror:    883s | noet         Dknown                e[pp _instanceetn hcmethodC  forl ispeMtselectoroCdu 'setFrontFacingWinding:'lel:Mcodl
e:  c886uil | pl        __        mm        oo[ddpee]]_;;e
      | n
c       s|                                ^~~~~~~~~~~et
F                               ^~~~~~~~~~~~~~~~ront
FacingWdrivers/metal/metal_objects.hi:n884d:i11n:g :windierror: drivers/metal/metal_objects.hn:g886no:]11; :known 
       instanceerror: |  method nofor                                ^~~~~~~~~~~~~~~~~~~~~selector 
 known'setTriangleFillMode:' instance
  884 |                          [p_methoden c sforetT rselectori 'setFrontFacingWinding:'
a  886n | g        l        e        F[ipl_leMode:filnl_c smetoFdroent]F;ac
i      | ng                               ^~~~~~~~~~~~~~~~~~~W
inding:winding];
      |                                ^~~~~~~~~~~~~~~~~~~~~
drivers/metal/metal_objects.h:885:11: error: no known instance method for selector 'setDepthClipMode:'
  885 |                         [p_enc setDepthClipMode:clip_mode];
      |                                ^~~~~~~~~~~~~~~~
drivers/metal/metal_objects.h:886:11: error: no known instance method for selector 'setFrontFacingWinding:'
  886 |                         [p_enc setFrontFacingWinding:winding];
      |                                ^~~~~~~~~~~~~~~~~~~~~
drivers/metal/rendering_context_driver_metal.mm:55:34: error: no known instance method for selector 'setShouldMaximizeConcurrentCompilation:'
   55 |                 [id<MTLDeviceEx>(metal_device) setShouldMaximizeConcurrentCompilation:YES];
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/metal/metal_objects.mm:84:17: error: no known instance method for selector 'commit'
   84drivers/metal/rendering_context_driver_metal.mm | :        [commandBuffer commit];
      |                        ^~~~~~
64:53: error: property 'name' not found on object of type '__strong id<MTLDevice>'
   64 |         device.name = vformat("%s (Apple%d)", metal_devicdrivers/metal/metal_objects.mm:e140:.39n: aerror: mno known einstance .UTF8String,method  vfore rselectors i'renderCommandEncoderWithDescriptor:'on
);  
140      |  |                                                            ^        
                render.encoder = [command_buffer() renderCommandEncoderWithDescriptor:render.desc];
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/metal/metal_objects.mm:220:34: error: property 'blitCommandEncoder' not found on object of type 'id<MTLCommandBuffer>'
  220 |         blit.encoder = command_buffer().blitCommandEncoder;
      |                                         ^
drivers/metal/metal_objects.mm:239:54: error: no known instance method for selector 'renderCommandEncoderWithDescriptor:'
  239 |         id<MTLRenderCommandEncoder> enc = [command_buffer() renderCommandEncoderWithDescriptor:p_desc];
      |                                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/metal/metal_objects.mm:241:8: error: no known instance method for selector 'pushDebugGroup:'
  241 |                 [enc pushDebugGroup:p_label];
      |                      ^~~~~~~~~~~~~~
drivers/metal/metal_objects.mm:242:8: error: no known instance method for selector 'popDebugGroup'
  242 |                 [enc popDebugGroup];
      |                      ^~~~~~~~~~~~~
drivers/metal/metal_objects.mm:244:7: error: no known instance method for selector 'endEncoding'
  244 |         [enc endEncoding];
      |              ^~~~~~~~~~~
drivers/metal/rendering_context_driver_metal.mm:161:40: error: property 'texture' not found on object of type '__strong id<CAMetalDrawable>'
  161 |                 frame_buffer.set_texture(0, drawable.texture);
      |                                                      ^
drivers/metal/rendering_context_driver_metal.mm:180:40: error: no known instance method for selector 'presentDrawable:afterMinimumDuration:'
  180 |                         [p_cmd_buffer->get_command_buffer() presentDrawable:drawable afterMinimumDuration:present_minimum_duration];
      |                                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/metal/rendering_context_driver_metal.mm:182:40: error: no known instance method for selector 'presentDrawable:'
  182 |                         [p_cmd_buffer->get_command_buffer() presentDrawable:drawable];
      |                                                             ^~~~~~~~~~~~~~~
drivers/metal/metal_objects.mm:353:7: error: no known instance method for selector 'pushDebugGroup:'
  353 |         [enc pushDebugGroup:@"ClearAttachments"];
      |              ^~~~~~~~~~~~~~
drivers/metal/metal_objects.mm:354:7: error: no known instance method for selector 'setRenderPipelineState:'
  354 |         [enc setRenderPipelineState:cache.get_clear_render_pipeline_state(key, nil)];
      |              ^~~~~~~~~~~~~~~~~~~~~~
drivers/metal/metal_objects.mm:355:7: error: no known instance method for selector 'setDepthStencilState:'
  355 |         [enc setDepthStencilState:cache.get_depth_stencil_state(
      |              ^~~~~~~~~~~~~~~~~~~~
drivers/metal/metal_objects.mm:358:7: error: no known instance method for selector 'setStencilReferenceValue:'
  358 |         [enc setStencilReferenceValue:stencil_value];
      |              ^~~~~~~~~~~~~~~~~~~~~~~~
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
scons: *** [bin/obj/drivers/metal/metal_objects.macos.editor.dev.arm64.o] Error 1
13 errors generated.
scons: *** [bin/obj/drivers/metal/rendering_context_driver_metal.macos.editor.dev.arm64.o] Error 1
drivers/metal/rendering_device_driver_metal.mm:98:28: error: property 'width' not found on object of type '__strong id<MTLTexture>'
   98 |         lvlSize.width = MAX(p_tex.width >> p_level, 1UL);
      |                                   ^
drivers/metal/rendering_device_driver_metal.mm:98:28: error: property 'width' not found on object of type '__strong id<MTLTexture>'
drivers/metal/rendering_device_driver_metal.mm:99:29: error: property 'height' not found on object of type '__strong id<MTLTexture>'
   99 |         lvlSize.height = MAX(p_tex.height >> p_level, 1UL);
      |                                    ^
drivers/metal/rendering_device_driver_metal.mm:99:29: error: property 'height' not found on object of type '__strong id<MTLTexture>'
drivers/metal/rendering_device_driver_metal.mm:100:28: error: property 'depth' not found on object of type '__strong id<MTLTexture>'
  100 |         lvlSize.depth = MAX(p_tex.depth >> p_level, 1UL);
      |                                   ^
drivers/metal/rendering_device_driver_metal.mm:100:28: error: property 'depth' not found on object of type '__strong id<MTLTexture>'
drivers/metal/rendering_device_driver_metal.mm:135:30: error: no known instance method for selector 'newBufferWithLength:options:'
  135 |         id<MTLBuffer> obj = [device newBufferWithLength:p_size options:options];
      |                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/metal/rendering_device_driver_metal.mm:151:13: error: property 'allocatedSize' not found on object of type '__strong id<MTLBuffer>'
  151 |         return obj.allocatedSize;
      |                    ^
drivers/metal/rendering_device_driver_metal.mm:156:26: error: property 'storageMode' not found on object of type '__strong id<MTLBuffer>'
  156 |         ERR_FAIL_COND_V_MSG(obj.storageMode != MTLStorageModeShared, nullptr, "Unable to map private buffers");
      |                                 ^
drivers/metal/rendering_device_driver_metal.mm:157:24: error: property 'contents' not found on object of type '__strong id<MTLBuffer>'
  157 |         return (uint8_t *)obj.contents;
      |                               ^
drivers/metal/rendering_device_driver_metal.mm:167:14: error: property 'gpuAddress' not found on object of type '__strong id<MTLBuffer>'
  167 |                 return obj.gpuAddress;
      |                            ^
drivers/metal/metal_device_properties.mm:83:17: error: no known instance method for selector 'supportsFamily:'
   83 |                 if ([p_device supportsFamily:family]) {
      |                               ^~~~~~~~~~~~~~
drivers/metal/metal_device_properties.mm:90:52: error: property 'supportsBCTextureCompression' not found on object of type '__strong id<MTLDevice>'
   90 |                 features.supportsBCTextureCompression = p_device.supportsBCTextureCompression;
      |                                                                  ^
drivers/metal/metal_device_properties.mm:96:46: error: property 'isDepth24Stencil8PixelFormatSupported' not found on object of type '__strong id<MTLDevice>'
   96 |         features.supportsDepth24Stencil8 = p_device.isDepth24Stencil8PixelFormatSupported;
      |                                                     ^
drivers/metal/metal_device_properties.mm:100:51: error: property 'supports32BitFloatFiltering' not found on object of type '__strong id<MTLDevice>'
  100 |                 features.supports32BitFloatFiltering = p_device.supports32BitFloatFiltering;
      |                                                                 ^
drivers/metal/metal_device_properties.mm:101:41: error: property 'supports32BitMSAA' not found on object of type '__strong id<MTLDevice>'
  101 |                 features.supports32BitMSAA = p_device.supports32BitMSAA;
      |                                                       ^
drivers/metal/metal_device_properties.mm:111:17: error: no known instance method for selector 'supportsTextureSampleCount:'
  111 |                 if ([p_device supportsTextureSampleCount:sc]) {
      |                               ^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/metal/metal_device_properties.mm:116:40: error: no known instance method for selector 'supportsFamily:'
  116 |         features.layeredRendering = [p_device supportsFamily:MTLGPUFamilyApple5];
      |                                               ^~~~~~~~~~~~~~
drivers/metal/metal_device_properties.mm:117:51: error: no known instance method for selector 'supportsFamily:'
  117 |         features.multisampleLayeredRendering = [p_device supportsFamily:MTLGPUFamilyApple7];
      |                                                          ^~~~~~~~~~~~~~
drivers/metal/metal_device_properties.mm:118:42: error: no known instance method for selector 'supportsFamily:'
  118 |         features.tessellationShader = [p_device supportsFamily:MTLGPUFamilyApple3];
      |                                                 ^~~~~~~~~~~~~~
drivers/metal/metal_device_properties.mm:119:38: error: no known instance method for selector 'supportsFamily:'
  119 |         features.imageCubeArray = [p_device supportsFamily:MTLGPUFamilyApple3];
      |                                             ^~~~~~~~~~~~~~
drivers/metal/metal_device_properties.mm:120:35: error: no known instance method for selector 'supportsFamily:'
  120 |         features.quadPermute = [p_device supportsFamily:MTLGPUFamilyApple4];
      |                                          ^~~~~~~~~~~~~~
drivers/metal/metal_device_properties.mm:121:35: error: no known instance method for selector 'supportsFamily:'
  121 |         features.simdPermute = [p_device supportsFamily:MTLGPUFamilyApple6];
      |                                          ^~~~~~~~~~~~~~
drivers/metal/metal_device_properties.mm:122:37: error: no known instance method for selector 'supportsFamily:'
  122 |         features.simdReduction = [p_device supportsFamily:MTLGPUFamilyApple7];
      |                                            ^~~~~~~~~~~~~~
drivers/metal/metal_device_properties.mm:123:44: error: property 'argumentBuffersSupport' not found on object of type '__strong id<MTLDevice>'
  123 |         features.argument_buffers_tier = p_device.argumentBuffersSupport;
      |                                                   ^
drivers/metal/metal_device_properties.mm:124:52: error: no known instance method for selector 'supportsFamily:'
  124 |         features.supports_image_atomic_32_bit = [p_device supportsFamily:MTLGPUFamilyApple6];
      |                                                           ^~~~~~~~~~~~~~
drivers/metal/metal_device_properties.mm:125:52: error: no known instance method for selector 'supportsFamily:'
  125 |         features.supports_image_atomic_64_bit = [p_device supportsFamily:MTLGPUFamilyApple9] || ([p_device supportsFamily:MTLGPUFamilyApple8] && [p_device supportsFamily:MTLGPU...
      |                                                           ^~~~~~~~~~~~~~
drivers/metal/metal_device_properties.mm:125:101: error: no known instance method for selector 'supportsFamily:'
  125 |         features.supports_image_atomic_64_bit = [p_device supportsFamily:MTLGPUFamilyApple9] || ([p_device supportsFamily:MTLGPUFamilyApple8] && [p_device supportsFamily:MTLGPU...
      |                                                                                                            ^~~~~~~~~~~~~~
drivers/metal/metal_device_properties.mm:125:149: error: no known instance method for selector 'supportsFamily:'
  125 |         features.supports_image_atomic_64_bit = [p_device supportsFamily:MTLGPUFamilyApple9] || ([p_device supportsFamily:MTLGPUFamilyApple8] && [p_device supportsFamily:MTLGPUFamilyMa...
      |                                                                                                                                                            ^~~~~~~~~~~~~~fatal error: 
too many errors emitted, stopping now [-ferror-limit=]
drivers/metal/metal_device_properties.mm:134:45: error: no known instance method for selector 'supportsFamily:'
  134 |                 features.needs_arg_encoders = !([p_device supportsFamily:MTLGPUFamilyMetal3] && features.argument_buffers_tier == MTLArgumentBuffersTier2);
      |                                                           ^~~~~~~~~~~~~~
fatal error: too many errors emitted, stopping now [-ferror-limit=]

Steps to reproduce

command: scons platform=macos dev_build=yes -j8

Minimal reproduction project (MRP)

command: scons platform=macos dev_build=yes -j8

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    For team assessment

    Status

    For team assessment

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions