Большинству разработчиков не нужно подробно знать о модели памяти или использовать расширения.Точно так же, как большинству разработчиков C ++ не нужно быть близко знакомыми с моделью памяти C ++ (и это не только из-за x86, но и потому, что большинству программ не нужно ничего, кроме использования соответствующих мьютексов стандартной библиотеки).
Но модель памяти позволяет задавать примитивы когерентности и синхронизации памяти Vulkan с гораздо меньшей неопределенностью, а в некоторых случаях - с дополнительной ясностью и согласованностью.По большей части определения на самом деле не изменились: код, который раньше был свободен от гонки данных, продолжает оставаться свободным от гонки данных.Для немногих разработчиков, выполняющих расширенную или детальную синхронизацию, дополнительная точность и ясность позволяют им точно знать, как сделать свои программы свободными от гонки данных без использования дорогой чрезмерно сильной синхронизации.
Наконец, в сборкеВ модели группа обнаружила несколько вещей, которые были плохо спроектированы или сломаны ранее (многие из них возвращались в OpenGL).Теперь они могут точно сказать, что эти вещи делают, независимо от того, являются ли они полезными или нет, и создавать замены, которые делают то, что было на самом деле.
Расширение объявляет, что эти изменения доступны, но дажеБолее того, если расширение является окончательным, а не предварительным, это будет означать, что реализация была проверена на соответствие модели памяти.