Comments (11)
Definitely, I will be adding MoltenVK as soon as I get a chance. Metal support is a more of a long term goal.
I haven't tried it yet but it might literally be just the matter of installing the dependency, tweaking a few flags and such and getting it to work out of the box. Might be some kinks to work out afterwards.
from bsf.
Read it, MoltenVK was using a non-public interface that is not allowed by Apple. There is a pull request that has been submitted so it should work again.
link to article update
from bsf.
Is there a specific use case for Metal that MoltenVK doesn't cover?
from bsf.
The main concern is that MolenVK is a wrapper on top of Metal. I haven't used Metal myself yet but from what I've heard there are some considerable differences between it and Vulkan, which means the wrapper might need to do some extra busy-work, making it non-optimal.
Its probably not the worst thing ever, but since Metal is something users will use if they want maximum performance, having an unnecessary layer on top doesn't feel right. For that reason this is certainly not a huge priority, but will eventually be nice to have.
from bsf.
I haven't played with it too much yet (still learning Vulkan), but it would at least be a nice stop-gap since you already have a Vulkan backend and you'd get more features on Mac than their OpenGL support offers, plus it could be slipstreamed as a dependency.
Just a thought. :)
from bsf.
There is this post about: Apple Rejects iOS App For Using MoltenVK Vulkan, Alleged Non-Public API
link
Might be interesting to read.
from bsf.
Hi folks. I've tried to build lastest master with MoltenVK 1.1.85. I've changed the file FindVulkan.cmake from:
set(Vulkan_LIBNAME vulkan)
to
set(Vulkan_LIBNAME MoltenVK)
Then it builds a lot of files, but then it throws this compile error:
Source/Plugins/bsfVulkanRenderAPI/BsVulkanDevice.cpp:10:
Source/Plugins/bsfVulkanRenderAPI/ThirdParty/vk_mem_alloc.h:1688:14: fatal error: 'malloc.h' file not found
#include <malloc.h> // for aligned_alloc()
Source/Plugins/bsfVulkanRenderAPI/ThirdParty/vk_mem_alloc.h:2105:16: error: use of undeclared identifier 'aligned_alloc'
return VMA_SYSTEM_ALIGNED_MALLOC(size, alignment);
Source/Plugins/bsfVulkanRenderAPI/ThirdParty/vk_mem_alloc.h:4887:10: error: call to member function 'WriteNumber' is ambiguous
json.WriteNumber(m_Suballocations.size() - m_FreeCount);
It doesn't compile because this file is outdated. After update this from here:
https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/blob/master/src/vk_mem_alloc.h
it compiles ;)
the next need more work:
bsf.git/Source/Plugins/bsfVulkanRenderAPI/BsVulkanCommandBuffer.cpp:26:1: error: static_assert failed "Other platforms go here"
static_assert(false, "Other platforms go here");
It needs a MacOS render window ...
btw: this project (bsf) has a really awesome CMake setup!
from bsf.
Nice work. You can probably grab most of the render window code from the OpenGL version in Source\Plugins\bsfGLRenderAPI\MacOS
, and replace any OpenGL calls with Vulkan ones.
from bsf.
I've done a first try. Not all code compiles. It's only a rough skeleton:
@BearishSun can you please shortly look at it? I need to know if i go further.
I don't know much about Vulkan. For example i don't know for what the extension are:
"VK_MVK_MACOS_SURFACE_EXTENSION_NAME"
remoe@e9fae5a#diff-4fe8409ac8a139179166584cc5ff8657R152
is it similar to "VK_KHR_WIN32_SURFACE_EXTENSION_NAME" on windows?
from bsf.
Yes that looks pretty close to what's its supposed to be.
Indeed VK_MVK_MACOS_SURFACE_EXTENSION_NAME
is just a macOS version of that Win32 extension. Here's the window-system-specific part of the Vulkan spec that explains it: https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#wsi
from bsf.
Thanks for the info. I've pushed a WIP - integration of Vulkan in MacOSX:
It compiles and links with MacOSX environment and with activated VulkanAPI.
from bsf.
Related Issues (20)
- Animation getState setState crash HOT 1
- Crash on loading skybox texture asset HOT 12
- error reporting on shader compile does not work HOT 7
- way to enable vertex program point size with gl renderer HOT 6
- Auto aspect ratio for camera HOT 1
- compiling error in vs 2019 HOT 1
- Vulkan rendering crashing, in master HOT 5
- add dependencies through plugins[Feature] HOT 3
- First example crashes If started directly from visual studio 2019 HOT 1
- Bug: Imgui plugin demo fails compilation
- alternativeto card
- How bout metal and mobile support (ios, android)?
- get exception when closing the my app window
- macOS 10.14+ support
- Mesh and material in one file
- memcpy parameters flipped
- How to turn off the automatic download function in CMAKE
- [PSA] DEAD - Project is [assumed to be] dead HOT 3
- Cmake auto downloading Resource link invalid HOT 1
- [PSA] - Project Death Update HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bsf.