Skip to content

Commit fb84811

Browse files
Introduce enum classes for VK enums; various bug-fixes
1 parent 368c1a3 commit fb84811

99 files changed

Lines changed: 5338 additions & 4881 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

examples/DynamicBuffers/src/app.cpp

Lines changed: 89 additions & 90 deletions
Large diffs are not rendered by default.

examples/MultiViewport/src/app.cpp

Lines changed: 51 additions & 53 deletions
Large diffs are not rendered by default.

examples/OcclusionQuery/src/app.cpp

Lines changed: 77 additions & 77 deletions
Large diffs are not rendered by default.

examples/OutOfOrderRasterization/src/app.cpp

Lines changed: 74 additions & 73 deletions
Large diffs are not rendered by default.

examples/PushConstants/src/app.cpp

Lines changed: 67 additions & 68 deletions
Large diffs are not rendered by default.

include/misc/base_pipeline_create_info.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@ namespace Anvil
3939
return m_allow_derivatives;
4040
}
4141

42-
bool attach_push_constant_range(uint32_t in_offset,
43-
uint32_t in_size,
44-
VkShaderStageFlags in_stages);
42+
bool attach_push_constant_range(uint32_t in_offset,
43+
uint32_t in_size,
44+
Anvil::ShaderStageFlags in_stages);
4545

4646
/* Returns != UINT32_MAX if this pipeline is a derivative pipeline, or UINT32_MAX otherwise. */
4747
Anvil::PipelineID get_base_pipeline_id() const

include/misc/buffer_create_info.h

Lines changed: 50 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ namespace Anvil
4343
*
4444
* - Client data to fill the result bullfer with after mem alloc is bound to the buffer: none
4545
* - External memory handle types: none
46-
* - MT safety: MT_SAFETY_INHERIT_FROM_PARENT_DEVICE
46+
* - MT safety: MTSafety::INHERIT_FROM_PARENT_DEVICE
4747
*
4848
* @param in_device_ptr Device to use.
4949
* @param in_size Size of the buffer object to be initialized.
@@ -56,7 +56,7 @@ namespace Anvil
5656
**/
5757
static Anvil::BufferCreateInfoUniquePtr create_nonsparse_alloc(const Anvil::BaseDevice* in_device_ptr,
5858
VkDeviceSize in_size,
59-
QueueFamilyBits in_queue_families,
59+
Anvil::QueueFamilyFlags in_queue_families,
6060
Anvil::SharingMode in_sharing_mode,
6161
Anvil::BufferUsageFlags in_usage_flags,
6262
Anvil::MemoryFeatureFlags in_memory_features);
@@ -69,7 +69,7 @@ namespace Anvil
6969
* The following default values are assumed, unless specified with separate set_..() invocations issued against the result instance:
7070
*
7171
* - External memory handle types: none
72-
* - MT safety: MT_SAFETY_INHERIT_FROM_PARENT_DEVICE
72+
* - MT safety: MTSafety::INHERIT_FROM_PARENT_DEVICE
7373
*
7474
* @param in_device_ptr Device to use.
7575
* @param in_size Size of the buffer object to be initialized.
@@ -81,7 +81,7 @@ namespace Anvil
8181
**/
8282
static Anvil::BufferCreateInfoUniquePtr create_nonsparse_no_alloc(const Anvil::BaseDevice* in_device_ptr,
8383
VkDeviceSize in_size,
84-
QueueFamilyBits in_queue_families,
84+
Anvil::QueueFamilyFlags in_queue_families,
8585
Anvil::SharingMode in_sharing_mode,
8686
Anvil::BufferUsageFlags in_usage_flags);
8787

@@ -118,14 +118,14 @@ namespace Anvil
118118
* this field to specify which handle types the allocation needs to support. Please see
119119
* documentation of Anvil::ExternalMemoryHandleTypeBits for more details.
120120
**/
121-
static Anvil::BufferCreateInfoUniquePtr create_sparse_no_alloc(const Anvil::BaseDevice* in_device_ptr,
122-
VkDeviceSize in_size,
123-
QueueFamilyBits in_queue_families,
124-
Anvil::SharingMode in_sharing_mode,
125-
Anvil::BufferUsageFlags in_usage_flags,
126-
Anvil::SparseResidencyScope in_residency_scope,
127-
MTSafety in_mt_safety = MT_SAFETY_INHERIT_FROM_PARENT_DEVICE,
128-
Anvil::ExternalMemoryHandleTypeBits in_external_memory_handle_types = 0);
121+
static Anvil::BufferCreateInfoUniquePtr create_sparse_no_alloc(const Anvil::BaseDevice* in_device_ptr,
122+
VkDeviceSize in_size,
123+
Anvil::QueueFamilyFlags in_queue_families,
124+
Anvil::SharingMode in_sharing_mode,
125+
Anvil::BufferUsageFlags in_usage_flags,
126+
Anvil::SparseResidencyScope in_residency_scope,
127+
MTSafety in_mt_safety = MTSafety::INHERIT_FROM_PARENT_DEVICE,
128+
Anvil::ExternalMemoryHandleTypeFlags in_external_memory_handle_types = Anvil::ExternalMemoryHandleTypeFlagBits::NONE);
129129

130130
const void* const get_client_data() const
131131
{
@@ -137,7 +137,7 @@ namespace Anvil
137137
return m_device_ptr;
138138
}
139139

140-
const Anvil::ExternalMemoryHandleTypeBits& get_exportable_external_memory_handle_types() const
140+
const Anvil::ExternalMemoryHandleTypeFlags& get_exportable_external_memory_handle_types() const
141141
{
142142
return m_exportable_external_memory_handle_types;
143143
}
@@ -159,7 +159,7 @@ namespace Anvil
159159
}
160160

161161
/** Returns info about queue families this buffer has been created for */
162-
QueueFamilyBits get_queue_families() const
162+
Anvil::QueueFamilyFlags get_queue_families() const
163163
{
164164
return m_queue_families;
165165
}
@@ -228,7 +228,7 @@ namespace Anvil
228228
m_device_ptr = in_device_ptr;
229229
}
230230

231-
void set_exportable_external_memory_handle_types(const Anvil::ExternalMemoryHandleTypeBits& in_external_memory_handle_types)
231+
void set_exportable_external_memory_handle_types(const Anvil::ExternalMemoryHandleTypeFlags& in_external_memory_handle_types)
232232
{
233233
m_exportable_external_memory_handle_types = in_external_memory_handle_types;
234234
}
@@ -243,7 +243,7 @@ namespace Anvil
243243
m_mt_safety = in_mt_safety;
244244
}
245245

246-
void get_queue_families(const QueueFamilyBits& in_queue_families)
246+
void set_queue_families(const Anvil::QueueFamilyFlags& in_queue_families)
247247
{
248248
m_queue_families = in_queue_families;
249249
}
@@ -273,43 +273,43 @@ namespace Anvil
273273

274274
/* Private functions */
275275

276-
BufferCreateInfo(const Anvil::BaseDevice* in_device_ptr,
277-
VkDeviceSize in_size,
278-
QueueFamilyBits in_queue_families,
279-
Anvil::SharingMode in_sharing_mode,
280-
Anvil::BufferUsageFlags in_usage_flags,
281-
Anvil::SparseResidencyScope in_residency_scope,
282-
MTSafety in_mt_safety,
283-
Anvil::ExternalMemoryHandleTypeBits in_exportable_external_memory_handle_types);
284-
BufferCreateInfo(const Anvil::BufferType& in_buffer_type,
285-
const Anvil::BaseDevice* in_device_ptr,
286-
VkDeviceSize in_size,
287-
QueueFamilyBits in_queue_families,
288-
Anvil::SharingMode in_sharing_mode,
289-
Anvil::BufferUsageFlags in_usage_flags,
290-
MemoryFeatureFlags in_memory_features,
291-
MTSafety in_mt_safety,
292-
Anvil::ExternalMemoryHandleTypeBits in_exportable_external_memory_handle_types,
293-
const void* in_opt_client_data_ptr);
294-
BufferCreateInfo(Anvil::Buffer* in_parent_buffer_ptr,
295-
VkDeviceSize in_start_offset,
296-
VkDeviceSize in_size);
276+
BufferCreateInfo(const Anvil::BaseDevice* in_device_ptr,
277+
VkDeviceSize in_size,
278+
Anvil::QueueFamilyFlags in_queue_families,
279+
Anvil::SharingMode in_sharing_mode,
280+
Anvil::BufferUsageFlags in_usage_flags,
281+
Anvil::SparseResidencyScope in_residency_scope,
282+
MTSafety in_mt_safety,
283+
Anvil::ExternalMemoryHandleTypeFlags in_exportable_external_memory_handle_types);
284+
BufferCreateInfo(const Anvil::BufferType& in_buffer_type,
285+
const Anvil::BaseDevice* in_device_ptr,
286+
VkDeviceSize in_size,
287+
Anvil::QueueFamilyFlags in_queue_families,
288+
Anvil::SharingMode in_sharing_mode,
289+
Anvil::BufferUsageFlags in_usage_flags,
290+
MemoryFeatureFlags in_memory_features,
291+
MTSafety in_mt_safety,
292+
Anvil::ExternalMemoryHandleTypeFlags in_exportable_external_memory_handle_types,
293+
const void* in_opt_client_data_ptr);
294+
BufferCreateInfo(Anvil::Buffer* in_parent_buffer_ptr,
295+
VkDeviceSize in_start_offset,
296+
VkDeviceSize in_size);
297297

