Здравствуйте!
Я следовал этому уроку о Вулкане: https://vulkan -tutorial.com .Но проблема в том, что когда я запускаю свое приложение, появляется эта ошибка:
Validation layer: Vertex info
-----------
(0) : error C5145: must write to gl_Position
Failed to create graphics pipeline
Это происходит, когда графический конвейер тоже создается.Я нашел ответ только для OpenGL, но не для Vulkan.Я пытался переписать код, который читает файл, но ничего.Вот код VkShader.cpp (содержит шейдерный модуль)
IOManager::FIOManagerFile shaderCode = IOManager::ReadBinaryFile(filename);
vk::ShaderModuleCreateInfo createInfo = vk::ShaderModuleCreateInfo()
.setCodeSize(shaderCode.Size)
.setPCode(reinterpret_cast<const uint32*>(shaderCode.Contents));
if (context->GetDevice().createShaderModule(&createInfo, nullptr, &ShaderModule) != vk::Result::eSuccess)
{
throw std::runtime_error("Failed to create shader module for shader " + filename);
}
и IOManager.h
struct FIOManagerFile
{
size_t Size;
char* Contents;
};
static inline FIOManagerFile ReadBinaryFile(const std::string& filename)
{
std::ifstream file(filename, std::ios::ate | std::ios::in | std::ios::binary);
if (file.is_open())
{
size_t fileSize = (size_t)file.tellg();
char *buffer = new char[fileSize];
file.seekg(0, std::ios::beg);
file.read(buffer, fileSize);
file.close();
FIOManagerFile f;
f.Size = fileSize;
f.Contents = buffer;
return f;
}
else
{
throw std::runtime_error("Failed to open file " + filename);
}
}
Хорошего дня.