首页 > 解决方案 > 如何配置 SwiftShader 设备内存?

问题描述

我正在使用 SwiftShader 进行 Vulkan 渲染的项目,我不能依赖一个正常运行的硬件实现。今天我在尝试通过vkCreateBuffer(). 由于 SwiftShader 是一个软件实现,我假设设备内存是可配置的。是吗?如果是这样,它是如何配置的?

这是我失败的电话:

size_t sz=1323371088; // > 1GB
size_t usage_flags = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT;
VkBufferCreateInfo bufferCreateInfo = vks::initializers::bufferCreateInfo(usageFlags, size);
bufferCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
int ret = vkCreateBuffer(device, &bufferCreateInfo, nullptr, buffer);

(此示例使用VulkanInitializers.hppSasha Willems 的宏。)

标签: vulkanswiftshader

解决方案


SwiftShader 的 Vulkan 部分的最大单个内存分配大小在 VkConfig.hpp 中定义,默认设置为 1 GiB。如果您需要更大的单次分配限制,请增加MAX_MEMORY_ALLOCATION_SIZE. 请注意,这不能超过 2 GiB(请参阅该文件中的注释)。


推荐阅读