Vulkan: Split VulkanBackend in Forward.h and DeviceVk
diff --git a/src/backend/CMakeLists.txt b/src/backend/CMakeLists.txt
index 08633c1..a93acbb 100644
--- a/src/backend/CMakeLists.txt
+++ b/src/backend/CMakeLists.txt
@@ -281,10 +281,13 @@
${VULKAN_DIR}/CommandBufferVk.h
${VULKAN_DIR}/ComputePipelineVk.cpp
${VULKAN_DIR}/ComputePipelineVk.h
+ ${VULKAN_DIR}/DeviceVk.cpp
+ ${VULKAN_DIR}/DeviceVk.h
${VULKAN_DIR}/DepthStencilStateVk.cpp
${VULKAN_DIR}/DepthStencilStateVk.h
${VULKAN_DIR}/FencedDeleter.cpp
${VULKAN_DIR}/FencedDeleter.h
+ ${VULKAN_DIR}/Forward.h
${VULKAN_DIR}/InputStateVk.cpp
${VULKAN_DIR}/InputStateVk.h
${VULKAN_DIR}/MemoryAllocator.cpp
@@ -309,8 +312,6 @@
${VULKAN_DIR}/SwapChainVk.h
${VULKAN_DIR}/TextureVk.cpp
${VULKAN_DIR}/TextureVk.h
- ${VULKAN_DIR}/VulkanBackend.cpp
- ${VULKAN_DIR}/VulkanBackend.h
${VULKAN_DIR}/VulkanFunctions.cpp
${VULKAN_DIR}/VulkanFunctions.h
${VULKAN_DIR}/VulkanInfo.cpp
diff --git a/src/backend/vulkan/BindGroupLayoutVk.cpp b/src/backend/vulkan/BindGroupLayoutVk.cpp
index 5a4c0b6..fe53ea5 100644
--- a/src/backend/vulkan/BindGroupLayoutVk.cpp
+++ b/src/backend/vulkan/BindGroupLayoutVk.cpp
@@ -14,7 +14,7 @@
#include "backend/vulkan/BindGroupLayoutVk.h"
-#include "backend/vulkan/VulkanBackend.h"
+#include "backend/vulkan/DeviceVk.h"
#include "common/BitSetIterator.h"
namespace backend { namespace vulkan {
diff --git a/src/backend/vulkan/BindGroupVk.cpp b/src/backend/vulkan/BindGroupVk.cpp
index b38efac..b66fd0f 100644
--- a/src/backend/vulkan/BindGroupVk.cpp
+++ b/src/backend/vulkan/BindGroupVk.cpp
@@ -16,10 +16,10 @@
#include "backend/vulkan/BindGroupLayoutVk.h"
#include "backend/vulkan/BufferVk.h"
+#include "backend/vulkan/DeviceVk.h"
#include "backend/vulkan/FencedDeleter.h"
#include "backend/vulkan/SamplerVk.h"
#include "backend/vulkan/TextureVk.h"
-#include "backend/vulkan/VulkanBackend.h"
#include "common/BitSetIterator.h"
diff --git a/src/backend/vulkan/BufferUploader.cpp b/src/backend/vulkan/BufferUploader.cpp
index 48938e1..947e753 100644
--- a/src/backend/vulkan/BufferUploader.cpp
+++ b/src/backend/vulkan/BufferUploader.cpp
@@ -14,9 +14,9 @@
#include "backend/vulkan/BufferUploader.h"
+#include "backend/vulkan/DeviceVk.h"
#include "backend/vulkan/FencedDeleter.h"
#include "backend/vulkan/MemoryAllocator.h"
-#include "backend/vulkan/VulkanBackend.h"
#include <cstring>
diff --git a/src/backend/vulkan/BufferVk.cpp b/src/backend/vulkan/BufferVk.cpp
index 63d8619..b181cd6 100644
--- a/src/backend/vulkan/BufferVk.cpp
+++ b/src/backend/vulkan/BufferVk.cpp
@@ -15,8 +15,8 @@
#include "backend/vulkan/BufferVk.h"
#include "backend/vulkan/BufferUploader.h"
+#include "backend/vulkan/DeviceVk.h"
#include "backend/vulkan/FencedDeleter.h"
-#include "backend/vulkan/VulkanBackend.h"
#include <cstring>
diff --git a/src/backend/vulkan/CommandBufferVk.cpp b/src/backend/vulkan/CommandBufferVk.cpp
index f465827..3116e6d 100644
--- a/src/backend/vulkan/CommandBufferVk.cpp
+++ b/src/backend/vulkan/CommandBufferVk.cpp
@@ -18,11 +18,11 @@
#include "backend/vulkan/BindGroupVk.h"
#include "backend/vulkan/BufferVk.h"
#include "backend/vulkan/ComputePipelineVk.h"
+#include "backend/vulkan/DeviceVk.h"
#include "backend/vulkan/PipelineLayoutVk.h"
#include "backend/vulkan/RenderPassDescriptorVk.h"
#include "backend/vulkan/RenderPipelineVk.h"
#include "backend/vulkan/TextureVk.h"
-#include "backend/vulkan/VulkanBackend.h"
namespace backend { namespace vulkan {
diff --git a/src/backend/vulkan/ComputePipelineVk.cpp b/src/backend/vulkan/ComputePipelineVk.cpp
index aaa3aa4..b418bdc 100644
--- a/src/backend/vulkan/ComputePipelineVk.cpp
+++ b/src/backend/vulkan/ComputePipelineVk.cpp
@@ -14,10 +14,10 @@
#include "backend/vulkan/ComputePipelineVk.h"
+#include "backend/vulkan/DeviceVk.h"
#include "backend/vulkan/FencedDeleter.h"
#include "backend/vulkan/PipelineLayoutVk.h"
#include "backend/vulkan/ShaderModuleVk.h"
-#include "backend/vulkan/VulkanBackend.h"
namespace backend { namespace vulkan {
diff --git a/src/backend/vulkan/VulkanBackend.cpp b/src/backend/vulkan/DeviceVk.cpp
similarity index 99%
rename from src/backend/vulkan/VulkanBackend.cpp
rename to src/backend/vulkan/DeviceVk.cpp
index 03a738f..632c29b 100644
--- a/src/backend/vulkan/VulkanBackend.cpp
+++ b/src/backend/vulkan/DeviceVk.cpp
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "backend/vulkan/VulkanBackend.h"
+#include "backend/vulkan/DeviceVk.h"
#include "backend/Commands.h"
#include "backend/vulkan/BindGroupLayoutVk.h"
diff --git a/src/backend/vulkan/VulkanBackend.h b/src/backend/vulkan/DeviceVk.h
similarity index 77%
rename from src/backend/vulkan/VulkanBackend.h
rename to src/backend/vulkan/DeviceVk.h
index 2458c2c..14cbcf3 100644
--- a/src/backend/vulkan/VulkanBackend.h
+++ b/src/backend/vulkan/DeviceVk.h
@@ -1,4 +1,4 @@
-// Copyright 2017 The NXT Authors
+// Copyright 2018 The NXT Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,13 +12,13 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#ifndef BACKEND_VULKAN_VULKANBACKEND_H_
-#define BACKEND_VULKAN_VULKANBACKEND_H_
+#ifndef BACKEND_VULKAN_DEVICEVK_H_
+#define BACKEND_VULKAN_DEVICEVK_H_
#include "nxt/nxtcpp.h"
#include "backend/Device.h"
-#include "backend/ToBackend.h"
+#include "backend/vulkan/Forward.h"
#include "backend/vulkan/VulkanFunctions.h"
#include "backend/vulkan/VulkanInfo.h"
#include "common/DynamicLib.h"
@@ -27,65 +27,14 @@
#include <queue>
-namespace backend {
- class BufferViewBase;
-}
-
namespace backend { namespace vulkan {
- class BindGroup;
- class BindGroupLayout;
- class BlendState;
- class Buffer;
- using BufferView = BufferViewBase;
- class CommandBuffer;
- class ComputePipeline;
- class DepthStencilState;
- class Device;
- class InputState;
- class PipelineLayout;
- class Queue;
- class RenderPassDescriptor;
- class RenderPipeline;
- class Sampler;
- class ShaderModule;
- class SwapChain;
- class Texture;
- class TextureView;
-
class BufferUploader;
class FencedDeleter;
class MapRequestTracker;
class MemoryAllocator;
class RenderPassCache;
- struct VulkanBackendTraits {
- using BindGroupType = BindGroup;
- using BindGroupLayoutType = BindGroupLayout;
- using BlendStateType = BlendState;
- using BufferType = Buffer;
- using BufferViewType = BufferView;
- using CommandBufferType = CommandBuffer;
- using ComputePipelineType = ComputePipeline;
- using DepthStencilStateType = DepthStencilState;
- using DeviceType = Device;
- using InputStateType = InputState;
- using PipelineLayoutType = PipelineLayout;
- using QueueType = Queue;
- using RenderPassDescriptorType = RenderPassDescriptor;
- using RenderPipelineType = RenderPipeline;
- using SamplerType = Sampler;
- using ShaderModuleType = ShaderModule;
- using SwapChainType = SwapChain;
- using TextureType = Texture;
- using TextureViewType = TextureView;
- };
-
- template <typename T>
- auto ToBackend(T&& common) -> decltype(ToBackendBase<VulkanBackendTraits>(common)) {
- return ToBackendBase<VulkanBackendTraits>(common);
- }
-
class Device : public DeviceBase {
public:
Device(const std::vector<const char*>& requiredInstanceExtensions);
@@ -206,4 +155,4 @@
}} // namespace backend::vulkan
-#endif // BACKEND_VULKAN_VULKANBACKEND_H_
+#endif // BACKEND_VULKAN_DEVICEVK_H_
diff --git a/src/backend/vulkan/FencedDeleter.cpp b/src/backend/vulkan/FencedDeleter.cpp
index 1e2b7a0..c3cb1ce 100644
--- a/src/backend/vulkan/FencedDeleter.cpp
+++ b/src/backend/vulkan/FencedDeleter.cpp
@@ -14,7 +14,7 @@
#include "backend/vulkan/FencedDeleter.h"
-#include "backend/vulkan/VulkanBackend.h"
+#include "backend/vulkan/DeviceVk.h"
namespace backend { namespace vulkan {
diff --git a/src/backend/vulkan/Forward.h b/src/backend/vulkan/Forward.h
new file mode 100644
index 0000000..047512b
--- /dev/null
+++ b/src/backend/vulkan/Forward.h
@@ -0,0 +1,75 @@
+// Copyright 2018 The NXT Authors
+//
+// 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.
+
+#ifndef BACKEND_VULKAN_FORWARD_H_
+#define BACKEND_VULKAN_FORWARD_H_
+
+#include "backend/ToBackend.h"
+
+namespace backend {
+ class BufferViewBase;
+}
+
+namespace backend { namespace vulkan {
+
+ class BindGroup;
+ class BindGroupLayout;
+ class BlendState;
+ class Buffer;
+ using BufferView = BufferViewBase;
+ class CommandBuffer;
+ class ComputePipeline;
+ class DepthStencilState;
+ class Device;
+ class InputState;
+ class PipelineLayout;
+ class Queue;
+ class RenderPassDescriptor;
+ class RenderPipeline;
+ class Sampler;
+ class ShaderModule;
+ class SwapChain;
+ class Texture;
+ class TextureView;
+
+ struct VulkanBackendTraits {
+ using BindGroupType = BindGroup;
+ using BindGroupLayoutType = BindGroupLayout;
+ using BlendStateType = BlendState;
+ using BufferType = Buffer;
+ using BufferViewType = BufferView;
+ using CommandBufferType = CommandBuffer;
+ using ComputePipelineType = ComputePipeline;
+ using DepthStencilStateType = DepthStencilState;
+ using DeviceType = Device;
+ using InputStateType = InputState;
+ using PipelineLayoutType = PipelineLayout;
+ using QueueType = Queue;
+ using RenderPassDescriptorType = RenderPassDescriptor;
+ using RenderPipelineType = RenderPipeline;
+ using SamplerType = Sampler;
+ using ShaderModuleType = ShaderModule;
+ using SwapChainType = SwapChain;
+ using TextureType = Texture;
+ using TextureViewType = TextureView;
+ };
+
+ template <typename T>
+ auto ToBackend(T&& common) -> decltype(ToBackendBase<VulkanBackendTraits>(common)) {
+ return ToBackendBase<VulkanBackendTraits>(common);
+ }
+
+}} // namespace backend::vulkan
+
+#endif // BACKEND_VULKAN_FORWARD_H_
diff --git a/src/backend/vulkan/GeneratedCodeIncludes.h b/src/backend/vulkan/GeneratedCodeIncludes.h
index 90243f6..07e76da 100644
--- a/src/backend/vulkan/GeneratedCodeIncludes.h
+++ b/src/backend/vulkan/GeneratedCodeIncludes.h
@@ -19,6 +19,7 @@
#include "backend/vulkan/CommandBufferVk.h"
#include "backend/vulkan/ComputePipelineVk.h"
#include "backend/vulkan/DepthStencilStateVk.h"
+#include "backend/vulkan/DeviceVk.h"
#include "backend/vulkan/InputStateVk.h"
#include "backend/vulkan/PipelineLayoutVk.h"
#include "backend/vulkan/QueueVk.h"
@@ -28,4 +29,3 @@
#include "backend/vulkan/ShaderModuleVk.h"
#include "backend/vulkan/SwapChainVk.h"
#include "backend/vulkan/TextureVk.h"
-#include "backend/vulkan/VulkanBackend.h"
diff --git a/src/backend/vulkan/MemoryAllocator.cpp b/src/backend/vulkan/MemoryAllocator.cpp
index 37e1d99..24476b9 100644
--- a/src/backend/vulkan/MemoryAllocator.cpp
+++ b/src/backend/vulkan/MemoryAllocator.cpp
@@ -14,8 +14,8 @@
#include "backend/vulkan/MemoryAllocator.h"
+#include "backend/vulkan/DeviceVk.h"
#include "backend/vulkan/FencedDeleter.h"
-#include "backend/vulkan/VulkanBackend.h"
namespace backend { namespace vulkan {
diff --git a/src/backend/vulkan/NativeSwapChainImplVk.cpp b/src/backend/vulkan/NativeSwapChainImplVk.cpp
index a595ff0..d623012 100644
--- a/src/backend/vulkan/NativeSwapChainImplVk.cpp
+++ b/src/backend/vulkan/NativeSwapChainImplVk.cpp
@@ -14,9 +14,9 @@
#include "backend/vulkan/NativeSwapChainImplVk.h"
+#include "backend/vulkan/DeviceVk.h"
#include "backend/vulkan/FencedDeleter.h"
#include "backend/vulkan/TextureVk.h"
-#include "backend/vulkan/VulkanBackend.h"
#include <limits>
diff --git a/src/backend/vulkan/PipelineLayoutVk.cpp b/src/backend/vulkan/PipelineLayoutVk.cpp
index d59b2b6..21fb38f 100644
--- a/src/backend/vulkan/PipelineLayoutVk.cpp
+++ b/src/backend/vulkan/PipelineLayoutVk.cpp
@@ -15,8 +15,8 @@
#include "backend/vulkan/PipelineLayoutVk.h"
#include "backend/vulkan/BindGroupLayoutVk.h"
+#include "backend/vulkan/DeviceVk.h"
#include "backend/vulkan/FencedDeleter.h"
-#include "backend/vulkan/VulkanBackend.h"
#include "common/BitSetIterator.h"
diff --git a/src/backend/vulkan/QueueVk.cpp b/src/backend/vulkan/QueueVk.cpp
index b0004a0..58f0385 100644
--- a/src/backend/vulkan/QueueVk.cpp
+++ b/src/backend/vulkan/QueueVk.cpp
@@ -15,7 +15,7 @@
#include "backend/vulkan/QueueVk.h"
#include "backend/vulkan/CommandBufferVk.h"
-#include "backend/vulkan/VulkanBackend.h"
+#include "backend/vulkan/DeviceVk.h"
namespace backend { namespace vulkan {
diff --git a/src/backend/vulkan/RenderPassCache.cpp b/src/backend/vulkan/RenderPassCache.cpp
index 0d9e63e..5d313da 100644
--- a/src/backend/vulkan/RenderPassCache.cpp
+++ b/src/backend/vulkan/RenderPassCache.cpp
@@ -14,8 +14,8 @@
#include "backend/vulkan/RenderPassCache.h"
+#include "backend/vulkan/DeviceVk.h"
#include "backend/vulkan/TextureVk.h"
-#include "backend/vulkan/VulkanBackend.h"
#include "common/BitSetIterator.h"
#include "common/HashUtils.h"
diff --git a/src/backend/vulkan/RenderPassDescriptorVk.cpp b/src/backend/vulkan/RenderPassDescriptorVk.cpp
index 02d4337..6c06b0d 100644
--- a/src/backend/vulkan/RenderPassDescriptorVk.cpp
+++ b/src/backend/vulkan/RenderPassDescriptorVk.cpp
@@ -14,10 +14,10 @@
#include "backend/vulkan/RenderPassDescriptorVk.h"
+#include "backend/vulkan/DeviceVk.h"
#include "backend/vulkan/FencedDeleter.h"
#include "backend/vulkan/RenderPassCache.h"
#include "backend/vulkan/TextureVk.h"
-#include "backend/vulkan/VulkanBackend.h"
#include "common/BitSetIterator.h"
namespace backend { namespace vulkan {
diff --git a/src/backend/vulkan/RenderPipelineVk.cpp b/src/backend/vulkan/RenderPipelineVk.cpp
index 37add1e..764179f 100644
--- a/src/backend/vulkan/RenderPipelineVk.cpp
+++ b/src/backend/vulkan/RenderPipelineVk.cpp
@@ -16,13 +16,13 @@
#include "backend/vulkan/BlendStateVk.h"
#include "backend/vulkan/DepthStencilStateVk.h"
+#include "backend/vulkan/DeviceVk.h"
#include "backend/vulkan/FencedDeleter.h"
#include "backend/vulkan/InputStateVk.h"
#include "backend/vulkan/PipelineLayoutVk.h"
#include "backend/vulkan/RenderPassCache.h"
#include "backend/vulkan/RenderPassDescriptorVk.h"
#include "backend/vulkan/ShaderModuleVk.h"
-#include "backend/vulkan/VulkanBackend.h"
namespace backend { namespace vulkan {
diff --git a/src/backend/vulkan/SamplerVk.cpp b/src/backend/vulkan/SamplerVk.cpp
index f45fe13..2a7653d 100644
--- a/src/backend/vulkan/SamplerVk.cpp
+++ b/src/backend/vulkan/SamplerVk.cpp
@@ -14,8 +14,8 @@
#include "backend/vulkan/SamplerVk.h"
+#include "backend/vulkan/DeviceVk.h"
#include "backend/vulkan/FencedDeleter.h"
-#include "backend/vulkan/VulkanBackend.h"
namespace backend { namespace vulkan {
diff --git a/src/backend/vulkan/ShaderModuleVk.cpp b/src/backend/vulkan/ShaderModuleVk.cpp
index 8df4ea3..9b4b1ce 100644
--- a/src/backend/vulkan/ShaderModuleVk.cpp
+++ b/src/backend/vulkan/ShaderModuleVk.cpp
@@ -14,8 +14,8 @@
#include "backend/vulkan/ShaderModuleVk.h"
+#include "backend/vulkan/DeviceVk.h"
#include "backend/vulkan/FencedDeleter.h"
-#include "backend/vulkan/VulkanBackend.h"
#include <spirv-cross/spirv_cross.hpp>
diff --git a/src/backend/vulkan/SwapChainVk.cpp b/src/backend/vulkan/SwapChainVk.cpp
index 60f1a2e..91d0baf 100644
--- a/src/backend/vulkan/SwapChainVk.cpp
+++ b/src/backend/vulkan/SwapChainVk.cpp
@@ -14,8 +14,8 @@
#include "backend/vulkan/SwapChainVk.h"
+#include "backend/vulkan/DeviceVk.h"
#include "backend/vulkan/TextureVk.h"
-#include "backend/vulkan/VulkanBackend.h"
namespace backend { namespace vulkan {
diff --git a/src/backend/vulkan/TextureVk.cpp b/src/backend/vulkan/TextureVk.cpp
index bd24d14..9d52f5c 100644
--- a/src/backend/vulkan/TextureVk.cpp
+++ b/src/backend/vulkan/TextureVk.cpp
@@ -14,8 +14,8 @@
#include "backend/vulkan/TextureVk.h"
+#include "backend/vulkan/DeviceVk.h"
#include "backend/vulkan/FencedDeleter.h"
-#include "backend/vulkan/VulkanBackend.h"
namespace backend { namespace vulkan {
diff --git a/src/backend/vulkan/VulkanInfo.cpp b/src/backend/vulkan/VulkanInfo.cpp
index 99efca1..b94c67a 100644
--- a/src/backend/vulkan/VulkanInfo.cpp
+++ b/src/backend/vulkan/VulkanInfo.cpp
@@ -14,7 +14,7 @@
#include "backend/vulkan/VulkanInfo.h"
-#include "backend/vulkan/VulkanBackend.h"
+#include "backend/vulkan/DeviceVk.h"
#include <cstring>