Skip to content

Commit

Permalink
[vulkan] Remove vulkan/format_data (google#415)
Browse files Browse the repository at this point in the history
This Cl removes the free methods in vulkan/format_data and attaches them
to the classes where they make the most sense.
  • Loading branch information
dj2 authored Mar 27, 2019
1 parent bc902d4 commit e31aadd
Show file tree
Hide file tree
Showing 19 changed files with 601 additions and 663 deletions.
1 change: 0 additions & 1 deletion Android.mk
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@ LOCAL_SRC_FILES:= \
src/vulkan/compute_pipeline.cc \
src/vulkan/device.cc \
src/vulkan/engine_vulkan.cc \
src/vulkan/format_data.cc \
src/vulkan/frame_buffer.cc \
src/vulkan/graphics_pipeline.cc \
src/vulkan/index_buffer.cc \
Expand Down
148 changes: 148 additions & 0 deletions src/format.cc
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,152 @@ Format::Format(const Format&) = default;

Format::~Format() = default;

uint32_t Format::GetByteSize() const {
switch (type_) {
case FormatType::kR4G4_UNORM_PACK8:
case FormatType::kR8_SINT:
case FormatType::kR8_SNORM:
case FormatType::kR8_SRGB:
case FormatType::kR8_SSCALED:
case FormatType::kR8_UINT:
case FormatType::kR8_UNORM:
case FormatType::kR8_USCALED:
case FormatType::kS8_UINT:
return 1U;
case FormatType::kB4G4R4A4_UNORM_PACK16:
case FormatType::kB5G5R5A1_UNORM_PACK16:
case FormatType::kB5G6R5_UNORM_PACK16:
case FormatType::kA1R5G5B5_UNORM_PACK16:
case FormatType::kD16_UNORM:
case FormatType::kR16_SFLOAT:
case FormatType::kR16_SINT:
case FormatType::kR16_SNORM:
case FormatType::kR16_SSCALED:
case FormatType::kR16_UINT:
case FormatType::kR16_UNORM:
case FormatType::kR16_USCALED:
case FormatType::kR4G4B4A4_UNORM_PACK16:
case FormatType::kR5G5B5A1_UNORM_PACK16:
case FormatType::kR5G6B5_UNORM_PACK16:
case FormatType::kR8G8_SINT:
case FormatType::kR8G8_SNORM:
case FormatType::kR8G8_SRGB:
case FormatType::kR8G8_SSCALED:
case FormatType::kR8G8_UINT:
case FormatType::kR8G8_UNORM:
case FormatType::kR8G8_USCALED:
return 2U;
case FormatType::kB8G8R8_SINT:
case FormatType::kB8G8R8_SNORM:
case FormatType::kB8G8R8_SRGB:
case FormatType::kB8G8R8_SSCALED:
case FormatType::kB8G8R8_UINT:
case FormatType::kB8G8R8_UNORM:
case FormatType::kB8G8R8_USCALED:
case FormatType::kD16_UNORM_S8_UINT:
case FormatType::kR8G8B8_SINT:
case FormatType::kR8G8B8_SNORM:
case FormatType::kR8G8B8_SRGB:
case FormatType::kR8G8B8_SSCALED:
case FormatType::kR8G8B8_UINT:
case FormatType::kR8G8B8_UNORM:
case FormatType::kR8G8B8_USCALED:
return 3U;
case FormatType::kA2B10G10R10_SINT_PACK32:
case FormatType::kA2B10G10R10_SNORM_PACK32:
case FormatType::kA2B10G10R10_SSCALED_PACK32:
case FormatType::kA2B10G10R10_UINT_PACK32:
case FormatType::kA2B10G10R10_UNORM_PACK32:
case FormatType::kA2B10G10R10_USCALED_PACK32:
case FormatType::kA2R10G10B10_SINT_PACK32:
case FormatType::kA2R10G10B10_SNORM_PACK32:
case FormatType::kA2R10G10B10_SSCALED_PACK32:
case FormatType::kA2R10G10B10_UINT_PACK32:
case FormatType::kA2R10G10B10_UNORM_PACK32:
case FormatType::kA2R10G10B10_USCALED_PACK32:
case FormatType::kA8B8G8R8_SINT_PACK32:
case FormatType::kA8B8G8R8_SNORM_PACK32:
case FormatType::kA8B8G8R8_SRGB_PACK32:
case FormatType::kA8B8G8R8_SSCALED_PACK32:
case FormatType::kA8B8G8R8_UINT_PACK32:
case FormatType::kA8B8G8R8_UNORM_PACK32:
case FormatType::kA8B8G8R8_USCALED_PACK32:
case FormatType::kB10G11R11_UFLOAT_PACK32:
case FormatType::kB8G8R8A8_SINT:
case FormatType::kB8G8R8A8_SNORM:
case FormatType::kB8G8R8A8_SRGB:
case FormatType::kB8G8R8A8_SSCALED:
case FormatType::kB8G8R8A8_UINT:
case FormatType::kB8G8R8A8_UNORM:
case FormatType::kB8G8R8A8_USCALED:
case FormatType::kD24_UNORM_S8_UINT:
case FormatType::kD32_SFLOAT:
case FormatType::kR16G16_SFLOAT:
case FormatType::kR16G16_SINT:
case FormatType::kR16G16_SNORM:
case FormatType::kR16G16_SSCALED:
case FormatType::kR16G16_UINT:
case FormatType::kR16G16_UNORM:
case FormatType::kR16G16_USCALED:
case FormatType::kR32_SFLOAT:
case FormatType::kR32_SINT:
case FormatType::kR32_UINT:
case FormatType::kX8_D24_UNORM_PACK32:
case FormatType::kR8G8B8A8_SINT:
case FormatType::kR8G8B8A8_SNORM:
case FormatType::kR8G8B8A8_SRGB:
case FormatType::kR8G8B8A8_SSCALED:
case FormatType::kR8G8B8A8_UINT:
case FormatType::kR8G8B8A8_UNORM:
case FormatType::kR8G8B8A8_USCALED:
return 4U;
case FormatType::kD32_SFLOAT_S8_UINT:
return 5U;
case FormatType::kR16G16B16_SFLOAT:
case FormatType::kR16G16B16_SINT:
case FormatType::kR16G16B16_SNORM:
case FormatType::kR16G16B16_SSCALED:
case FormatType::kR16G16B16_UINT:
case FormatType::kR16G16B16_UNORM:
case FormatType::kR16G16B16_USCALED:
return 6U;
case FormatType::kR16G16B16A16_SFLOAT:
case FormatType::kR16G16B16A16_SINT:
case FormatType::kR16G16B16A16_SNORM:
case FormatType::kR16G16B16A16_SSCALED:
case FormatType::kR16G16B16A16_UINT:
case FormatType::kR16G16B16A16_UNORM:
case FormatType::kR16G16B16A16_USCALED:
case FormatType::kR32G32_SFLOAT:
case FormatType::kR32G32_SINT:
case FormatType::kR32G32_UINT:
case FormatType::kR64_SFLOAT:
case FormatType::kR64_SINT:
case FormatType::kR64_UINT:
return 8U;
case FormatType::kR32G32B32_SFLOAT:
case FormatType::kR32G32B32_SINT:
case FormatType::kR32G32B32_UINT:
return 12U;
case FormatType::kR32G32B32A32_SFLOAT:
case FormatType::kR32G32B32A32_SINT:
case FormatType::kR32G32B32A32_UINT:
case FormatType::kR64G64_SFLOAT:
case FormatType::kR64G64_SINT:
case FormatType::kR64G64_UINT:
return 16U;
case FormatType::kR64G64B64_SFLOAT:
case FormatType::kR64G64B64_SINT:
case FormatType::kR64G64B64_UINT:
return 24U;
case FormatType::kR64G64B64A64_SFLOAT:
case FormatType::kR64G64B64A64_SINT:
case FormatType::kR64G64B64A64_UINT:
return 32U;
default:
break;
}
return 0;
}

} // namespace amber
18 changes: 8 additions & 10 deletions src/format.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,19 +56,17 @@ class Format {
}
const std::vector<Component>& GetComponents() const { return components_; }

uint32_t GetByteSize() const {
if (pack_size_in_bytes_)
return pack_size_in_bytes_;

uint32_t bits = 0;
for (uint32_t j = 0; j < components_.size(); ++j) {
bits += components_[j].num_bits;
}
return bits / 8;
uint32_t GetByteSize() const;
bool IsFormatKnown() const { return type_ != FormatType::kUnknown; }
bool HasStencilComponent() const {
return type_ == FormatType::kD24_UNORM_S8_UINT ||
type_ == FormatType::kD16_UNORM_S8_UINT ||
type_ == FormatType::kD32_SFLOAT_S8_UINT ||
type_ == FormatType::kS8_UINT;
}

private:
FormatType type_;
FormatType type_ = FormatType::kUnknown;
uint8_t pack_size_in_bytes_ = 0;
std::vector<Component> components_;
};
Expand Down
1 change: 0 additions & 1 deletion src/vulkan/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ set(VULKAN_ENGINE_SOURCES
compute_pipeline.cc
device.cc
engine_vulkan.cc
format_data.cc
frame_buffer.cc
graphics_pipeline.cc
index_buffer.cc
Expand Down
Loading

0 comments on commit e31aadd

Please sign in to comment.