Как сделать в вк статус не в сети: Как скрыть что ты онлайн ВКонтакте: в компьютере, на телефоне

Как добавить музыку или игру в статус на личной странице «ВКонтакте»

МузыкаНастройки

В социальной сети «ВКонтакте» пользователи могут не только общаться друг с другом, но также, помимо всего прочего, слушать любимую музыку и играть в различные игры, а также запускать загруженные на этот сайт приложения. При этом разработчики сайта добавили специальную функцию, которая позволяет транслировать сразу себе в статус на личную страницу информацию о том, какую музыку слушает пользователь прямо сейчас, либо о том, какое приложение он запустил.

В этой статье мы подробно рассмотрим, как на компьютере или с мобильного устройства начать:

  • Транслировать музыку в статус;
  • Транслировать запущенные приложения «ВКонтакте».

Содержание

Полная компьютерная версия «ВКонтакте»

Для начала следует разобраться с тем, как задать эти настройки на компьютере с десктопной версии сайта.

Как добавить музыку в статус?

Проще всего это сделать, перейдя на свою личную страницу и нажав на свой текущий статус (либо, если он не установлен, на «Изменить статус») под своим именем.

Далее в открывшейся области нужно поставить галочку рядом с пунктом «Транслировать музыку в статус» и нажать на «Сохранить» для подтверждения своих действий.

Есть и другой способ, который позволяет добавить свою прослушиваемую музыку в статус профиля. Для этого нужно перейти в раздел со своей «Музыкой» и в правой части плеера нажать на кнопку с иконкой трансляции. Далее в выпадающем списке следует отметить пункт «На мою страницу», после чего вся прослушиваемая пользователем музыка будет транслироваться в его статус.

Обратите внимание!

Здесь также можно указать соответствующие пункты, чтобы музыка транслировалась в статусы администрируемых сообществ.

Как добавить игру в статус?

По умолчанию большинство игр и приложений «ВКонтакте» сразу транслируются в статус пользователя, когда он их запускает. Чтобы задать эти настройки для конкретного приложения, нужно запустить его и в правой верхней части выбрать «Действия», после чего во всплывающем меню нажать на кнопку «Настройки».

Далее отобразится новое окно, в котором нужно просто отметить третий пункт галочкой и нажать после этого на «Сохранить» для подтверждения своих действий. После этого игра должна добавиться в статус. Здесь также можно убрать отображение данного приложения в статусе.

Убрать игру из своего статуса можно также, просто нажав на статус, когда в нем транслируется приложение. 

После нажатия на статус в появившейся области нужно убрать галочку с соответствующего пункта, а также нажать на «Сохранить», чтобы применить эти изменения. После этого данное приложение больше не будет транслироваться в статус.

Как добавить музыку в статус «ВКонтакте» в мобильном приложении?

Чтобы через официальное мобильное приложение задать настройки, которые позволят транслировать воспроизводимую музыку в статус, сначала нужно включить тот или иной трек и перейти в музыкальный плеер «ВКонтакте». В плеере требуется нажать на кнопку с тремя точками для вызова меню с дополнительными функциями.

В появившемся меню следует нажать на кнопку с иконкой трансляции, чтобы далее задать требуемые настройки.

В открывшемся списке нужно отметить пункт «Моя страница», чтобы музыка начала транслироваться в статус пользователя на его личной странице. Также здесь, как и в полной компьютерной версии сайта, можно указать, в какие администрируемые пользователем сообщества должна транслироваться музыка.

Заключение

В мобильном приложении нельзя задать соответствующие настройки для приложений, а в мобильной версии не получится даже добавить музыку в статус, поэтому намного удобнее и проще задавать все эти настройки с компьютера. При этом даже при воспроизведении музыки с телефона эти настройки сработают, и музыка будет транслироваться в статус, если были установлены данные параметры.

как заработать деньги генеральным директором в gta v

«Вы живете там, где страх быть и любовь к бытию сочетаются в одном человеке», — сказала она.

«Вы не отвечаете мне,» сказал Хви.

«И это все?»

«У меня нет внутреннего зрения, нет внутреннего голоса», — сказала она. «Но я видел моего лорда Лито, чью душу я люблю, и я знаю единственное, что вы действительно понимаете».

— Тогда что ты мог сделать?

Лито отвел взгляд от нее и сосредоточился на спине Монео, на движениях мажордома, на скрытых претензиях на секретность, столь очевидных там. Процессия сошла с первого пологого склона. Теперь он повернулся, чтобы начать восхождение на Западный Рингволл. Монео двигался так же, как и всегда, шагая на один фут вперед, зная, куда он будет ставить каждый шаг, но в мажордоме было что-то новое. Лито чувствовал, как человек отдаляется, больше не довольствуясь маршем рядом с лицом своего лорда, спрятанным в капюшоне, больше не пытаясь соответствовать судьбе своего хозяина. На востоке ждал Сарир. На западе была река, плантации. Монео не смотрел ни влево, ни вправо. Он видел другой пункт назначения.

«И это все?»

— Да. Я начинаю кое-что в вас понимать, — сказала она. «Я чувствую некоторые из твоих страхов. И я думаю, что уже знаю, где ты живешь».

Он не мог моргнуть.

Его руки перестали дрожать. Слезы катились по каждой из его щек. Когда слезы коснулись его капюшона, вырвались струйки голубого дыма. Он чувствовал жжение и был благодарен за боль.

«Вы живете там, где страх быть и любовь к бытию сочетаются в одном человеке», — сказала она.

«Вы мистик, — сказала она, — нежны к себе только потому, что находитесь в центре этой вселенной, смотрите вовне, смотрите так, как другие не могут. Вы боитесь поделиться этим, но хотите поделиться этим больше всего на свете. »

Он не мог моргнуть.

— Тогда что ты мог сделать?

«Что ты видел?» он прошептал.

Лито отвел взгляд от нее и сосредоточился на спине Монео, на движениях мажордома, на скрытых претензиях на секретность, столь очевидных там. Процессия сошла с первого пологого склона. Теперь он повернулся, чтобы начать восхождение на Западный Рингволл. Монео двигался так же, как и всегда, шагая на один фут вперед, зная, куда он будет ставить каждый шаг, но в мажордоме было что-то новое. Лито чувствовал, как человек отдаляется, больше не довольствуясь маршем рядом с лицом своего лорда, спрятанным в капюшоне, больше не пытаясь соответствовать судьбе своего хозяина. На востоке ждал Сарир. На западе была река, плантации. Монео не смотрел ни влево, ни вправо.

Он видел другой пункт назначения.

«У меня нет внутреннего зрения, нет внутреннего голоса», — сказала она. «Но я видел моего лорда Лито, чью душу я люблю, и я знаю единственное, что вы действительно понимаете».

Его руки перестали дрожать. Слезы катились по каждой из его щек. Когда слезы коснулись его капюшона, вырвались струйки голубого дыма. Он чувствовал жжение и был благодарен за боль.

«Вы мистик, — сказала она, — нежны к себе только потому, что находитесь в центре этой вселенной, смотрите вовне, смотрите так, как другие не могут. Вы боитесь поделиться этим, но хотите поделиться этим больше всего на свете. »

Он не мог моргнуть.

«Вы мистик, — сказала она, — нежны к себе только потому, что находитесь в центре этой вселенной, смотрите вовне, смотрите так, как другие не могут.

Вы боитесь поделиться этим, но хотите поделиться этим больше всего на свете. »

«Ты делишься со мной своей душой, Любовь. Ты знаешь это?»

«Я предположил Малки, что могут быть некоторые вещи, которые мужчинам не следует изобретать».

Его руки перестали дрожать. Слезы катились по каждой из его щек. Когда слезы коснулись его капюшона, вырвались струйки голубого дыма. Он чувствовал жжение и был благодарен за боль.

Лито отвел взгляд от нее и сосредоточился на спине Монео, на движениях мажордома, на скрытых претензиях на секретность, столь очевидных там. Процессия сошла с первого пологого склона. Теперь он повернулся, чтобы начать восхождение на Западный Рингволл. Монео двигался так же, как и всегда, шагая на один фут вперед, зная, куда он будет ставить каждый шаг, но в мажордоме было что-то новое.

Лито чувствовал, как человек отдаляется, больше не довольствуясь маршем рядом с лицом своего лорда, спрятанным в капюшоне, больше не пытаясь соответствовать судьбе своего хозяина. На востоке ждал Сарир. На западе была река, плантации. Монео не смотрел ни влево, ни вправо. Он видел другой пункт назначения.

Блог Khronos — The Khronos Group Inc

Даниэль Кох, NVIDIA, при участии рабочей группы Vulkan SC vulkansc

Почему важна безопасность?

Спрос на продвинутую графику и вычисления с ускорением на GPU растет в широком спектре отраслей, где безопасность имеет первостепенное значение, таких как автомобилестроение и авионика. Когда сбой вычислительной или дисплейной системы может представлять значительный риск для безопасности крайне важно, чтобы системы соответствовали критически важным для безопасности стандартам, таким как ISO 26262.

Vulkan SC — это низкоуровневый детерминированный API, который позволяет критически важным для безопасности системам разработчикам развертывать современную графику графического процессора и ускорять вычисления за счет оптимизации процесс сертификации безопасности на уровне системы. Vulkan SC также может быть незаменим для встроенные приложения реального времени, даже если они формально не сертифицированы по безопасности.

Vulkan SC 1.0 разработан на основе Vulkan 1.2 и включает удаление среды выполнения функциональность, которая не требуется на рынках, критически важных с точки зрения безопасности, обновленный дизайн, обеспечивающий предсказуемость время выполнения и результаты, а также разъяснения для устранения потенциальной двусмысленности в его работе. Окончательный список изменений и добавленных функций задокументирован в Vulkan SC. 1.0 Спецификация, Приложение H: Отклонения Vulkan SC от базового Вулкан.

В этой статье содержится сводка обновлений, которые были сделаны для создания Vulkan SC 1. 0 и объясняет, как эти новые возможности обычно используются в приложениях. Предполагается, что читатель имеет разумное представление об API Vulkan.

Критическая безопасность Допустимое использование

Vulkan SC API следует философии Vulkan требует очень ограниченная ошибка проверка на производстве. Как и в случае с Вулканом, Спецификация Vulkan SC содержит обширные инструкции Valid Usage, определяющие набор условий, которые должны быть выполнены для достижения четко определенного поведения во время выполнения в приложении. Однако это не означает что система, сертифицированная по безопасности, не будет иметь ошибок проверка, просто то, что спецификация не обязана быть в драйвере.

Сертификация безопасности проводится для всей системы, включая приложение, реализация Vulkan SC, другие системные библиотеки и даже аппаратное обеспечение. Это зависит от каждого продавца и системный интегратор, чтобы определить, какие компоненты отвечают за проверку входных данных и проверку ошибок. Приложение может отвечать за проверку ввода и проверку ошибок, реализация может выполнять проверка для отклонения входных данных, которые могут привести к неправильному поведению, или формальные методы могут использоваться для доказать, что никакие возможные входные данные не приведут к неопределенному выполнению. Обязанности и требования должны быть четко задокументированы в соответствующей документации по безопасности конкретного поставщика.

Ожидается, что уровни проверки будут поддерживаться в средах разработки но вряд ли они будут поддерживаться в системах развертывания. Khronos не планирует обеспечивать безопасность сертифицированный загрузчик или проверочные слои.

Чем Vulkan SC 1.0 отличается от Vulkan 1.2?

Создание экземпляра

Чтобы различать версии API Vulkan и Vulkan SC, API вариант был задним числом добавлен к упакованному номеру версии Vulkan в Vulkan. 1.2.175, отделив старшие 3 бита поля основной версии. Vulkan использует вариант 0 и таким образом, обратно совместим с предыдущей версией разделения. Vulkan SC использует вариант версии 1. Это влияет на pApiVersion, возвращаемый из vkEnumerateInstanceVersion и VkApplicationInfo::apiVersion, которые запрашиваются через vkCreateInstance. Версия VKSC_API_VERSION_1_0 используется для указания приложения Vulkan SC 1.0, и VK_API_VERSION_1_2 используется для указания версии Vulkan 1.2. заявление.

