aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--api-test/dx12-device.cpp8
-rw-r--r--api-test/vk-device.cpp6
-rw-r--r--include/api-test/command-buffer.hpp8
-rw-r--r--include/api-test/dx12-device-types.hpp7
-rw-r--r--include/api-test/dx12-device.hpp5
-rw-r--r--include/api-test/vk-device-types.hpp7
-rw-r--r--include/api-test/vk-device.hpp1
7 files changed, 26 insertions, 16 deletions
diff --git a/api-test/dx12-device.cpp b/api-test/dx12-device.cpp
index 4de63b6..e603fef 100644
--- a/api-test/dx12-device.cpp
+++ b/api-test/dx12-device.cpp
@@ -26,15 +26,15 @@ void dx12device::init() {
.Flags = D3D12_COMMAND_QUEUE_FLAGS::D3D12_COMMAND_QUEUE_FLAG_NONE,
.NodeMask = 0U,
};
- SUCCEEDED(device->CreateCommandQueue(&queue_desc, IID_PPV_ARGS(&queues[0U])));
+ SUCCEEDED(device->CreateCommandQueue(&queue_desc, IID_PPV_ARGS(&queues[0U].dx_queue)));
queue_desc.Type = D3D12_COMMAND_LIST_TYPE::D3D12_COMMAND_LIST_TYPE_COMPUTE;
queue_desc.Priority = D3D12_COMMAND_QUEUE_PRIORITY::D3D12_COMMAND_QUEUE_PRIORITY_HIGH,
- SUCCEEDED(device->CreateCommandQueue(&queue_desc, IID_PPV_ARGS(&queues[1U])));
+ SUCCEEDED(device->CreateCommandQueue(&queue_desc, IID_PPV_ARGS(&queues[1U].dx_queue)));
queue_desc.Type = D3D12_COMMAND_LIST_TYPE::D3D12_COMMAND_LIST_TYPE_COPY;
queue_desc.Priority = D3D12_COMMAND_QUEUE_PRIORITY::D3D12_COMMAND_QUEUE_PRIORITY_HIGH,
- SUCCEEDED(device->CreateCommandQueue(&queue_desc, IID_PPV_ARGS(&queues[2U])));
+ SUCCEEDED(device->CreateCommandQueue(&queue_desc, IID_PPV_ARGS(&queues[2U].dx_queue)));
}
handle<dx12::device_surface> dx12device::create_surface(const dx12::surface_desc& desc) {
@@ -65,7 +65,7 @@ handle<dx12::device_surface> dx12device::create_surface(const dx12::surface_desc
.SwapEffect = desc.present_mode,
.Flags = 0U,
};
- HRESULT hr = factory->CreateSwapChain(device, &swapchain_desc, &surface.swapchain);
+ HRESULT hr = factory->CreateSwapChain(queues[static_cast<uint32_t>(dx12::QueueType::GRAPHICS)].dx_queue, &swapchain_desc, &surface.swapchain);
return surfaces.add(surface);
}
diff --git a/api-test/vk-device.cpp b/api-test/vk-device.cpp
index 029d3ac..024b570 100644
--- a/api-test/vk-device.cpp
+++ b/api-test/vk-device.cpp
@@ -12,15 +12,15 @@
vkdevice vkdevice::render_device = vkdevice();
void vkdevice::init() {
- queues[0U] = {
+ queues[static_cast<uint32_t>(QueueType::GRAPHICS)] = {
.usages = VK_QUEUE_GRAPHICS_BIT |
VK_QUEUE_COMPUTE_BIT |
VK_QUEUE_TRANSFER_BIT,
};
- queues[1U] = {
+ queues[static_cast<uint32_t>(QueueType::ASYNC_COMPUTE)] = {
.usages = VK_QUEUE_COMPUTE_BIT,
};
- queues[2U] = {
+ queues[static_cast<uint32_t>(QueueType::TRANSFER)] = {
.usages = VK_QUEUE_TRANSFER_BIT,
};
diff --git a/include/api-test/command-buffer.hpp b/include/api-test/command-buffer.hpp
index d26fa13..0eff93a 100644
--- a/include/api-test/command-buffer.hpp
+++ b/include/api-test/command-buffer.hpp
@@ -9,13 +9,7 @@
#include "vec3.hpp"
-enum class QueueType : uint32_t {
- GRAPHICS,
- ASYNC_COMPUTE,
- TRANSFER,
- MAX,
-};
-
+#include "vk-device-types.hpp"
struct device_texture;
struct device_buffer;
diff --git a/include/api-test/dx12-device-types.hpp b/include/api-test/dx12-device-types.hpp
index dee1811..b70ecf4 100644
--- a/include/api-test/dx12-device-types.hpp
+++ b/include/api-test/dx12-device-types.hpp
@@ -2,6 +2,13 @@
#include <dxgi.h>
namespace dx12 {
+ enum class QueueType : uint32_t {
+ GRAPHICS,
+ ASYNC_COMPUTE,
+ TRANSFER,
+ MAX,
+ };
+
struct texture_desc {
};
diff --git a/include/api-test/dx12-device.hpp b/include/api-test/dx12-device.hpp
index 5f48f95..83d8888 100644
--- a/include/api-test/dx12-device.hpp
+++ b/include/api-test/dx12-device.hpp
@@ -4,6 +4,9 @@
#include "dx12-device-types.hpp"
class dx12device {
+ struct queue {
+ ID3D12CommandQueue* dx_queue;
+ };
public:
void init();
@@ -36,7 +39,7 @@ class dx12device {
IDXGIAdapter* adapter;
ID3D12Device* device;
- ID3D12CommandQueue* queues[3U];
+ queue queues[static_cast<uint32_t>(dx12::QueueType::MAX)];
freelist<dx12::device_surface> surfaces;
diff --git a/include/api-test/vk-device-types.hpp b/include/api-test/vk-device-types.hpp
index 994f0c4..dd8348b 100644
--- a/include/api-test/vk-device-types.hpp
+++ b/include/api-test/vk-device-types.hpp
@@ -8,6 +8,13 @@
using VmaAllocation = struct VmaAllocation_T*;
+enum class QueueType : uint32_t {
+ GRAPHICS,
+ ASYNC_COMPUTE,
+ TRANSFER,
+ MAX,
+};
+
struct texture_desc {
uint32_t width = 1U;
uint32_t height = 1U;
diff --git a/include/api-test/vk-device.hpp b/include/api-test/vk-device.hpp
index 9c4b9a9..9dffad8 100644
--- a/include/api-test/vk-device.hpp
+++ b/include/api-test/vk-device.hpp
@@ -8,7 +8,6 @@
#include "command-buffer.hpp"
#include "freelist.hpp"
#include "vk-bindless.hpp"
-#include "vk-device-types.hpp"
using VmaAllocator = struct VmaAllocator_T*;