aboutsummaryrefslogtreecommitdiff
path: root/src/vulkan
diff options
context:
space:
mode:
Diffstat (limited to 'src/vulkan')
-rw-r--r--src/vulkan/buffer_descriptor.h14
-rw-r--r--src/vulkan/descriptor.cc62
-rw-r--r--src/vulkan/descriptor.h37
3 files changed, 8 insertions, 105 deletions
diff --git a/src/vulkan/buffer_descriptor.h b/src/vulkan/buffer_descriptor.h
index 1bc8052..f7bbfdc 100644
--- a/src/vulkan/buffer_descriptor.h
+++ b/src/vulkan/buffer_descriptor.h
@@ -33,8 +33,8 @@ namespace vulkan {
class CommandBuffer;
class Device;
-// Among Vulkan descriptor types, this class handles Storage Buffer
-// a.k.a. SSBO and Uniform Buffer a.k.a. UBO.
+// Among Vulkan descriptor types, this class handles Storage Buffers
+// and Uniform Buffers.
class BufferDescriptor : public Descriptor {
public:
BufferDescriptor(Buffer* buffer,
@@ -60,15 +60,13 @@ class BufferDescriptor : public Descriptor {
private:
VkBufferUsageFlagBits GetVkBufferUsage() const {
- return GetType() == DescriptorType::kStorageBuffer
- ? VK_BUFFER_USAGE_STORAGE_BUFFER_BIT
- : VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT;
+ return IsStorageBuffer() ? VK_BUFFER_USAGE_STORAGE_BUFFER_BIT
+ : VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT;
}
VkDescriptorType GetVkDescriptorType() const {
- return GetType() == DescriptorType::kStorageBuffer
- ? VK_DESCRIPTOR_TYPE_STORAGE_BUFFER
- : VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
+ return IsStorageBuffer() ? VK_DESCRIPTOR_TYPE_STORAGE_BUFFER
+ : VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
}
Buffer* amber_buffer_ = nullptr;
diff --git a/src/vulkan/descriptor.cc b/src/vulkan/descriptor.cc
index 5f2380b..a75ef2f 100644
--- a/src/vulkan/descriptor.cc
+++ b/src/vulkan/descriptor.cc
@@ -23,28 +23,10 @@ namespace vulkan {
VkDescriptorType ToVkDescriptorType(DescriptorType type) {
switch (type) {
- case DescriptorType::kStorageImage:
- return VK_DESCRIPTOR_TYPE_STORAGE_IMAGE;
- case DescriptorType::kSampler:
- return VK_DESCRIPTOR_TYPE_SAMPLER;
- case DescriptorType::kSampledImage:
- return VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE;
- case DescriptorType::kCombinedImageSampler:
- return VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER;
- case DescriptorType::kUniformTexelBuffer:
- return VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER;
- case DescriptorType::kStorageTexelBuffer:
- return VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER;
case DescriptorType::kStorageBuffer:
return VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
case DescriptorType::kUniformBuffer:
return VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
- case DescriptorType::kDynamicUniformBuffer:
- return VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC;
- case DescriptorType::kDynamicStorageBuffer:
- return VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC;
- case DescriptorType::kInputAttachment:
- return VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT;
}
assert(false && "Unknown resource type");
@@ -98,50 +80,6 @@ Result Descriptor::UpdateDescriptorSetForBuffer(
return {};
}
-Result Descriptor::UpdateDescriptorSetForImage(
- VkDescriptorSet descriptor_set,
- VkDescriptorType descriptor_type,
- const VkDescriptorImageInfo& image_info) {
- VkWriteDescriptorSet write =
- GetWriteDescriptorSet(descriptor_set, descriptor_type);
- switch (descriptor_type) {
- case VK_DESCRIPTOR_TYPE_SAMPLER:
- case VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER:
- case VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE:
- case VK_DESCRIPTOR_TYPE_STORAGE_IMAGE:
- case VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:
- write.pImageInfo = &image_info;
- break;
- default:
- return Result(
- "Vulkan::UpdateDescriptorSetForImage not descriptor based on image");
- }
-
- UpdateVkDescriptorSet(write);
- return {};
-}
-
-Result Descriptor::UpdateDescriptorSetForBufferView(
- VkDescriptorSet descriptor_set,
- VkDescriptorType descriptor_type,
- const VkBufferView& texel_view) {
- VkWriteDescriptorSet write =
- GetWriteDescriptorSet(descriptor_set, descriptor_type);
- switch (descriptor_type) {
- case VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER:
- case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER:
- write.pTexelBufferView = &texel_view;
- break;
- default:
- return Result(
- "Vulkan::UpdateDescriptorSetForImage not descriptor based on buffer "
- "view");
- }
-
- UpdateVkDescriptorSet(write);
- return {};
-}
-
void Descriptor::UpdateVkDescriptorSet(const VkWriteDescriptorSet& write) {
device_->GetPtrs()->vkUpdateDescriptorSets(device_->GetDevice(), 1, &write, 0,
nullptr);
diff --git a/src/vulkan/descriptor.h b/src/vulkan/descriptor.h
index cada88e..9b5fdbc 100644
--- a/src/vulkan/descriptor.h
+++ b/src/vulkan/descriptor.h
@@ -28,17 +28,8 @@ namespace amber {
namespace vulkan {
enum class DescriptorType : uint8_t {
- kStorageImage = 0,
- kSampler,
- kSampledImage,
- kCombinedImageSampler,
- kUniformTexelBuffer,
- kStorageTexelBuffer,
- kStorageBuffer,
+ kStorageBuffer = 0,
kUniformBuffer,
- kDynamicUniformBuffer,
- kDynamicStorageBuffer,
- kInputAttachment,
};
class CommandBuffer;
@@ -60,30 +51,12 @@ class Descriptor {
DescriptorType GetType() const { return type_; }
- bool IsStorageImage() const { return type_ == DescriptorType::kStorageImage; }
- bool IsSampler() const { return type_ == DescriptorType::kSampler; }
- bool IsSampledImage() const { return type_ == DescriptorType::kSampledImage; }
- bool IsCombinedImageSampler() const {
- return type_ == DescriptorType::kCombinedImageSampler;
- }
- bool IsUniformTexelBuffer() const {
- return type_ == DescriptorType::kUniformTexelBuffer;
- }
- bool IsStorageTexelBuffer() const {
- return type_ == DescriptorType::kStorageTexelBuffer;
- }
bool IsStorageBuffer() const {
return type_ == DescriptorType::kStorageBuffer;
}
bool IsUniformBuffer() const {
return type_ == DescriptorType::kUniformBuffer;
}
- bool IsDynamicUniformBuffer() const {
- return type_ == DescriptorType::kDynamicUniformBuffer;
- }
- bool IsDynamicStorageBuffer() const {
- return type_ == DescriptorType::kDynamicStorageBuffer;
- }
// Call vkUpdateDescriptorSets() to update the backing resource
// for this descriptor only when the backing resource was newly
@@ -122,12 +95,6 @@ class Descriptor {
VkDescriptorSet descriptor_set,
VkDescriptorType descriptor_type,
const VkDescriptorBufferInfo& buffer_info);
- Result UpdateDescriptorSetForImage(VkDescriptorSet descriptor_set,
- VkDescriptorType descriptor_type,
- const VkDescriptorImageInfo& image_info);
- Result UpdateDescriptorSetForBufferView(VkDescriptorSet descriptor_set,
- VkDescriptorType descriptor_type,
- const VkBufferView& texel_view);
void SetUpdateDescriptorSetNeeded() {
is_descriptor_set_update_needed_ = true;
@@ -146,7 +113,7 @@ class Descriptor {
VkDescriptorType descriptor_type) const;
void UpdateVkDescriptorSet(const VkWriteDescriptorSet& write);
- DescriptorType type_ = DescriptorType::kSampledImage;
+ DescriptorType type_ = DescriptorType::kStorageBuffer;
bool is_descriptor_set_update_needed_ = false;
};