kruseborn
Forum Replies Created
-
AuthorPosts
-
It looks like it is working, I get not errors from the Metal framework and the picture is correct:)
2017-04-26 at 3:05 am in reply to: vkGetPhysicalDeviceSurfaceSupportKHR sometimes returns presentSupport as false #1230I am using a Mac Pro but the screens are connected to a kvm switch because I am sharing the screens with a windows computer. I have now tested running it without the kvm switch and I have not seen the error anymore, so that is probably it, thanks:)
We are going to release the product in the end of the year, so like 2,3 month would not be a problem for us. But the in the final product we are dependent on really large textures and would really appreciate if you would look in to it. The max buffer size on iPad was only 256 MB, its strange that Apple has different limitations for textures and buffers.
best regards
krusebornIt looks like you can allocate larger textures than buffer memory in Metal. I have been able to create a 512MB 3D texture on an iPad in Metal.
Is this something that can been done in MoltenVK? And if its not, is there something I can write to create a texture with
let texture = device.makeTexture(descriptor: textureDescriptor)
And still somehow get a Vulkan-descriptorset from MoltenVK to point to that texture memory?2017-04-13 at 6:23 am in reply to: vkGetPhysicalDeviceSurfaceSupportKHR sometimes returns presentSupport as false #1212I am encountering this on OS X, I usually solve it by restarting the computer. However, the application still works even though presentSupport does not return a positive value.
static void findQueueFamilies() { // Check queue families uint32_t queueFamilyCount = 0; vkGetPhysicalDeviceQueueFamilyProperties(physicalDevice, &queueFamilyCount, nullptr); assert(queueFamilyCount != 0); std::vector<VkQueueFamilyProperties> queueFamilies(queueFamilyCount); vkGetPhysicalDeviceQueueFamilyProperties(physicalDevice, &queueFamilyCount, queueFamilies.data()); bool foundGraphicsQueueFamily = false; bool foundPresentQueueFamily = false; for (uint32_t i = 0; i < queueFamilyCount; i++) { VkBool32 presentSupport; vkGetPhysicalDeviceSurfaceSupportKHR(physicalDevice, i, windowSurface, &presentSupport); if (queueFamilies[i].queueCount > 0 && queueFamilies[i].queueFlags & VK_QUEUE_GRAPHICS_BIT) { vkContext.graphicsQueueFamilyIndex = i; foundGraphicsQueueFamily = true; if (presentSupport) { vkContext.presentQueueFamilyIndex = i; foundPresentQueueFamily = true; break; } } if (!foundPresentQueueFamily && presentSupport) { vkContext.presentQueueFamilyIndex = i; foundPresentQueueFamily = true; } } assert(foundGraphicsQueueFamily && foundPresentQueueFamily); }
-
AuthorPosts