我编写了以下代码来测试最大逻辑器件编号.
#include "vulkan/vulkan.hpp"
#include <cassert>
#include <vector>
#include <iostream>
int main() {
std::vector<vk::Instance> instances;
std::vector<vk::Device> devices;
try {
for( ; true; ) {
vk::InstanceCreateInfo instanceInfo {};
instances.push_back( vk::createInstance( instanceInfo ) );
auto physicalDevices = instances.back().enumeratePhysicalDevices();
if( 0 == physicalDevices.size() )
return 0;
vk::DeviceQueueCreateInfo deviceQueueCreateInfo {};
deviceQueueCreateInfo.queueFamilyIndex = 0;
deviceQueueCreateInfo.queueCount = 1;
vk::DeviceCreateInfo deviceCreateInfo {};
deviceCreateInfo.queueCreateInfoCount = 1;
deviceCreateInfo.pQueueCreateInfos = &deviceQueueCreateInfo;
auto device = physicalDevices.front().createDevice( deviceCreateInfo );
if( !device ) {
throw 0;
}
devices.push_back( device );
}
}
catch( std::system_error …Run Code Online (Sandbox Code Playgroud) 我正在使用ID3D12Resource::Map方法来更新GPU资源.这是最有效的方式吗?有哪些替代方案?