4 ms·
> 1. Apple conforms to the existing standards of OpenGL and Vulkan we see gaining steam for many film and game production pipelines. Read what gamedevs have to
by WhereIsTheTruth 3y ago
> 1. Apple conforms to the existing standards of OpenGL and Vulkan we see gaining steam for many film and game production pipelines.
Read what gamedevs have to say about this, Metal is more appreciated than Vulkan
> 2. Apple tries to throw its weight around and force devs to support their Metal standards even more, ultimately hoping to force the world onto Metal + macOS.
Apple was part of the Vulkan working group, knowing what gamedevs prefer, it now make sense why they parted away and created Metal instead
In retrospect I can only show compassion to Apple, they made the right choice
- deleted 3y ago[deleted]
- memefrog 3y agoVulkan is way better than Metal. Metal is simpler to learn. That is about it.
- ribit 3y agoNonsense. Feature-wise, they are mostly equivalent (Metal has better support for GPU driven pipelines and shader authoring). Metal is much simpler and more flexible. The only way Vulkan is "better" if you measure lines of codes.
- anaki 3y agoVulkan is surely more flexible. One example off the top of my head is mailbox presentation mode in Vulkan for minimal input delay without tearing.
- ribit 3y agoMetal allows you to present surfaces at exact times. You have access to the display refresh timing information and it's your job to synchronise your drawing rate to (potentially variable) display presentation interval. Vulkan presentation modes are workarounds over the fact that Vulkan provides no fine-grained control over presentation intervals. There is the VK_GOOGLE_display_timing extension that provides functionality similar to Metal, but it doesn't seem like it's well supported on desktop. The equivalent official extension seems to be stuck in limbo somewhere.
- anaki 3y agoSounds really fine-grained, but does this mean I have to invent my own "mailbox" every time I want "unlimited refresh rate with minimal input lag, but without tearing"?
- ribit 3y agoI think it should be as easy as not presenting a drawable if you detect that the previous frame is still rendering. Should be solvable by adding a single conditional guard to the command buffer completion handler. Never did that myself as I don't have a use case for it, so I might be underestimating the challenge. Note that mailbox approach does not really give you unlimited refresh rate, as you are bound by the number of drawables/swapchain images your driver can supply. If your drawing is very fast these resources become the bottleneck. If you truly need unlimited framerate (e.g. for benchmarking) the best approach is probably to render to a texture and then blit the last one to a drawable for presentation. And if your goal is "minimal input lag", then you might as well do it right and decouple your simulation and rendering threads.
- nicce 3y agoCan someone give concrete examples, why? Let’s exclude the learning.
- WhereIsTheTruth 3y agoApple have less constraints so their API is more straightforward (less abstractions) and less verbose, Vulkan give you more control, but at the expense of a more convoluted, verbose and complex API, people like to joke about the amount of code one need to write in order to render a triangle with Vulkan
- ribit 3y agoI am not convinced that Vulkan gives you more control. Metal is adaptive in the sense that it can manage some state and configuration for you, but that is strictly opt-out. You still get your manual memory management and low-level event synchronisation. On the topic of control, Metal has precise control over display intervals and presentation timing (I think Vulkan recently introduced something similar, not sure).
- rendaw 3y agoThese are still very abstract differences.
- kaba0 3y agoThough arguably, going from first triangle to a semi-complex scene is relatively few additional lines, for what it’s worth.
- TillE 3y agoDo you mean engine developers who actually use the Metal API, or game developers writing shader code? I know game developers prefer HLSL (Direct3D) over GLSL, but I dunno what people think about MSL.
- WhereIsTheTruth 3y ago> I know game developers prefer HLSL (Direct3D) over GLSL That's my sentiment as well
- p1necone 3y agoWhat gamedevs? Most games don't even release on Mac.
- andyferris 3y agoPossibly referring to iOS games using Metal.
- softfalcon 3y agoI think the conversation is mixed here. Baldur’s Gate 3 was just released with first class Vulkan support. Steam is pushing hard with MoltenVK on macOS and native Vulkan drivers on the Steam Deck. I agree there are likely a lot of game devs who like Metal, but it would appear there are a lot of heavy hitters backing Vulkan. As well, in film, many render engines prefer Vulkan due to the flexibility to write complicated compute shaders with complex command buffers. I experienced this first hand working with VFX studios in my day job. I think the story is mixed, there is a big interest in Vulkan still.
- machinekob 3y agoAnd Vulkan drivers are like 10-20% slower compared to DX11 on NV.