Существует также макрос VK_API_VERSION_VARIANT, который может использоваться для определения того, поддерживает ли экземпляр Vulkan SC (VKSC_API_VARIANT == 1) или Vulkan (вариант 0). Обратите внимание, что это не Ожидается, что одна реализация будет поддерживать как Vulkan, так и Vulkan SC — это предназначено для включить раннее обнаружение драйвера — несоответствие приложения.

Функции и свойства

В общем, для Vulkan SC 1.0 требуются все те же функции, что и для Vulkan 1.2. Известные исключения из это атомарные инструкции шейдера, мультипредставление, семафоры временной шкалы и разрешение трафарета глубины, все которые сделаны необязательными, и модель памяти Vulkan, которая сделана обязательный. Удаление было сделано, чтобы уменьшить сложность драйвера и нагрузку на проверку. Память модель требовалась для того, чтобы обеспечить четко определенную семантику памяти и дать возможность рассуждать о правильность операций с памятью.

Особенности и свойства устройства Vulkan SC можно определить, передав Структура VkPhysicalDeviceVulkanSC10Features соответствует структуре vkGetPhysicalDeviceFeatures2, а структура VkPhysicalDeviceVulkanSC10Properties – структуре vkGetPhysicalDeviceProperties2 соответственно.

Структура VkPhysicalDeviceVulkanSC10Properties  вводит ряд специфических свойств и ограничений Vulkan SC, которые могут быть более строгими, чем Вулкан. Некоторые типы операций по перезарядке и освобождению памяти являются необязательными, как и определенные пулы команд и операции с буфером команд. Vulkan SC также добавляет ряд потенциально более строгих ограничений на проходы рендеринга, подпроходы, буферы кадра и буферы команд, чтобы сделать резервирование статической памяти более выполнимым и ограниченным.

Vulkan SC также добавляет новое свойство кучи памяти (VK_MEMORY_HEAP_SEU_SAFE_BIT), которое позволяет реализации обозначать кучи памяти. которые устойчивы к сбоям в одиночном событии (подробнее об этом позже).

Создание устройства

Приложения Vulkan SC должны предоставить некоторые обязательные структуры и информацию для создания устройства во время запуска. К ним относится структура VkDeviceObjectReservationCreateInfo, которая обеспечивает автономную скомпилированные конвейеры и максимальное количество объектов для резервирования статической памяти (подробнее об этих ниже) и структуру VkPhysicalDeviceVulkanSC10Features, которая определяет, какой Vulkan Специфические функции SC включены. Если эти структуры не включены, vkCreateDevice завершится с ошибкой. VK_ERROR_INITIALIZATION_FAILED. Если предоставленный кеш конвейера не совместим с устройством, VK_ERROR_INVALID_PIPELINE_CACHE_DATA – это вернулся. Если больше логических устройств или запрашиваются другие объекты, которые не могут быть выделены одновременно, возвращается VK_ERROR_TOO_MANY_OBJECTS. Некоторые платформы могут имеют ограничения на количество устройств, которые могут быть созданы для одного экземпляра. Если приложение желает зарегистрировать обратный вызов для обработки ошибок, это делается путем включения структуры VkFaultCallbackInfo.

Рисунок 1. Конвейеры Vulkan SC, скомпилированные в автономном режиме

Конвейеры, скомпилированные в автономном режиме

Vulkan SC не поддерживает компиляцию онлайн-конвейера (раздел 10.7), поэтому все конвейеры должен быть скомпилирован в автономном режиме с использованием компилятора конвейерного кэша (PCC) для конкретной реализации. PCC принимает как введите JSON файл с описанием конвейера и всех связанных состояний, а также соответствующие Модули SPIR-V для этого конвейера. Они компилируются в окончательное машинное представление и сохраняются в запись в кэше конвейера для данного конвейера. Все из записи кеша конвейера объединяются в один (или несколько) кешей конвейера которые предоставляются как часть создания устройства в структуре VkDeviceObjectReservationCreateInfo (в элементах pipeCacheCreateInfoCount и pPipelineCacheCreateInfos) и загружаются приложением в объекты VkPipelineCache. Кэш конвейера информация, предоставленная для создания устройства, в этот момент не загружается, но реализация может сканировать все записи кэша конвейера, чтобы определить наихудшие размеры внутренних структур драйвера, связанных с трубопроводы, как описано ниже.

