Results 1 to 7 of 7

Thread: macOS MoltenVK basic physical device features and geometryShader

  1. #1
    Junior Member
    Join Date
    May 2018
    Posts
    4

    macOS MoltenVK basic physical device features and geometryShader

    Hi I recently started learning Vulkan, now that MoltenVK is open source and I can program for Vulkan on my MacBook Pro 2017.

    I've been following https://vulkan-tutorial.com/Drawing_...queue_families
    and up until this point it has been pretty simple understanding things. I'm now trying to retrieve the physical devices and test them for the needed features. My MacBook Pro 2017 has 2 GPUs in it, Intel HD Graphics 630 (Integrated) and Radeon Pro 560 (Dedicated/Discrete).

    Following the above tutorial it checks if a GPU is VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU and that the device's features has the geometryShader flag.
    Now I knew the Intel would fail the check because it's Integrated, but the Radeon is failing on the geometryShader check. Is this a know issue with the current AMD driver's on macOS and Vulkan at the moment?
    I don't know much about graphics (hence the learning) but I would expect a card such as the 560 Pro (one of the newest card in MacBooks) to support geometry shading, especially as the tutorial has this line of code.

    // Application can't function without geometry shaders
    if (!deviceFeatures.geometryShader)
    return 0;

    I'm assuming it a super basic feature no?

    I did some searches on google and on this forum and could find anyone reporting a similar issue.
    Any help would be appreciated.
    Thanks

  2. #2
    Junior Member
    Join Date
    May 2018
    Posts
    4
    Oh I should add if I kept on reading the tutorial is says "Because we're just starting out, Vulkan support is the only thing we need and therefore we'll settle for just any GPU:"... but I would still like to know if geometryShader is consider basic functionality? Or if it's something I'm likely to need soon after drawing a basic triangle.

  3. #3
    Senior Member
    Join Date
    Mar 2016
    Posts
    321
    MoltenVK does not currently support geometry shaders: https://github.com/KhronosGroup/Molt...vk-limitations

    I think neither does the underlying Metal, so it makes some sense.

  4. #4
    Generally speaking, most people struggle to find a use for Geometry Shaders. That's not to say that they're completely worthless, but the majority of their use cases have been superseded by other features: tessellation shaders (which admittedly Metal/MoltenVK also doesn't support), compute shaders, and the ability to do layered rendering from vertex shaders.

    There just isn't much space left for problems that require GS-based solutions.

  5. #5
    Junior Member
    Join Date
    May 2018
    Posts
    4
    Yeah after poking around more online and chatting to a gfx programming friend, I realize GS often doesn't have much use, and it was just a bad example to use in a tutorial imo... I'll definitely be reading all the way to the end before implementing the code from that site in future... Thanks for all the replies.

  6. #6
    Quote Originally Posted by michael89 View Post
    Yeah after poking around more online and chatting to a gfx programming friend, I realize GS often doesn't have much use, and it was just a bad example to use in a tutorial imo...
    But it was just an example of how to write your application so that it requires a specific feature(s) of the GPU. It wasn't suggesting that GS's were an essential feature of applications. Hence it saying "let's say we consider our application only usable for dedicated graphics cards that support geometry shaders."

  7. #7
    Junior Member
    Join Date
    May 2018
    Posts
    4
    Quote Originally Posted by Alfonse Reinheart View Post
    But it was just an example of how to write your application so that it requires a specific feature(s) of the GPU. It wasn't suggesting that GS's were an essential feature of applications. Hence it saying "let's say we consider our application only usable for dedicated graphics cards that support geometry shaders."
    Oh yeah I realize this now after fully reading that tutorial page, it's just until that stage of the tutorial all the code written in the previous stages had been used, so I was more focusing on the code and making sure it worked, and didn't realize it was going to be throw away code, which is why I was saying it maybe wasn't a great example for a tutorial. I would imagine most people don't follow a tutorial that's trying to teach you the basics of something only to expect you would then immediately throw that code away.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Proudly hosted by Digital Ocean