summaryrefslogtreecommitdiff
path: root/src/vulkan
diff options
context:
space:
mode:
authorJason Ekstrand <jason@jlekstrand.net>2020-04-21 12:33:16 -0500
committerMarge Bot <eric+marge@anholt.net>2020-05-04 14:06:27 +0000
commit682c81bdfb7ea28efccea1e8cbfeb7cfc67d02b8 (patch)
treed80c4655ed70604958166cbbd6187a875b834391 /src/vulkan
parent369703774cfa304f4881e0e379eb02ed98933dde (diff)
vulkan,anv: Add a base object struct type
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Acked-by: Kristian H. Kristensen <hoegsberg@google.com> Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4690>
Diffstat (limited to 'src/vulkan')
-rw-r--r--src/vulkan/util/vk_object.c16
-rw-r--r--src/vulkan/util/vk_object.h14
2 files changed, 28 insertions, 2 deletions
diff --git a/src/vulkan/util/vk_object.c b/src/vulkan/util/vk_object.c
index 77258ab6879..d6965158914 100644
--- a/src/vulkan/util/vk_object.c
+++ b/src/vulkan/util/vk_object.c
@@ -24,12 +24,25 @@
#include "vk_object.h"
void
+vk_object_base_init(UNUSED struct vk_device *device,
+ struct vk_object_base *base,
+ UNUSED VkObjectType obj_type)
+{
+ base->_loader_data.loaderMagic = ICD_LOADER_MAGIC;
+}
+
+void
+vk_object_base_finish(UNUSED struct vk_object_base *base)
+{
+}
+
+void
vk_device_init(struct vk_device *device,
UNUSED const VkDeviceCreateInfo *pCreateInfo,
const VkAllocationCallbacks *instance_alloc,
const VkAllocationCallbacks *device_alloc)
{
- device->_loader_data.loaderMagic = ICD_LOADER_MAGIC;
+ vk_object_base_init(device, &device->base, VK_OBJECT_TYPE_DEVICE);
if (device_alloc)
device->alloc = *device_alloc;
else
@@ -39,4 +52,5 @@ vk_device_init(struct vk_device *device,
void
vk_device_finish(UNUSED struct vk_device *device)
{
+ vk_object_base_finish(&device->base);
}
diff --git a/src/vulkan/util/vk_object.h b/src/vulkan/util/vk_object.h
index 8fc42b862da..c2b3926133e 100644
--- a/src/vulkan/util/vk_object.h
+++ b/src/vulkan/util/vk_object.h
@@ -32,8 +32,20 @@
extern "C" {
#endif
-struct vk_device {
+struct vk_device;
+
+struct vk_object_base {
VK_LOADER_DATA _loader_data;
+};
+
+void vk_object_base_init(UNUSED struct vk_device *device,
+ struct vk_object_base *base,
+ UNUSED VkObjectType obj_type);
+void vk_object_base_finish(UNUSED struct vk_object_base *base);
+
+
+struct vk_device {
+ struct vk_object_base base;
VkAllocationCallbacks alloc;
};