Недавно я начал изучать Vulkan для моего пользовательского рендерера. Я следую этому руководству https://vulkan-tutorial.com/en/drawing_ ... ion_layers. Теперь я пытаюсь получить информацию отладки, используя слои проверки. Однако после начала программы Vulkan выдвигает мне следующую ошибку: < /p>
vuid-vkinstancecreateinfo-pnext-pnext (ошибка /спецификация): msgnum: -1337267667-Ошибка проверки: [vuid-vkinstanceeNfo-pnext -pnext] | MessageId = 0xb04aea2d | vkcreateinstance (): Pcreateinfo-> Pnext Chain включает в себя структуру с неожиданным VKStructureType vk_structure_type_application_info. Эта ошибка основана на действительной документации по использованию для версии 304 заголовка Vulkan. Возможно, что вы используете структуру из частного расширения или расширения, которое было добавлено к более поздней версии заголовка Vulkan, и в этом случае использование Pcreateinfo-> Pnext не определен и может не работать правильно с включением проверки. /p>
HeaderFile: < /p>
class VulkanRenderer : public Renderer {
#ifndef EDITOR
const bool enableValidationLayers = false;
#else
const bool m_enableValidationLayers = true;
#endif
///
/// Debug Callback function for Vulkan
///
static VKAPI_ATTR VkBool32 VKAPI_CALL debugCallback
(VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
VkDebugUtilsMessageTypeFlagsEXT messageType,
const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, void* pUserData);
void setupDebugManager();
///
/// Create debugMessenger
///
VkResult CreateDebugUtilsMessengerEXT(VkInstance instance,
const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator,
VkDebugUtilsMessengerEXT* pDebugMessenger);
void populateDebugMessengerCreateInfo(VkDebugUtilsMessengerCreateInfoEXT& createInfo);
void DestroyDebugUtilsMessengerEXT(VkInstance instance,VkDebugUtilsMessengerEXT debugMessenger
, const VkAllocationCallbacks* pAllocator);
const std::vector m_ValidationLayers = {
"VK_LAYER_KHRONOS_validation"
};
///
/// Returns the support state for each validation layer in m_ValidationLayers
///
///
bool checkValidationLayerSupport();
void getRequiredExtensions(std::vector& extensionList);
///
/// Initializes a new VkInstance
///
///
Instance info that should be initialized
/// all extensions that are required for the renderer
void setVkInstanceInfo(VkInstanceCreateInfo& createInfo, VkApplicationInfo& appInfo, std::vector& requiredExtensions);
const void setVkAppinfo(VkApplicationInfo& appInfo);
void draw(GLFWwindow* window) override;
void initialize() override;
void cleanup(std::vector& window) override;
private:
void createInstance();
VkInstance m_Instance = VK_NULL_HANDLE;
VkDebugUtilsMessengerEXT m_debugMessenger = VK_NULL_HANDLE;
};
< /code>
cpp -файл: < /p>
#include "pch.h"
#include "VulkanRenderer.h"
#include "Main/Core.h"
///
/// Vulkan Coding conventions:
/// Functions have a lower case vk prefix,
/// types like enumerations and structs have a Vk prefix
/// and enumeration values have a VK_ prefix.
///
VKAPI_ATTR VkBool32 VKAPI_CALL VulkanRenderer::debugCallback
(VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
VkDebugUtilsMessageTypeFlagsEXT messageType,
const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, void* pUserData) {
std::cerr
Подробнее здесь: https://stackoverflow.com/questions/793 ... ucturetype
Vulkan Struct включает в себя структуру с «неожиданным VKStructureType» ⇐ C++
Программы на C++. Форум разработчиков
1738091640
Anonymous
Недавно я начал изучать Vulkan для моего пользовательского рендерера. Я следую этому руководству https://vulkan-tutorial.com/en/drawing_a_triangle/setup/validation_layers. Теперь я пытаюсь получить информацию отладки, используя слои проверки. Однако после начала программы Vulkan выдвигает мне следующую ошибку: < /p>
vuid-vkinstancecreateinfo-pnext-pnext (ошибка /спецификация): msgnum: -1337267667-Ошибка проверки: [vuid-vkinstanceeNfo-pnext -pnext] | MessageId = 0xb04aea2d | vkcreateinstance (): Pcreateinfo-> Pnext Chain включает в себя структуру с неожиданным VKStructureType vk_structure_type_application_info. Эта ошибка основана на действительной документации по использованию для версии 304 заголовка Vulkan. Возможно, что вы используете структуру из частного расширения или расширения, которое было добавлено к более поздней версии заголовка Vulkan, и в этом случае использование Pcreateinfo-> Pnext не определен и может не работать правильно с включением проверки. /p>
HeaderFile: < /p>
class VulkanRenderer : public Renderer {
#ifndef EDITOR
const bool enableValidationLayers = false;
#else
const bool m_enableValidationLayers = true;
#endif
///
/// Debug Callback function for Vulkan
///
static VKAPI_ATTR VkBool32 VKAPI_CALL debugCallback
(VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
VkDebugUtilsMessageTypeFlagsEXT messageType,
const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, void* pUserData);
void setupDebugManager();
///
/// Create debugMessenger
///
VkResult CreateDebugUtilsMessengerEXT(VkInstance instance,
const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator,
VkDebugUtilsMessengerEXT* pDebugMessenger);
void populateDebugMessengerCreateInfo(VkDebugUtilsMessengerCreateInfoEXT& createInfo);
void DestroyDebugUtilsMessengerEXT(VkInstance instance,VkDebugUtilsMessengerEXT debugMessenger
, const VkAllocationCallbacks* pAllocator);
const std::vector m_ValidationLayers = {
"VK_LAYER_KHRONOS_validation"
};
///
/// Returns the support state for each validation layer in m_ValidationLayers
///
///
bool checkValidationLayerSupport();
void getRequiredExtensions(std::vector& extensionList);
///
/// Initializes a new VkInstance
///
///
Instance info that should be initialized
/// all extensions that are required for the renderer
void setVkInstanceInfo(VkInstanceCreateInfo& createInfo, VkApplicationInfo& appInfo, std::vector& requiredExtensions);
const void setVkAppinfo(VkApplicationInfo& appInfo);
void draw(GLFWwindow* window) override;
void initialize() override;
void cleanup(std::vector& window) override;
private:
void createInstance();
VkInstance m_Instance = VK_NULL_HANDLE;
VkDebugUtilsMessengerEXT m_debugMessenger = VK_NULL_HANDLE;
};
< /code>
cpp -файл: < /p>
#include "pch.h"
#include "VulkanRenderer.h"
#include "Main/Core.h"
///
/// Vulkan Coding conventions:
/// Functions have a lower case vk prefix,
/// types like enumerations and structs have a Vk prefix
/// and enumeration values have a VK_ prefix.
///
VKAPI_ATTR VkBool32 VKAPI_CALL VulkanRenderer::debugCallback
(VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
VkDebugUtilsMessageTypeFlagsEXT messageType,
const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, void* pUserData) {
std::cerr
Подробнее здесь: [url]https://stackoverflow.com/questions/79394903/vulkan-struct-includes-a-structure-with-unexpected-vkstructuretype[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия