VkBuffer buffer,
NativeHandle& nativeHandle,
VkExternalMemoryHandleTypeFlagBits externalType,
- const deUint32 exportedMemoryTypeIndex,
- const VkExternalMemoryFeatureFlags& externalMemoryFeatureFlags)
+ const deUint32 exportedMemoryTypeIndex)
{
const VkMemoryRequirements requirements = getBufferMemoryRequirements(vkd, device, buffer);
Move<VkDeviceMemory> memory;
- if ((externalMemoryFeatureFlags & VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT) != 0)
+ if (!!buffer)
memory = importDedicatedMemory(vkd, device, buffer, requirements, externalType, exportedMemoryTypeIndex, nativeHandle);
else
memory = importMemory(vkd, device, requirements, externalType, exportedMemoryTypeIndex, nativeHandle);
VkImage image,
NativeHandle& nativeHandle,
VkExternalMemoryHandleTypeFlagBits externalType,
- deUint32 exportedMemoryTypeIndex,
- const VkExternalMemoryFeatureFlags& externalMemoryFeatureFlags)
+ deUint32 exportedMemoryTypeIndex)
{
const VkMemoryRequirements requirements = getImageMemoryRequirements(vkd, device, image);
Move<VkDeviceMemory> memory;
- if ((externalMemoryFeatureFlags & VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT) != 0)
+ if (!!image)
memory = importDedicatedMemory(vkd, device, image, requirements, externalType, exportedMemoryTypeIndex, nativeHandle);
else
memory = importMemory(vkd, device, requirements, externalType, exportedMemoryTypeIndex, nativeHandle);
const OperationSupport& writeOp,
NativeHandle& nativeHandle,
VkExternalMemoryHandleTypeFlagBits externalType,
- deUint32 exportedMemoryTypeIndex,
- const VkExternalMemoryFeatureFlags& externalMemoryFeatureFlags)
+ deUint32 exportedMemoryTypeIndex)
{
if (resourceDesc.type == RESOURCE_TYPE_IMAGE)
{
};
Move<VkImage> image = createImage(vkd, device, &createInfo);
- MovePtr<Allocation> allocation = importAndBindMemory(vkd, device, *image, nativeHandle, externalType, exportedMemoryTypeIndex, externalMemoryFeatureFlags);
+ MovePtr<Allocation> allocation = importAndBindMemory(vkd, device, *image, nativeHandle, externalType, exportedMemoryTypeIndex);
return MovePtr<Resource>(new Resource(image, allocation, extent, resourceDesc.imageType, resourceDesc.imageFormat, subresourceRange, subresourceLayers));
}
*buffer,
nativeHandle,
externalType,
- exportedMemoryTypeIndex,
- externalMemoryFeatureFlags);
+ exportedMemoryTypeIndex);
return MovePtr<Resource>(new Resource(resourceDesc.type, buffer, allocation, offset, size));
}
*m_writeOpSupport,
nativeMemoryHandle,
m_memoryHandleType,
- memoryTypeIndex,
- m_externalMemoryFeatureFlags));
+ memoryTypeIndex));
iter.writeOp = makeSharedPtr(m_writeOpSupport->build(*operationContextA,
*iter.resourceA));
if ((externalProperties.externalMemoryProperties.externalMemoryFeatures & VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR) == 0)
return false;
- m_externalMemoryFeatureFlags = externalProperties.externalMemoryProperties.externalMemoryFeatures;
-
return true;
}
else
|| (properties.externalMemoryProperties.externalMemoryFeatures & VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR) == 0)
return false;
- m_externalMemoryFeatureFlags = properties.externalMemoryProperties.externalMemoryFeatures;
-
return true;
}
}
VkExternalSemaphoreHandleTypeFlagBits m_semaphoreHandleType;
PipelineCacheData& m_pipelineCacheData;
de::Random m_rng;
- VkExternalMemoryFeatureFlags m_externalMemoryFeatureFlags;
};
class QueueSubmitSignalOrderSharedTestCase : public TestCase