Использование буферов RAII для униформы в ВулканеC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Использование буферов RAII для униформы в Вулкане

Сообщение Anonymous »

Проблема
Я следую за этим примером raii vulkan для создания унифицированного буфера.
Я есть Не собирать образцы Vulkan-HPP напрямую, но воссоздал это, в частности, в минимальном проекте. Я использую MacBook M1 и добавил VK_KHR_PORTABILITY_ENUMERORE Extension и EenumeratePortabilityKHR бит создания экземпляра. Я сделал суть с минимальным воспроизводимым примером здесь. < /P>
Строки, наиболее важные для этой проблемы: < /p>

Код: Выделить всё

uint8_t* pData = static_cast(uniformDataMemory.mapMemory(0, memoryRequirements.size));
memcpy(pData, &mvpc, sizeof(mvpc));
uniformDataMemory.unmapMemory();
переменная mvpc - просто glm :: mat4x4 . Программа компилирует, но сбои на линии Memcpy с ошибкой «неверный доступ». Ошибка: < /p>

Код: Выделить всё

Exception: EXC_BAD_ACCESS (code=2, address=0x1026d4000)
Примечание: если у меня нет прикрепленного отладчика, программа работает и выходит с кодом 0. > < /p>
Я хочу прояснить мое понимание того, что происходит за кулисами. < /p>
  • a vk :: raii: : Buffer только что дает описание того, как будет использоваться буфер и насколько он большой. Я создаю это первым, чтобы выяснить, какие требования он будет иметь для памяти графического процессора. < /Li>
    GPU может иметь несколько типов памяти, которые имеют разные свойства. Мне нужно найти индекс к типу памяти графического процессора, который удовлетворяет требованиям моего буфера. Память на графическом процессоре. Память будет существовать для срока службы объекта. даст мне void*, который я могу написать несколько байтов на. Размер Параметр VK :: MemoryRequirements из моего буфера. Больше, чем размер данных, которые я копирую, поэтому Memcpy должен быть безопасным. Что заставляет меня задуматься о том, является ли проблема
Вопрос
Мои предположения выше неправильно? Если нет, то каковы возможные причины и как я могу их проверить? Заранее спасибо :)

Подробнее здесь: https://stackoverflow.com/questions/794 ... -in-vulkan
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»