Forum Replies Created
MoltenGL is actively supported.
However, at this time, we are not planning to move beyond OpenGL ES 2.0, unless there is significant interest…nor do we plan to add Metal 2 support at this time.
We are making these changes now. Do you have a sample app that includes a large texture…so we can test it to make sure it works in the way you are using it?
Thanks for identifying the issue with
gl_FragDepth. It is indeed not behaving correctly. We have fixed this now…and it will appear in the next release of MoltenVK.
Sampler arrays are new in Metal2 and support for them has not yet been added to MoltenVK. Please look for it later in the year.
…BillJune 22, 2017 at 12:24 pm in reply to: How embed MoltenVK iOS framework into my project with CMake? #1271
I’m glad you resolved your issue. Thanks for sharing it here.
You also may be interested to know that with the new 0.18.0 release of Molten, you can now use MoltenVK as a dynamic library on iOS (and macOS).
Okay. Thanks for the dev history explanation.
Thanks very much for letting us know about this! Great work!
Would you allow us to publicize this through our Twitter feed and future press releases?
MoltenVK does not currently use iOS Metal Heaps. They will be introduced in an upcoming release.
…BillMay 8, 2017 at 7:57 pm in reply to: Getting the Metal from vulkan types to call insertDebugCaptureBoundary #1256
Right. Unfortunately…there is nothing in the current version of MoltenVK that can help with that. We can look to add the capability to make a distinct call to insert a debug capture boundary in a future release.
In the meantime…I assume you are using multiple queues for performance through concurrency? Is it possible to temporarily use your presentation queue for your texture manipulation efforts, until you determine what the problem is through a GPU frame trace?
…BillMay 8, 2017 at 6:23 pm in reply to: Getting the Metal from vulkan types to call insertDebugCaptureBoundary #1254
Is the problem that your effort is not happening in a queue that ends up being presented at all?
…BillMay 8, 2017 at 5:07 pm in reply to: Getting the Metal from vulkan types to call insertDebugCaptureBoundary #1252
MoltenVK automatically handles that for you as part of the Vulkan
vkQueuePresentKHR()call…so that you can capture GPU frames.
As with any app, you need to ensure that within your Xcode Scheme, your app is being run in Debug mode and GPU Frame Capture is enabled.
Please try it out with the Demo apps that come with MoltenVK, and confirm that it is working. If you are still having trouble, please expand on how you are using it, and what might be different between your app and the MoltenVK Demo apps.
…BillApril 24, 2017 at 3:37 pm in reply to: MoltenShaderConverter does only support vertex & fragment shaders? #1228
I don’t have a strict timeline to offer at this point…but it is a high priority for us…so work should begin within the next few weeks…with delivery a couple of months out.
Good feedback. I appreciate you letting us know your results with that texture size.
Unfortunately…it’s not currently possible to do either of what you are asking.
VkDeviceMemoryobjects that back Vulkan image objects, are in turn backed by
MTLBuffers. Based on your feedback, we can look at re-factoring how memory management works with textures within MoltenVK, but that will require some development effort, and wouldn’t be available for several weeks.
And unfortunately, the other option…of applying an existing
VkImage…does not exist within the MoltenVK API.
What is your timing on needing this kind of capability?
Under Vulkan, device memory is allocated and populated separately from the creation of a buffer or image on that memory.
In order to support this behaviour in the general sense, currently, all device memory allocations under MoltenVK are backed by a
MTLBuffer. Consequently, device memory allocations are limited by the size of a
MTLBufferon the runtime platform.
…BillApril 19, 2017 at 9:40 am in reply to: vkGetPhysicalDeviceSurfaceSupportKHR sometimes returns presentSupport as false #1216
I have not been able to replicate this on a MacBook 2014 running Sierra 10.12.4.
presentSupportalways comes back as
truefor either the discrete or integrated GPU.
Normally, the only reason why that value would come back as
falseshould be if the GPU reports that it is running headless (with no display attached)…which should never happen on a MacBook.
The fact that restarting your computer resets this issue indicates that it might be an issue within Apple’s Metal drivers on your particular platform. What Mac and OS X version are you using?
You are entirely correct. As you expected, the format
VK_FORMAT_B8G8R8A8_SRGBis indeed supported as a surface format on both macOS and iOS by MoltenVK and Metal.
VK_FORMAT_A8B8G8R8_SRGB_PACK32is being reported incorrectly by the
VK_FORMAT_B8G8R8A8_SRGBvalue should be reported instead.
We’ll fix this for the next release.
Thanks for pointing out this issue.
…BillApril 5, 2017 at 9:56 am in reply to: MoltenShaderConverter does only support vertex & fragment shaders? #1211
Thanks for supporting MoltenVK in your game engine, and thanks for including the link to it.
The shader converter does not currently support conversion of Tessellation or Compute shaders from SPIR-V.
However, both features are a top priority for us, and will be under development very soon. You should expect to see them soon.
…BillApril 4, 2017 at 1:46 pm in reply to: vkGetPhysicalDeviceSurfaceSupportKHR sometimes returns presentSupport as false #1209
It’s hard to see how that is happening. The logic is pretty simple for returning that value.
Are you encountering this on iOS or OS X?
Is there any pattern to when it returns one value or the other?
Are you able to provide us with instructions or sample code in order to reproduce the issue?
MoltenVK is a Vulkan implementation that runs on top of Metal on macOS and iOS.
The Xcode iPad/iPhone simulator does not support Metal.
So…you (like all developers using Metal) need to compile and run your code using a real iPad or iPhone device.
Thanks for your interest in MoltenVK.
MoltenVK is a standard implementation of Vulkan, and works like other implementations, using the same Vulkan C bindings. For iOS, you link to the MoltenVK framework within your project (typically Xcode).
We have not tested MoltenVK with VulkanSharp, but as long as you can access the standard Vulkan API through VulkanSharp, and have the ability to link to the MoltenVK iOS framework within your dev environment, it should work.
The MoltenVK TeamJanuary 1, 2017 at 9:07 pm in reply to: Support for VK_EXT_debug_report instance extension #1183
At present, we are focused on developing the driver layer features of Vulkan on iOS and macOS.
We are aware that support for higher layers on these platforms is necessary, and have engaged in discussions with LunarG about working together to add these platforms to the layer frameworks.
Unfortunately, I can’t give you a timeframe yet for delivery of those capabilities.
VK_MVK_ios_surfaceextensions are similar to the
VK_KHR_android_surfaceextension, and for the same reasons. Each GPU device is expected to be able to render to the system display, and therefore no equivalent query functions are currently provided.
Such functionality may be added to either extension in the future should it proved needed.
I’m not sure why you are having trouble with the Triangle and Cube demos in
VulkanSamples. I’ve just tried downloading
VulkanSamples, as you have, and it builds and runs fine.
The error is happening within Xcode’s built-in copy operation. Perhaps have a look at the files within the Xcode Copy Bundle Resources Build Phase, and verify that Xcode has permissions to the
Regarding the Cinder demo, unfortunately, it is not yet publicly available. We are working to get it released through the Cinder team.
…BillDecember 28, 2016 at 10:00 pm in reply to: iOS prints VK_ERROR_FEATURE_NOT_PRESENT: vkCmdDrawIndexed(): #1177
As the error suggests, the Metal device that you are using does not support drawing with a non-zero vertex or instance base, which is used by the Hologram demo.
You require an A9X GPU (iOS_GPUFamily3_v1), or OS X/macOS (OSX_GPUFamily1_v1) to support that feature.
In your app, you can determine the availability of this feature by calling the
vkGetPhysicalDeviceMetalFeaturesMVK()function as defined in
Sorry to hear you are having trouble.
Did you follow the instructions in the Installation section of the
README_MoltenVK_Demos.mddocument…including retrieving the
brenwillversion of the LunarG demos (not the
LunarGversion), and making the required change to the symbolic link to the