Mesa (17.1): anv: Make supports_48bit_addresses a heap property
Juan Antonio Suárez Romero
jasuarez at kemper.freedesktop.org
Sat Jun 3 17:04:09 UTC 2017
Module: Mesa
Branch: 17.1
Commit: 2562b3252b63f2e938d6e6614e1f9a2fa2064140
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2562b3252b63f2e938d6e6614e1f9a2fa2064140
Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date: Wed May 17 11:38:16 2017 -0700
anv: Make supports_48bit_addresses a heap property
Reviewed-by: Nanley Chery <nanley.g.chery at intel.com>
Cc: "17.1" <mesa-stable at lists.freedesktop.org>
(cherry picked from commit b83b1af6f6936f36db42a8f8b8e0854d0f9491fd)
[Juan A. Suarez: resolve trivial conflicts]
Signed-off-by: Juan A. Suarez Romero <jasuarez at igalia.com>
Conflicts:
src/intel/vulkan/anv_device.c
---
src/intel/vulkan/anv_device.c | 6 ++++--
src/intel/vulkan/anv_private.h | 11 ++++++++++-
2 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c
index b07def9628..95a29ab72d 100644
--- a/src/intel/vulkan/anv_device.c
+++ b/src/intel/vulkan/anv_device.c
@@ -149,9 +149,10 @@ anv_physical_device_init_heaps(struct anv_physical_device *device, int fd)
}
device->memory.heap_count = 1;
- device->memory.heaps[0] = (VkMemoryHeap) {
+ device->memory.heaps[0] = (struct anv_memory_heap) {
.size = heap_size,
.flags = VK_MEMORY_HEAP_DEVICE_LOCAL_BIT,
+ .supports_48bit_addresses = device->supports_48bit_addresses,
};
return VK_SUCCESS;
@@ -1621,7 +1622,8 @@ VkResult anv_AllocateMemory(
mem->map = NULL;
mem->map_size = 0;
- if (pdevice->supports_48bit_addresses)
+ assert(mem->type->heapIndex < pdevice->memory.heap_count);
+ if (pdevice->memory.heaps[mem->type->heapIndex].supports_48bit_addresses)
mem->bo.flags |= EXEC_OBJECT_SUPPORTS_48B_ADDRESS;
if (pdevice->has_exec_async)
diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h
index 61f90ea1ae..ad82c77ec1 100644
--- a/src/intel/vulkan/anv_private.h
+++ b/src/intel/vulkan/anv_private.h
@@ -613,6 +613,15 @@ struct anv_memory_type {
VkBufferUsageFlags valid_buffer_usage;
};
+struct anv_memory_heap {
+ /* Standard bits passed on to the client */
+ VkDeviceSize size;
+ VkMemoryHeapFlags flags;
+
+ /* Driver-internal book-keeping */
+ bool supports_48bit_addresses;
+};
+
struct anv_physical_device {
VK_LOADER_DATA _loader_data;
@@ -644,7 +653,7 @@ struct anv_physical_device {
uint32_t type_count;
struct anv_memory_type types[VK_MAX_MEMORY_TYPES];
uint32_t heap_count;
- VkMemoryHeap heaps[VK_MAX_MEMORY_HEAPS];
+ struct anv_memory_heap heaps[VK_MAX_MEMORY_HEAPS];
} memory;
uint8_t pipeline_cache_uuid[VK_UUID_SIZE];
More information about the mesa-commit
mailing list