Кэш конвейера состоит из документированного заголовка (​​VkPipelineCacheHeaderVersionSafetyCriticalOne) и кэша конвейера. индекс (VkPipelineCacheSafetyCriticalIndexEntry), необязательная отладка информация и двоичное хранилище конвейера для конкретных реализаций. Индекс кеша конвейера включает в себя идентификатор конвейера (pipelineIdentifier) ​​и количество конвейеров памяти, необходимой для двоичного файла этого конвейера (pipelineMemorySize). Идентификатор конвейера для данного конвейера может быть предоставлен в качестве входных данных для PCC через файл JSON или могут быть назначены PCC. Если для кэша конвейера включена отладочная информация, файл JSON для состояние конвейера и модули SPIR-V для каждого этапа конвейера также включаются в кэш конвейера. – они используются для проверки или отладки и не используются драйвером. Включая отладку информация может значительно увеличить размер кэша конвейера. Khronos предоставил Pipeline Cache Utility, позволяющая приложениям и инструментам легко извлекать стандартизированная информация из кэша конвейера.

Пулы конвейеров

Память для конвейеров резервируется реализацией во время создания устройства. Приложение указывает количество пулов записей фиксированного размера (см. VkPipelinePoolSize) в структуре VkDeviceObjectReservationCreateInfo (pipelinePoolSizeCount и pPipelinePoolSizes).

Во время выполнения приложение может создавать конвейеры по мере необходимости, а память распределяется из записи фиксированного размера в соответствующем пуле конвейеров на основе предоставленное приложением назначение пула (poolEntrySize). Когда конвейер уничтожается, запись пула конвейеров становится доступной для последующего повторное использование. Требования к памяти для конвейеров могут значительно различаться в зависимости от сложности шейдера и такое объединение конвейеров одинакового размера в пулы позволяет приложению минимизировать объем избыточная память, выделенная для конвейеров, не приводящая к фрагментации по мере создания конвейеров и уничтожается во время выполнения.

Ожидается, что разработчик выполнит некоторую автономную обработку кэша конвейера, чтобы определить подходящий набор размеров пула для своих конвейеров. Инструмент pcinfo (часть Pipeline Cache Utility) имеет параметры командной строки для отображения конвейера требования к памяти и предложить назначение конвейеров сегментам запрошенных размеров.

Создание конвейера

Как описано выше, конвейеры компилируются только в автономном режиме в Vulkan SC, и это требует некоторых изменения в создании конвейера. Объекты VkShaderModule не используются в ТЦ Вулкан. Вместо этого конвейеры загружаются исключительно из кэшей конвейеров, созданных автономным PCC и загружается в объекты VkPipelineCache во время выполнения. Трубопровод кеши в Vulkan SC всегда нужно создавать с установленными флагами VK_PIPELINE_CACHE_CREATE_READ_ONLY_BIT и VK_PIPELINE_CACHE_CREATE_USE_APPLICATION_STORAGE_BIT, чтобы указать что они не будут изменены во время выполнения, и приложение сохранит содержимое памяти на которые указывает pInitialData в течение всего срока службы конвейера. кешировать объект, чтобы драйверу не нужно было делать копию данных.

При создании конвейера структура VkPipelineOfflineCreateInfo должна предоставляться с каждым Структура Vk*PipelineCreateInfo. Эта структура обеспечивает конвейер идентификатор (pipelineIdentifier), который используется реализацией для найти соответствующую запись кэша конвейера в кэше конвейера и указать, какой пул памяти конвейера память конвейера должна быть загружена (используя poolEntrySize). Параметр VkPipelineCacheSafetyCriticalIndexEntry::pipelineMemorySize  в кэше конвейера дает минимальный размер пула, необходимый для каждого конвейера, а VkPipelineOfflineCreateInfo::poolEntrySize указывает размер корзины. предварительно выделенного пула конвейеров (согласно запросу во время создания устройства), который будет использовать конвейер.

