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.63k stars 402 forks source link

provoking vertex - is it supported? #2237

Open timprepscius opened 1 month ago

timprepscius commented 1 month ago

Hey there,

I think "provoking vertex' is not supported. Because the .def file doesn't include it as an extension.

And when I try to do the following (just ignore that it's pseudo code) it doesn't work:

    vku::DeviceMaker dm;
    dm.defaultLayers();
    // the extension doesn't seem to exist
//    dm.extension(VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME);

// but let's just try anyway
    vk::PhysicalDeviceProvokingVertexFeaturesEXT provoking;
    provoking.setProvokingVertexLast(true);
    dm.enableCreateInfo((vku::DeviceMaker::DeviceCreateNode *)&provoking);

I just want to check before I go through and write some special case code to rearrange index orderings.

Thanks in advance.

cdavis5e commented 1 month ago

Nope. This is not supported yet.

I think there might be a Metal SPI[1] for this, since I'm pretty sure OpenGL on Apple Silicon does support it.

[1]: Service Provider Interface: Apple/IBM jargon for a private programming interface intended for use by other OS components.