当前位置: 首页 > news >正文

为什么要建设营销型网站中山市两学一做网站

为什么要建设营销型网站,中山市两学一做网站,重庆最新消息今天封城了,贵阳网站设计Vulkan 物理设备 图片来自《 Vulkan 应用开发指南》 上一节了解了 Vulkan 实例#xff0c;一旦有了实例#xff0c;就可以查找系统里安装的与 Vulkan 兼容的物理设备。 Vulkan 物理设备#xff08;PhysicalDevice#xff09;一般是指支持 Vulkan 的物理硬件#xff0c;通…Vulkan 物理设备 图片来自《 Vulkan 应用开发指南》 上一节了解了 Vulkan 实例一旦有了实例就可以查找系统里安装的与 Vulkan 兼容的物理设备。 Vulkan 物理设备PhysicalDevice一般是指支持 Vulkan 的物理硬件通常是系统的一部分--显卡、加速器、数字信号处理器或者其他的组件。系统里有固定数量的物理设备每个物理设备都有自己的一组固定的功能。 一台主机上可能连接着多个支持 Vulkan 的物理设备为此 Vulkan 提供列举出系统中支持 Vulkan 的所有物理设备功能开发者可通过 vkEnumeratePhysicalDevices() 函数枚举支持 Vulkan 的物理设备。 vkEnumeratePhysicalDevices 函数其定义如下 VkResult vkEnumeratePhysicalDevices(VkInstance                                  instance,uint32_t*                                   pPhysicalDeviceCount,VkPhysicalDevice*                           pPhysicalDevices);instance 是之前使用 vkCreateInstance 创建的 VkInstance 句柄。 pPhysicalDeviceCount 是用于指定或获取的物理设备数量。 pPhysicalDevices 要么是 nullptr 要么是数量不小于 pPhysicalDeviceCount 的 VkPhysicalDevice 数组。 当 pPhysicalDevices 为 nullptr 时该函数会将系统中支持 Vulkan 的设备数量写入 pPhysicalDeviceCount 中。 如果 pPhysicalDevices 为一个有效指针则其指向一个 VkPhysicalDevice 数组并且该数组长度不能小于 pPhysicalDeviceCount 。 如果 pPhysicalDeviceCount 中指定的数量小于系统中的物理设备数量则 pPhysicalDevices 中写入的物理设备不是所有则 vkEnumeratePhysicalDevices() 函数将会写入 pPhysicalDeviceCount 个物理设备到 pPhysicalDevices 数组中并返回 VkResult::VK_INCOMPLET 。 如果所有物理设备成功写入则会返回 VkResult::VK_SUCCESS 。 因此枚举所有物理设备需要调用 vkEnumeratePhysicalDevices() 两次 1.将 pPhysicalDevices 设置为 nullptr 并通过 pPhysicalDeviceCount 获取支持系统中支持 Vulkan 的物理设备数量。 2.创建 pPhysicalDevices 数量的 VkPhysicalDevice 数组并传入 pPhysicalDevices 中以获取系统中支持的 VkPhysicalDevice 物理设备。 VkInstance instance;uint32_t physicalDeviceCount  0; vkEnumeratePhysicalDevices(instance, physicalDeviceCount, nullptr);std::vectorVkPhysicalDevice physicalDevices(physical_device_count); vkEnumeratePhysicalDevices(instance, physicalDeviceCount, physicalDevices.data());枚举的 VkPhysicalDevice 句柄是在调用 vkCreateInstance() 创建 VkInstance 时驱动内部创建的。 即VkInstance 被销毁时 VkPhysicalDevice 句柄们也会销毁。 物理设备属性 在通过 vkEnumeratePhysicalDevices() 获取系统中支持的物理设备句柄后我们需要筛选出我们需要的物理设备比如移动设备使用集成显卡PC 上使用性能更强悍的独立显卡。 我们可以通过 vkGetPhysicalDeviceProperties() 函数获取物理设备信息 void vkGetPhysicalDeviceProperties(VkPhysicalDevice                            physicalDevice,VkPhysicalDeviceProperties*                 pProperties);physicalDevice 对应要获取属性的物理设备的句柄。 pProperties 对应返回的物理设备属性。 其中 VkPhysicalDeviceProperties 定义如下 typedef struct VkPhysicalDeviceProperties {uint32_t                            apiVersion;uint32_t                            driverVersion;uint32_t                            vendorID;uint32_t                            deviceID;VkPhysicalDeviceType                deviceType;char                                deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];uint8_t                             pipelineCacheUUID[VK_UUID_SIZE];VkPhysicalDeviceLimits              limits;VkPhysicalDeviceSparseProperties    sparseProperties; } VkPhysicalDeviceProperties;apiVersion 该设备驱动支持的 Vulkan 版本。 driverVersion 该设备驱动版本。 vendorID 设备供应商的 ID 。 deviceID 设备的 ID 。 deviceType 设备类型。 deviceName 设备名称。 pipelineCacheUUID 设备的通用唯一识别码 universally unique identifier 。 limits 设备的限制信息。 sparseProperties 稀疏数据属性。 其中 apiVersion 是最为重要的参数该参数表明该设备支持的 Vulkan 最高版本。 其中 VkPhysicalDeviceType 定义如下 typedef enum VkPhysicalDeviceType {VK_PHYSICAL_DEVICE_TYPE_OTHER  0,VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU  1,VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU  2,VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU  3,VK_PHYSICAL_DEVICE_TYPE_CPU  4, } VkPhysicalDeviceType;VK_PHYSICAL_DEVICE_TYPE_OTHER 该设备类型不与任何其他类型匹配 Vulkan 中未定义的设备类型。 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU 集成显卡。 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU 独立显卡。 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU 虚拟环境中的虚拟显卡。 VK_PHYSICAL_DEVICE_TYPE_CPU 中央处理器 CPU 。 一般首选使用 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU 独立显卡之后再考虑使用 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU 集成显卡。 不过在移动设备Android 、iOS 系统上一般只有集成显卡 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU 。 其中 VkPhysicalDeviceLimits 用于表述该设备的一些限制比如最大支持的图片像素大小。 物理设备内存属性 单一的物理设备可能有多种不同的内存类型它们的属性之间可能还存在着更多的差异。 因此应用程序非常有必要查询和获取内存的特性然后根据程序逻辑以及资源类型的不同执行更好的资源分配策略。 vkGetPhysicalDeviceMemoryProperties 函数用于获取物理设备的内存属性。这些属性包括内存类型和内存堆的详细信息这对于在 Vulkan 中分配和管理内存非常重要。 void vkGetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties* pMemoryProperties );参数 physicalDevice: 需要查询内存属性的物理设备的句柄。 pMemoryProperties: 指向 VkPhysicalDeviceMemoryProperties 结构体的指针用于接收物理设备的内存属性。 物理设备的内存属性这里就不展开讲了避免陷入全篇都在讲结构体的陷阱后面讲设备内存的时候还涉及。 示例代码 // 创建 Vulkan 实例 VkInstance instance; VkInstanceCreateInfo createInfo  {}; createInfo.sType  VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO; createInfo.pApplicationInfo  appInfo; vkCreateInstance(createInfo, nullptr, instance);uint32_t physicalDeviceCount  0; vkEnumeratePhysicalDevices(instance, physicalDeviceCount, nullptr);//枚举物理设备 std::vectorVkPhysicalDevice physicalDevices(physical_device_count); vkEnumeratePhysicalDevices(instance, physicalDeviceCount, physicalDevices.data());VkPhysicalDevice targetPhysicalDevice  VK_NULL_HANDLE;// 选择物理设备并查询特性 for (const auto device : physicalDevices) {VkPhysicalDeviceProperties deviceProperties;vkGetPhysicalDeviceProperties(device, deviceProperties);// 这里可以根据应用程序的需求选择合适的设备if (deviceProperties.deviceType  VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU) {// 选择该设备targetPhysicalDevice  device;break;} }if(targetPhysicalDevice  VK_NULL_HANDLE) {//没有找到合适的物理设备 }// 开启 Vulkan 编程 ...vkDestroyInstance(instance, nullptr);//通过 vkDestroyInstance 函数销毁 instance 参考 《Vulkan 应用开发指南》 《Vulkan 学习指南》 https://fuxiii.github.io/Essentials.of.Vulkan/PhysicalDevice.html 技术交流 进技术交流群/获取源码添加我的微信Byte-Flow
http://www.w-s-a.com/news/27954/

相关文章:

  • 阜阳网站开发招聘网站建设合作协议申请
  • 电子配件 技术支持 东莞网站建设wordpress 生成html代码
  • 网站用免费空间好不好网站建设的视频
  • 网站开发项目职责门户资源分享网站模板
  • 建网站需要什么语言如何做二维码跳转到网站
  • 天津建设交培训中心网站做网站起名字
  • 黑河北京网站建设湛江市住房和城乡建设局网站
  • 网站建设拾金手指下拉十九企业查询官网
  • 邢台提供网站建设公司哪家好五合一建站
  • 京东网站设计代码驻马店做网站的公司
  • 织梦网站模板使用教程福州网站建设工作
  • 做网站要准备的需求asp 网站后台
  • 滨州网站开发公司中立建设集团有限公司网站
  • 泰安建设厅网站做网站为什么要建站点
  • 有什么好的手机推荐网站创建网站需要哪些工作
  • 网站能给企业带来什么上饶市网站建设公司
  • 学做网站卖东西去哪学南宁网站建设gxjzdrj
  • 欧美网站建设案例网站开发 男生
  • 网站正在开发中做电子元器件的网站
  • 做网站搭建的公司中国建设银行官网站u盾证书
  • 大连哪里有手机自适应网站建设公司网站介绍模板 html
  • 佛山模板建站宣传片制作公司电话
  • 文字网站居中能自己做网站接业务吗
  • 免备案自助建站网站广州珈瑶公司是哪一年注册的
  • ps做网站界面wordpress为图片添加圆角
  • seo优化推广业务员招聘seo顾问服务福建
  • 成都私人网站建设seo网站推广方案策划书
  • 广州网站建设工作室wordpress log
  • 网站后台添加wordpress h1标签优化
  • 自己做网站都需要什么高密 网站建设