Если структура VkPipelineOfflineCreateInfo не предоставлен, или если идентифицированный конвейер отсутствует в предоставленном кэше конвейера, создание конвейера завершится ошибкой с результатом VK_ERROR_NO_PIPELINE_MATCH.

Все состояния конвейера должны быть предоставлены во время создания конвейера и должны соответствовать состоянию, которое был предоставлен PCC через файл JSON для этого конвейера. Единственными исключениями являются члены модуля, pName и pSpecializationInfo структуры VkPipelineShaderStageCreateInfo, которые не имеют отношения к время выполнения.

Рисунок 2. Распределение статической памяти Vulkan SC

Максимальное количество объектов

В Vulkan SC структуры данных для объектов резервируются реализацией при создании устройства время, чтобы позволить реализациям полагаться исключительно на управление статической памятью во время выполнения. Структура VkDeviceObjectReservationCreateInfo предоставляет верхние границы одновременное количество объектов каждого типа, которое может быть выделено в течение времени существования VkДевайс. Приложение должно обеспечивать верхнюю границу количества объекты всех типов, которые будут существовать в любой момент времени в течение жизни приложения, а также как верхние пределы для некоторых других свойств объекта. Цель этой информации — дать возможность реализации для предварительного выделения структур памяти на стороне хоста для максимального количества и размера каждого объекта (например, с помощью распределителя растровых изображений), если это необходимо. Члены *RequestCount структуры VkDeviceObjectReservationCreateInfo фактически устанавливают метка» для каждого типа объекта. Максимальное* количество участников Структура VkDeviceObjectReservationCreateInfo далее ограничить максимальные свойства определенных типов объектов (например, слои массива или mip-уровни изображения, количество запросы в пуле и т. д.). Затем в течение жизни приложения объекты могут создаваться и уничтожаться. по мере необходимости до этих пределов, и драйверу не нужно выполнять какие-либо выделения памяти во время выполнения. это считается недопустимым использованием, если эти ограничения превышены, что приводит к неопределенному поведению, но реализации могут выбрать возврат ошибки.

Срок службы объекта

Большинство объектов можно создавать и уничтожать по мере необходимости, при условии, что не более запрошенного число существует в любой момент времени (согласно запросу структуры (структур) VkDeviceObjectReservationCreateInfo). Память устройства распределения (VkDeviceMemory), цепочки обмена (VkSwapchainKHR) и объекты пула (VkCommandPool, VkDescriptorPool, VkQueryPool) не может быть явно освобождены или уничтожены. Если свойство VkPhysicalDeviceVulkanSC10Properties::deviceDestroyFreesMemory поддерживается, память этих объектов и любое хранилище, зарезервированное реализацией в ответ на структуры VkDeviceObjectReservationCreateInfo возвращается в систему при уничтожении устройства, в противном случае оно может быть не возвращено в систему до тех пор, пока процесс прекращается.

Пулы команд и буферы

При создании пула команд приложение Vulkan SC должно включать структуру VkCommandPoolMemoryReservationCreateInfo . Это определяет, насколько память (commandPoolReservedSize) выделяется при создании пула команд время, которое будет использоваться для всех буферов команд, записанных из этого пула. При создании командного пула количество зарезервированных буферов команд (commandPoolMaxCommandBuffers) постоянно учитывается в общем количестве буферов команд, запрошенных через VkDeviceObjectReservationCreateInfo::commandBufferRequestCount, даже если буферы команд освобождаются позже.

Командные буферы могут быть выделены и освобождены в пуле по мере необходимости, вплоть до предела VkCommandPoolMemoryReservationCreateInfo::commandPoolMaxCommandBuffers  указывается при создании пула команд. Как только буферы команд освобождаются, они снова могут быть выделены из пула команд. Однако при освобождении командного буфера используемая память буфером команд не возвращается обратно в родительский пул команд, пока не будет вызван vkResetCommandPool. Когда пул команд сбрасывается, ресурсы из всех буферов команд, выделенных из пула команд, возвращаются обратно в пул команд, и снова доступны для использования в записи буфера команд.