298298

299299
/* Private variables */
300-
const void* m_client_data_ptr;
301-
const Anvil::BaseDevice* m_device_ptr;
302-
Anvil::ExternalMemoryHandleTypeBits m_exportable_external_memory_handle_types;
303-
Anvil::MemoryFeatureFlags m_memory_features;
304-
MTSafety m_mt_safety;
305-
Anvil::Buffer* const m_parent_buffer_ptr;
306-
Anvil::QueueFamilyBits m_queue_families;
307-
const Anvil::SparseResidencyScope m_residency_scope;
308-
Anvil::SharingMode m_sharing_mode;
309-
VkDeviceSize m_size;
310-
VkDeviceSize m_start_offset;
311-
const BufferType m_type;
312-
Anvil::BufferUsageFlags m_usage_flags;
300+
const void* m_client_data_ptr;
301+
const Anvil::BaseDevice* m_device_ptr;
302+
Anvil::ExternalMemoryHandleTypeFlags m_exportable_external_memory_handle_types;
303+
Anvil::MemoryFeatureFlags m_memory_features;
304+
MTSafety m_mt_safety;
305+
Anvil::Buffer* const m_parent_buffer_ptr;
306+
Anvil::QueueFamilyFlags m_queue_families;
307+
const Anvil::SparseResidencyScope m_residency_scope;
308+
Anvil::SharingMode m_sharing_mode;
309+
VkDeviceSize m_size;
310+
VkDeviceSize m_start_offset;
311+
const BufferType m_type;
312+
Anvil::BufferUsageFlags m_usage_flags;
313313

314314
ANVIL_DISABLE_ASSIGNMENT_OPERATOR(BufferCreateInfo);
315315
ANVIL_DISABLE_COPY_CONSTRUCTOR(BufferCreateInfo);

