[Mesa-dev] [PATCH mesa 1/2] radv: name memory heaps
Eric Engestrom
eric at engestrom.ch
Thu Dec 8 00:18:33 UTC 2016
Give explicit names to the various memory heaps, reducing the risk of
bugs when adding or modifying them.
While at it, use a static_assert to make sure we don't have too many
memory heaps.
Signed-off-by: Eric Engestrom <eric at engestrom.ch>
---
I'm sure there are better names than these, but this patch is here to
suggest using names. Feel free to use better names :)
---
src/amd/vulkan/radv_device.c | 23 +++++++++++++++--------
1 file changed, 15 insertions(+), 8 deletions(-)
diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index 0defc0f..ed71bb6 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -575,40 +575,49 @@ void radv_GetPhysicalDeviceMemoryProperties(
{
RADV_FROM_HANDLE(radv_physical_device, physical_device, physicalDevice);
+ enum memoryHeaps {
+ heapVramNonVisible,
+ heapVramVisible,
+ heapGart,
+ _heapCount,
+ };
+
+ STATIC_ASSERT(_heapCount <= VK_MAX_MEMORY_HEAPS);
+
pMemoryProperties->memoryTypeCount = 4;
pMemoryProperties->memoryTypes[0] = (VkMemoryType) {
.propertyFlags = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
- .heapIndex = 0,
+ .heapIndex = heapVramNonVisible,
};
pMemoryProperties->memoryTypes[1] = (VkMemoryType) {
.propertyFlags = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT |
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
- .heapIndex = 2,
+ .heapIndex = heapGart,
};
pMemoryProperties->memoryTypes[2] = (VkMemoryType) {
.propertyFlags = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT |
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT |
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
- .heapIndex = 1,
+ .heapIndex = heapVramVisible,
};
pMemoryProperties->memoryTypes[3] = (VkMemoryType) {
.propertyFlags = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT |
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT |
VK_MEMORY_PROPERTY_HOST_CACHED_BIT,
- .heapIndex = 2,
+ .heapIndex = heapGart,
};
- pMemoryProperties->memoryHeapCount = 3;
+ pMemoryProperties->memoryHeapCount = _heapCount;
- pMemoryProperties->memoryHeaps[0] = (VkMemoryHeap) {
+ pMemoryProperties->memoryHeaps[heapVramNonVisible] = (VkMemoryHeap) {
.size = physical_device->rad_info.vram_size -
physical_device->rad_info.visible_vram_size,
.flags = VK_MEMORY_HEAP_DEVICE_LOCAL_BIT,
};
- pMemoryProperties->memoryHeaps[1] = (VkMemoryHeap) {
+ pMemoryProperties->memoryHeaps[heapVramVisible] = (VkMemoryHeap) {
.size = physical_device->rad_info.visible_vram_size,
.flags = VK_MEMORY_HEAP_DEVICE_LOCAL_BIT,
};
- pMemoryProperties->memoryHeaps[2] = (VkMemoryHeap) {
+ pMemoryProperties->memoryHeaps[heapGart] = (VkMemoryHeap) {
.size = physical_device->rad_info.gart_size,
.flags = 0,
};
--
Cheers,
Eric
More information about the mesa-dev
mailing list