Каждая команда, записанная в командный буфер, имеет размер, зависящий от реализации, который считается против commandPoolReservedSize. Ожидается, что заявки будут оцениваться их наихудшее использование памяти буфера команд во время разработки с использованием vkGetCommandPoolMemoryConsumment и резервирование достаточно большой команды буферы. Эту команду также можно использовать во время выполнения для проверки ожидаемого использования памяти. В то время как память потребление конкретной команды зависит от реализации, это детерминированная функция параметров команды и объектов, используемых командой (включая сам командный буфер). Что то есть повторение одного и того же набора команд из одного и того же начального состояния приведет к детерминированному потребление памяти командного буфера.

В VkPhysicalDeviceVulkanSC10Properties сообщается о ряде специфических свойств Vulkan SC, которые указывают, является ли определенный буфер команд функции доступны. Запись нескольких буферов команд из одного и того же пула команд поддерживается, только если поддерживается свойство commandPoolMultipleCommandBuffersRecording. Сброс отдельных буферов команд (с помощью vkResetCommandBuffer) поддерживается, только если свойство commandPoolResetCommandBuffer поддерживается реализацией. Наконец, commandBufferSimultaneousUse указывает, поддерживается ли VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT.

Пулы команд не могут быть уничтожены или обрезаны в Vulkan SC, а флаг VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT не поддерживается.

Обработка сбоев

Обработка сбоев особенно важна для критически важных с точки зрения безопасности устройств, и Vulkan SC включает расширенная функциональность, позволяющая передавать сообщения о неисправностях между Vulkan SC реализация и применение. Это включает в себя поддержку регистрации функции приложения, реализация может вызывать при обнаружении неисправности через VkFaultCallbackInfo при создании устройства и функцию, позволяющую приложение для запроса текущих зарегистрированных ошибок, vkGetFaultData, на лету. Два новых свойства устройства, maxQueryFaultCount и maxCallbackFaultCount были добавлены для указания максимальное количество ошибок, о которых можно сообщить через реализацию одновременно.

Также предоставляется структура VkFaultData, используется для сбора данных об одном сбое, включая перечисления для классификации типа и уровня сбоя, а также член pNext VkFaultData может использоваться для предоставления данных, специфичных для реализации, на ошибка через структуру, определяемую реализацией. Поставщикам рекомендуется расширить обработчик ошибок с помощью конкретные детали реализации, и это должно быть задокументировано в документации по безопасности поставщика.

Кроме того, мы добавили VK_ERROR_VALIDATION_FAILED VkResult, который может быть возвращен любой командой с возвращаемым значением для отчета. любые обнаруженные ошибки проверки. Кроме того, для команд, которые не возвращают значения, существует тип ошибки VK_FAULT_TYPE_INVALID_API_USAGE , который может сообщать с записью неисправности.

Обновление объекта

Во многих критически важных с точки зрения безопасности средах требуется бороться с единичными сбоями (SEU). Эти происходят, когда бит в памяти или регистре физического устройства непреднамеренно переворачивается. Это типично для память хоста для включения автоматического обнаружения ошибок (EDC) или исправления (ECC) на платформах, где это проблема, но доступная для устройства память, например локальная память устройства на дискретных графических процессорах, может не иметь этих защиты. В этом случае данные, хранящиеся в небезопасной для SEU памяти, необходимо периодически перезагружать или регенерированный.

Стандартный Vulkan уже дает явный контроль над большинством данных памяти устройства. Например, приложения могут перезагружать данные VkBuffer из безопасного места или повторно сгенерируйте VkImage, используя стандартные API Vulkan. Однако на некоторых реализации некоторые объекты, такие как VkPipelines , могут неявно хранить информацию в памяти устройства без явного выделения VkDeviceMemory, а Vulkan не предоставляет никаких способов обновления эти объекты, за исключением полного уничтожения и воссоздания их. Vulkan SC добавляет расширение VK_KHR_object_refresh для обработки обновления этих неявных устройств. выделения памяти.

