3 ms·
I use it for a fairly simple task and I often run in to compiler bugs. Const buffers over 64k get truncated on NVidia gpus, using half4 broke the optimizer on s
by gnachman 7y ago
I use it for a fairly simple task and I often run in to compiler bugs. Const buffers over 64k get truncated on NVidia gpus, using half4 broke the optimizer on some iMac gpus, and sometimes I have to split up functions until the optimizer on some gpu I don’t own stops doing crazy things. I am terrified of writing MSL because of this.
- pcwalton 7y agoYeah, to add to that, I've hit bugs in blending where certain blend modes just don't work and silently render transparent black. Also, the Metal debugger crashes most of the time and tells me "file a Radar". I'm likewise dealing with reported segfaults on hardware I don't own. And there are missing features: timer queries, for instance, aren't really supported and you have to hack them up in an unreliable way, useful extensions supported by the hardware like conservative rasterization are unavailable (Vulkan has this problem too), etc. I suspect things are better on iOS, but Metal has not been a great experience on macOS for me. There's an argument to be made for proprietary APIs if they're better than the alternatives, but not if they're worse...
- oddity 7y ago> Const buffers over 64k get truncated on NVidia gpus This is an advertised limit in the feature set tables [0] (See "Maximum function memory allocation for a buffer in the constant address space") for non-Apple GPUs (though there are cases where it might work despite the advertised limit). Do you get a warning if you enable API validation (METAL_DEVICE_WRAPPER_TYPE=1)? [0] https://developer.apple.com/metal/Metal-Feature-Set-Tables.pdf https://developer.apple.com/metal/Metal-Feature-Set-Tables.p...