summaryrefslogtreecommitdiff
path: root/src/vk/queue_family.cpp
diff options
context:
space:
mode:
authorFrederico Linhares <fred@linhares.blue>2024-05-08 17:56:29 -0300
committerFrederico Linhares <fred@linhares.blue>2024-05-08 17:56:29 -0300
commit43821b0cffc5aa419c0218992f06f8962ae54a13 (patch)
tree97bdbbf710a78e6dcb181d92dd83e98d8b329c6d /src/vk/queue_family.cpp
parent70e156d47346ae3198c623e0af75e5703f894db3 (diff)
refa Rename graphical engine to BluCat
Diffstat (limited to 'src/vk/queue_family.cpp')
-rw-r--r--src/vk/queue_family.cpp84
1 files changed, 0 insertions, 84 deletions
diff --git a/src/vk/queue_family.cpp b/src/vk/queue_family.cpp
deleted file mode 100644
index d917c13..0000000
--- a/src/vk/queue_family.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright 2022 Frederico de Oliveira Linhares
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "queue_family.hpp"
-
-#ifdef DEBUG
-#include <sstream>
-#endif
-
-#include "../core.hpp"
-
-namespace VK
-{
-
-QueueFamily::QueueFamily(
- VK::Device *device, uint32_t family_index,
- const VkQueueFamilyProperties &queue_family_properties):
- queue_mutex{}
-{
-
-#ifdef DEBUG
- std::stringstream message{};
- message << "Queue quantity: " << queue_family_properties.queueCount <<
- std::endl;
- message << "Graphics: " <<
- (queue_family_properties.queueFlags & VK_QUEUE_GRAPHICS_BIT ?
- "true" : "false") << std::endl;
- message << "Compute: " <<
- (queue_family_properties.queueFlags & VK_QUEUE_COMPUTE_BIT ?
- "true" : "false") << std::endl;
- message << "Transfer: " <<
- (queue_family_properties.queueFlags & VK_QUEUE_TRANSFER_BIT ?
- "true" : "false") << std::endl;
- message << "Sparse Binding: " <<
- (queue_family_properties.queueFlags & VK_QUEUE_SPARSE_BINDING_BIT ?
- "true" : "false") << std::endl;
- cg_core.log.message(Log::Level::Trace, message.str());
-#endif
-
- this->device = device;
- this->family_index = family_index;
- this->family_properties = queue_family_properties;
-
- // Create queues
- {
- auto queue_count = this->family_properties.queueCount;
- this->queue_states.resize(queue_count);
-
- for(auto i{0}; i < queue_count; i++)
- {
- vkGetDeviceQueue(device->device, this->family_index, i,
- &this->queue_states[i].queue);
- if(this->queue_states[i].queue == VK_NULL_HANDLE)
- throw std::runtime_error("Failed to get Vulkan queue.");
- }
- }
-}
-
-Queue
-QueueFamily::get_queue()
-{
- std::unique_lock<std::mutex> lock{this->queue_mutex};
-
- for(auto i{0}; i < this->queue_states.size(); i++)
- if(!this->queue_states[i].busy)
- return Queue(this, this->queue_states[i].queue, i);
-
- throw std::length_error("No free queues found.");
-}
-
-}