Приложения могут запрашивать реализацию с помощью vkGetPhysicalDeviceRefreshableObjectTypesKHR, чтобы определить, какой объект Vulkan типы имеют неявное выделение памяти устройства и могут быть явно обновлены с помощью этого расширения. vkCmdRefreshObjectsKHR используется для обновления данные памяти устройства объекта из безопасной копии, хранящейся в SEU-безопасной памяти. Для целей синхронизация, vkCmdRefreshObjectsKHR считается переносом операция записи.

Функциональность Vulkan удалена из Vulkan SC 1.0

В соответствии с критической для безопасности философией уменьшения сложности кода везде возможно, существует ряд функций и команд Vulkan, которые не были включены в Vulkan SC 1.0. Как правило, любое расширение, которое было переведено в ядро ​​в Vulkan 1.1 или 1.2, поддерживается только в ядре. Формулировка во избежание дублирования функций. Для не продвигаемых расширений только подмножество Vulkan расширения были включены в Vulkan SC 1.0. Любые устаревшие псевдонимы не включены, так как никаких проблем с совместимостью кода.

Поскольку процесс компиляции конвейера выполняется полностью в автономном режиме в Vulkan SC, нет необходимости для шейдерных модулей и связанной с ними функциональности (vkCreateShaderModule, так далее.). Точно так же нет необходимости в производных конвейерах и служебных функциях кэширования конвейеров. (vkMergePipelineCache, vkGetPipelineCacheData).

Обработка памяти стала более детерминированной за счет удаления разреженных ресурсов и разреженных ресурсов. поддержка привязки памяти, устранение обратных вызовов выделения приложений и удаление освобождения памяти (vkFreeMemory) и деструкторы объединенных объектов (vkDestroy*Pool). Ожидается, что приложение создаст все распределения памяти и пулов во время инициализации, а затем (повторно) использовать их через приложения. время жизни детерминированным образом, чтобы избежать фрагментации памяти. Создание индивидуальных объектов и уничтожение поддерживается за счет использования обработки статической памяти через резервирование объекта API.

Пулы команд были упрощены за счет удаления функции обрезки (vkTrimCommandPool) и возможности высвобождения ресурсов при сбросе (VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT). Некоторые другие аспекты буферы команд и пулы команд также стали необязательными (многократная одновременная запись, одновременное использование и др.). Дескрипторы ресурсов были упрощены за счет удаления обновления дескрипторов. шаблоны.

Подведение итогов и планы на будущее

API Vulkan SC 1.0 успешно развивает проверенный, явный уровень контроля в Vulkan 1.2 и еще больше оптимизирует его, чтобы сократить документацию по сертификации безопасности и поверхность для тестирования. область. Vulkan SC позволяет развертывать современную графику и вычисления с ускорением на GPU в критически важные с точки зрения безопасности системы, сертифицированные в соответствии с отраслевыми стандартами функциональной безопасности.

Vulkan SC 1.0 представляет автономную компиляцию конвейера и статическую память объектов устройства обработка для обеспечения детерминированного поведения и предсказуемого времени выполнения вместе с новой обработкой ошибок и механизмы обновления объектов для надежной работы во время выполнения. Наконец, Vulkan SC 1.0 устраняет или делает необязательные аспекты API Vulkan 1.2, которые было бы сложно сертифицировать или которые вносят свой вклад значительно усложняет работу драйвера.

Спецификация Vulkan® SC 1.0 API теперь общедоступна, и Тест на соответствие Vulkan SC Suite также находится в свободном доступе с открытым исходным кодом, и несколько поставщиков, включая CoreAVI и NVIDIA, уже имеют официально совместимые реализации Vulkan SC 1.0. Отраслевые отзывы о спецификация приветствуется на GitHub спецификации Vulkan SC репозиторий.

Следите за будущими разработками, включая выпуск дополнительной экосистемы tooling, а также другие статьи блога, в которых обсуждаются способы создания приложений Vulkan SC.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Закрыть
Menu