Skip to content

Vulkan Limitations due to OpenGL Support

Mateusz Kielan edited this page Oct 28, 2020 · 2 revisions

What are they

  1. No texture/sampler separation, combined imageSamplers only
  2. No Input Attachments
  3. Push Constants need to satisfy and explicitly declare the std140 packing rules

Justifications

InputAttachments do not exist in OpenGL and have no API role, however in Vulkan they are necessary as a replacement to an explicit TextureBarrier. This can also help to implement an implicit TextureBarrier insertion for OpenGL when we are writing to the same FBO we're rendering to.

The Push Constants are emulated in OpenGL as a special UBO at binding point 0, they cannot be emulated as a special Uniform Struct as structs have no cross-platform packing rules. So only UBO emulation is possible, hence a requirement to follow std140 packing rules for being cross platform.