KhronosGroup / MoltenVK

MoltenVK is a Vulkan Portability implementation. It layers a subset of the high-performance, industry-standard Vulkan graphics and compute API over Apple's Metal graphics framework, enabling Vulkan applications to run on macOS, iOS and tvOS.
Apache License 2.0
4.79k stars 423 forks source link

Updating the Vulkan samples to new MoltenVK versions? #583

Open cesss opened 5 years ago

cesss commented 5 years ago

Hi!

I'm completely new to Vulkan (although an old time OpenGL coder) and, in order to get a very practical introduction, I went to the Sascha Willems samples. However, I found that the xcode/examples.h file seems outdated (doesn't the current MoltenVK support things that are listed at that file as unsupported, such as Compute demos?). Moreover, that file is old, so maybe there have been new samples included in the repository, that are not considered in xcode/examples.h

Also, it seems you need to compile only one sample at a time, by uncommenting the lines for the sample you wish to build and commenting the rest. Wouldn't it make more sense to be able to build all the samples you wish at once?

I opened an issue at the samples repo (https://github.com/SaschaWillems/Vulkan/issues/572#issuecomment-487392672) because I truly believe that such a big collection of samples would be ideal for trying out MoltenVK. But Sascha Willems has no access to Macs, and I'm completely new to Vulkan and MoltenVK, so maybe somebody in the MoltenVK project might have interest in updating it...

billhollings commented 5 years ago

The S-W fork here is more up to date wrt MoltenVK...so you might have better results there.

It's on my to-do list to push this back to the original S-W repo....and maintain it there.

I found that the xcode/examples.h file seems outdated

You're right about that. The fork above does include compute samples, but does not yet include tessellation samples. I'll add those when I get a chance.

Wouldn't it make more sense to be able to build all the samples you wish at once?

I'm not sure. These are samples after all. They are not meant to be simply executables, but traceable code for learning purposes. So I would expect most devs would build and run them deliberately one at a time (ie- "how do I get compute dispatching working").

cesss commented 5 years ago

Thanks a lot!! Regarding the convenience to be able to build all samples at once, I agree that on some scenarios maybe one would choose to build just one sample, but I think that the first time you get in contact with Vulkan on the Mac, you want to see everything that MoltenVK can do, so getting all the samples is usually what you want. And, anyway, even if you just wanted to build sample by sample, having to comment and uncomment lines in a file for choosing what sample to build is not what you usually wish... being able to trigger the build target from the Terminal is what you'll likely wish.