include/misc/buffer_view_create_info.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ namespace Anvil
3636
*
3737
* NOTE: Unless specified later with a corresponding set_..() invocation, the following parameters are assumed by default:
3838
*
39-
* - MT safety: MT_SAFETY_INHERIT_FROM_PARENT_DEVICE
39+
* - MT safety: MTSafety::INHERIT_FROM_PARENT_DEVICE
4040
*/
4141
static Anvil::BufferViewCreateInfoUniquePtr create(const Anvil::BaseDevice* in_device_ptr,
4242
Anvil::Buffer* in_buffer_ptr,

include/misc/compute_pipeline_create_info.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ namespace Anvil
5454
uint32_t in_n_data_bytes,
5555
const void* in_data_ptr)
5656
{
57-
return BasePipelineCreateInfo::add_specialization_constant(Anvil::SHADER_STAGE_COMPUTE,
57+
return BasePipelineCreateInfo::add_specialization_constant(Anvil::ShaderStage::COMPUTE,
5858
in_constant_id,
5959
in_n_data_bytes,
6060
in_data_ptr);

include/misc/descriptor_set_create_info.h

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,10 @@ namespace Anvil
6868
* @return true if successful, false otherwise.
6969
**/
7070
bool add_binding(uint32_t in_binding_index,
71-
VkDescriptorType in_descriptor_type,
71+
Anvil::DescriptorType in_descriptor_type,
7272
uint32_t in_descriptor_array_size,
73-
VkShaderStageFlags in_stage_flags,
74-
const Anvil::DescriptorBindingFlags& in_flags = 0,
73+
Anvil::ShaderStageFlags in_stage_flags,
74+
const Anvil::DescriptorBindingFlags& in_flags = Anvil::DescriptorBindingFlagBits::NONE,
7575
const Anvil::Sampler* const* in_opt_immutable_sampler_ptr_ptr = nullptr);
7676

7777
/** Tells if the DS info structure contains a variable descriptor count binding.
@@ -126,9 +126,9 @@ namespace Anvil
126126
* @return true if successful, false otherwise.
127127
**/
128128
bool get_binding_properties_by_binding_index(uint32_t in_binding_index,
129-
VkDescriptorType* out_opt_descriptor_type_ptr = nullptr,
129+
Anvil::DescriptorType* out_opt_descriptor_type_ptr = nullptr,
130130
uint32_t* out_opt_descriptor_array_size_ptr = nullptr,
131-
VkShaderStageFlags* out_opt_stage_flags_ptr = nullptr,
131+
Anvil::ShaderStageFlags* out_opt_stage_flags_ptr = nullptr,
132132
bool* out_opt_immutable_samplers_enabled_ptr = nullptr,
133133
Anvil::DescriptorBindingFlags* out_opt_flags_ptr = nullptr) const;
134134

@@ -153,9 +153,9 @@ namespace Anvil
153153
**/
154154
bool get_binding_properties_by_index_number(uint32_t in_n_binding,
155155
uint32_t* out_opt_binding_index_ptr = nullptr,
156-
VkDescriptorType* out_opt_descriptor_type_ptr = nullptr,
156+
Anvil::DescriptorType* out_opt_descriptor_type_ptr = nullptr,
157157
uint32_t* out_opt_descriptor_array_size_ptr = nullptr,
158-
VkShaderStageFlags* out_opt_stage_flags_ptr = nullptr,
158+
Anvil::ShaderStageFlags* out_opt_stage_flags_ptr = nullptr,
159159
bool* out_opt_immutable_samplers_enabled_ptr = nullptr,
160160
Anvil::DescriptorBindingFlags* out_opt_flags_ptr = nullptr) const;
161161

@@ -181,35 +181,33 @@ namespace Anvil
181181
typedef struct Binding
182182
{
183183
uint32_t descriptor_array_size;
184-
VkDescriptorType descriptor_type;
184+
Anvil::DescriptorType descriptor_type;
185185
Anvil::DescriptorBindingFlags flags;
186186
std::vector<const Anvil::Sampler*> immutable_samplers;
187187

188-
VkShaderStageFlagsVariable(stage_flags);
188+
Anvil::ShaderStageFlags stage_flags;
189189

190190
/** Dummy constructor. Do not use. */
191191
Binding()
192192
{
193193
descriptor_array_size = 0;
194-
descriptor_type = VK_DESCRIPTOR_TYPE_MAX_ENUM;
195-
flags = 0;
196-
stage_flags = static_cast<VkShaderStageFlagBits>(0);
194+
descriptor_type = Anvil::DescriptorType::UNKNOWN;
197195
}
198196

199197
/** Constructor.
200198
*
201199
* For argument discussion, please see Anvil::DescriptorSetLayout::add_binding() documentation.
202200
**/
203201
Binding(uint32_t in_descriptor_array_size,
204-
VkDescriptorType in_descriptor_type,
205-
VkShaderStageFlags in_stage_flags,
202+
Anvil::DescriptorType in_descriptor_type,
203+
Anvil::ShaderStageFlags in_stage_flags,
206204
const Anvil::Sampler* const* in_immutable_sampler_ptrs,
207205
Anvil::DescriptorBindingFlags in_flags)
208206
{
209207
descriptor_array_size = in_descriptor_array_size;
210208
descriptor_type = in_descriptor_type;
211209
flags = in_flags;
212-
stage_flags = static_cast<VkShaderStageFlagBits>(in_stage_flags);
210+
stage_flags = in_stage_flags;
213211

214212
if (in_immutable_sampler_ptrs != nullptr)
215213
{

0 commit comments

Comments
 (0)