Commit 15737451 by Ben Clayton

VkQueue: Embed the sw::Renderer into the vk::Queue.

As we destruct the Queue now, there's no need to have a shared_ptr indirection. This makes Renderer part of the vk::Queue allocation. Bug: b/133127573 Change-Id: I9ea0d427752689e73346e0da950144832d908a2e Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/31685Tested-by: 's avatarBen Clayton <bclayton@google.com> Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com> Reviewed-by: 's avatarAlexis Hétu <sugoi@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
parent 7e0a0360
......@@ -74,10 +74,8 @@ VkSubmitInfo* DeepCopySubmitInfo(uint32_t submitCount, const VkSubmitInfo* pSubm
namespace vk
{
Queue::Queue()
Queue::Queue() : renderer(sw::OpenGL, true)
{
renderer.reset(new sw::Renderer(sw::OpenGL, true));
queueThread = std::thread(TaskLoop, this);
}
......@@ -129,7 +127,7 @@ void Queue::submitQueue(const Task& task)
{
CommandBuffer::ExecutionState executionState;
executionState.renderer = renderer.get();
executionState.renderer = &renderer;
executionState.events = task.events;
for(uint32_t j = 0; j < submitInfo.commandBufferCount; j++)
{
......@@ -152,7 +150,7 @@ void Queue::submitQueue(const Task& task)
{
// TODO: fix renderer signaling so that work submitted separately from (but before) a fence
// is guaranteed complete by the time the fence signals.
renderer->synchronize();
renderer.synchronize();
task.events->finish();
}
}
......
......@@ -66,7 +66,7 @@ private:
void garbageCollect();
void submitQueue(const Task& task);
std::unique_ptr<sw::Renderer> renderer;
sw::Renderer renderer;
sw::Chan<Task> pending;
sw::Chan<VkSubmitInfo*> toDelete;
std::thread queueThread;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment