Skip to content

Commit e33e3af

Browse files
authored
Merge pull request #38 from engine3d-dev/small_fixes
* Replaced C-style casts with static_cast * Added VkBufferUsage enums to vulkan-cpp vk::buffer_usage enum equivalent * Additional minor bug fixes.
2 parents 1950428 + 985ca4c commit e33e3af

2 files changed

Lines changed: 41 additions & 8 deletions

File tree

vulkan-cpp/index_buffer.cppm

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ module;
22

33
#include <vulkan/vulkan.h>
44
#include <span>
5-
#include <array>
65

76
export module vk:index_buffer;
87

@@ -21,13 +20,11 @@ export namespace vk {
2120
const index_params& p_info) : m_device(p_device) {
2221
m_indices_count = p_info.indices.size();
2322

24-
uint32_t property_flags =
25-
memory_property::host_visible_bit | memory_property::host_cached_bit;
2623
buffer_parameters index_params = {
2724
.device_size = p_info.indices.size_bytes(),
2825
.physical_memory_properties = p_info.phsyical_memory_properties,
29-
.property_flags = (memory_property)property_flags,
30-
.usage = VK_BUFFER_USAGE_INDEX_BUFFER_BIT,
26+
.property_flags = static_cast<memory_property>(memory_property::host_visible_bit | memory_property::host_cached_bit),
27+
.usage = static_cast<VkBufferUsageFlags>(buffer_usage::index_buffer_bit),
3128
.debug_name = p_info.debug_name.c_str(),
3229
.vkSetDebugUtilsObjectNameEXT = p_info.vkSetDebugUtilsObjectNameEXT
3330
};
@@ -41,9 +38,9 @@ export namespace vk {
4138

4239
[[nodiscard]] uint32_t size() const { return m_indices_count; }
4340

44-
void bind(const VkCommandBuffer& p_current) {
41+
void bind(const VkCommandBuffer& p_current, uint64_t p_offset = 0) {
4542
vkCmdBindIndexBuffer(
46-
p_current, m_index_buffer, 0, VK_INDEX_TYPE_UINT32);
43+
p_current, m_index_buffer, p_offset, VK_INDEX_TYPE_UINT32);
4744
}
4845

4946
operator VkBuffer() const { return m_index_buffer; }

vulkan-cpp/types.cppm

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -795,6 +795,42 @@ export namespace vk {
795795
one_minus_src1_alpha = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
796796
};
797797

798+
enum class buffer_usage : uint32_t {
799+
transfer_src_bit = VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
800+
transfer_dst_bit = VK_BUFFER_USAGE_TRANSFER_DST_BIT,
801+
uniform_texel_buffer_bit = VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,
802+
storage_texel_buffer_bit = VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,
803+
uniform_buffer_bit = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
804+
storage_buffer_bit = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
805+
index_buffer_bit = VK_BUFFER_USAGE_INDEX_BUFFER_BIT,
806+
vertex_buffer_bit = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,
807+
indirect_buffer_bit = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,
808+
shader_device_address_bit = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
809+
video_decode_src_bit_khr = VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR,
810+
video_decode_dst_bit_khr = VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR,
811+
transform_feedback_buffer_bit_ext = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,
812+
transform_feedback_counter_buffer_bit_ext = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,
813+
conditoinal_rendering_bit_ext = VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,
814+
#ifdef VK_ENABLE_BETA_EXTENSIONS
815+
execution_graph_scratch_bit_amdx = VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX,
816+
#endif
817+
acceleration_structure_build_input_read_only_bit_khr = VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR,
818+
acceleration_structure_storage_bit_khr = VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR,
819+
shader_binding_table_bit_khr = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,
820+
video_encode_dst_bit_khr = VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR,
821+
encode_src_bit_khr = VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,
822+
sampler_descriptor_buffer_bit_ext = VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT,
823+
descriptor_buffer_bit_ext = VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT,
824+
descriptors_descriptor_buffer_bit_ext = VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT,
825+
micromap_build_input_read_only_bit_ext = VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT,
826+
micromap_storage_bit_ext = VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT,
827+
// tile_memory_bit_qcom = VK_BUFFER_USAGE_TILE_MEMORY_BIT_QCOM,
828+
ray_tracing_bit_nv = VK_BUFFER_USAGE_RAY_TRACING_BIT_NV,
829+
shader_device_address_bit_ext = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT,
830+
shader_device_address_bit_khr = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR,
831+
flags_bit_max_enum = VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM
832+
};
833+
798834
enum class blend_op : uint32_t {
799835
add = VK_BLEND_OP_ADD,
800836
subtract = VK_BLEND_OP_SUBTRACT,
@@ -1463,7 +1499,7 @@ export namespace vk {
14631499
memory_property property_flags;
14641500
VkBufferUsageFlags usage;
14651501
VkSharingMode share_mode = VK_SHARING_MODE_EXCLUSIVE;
1466-
const char* debug_name = "NA";
1502+
const char* debug_name = nullptr;
14671503
PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT =
14681504
nullptr;
14691505
};

0 commit comments

Comments
 (0)