想手动创建 device 失败
This commit is contained in:
@@ -178,6 +178,8 @@ void Application::createLogicalDevice() {
|
||||
throw std::runtime_error("failed to create logical device!");
|
||||
}
|
||||
|
||||
v_device = std::make_unique<vkb::core::DeviceC>(v_gpu, device, surface);
|
||||
|
||||
vkGetDeviceQueue(device, indices.graphicsFamily.value(), 0, &graphicsQueue);
|
||||
vkGetDeviceQueue(device, indices.presentFamily.value(), 0, &presentQueue);
|
||||
}
|
||||
|
||||
@@ -47,6 +47,8 @@ public:
|
||||
bool isInited() { return inited; }
|
||||
|
||||
protected:
|
||||
std::unique_ptr< vkb::core::InstanceC> v_instance;
|
||||
std::unique_ptr<vkb::PhysicalDevice> v_gpu;
|
||||
std::unique_ptr<vkb::core::DeviceC> v_device;
|
||||
VkPhysicalDevice physicalDevice = VK_NULL_HANDLE; // 物理设备
|
||||
VkDevice device; // 逻辑设备
|
||||
|
||||
+10
-10
@@ -18,20 +18,20 @@ void FaceApp::initVulkan()
|
||||
|
||||
void FaceApp::generate_quad()
|
||||
{
|
||||
std::vector<TextureLoadingVertexStructure>& vertices = obj_vertices;
|
||||
std::vector<uint32_t> indices = obj_indices;
|
||||
//std::vector<TextureLoadingVertexStructure>& vertices = obj_vertices;
|
||||
//std::vector<uint32_t> indices = obj_indices;
|
||||
|
||||
index_count = static_cast<uint32_t>(indices.size());
|
||||
//index_count = static_cast<uint32_t>(indices.size());
|
||||
|
||||
auto vertex_buffer_size = vkb::to_u32(vertices.size() * sizeof(TextureLoadingVertexStructure));
|
||||
auto index_buffer_size = vkb::to_u32(indices.size() * sizeof(uint32_t));
|
||||
//auto vertex_buffer_size = vkb::to_u32(vertices.size() * sizeof(TextureLoadingVertexStructure));
|
||||
//auto index_buffer_size = vkb::to_u32(indices.size() * sizeof(uint32_t));
|
||||
|
||||
vkb::core::DeviceC& cDevice = reinterpret_cast<vkb::core::DeviceC&>(*v_device);
|
||||
//vkb::core::DeviceC& cDevice = reinterpret_cast<vkb::core::DeviceC&>(*v_device);
|
||||
|
||||
auto vertex_buffer = std::make_unique<vkb::core::BufferC>(cDevice, vertex_buffer_size,VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,VMA_MEMORY_USAGE_CPU_TO_GPU);
|
||||
vertex_buffer->update(vertices.data(), vertex_buffer_size);
|
||||
//auto vertex_buffer = std::make_unique<vkb::core::BufferC>(cDevice, vertex_buffer_size,VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,VMA_MEMORY_USAGE_CPU_TO_GPU);
|
||||
//vertex_buffer->update(vertices.data(), vertex_buffer_size);
|
||||
|
||||
index_buffer = std::make_unique<vkb::core::BufferC>(cDevice,index_buffer_size,VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_INDEX_BUFFER_BIT,VMA_MEMORY_USAGE_CPU_TO_GPU);
|
||||
//index_buffer = std::make_unique<vkb::core::BufferC>(cDevice,index_buffer_size,VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_INDEX_BUFFER_BIT,VMA_MEMORY_USAGE_CPU_TO_GPU);
|
||||
|
||||
index_buffer->update(indices.data(), index_buffer_size);
|
||||
//index_buffer->update(indices.data(), index_buffer_size);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user