Vulkan Struct включает в себя структуру с «неожиданным VKStructureType»C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Vulkan Struct включает в себя структуру с «неожиданным VKStructureType»

Сообщение Anonymous »

Недавно я начал изучать 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
Ответить

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

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

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

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

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