Browse Source

Vk: Lazily initialize physical device memory properties

Signed-off-by: Squareys <squareys@googlemail.com>
pull/202/head
Squareys 10 years ago committed by Squareys
parent
commit
936f32af9d
  1. 4
      src/Magnum/Vk/PhysicalDevice.cpp
  2. 4
      src/Magnum/Vk/PhysicalDevice.h

4
src/Magnum/Vk/PhysicalDevice.cpp

@ -83,6 +83,10 @@ UnsignedInt PhysicalDevice::getQueueFamilyIndex(QueueFamily family) {
}
UnsignedInt PhysicalDevice::getMemoryType(UnsignedInt typeBits, VkFlags properties) {
if(_deviceMemoryProperties.memoryHeapCount == 0 && _deviceMemoryProperties.memoryTypeCount == 0) {
vkGetPhysicalDeviceMemoryProperties(_physicalDevice, &_deviceMemoryProperties);
}
for (uint32_t i = 0; i < 32; i++) {
if((typeBits & 1) != 0) {
if((_deviceMemoryProperties.memoryTypes[i].propertyFlags & properties) == properties) {

4
src/Magnum/Vk/PhysicalDevice.h

@ -64,8 +64,8 @@ class MAGNUM_VK_EXPORT PhysicalDevice {
PhysicalDevice(const VkPhysicalDevice& device):
_physicalDevice(device)
{
// Gather physical device memory properties
vkGetPhysicalDeviceMemoryProperties(_physicalDevice, &_deviceMemoryProperties);
_deviceMemoryProperties.memoryHeapCount = 0;
_deviceMemoryProperties.memoryTypeCount = 0;
}
/** @brief Destructor */

Loading…
Cancel
Save