Move Blitter ownership from Image to Device
The blitter has a cache which can allow us to reuse already used
routines, so it should be kept in a central location. For that
reason, the blitter ownership was moved from the Image object to
the Device object.
Bug b/117974925
Change-Id: I825853c381dcbc04701b1d9e7dfa376108294221
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/25728
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/Vulkan/VkDevice.cpp b/src/Vulkan/VkDevice.cpp
index 60e13f1..7891784 100644
--- a/src/Vulkan/VkDevice.cpp
+++ b/src/Vulkan/VkDevice.cpp
@@ -18,6 +18,7 @@
#include "VkDebug.hpp"
#include "VkDescriptorSetLayout.hpp"
#include "VkQueue.hpp"
+#include "Device/Blitter.hpp"
#include <new> // Must #include this to use "placement new"
@@ -50,6 +51,8 @@
// "The ppEnabledLayerNames and enabledLayerCount members of VkDeviceCreateInfo are deprecated and their values must be ignored by implementations."
UNIMPLEMENTED(); // TODO(b/119321052): UNIMPLEMENTED() should be used only for features that must still be implemented. Use a more informational macro here.
}
+
+ blitter = new sw::Blitter();
}
void Device::destroy(const VkAllocationCallbacks* pAllocator)
@@ -60,6 +63,8 @@
}
vk::deallocate(queues, pAllocator);
+
+ delete blitter;
}
size_t Device::ComputeRequiredAllocationSize(const Device::CreateInfo* info)