Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ include_directories("${Anvil_BINARY_DIR}/include"
"${Anvil_SOURCE_DIR}"
"${Anvil_SOURCE_DIR}/deps"
"${Anvil_SOURCE_DIR}/include")

if (WIN32)
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
link_directories ($ENV{VK_SDK_PATH}/Bin
Expand Down Expand Up @@ -46,6 +46,7 @@ SET (SRC_LIST "${Anvil_SOURCE_DIR}/include/misc/memalloc_backends/backend_onesho
"${Anvil_SOURCE_DIR}/include/misc/dummy_window.h"
"${Anvil_SOURCE_DIR}/include/misc/event_create_info.h"
"${Anvil_SOURCE_DIR}/include/misc/extensions.h"
"${Anvil_SOURCE_DIR}/include/misc/external_handle.h"
"${Anvil_SOURCE_DIR}/include/misc/fence_create_info.h"
"${Anvil_SOURCE_DIR}/include/misc/formats.h"
"${Anvil_SOURCE_DIR}/include/misc/fp16.h"
Expand All @@ -56,6 +57,7 @@ SET (SRC_LIST "${Anvil_SOURCE_DIR}/include/misc/memalloc_backends/backend_onesho
"${Anvil_SOURCE_DIR}/include/misc/image_view_create_info.h"
"${Anvil_SOURCE_DIR}/include/misc/io.h"
"${Anvil_SOURCE_DIR}/include/misc/memory_allocator.h"
"${Anvil_SOURCE_DIR}/include/misc/memory_block_create_info.h"
"${Anvil_SOURCE_DIR}/include/misc/mt_safety.h"
"${Anvil_SOURCE_DIR}/include/misc/object_tracker.h"
"${Anvil_SOURCE_DIR}/include/misc/page_tracker.h"
Expand Down Expand Up @@ -120,6 +122,7 @@ SET (SRC_LIST "${Anvil_SOURCE_DIR}/include/misc/memalloc_backends/backend_onesho
"${Anvil_SOURCE_DIR}/src/misc/debug_marker.cpp"
"${Anvil_SOURCE_DIR}/src/misc/descriptor_set_create_info.cpp"
"${Anvil_SOURCE_DIR}/src/misc/dummy_window.cpp"
"${Anvil_SOURCE_DIR}/src/misc/external_handle.cpp"
"${Anvil_SOURCE_DIR}/src/misc/event_create_info.cpp"
"${Anvil_SOURCE_DIR}/src/misc/fence_create_info.cpp"
"${Anvil_SOURCE_DIR}/src/misc/formats.cpp"
Expand All @@ -131,6 +134,7 @@ SET (SRC_LIST "${Anvil_SOURCE_DIR}/include/misc/memalloc_backends/backend_onesho
"${Anvil_SOURCE_DIR}/src/misc/image_view_create_info.cpp"
"${Anvil_SOURCE_DIR}/src/misc/io.cpp"
"${Anvil_SOURCE_DIR}/src/misc/memory_allocator.cpp"
"${Anvil_SOURCE_DIR}/src/misc/memory_block_create_info.cpp"
"${Anvil_SOURCE_DIR}/src/misc/object_tracker.cpp"
"${Anvil_SOURCE_DIR}/src/misc/page_tracker.cpp"
"${Anvil_SOURCE_DIR}/src/misc/pools.cpp"
Expand Down
17 changes: 9 additions & 8 deletions examples/DynamicBuffers/src/app.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -303,14 +303,15 @@ void App::draw_frame()
&t);

/* Submit jobs to relevant queues and make sure they are correctly synchronized */
m_device_ptr->get_universal_queue(0)->submit_command_buffer_with_signal_wait_semaphores(m_command_buffers[n_swapchain_image].get(),
1, /* n_semaphores_to_signal */
&curr_frame_signal_semaphore_ptr,
1, /* n_semaphores_to_wait_on */
&curr_frame_wait_semaphore_ptr,
&wait_stage_mask,
false, /* should_block */
nullptr);
m_device_ptr->get_universal_queue(0)->submit(
Anvil::SubmitInfo::create_wait_execute_signal(m_command_buffers[n_swapchain_image].get(),
1, /* n_semaphores_to_signal */
&curr_frame_signal_semaphore_ptr,
1, /* n_semaphores_to_wait_on */
&curr_frame_wait_semaphore_ptr,
&wait_stage_mask,
false) /* should_block */
);

m_present_queue_ptr->present(m_swapchain_ptr.get(),
n_swapchain_image,
Expand Down
17 changes: 9 additions & 8 deletions examples/MultiViewport/src/app.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -243,14 +243,15 @@ void App::draw_frame()
n_swapchain_image = m_swapchain_ptr->acquire_image(curr_frame_wait_semaphore_ptr);

/* Submit work chunk and present */
m_device_ptr->get_universal_queue(0)->submit_command_buffer_with_signal_wait_semaphores(m_command_buffers[n_swapchain_image].get(),
1, /* n_semaphores_to_signal */
&curr_frame_signal_semaphore_ptr,
1, /* n_semaphores_to_wait_on */
&curr_frame_wait_semaphore_ptr,
&wait_stage_mask,
false, /* should_block */
nullptr); /* opt_fence_ptr */
m_device_ptr->get_universal_queue(0)->submit(
Anvil::SubmitInfo::create_wait_execute_signal(m_command_buffers[n_swapchain_image].get(),
1, /* n_semaphores_to_signal */
&curr_frame_signal_semaphore_ptr,
1, /* n_semaphores_to_wait_on */
&curr_frame_wait_semaphore_ptr,
&wait_stage_mask,
false) /* should_block */
);

present_queue_ptr->present(m_swapchain_ptr.get(),
n_swapchain_image,
Expand Down
18 changes: 10 additions & 8 deletions examples/OcclusionQuery/src/app.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -295,14 +295,16 @@ void App::draw_frame()
};
const uint32_t n_cmd_buffers = sizeof(cmd_buffers) / sizeof(cmd_buffers[0]);

present_queue_ptr->submit_command_buffers(n_cmd_buffers,
cmd_buffers,
1, /* n_semaphores_to_signal */
&curr_frame_signal_semaphore_ptr,
1, /* n_semaphores_to_wait_on */
&curr_frame_wait_semaphore_ptr,
&wait_stage_mask,
false); /* should_block */
present_queue_ptr->submit(
Anvil::SubmitInfo::create_wait_execute_signal(cmd_buffers,
n_cmd_buffers,
1, /* n_semaphores_to_signal */
&curr_frame_signal_semaphore_ptr,
1, /* n_semaphores_to_wait_on */
&curr_frame_wait_semaphore_ptr,
&wait_stage_mask,
false) /* should_block */
);

present_queue_ptr->present(m_swapchain_ptr.get(),
n_swapchain_image,
Expand Down
16 changes: 9 additions & 7 deletions examples/OutOfOrderRasterization/src/app.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -344,13 +344,15 @@ void App::draw_frame()
}

{
m_present_queue_ptr->submit_command_buffer_with_signal_wait_semaphores(render_cmdbuffer_ptr,
1, /* n_semaphores_to_signal */
&frame_ready_for_present_semaphore_ptr,
1, /* n_semaphores_to_wait_on */
&frame_ready_to_render_semaphore_ptr,
&wait_stage_mask,
false /* should_block */);
m_present_queue_ptr->submit(
Anvil::SubmitInfo::create_wait_execute_signal(render_cmdbuffer_ptr,
1, /* n_semaphores_to_signal */
&frame_ready_for_present_semaphore_ptr,
1, /* n_semaphores_to_wait_on */
&frame_ready_to_render_semaphore_ptr,
&wait_stage_mask,
false /* should_block */)
);
}

{
Expand Down
16 changes: 9 additions & 7 deletions examples/PushConstants/src/app.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -282,13 +282,15 @@ void App::draw_frame()
/* Submit work chunk and present */
update_data_ub_contents(n_swapchain_image);

present_queue_ptr->submit_command_buffer_with_signal_wait_semaphores(m_command_buffers[n_swapchain_image].get(),
1, /* n_semaphores_to_signal */
&curr_frame_signal_semaphore_ptr,
1, /* n_semaphores_to_wait_on */
&curr_frame_wait_semaphore_ptr,
&wait_stage_mask,
false /* should_block */);
present_queue_ptr->submit(
Anvil::SubmitInfo::create(m_command_buffers[n_swapchain_image].get(),
1, /* n_semaphores_to_signal */
&curr_frame_signal_semaphore_ptr,
1, /* n_semaphores_to_wait_on */
&curr_frame_wait_semaphore_ptr,
&wait_stage_mask,
false /* should_block */)
);

present_queue_ptr->present(m_swapchain_ptr.get(),
n_swapchain_image,
Expand Down
90 changes: 45 additions & 45 deletions include/misc/buffer_create_info.h
Original file line number Diff line number Diff line change
Expand Up @@ -119,16 +119,16 @@ namespace Anvil
* @param in_residency_scope Scope of residency to support for the buffer.
* @param in_external_memory_handle_types If the buffer is going to be exported to another process or Vulkan instance, use
* this field to specify which handle types the allocation needs to support. Please see
* documentation of Anvil::ExternalMemoryHandleTypeFlags for more details.
* documentation of Anvil::ExternalMemoryHandleTypeBits for more details.
**/
static Anvil::BufferCreateInfoUniquePtr create_sparse_no_alloc(const Anvil::BaseDevice* in_device_ptr,
VkDeviceSize in_size,
QueueFamilyBits in_queue_families,
VkSharingMode in_sharing_mode,
VkBufferUsageFlags in_usage_flags,
Anvil::SparseResidencyScope in_residency_scope,
MTSafety in_mt_safety = MT_SAFETY_INHERIT_FROM_PARENT_DEVICE,
Anvil::ExternalMemoryHandleTypeFlags in_external_memory_handle_types = 0);
static Anvil::BufferCreateInfoUniquePtr create_sparse_no_alloc(const Anvil::BaseDevice* in_device_ptr,
VkDeviceSize in_size,
QueueFamilyBits in_queue_families,
VkSharingMode in_sharing_mode,
VkBufferUsageFlags in_usage_flags,
Anvil::SparseResidencyScope in_residency_scope,
MTSafety in_mt_safety = MT_SAFETY_INHERIT_FROM_PARENT_DEVICE,
Anvil::ExternalMemoryHandleTypeBits in_external_memory_handle_types = 0);

const void* const get_client_data() const
{
Expand All @@ -140,7 +140,7 @@ namespace Anvil
return m_device_ptr;
}

const Anvil::ExternalMemoryHandleTypeFlags& get_external_memory_handle_types() const
const Anvil::ExternalMemoryHandleTypeBits& get_external_memory_handle_types() const
{
return m_external_memory_handle_types;
}
Expand Down Expand Up @@ -222,7 +222,7 @@ namespace Anvil
m_device_ptr = in_device_ptr;
}

void set_external_memory_handle_types(const Anvil::ExternalMemoryHandleTypeFlags& in_external_memory_handle_types)
void set_external_memory_handle_types(const Anvil::ExternalMemoryHandleTypeBits& in_external_memory_handle_types)
{
m_external_memory_handle_types = in_external_memory_handle_types;
}
Expand Down Expand Up @@ -267,43 +267,43 @@ namespace Anvil

/* Private functions */

BufferCreateInfo(const Anvil::BaseDevice* in_device_ptr,
VkDeviceSize in_size,
QueueFamilyBits in_queue_families,
VkSharingMode in_sharing_mode,
VkBufferUsageFlags in_usage_flags,
Anvil::SparseResidencyScope in_residency_scope,
MTSafety in_mt_safety,
Anvil::ExternalMemoryHandleTypeFlags in_external_memory_handle_types);
BufferCreateInfo(const Anvil::BufferType& in_buffer_type,
const Anvil::BaseDevice* in_device_ptr,
VkDeviceSize in_size,
QueueFamilyBits in_queue_families,
VkSharingMode in_sharing_mode,
VkBufferUsageFlags in_usage_flags,
MemoryFeatureFlags in_memory_features,
MTSafety in_mt_safety,
Anvil::ExternalMemoryHandleTypeFlags in_external_memory_handle_types,
const void* in_opt_client_data_ptr);
BufferCreateInfo(Anvil::Buffer* in_parent_buffer_ptr,
VkDeviceSize in_start_offset,
VkDeviceSize in_size);
BufferCreateInfo(const Anvil::BaseDevice* in_device_ptr,
VkDeviceSize in_size,
QueueFamilyBits in_queue_families,
VkSharingMode in_sharing_mode,
VkBufferUsageFlags in_usage_flags,
Anvil::SparseResidencyScope in_residency_scope,
MTSafety in_mt_safety,
Anvil::ExternalMemoryHandleTypeBits in_external_memory_handle_types);
BufferCreateInfo(const Anvil::BufferType& in_buffer_type,
const Anvil::BaseDevice* in_device_ptr,
VkDeviceSize in_size,
QueueFamilyBits in_queue_families,
VkSharingMode in_sharing_mode,
VkBufferUsageFlags in_usage_flags,
MemoryFeatureFlags in_memory_features,
MTSafety in_mt_safety,
Anvil::ExternalMemoryHandleTypeBits in_external_memory_handle_types,
const void* in_opt_client_data_ptr);
BufferCreateInfo(Anvil::Buffer* in_parent_buffer_ptr,
VkDeviceSize in_start_offset,
VkDeviceSize in_size);


/* Private variables */
const void* m_client_data_ptr;
const Anvil::BaseDevice* m_device_ptr;
Anvil::ExternalMemoryHandleTypeFlags m_external_memory_handle_types;
Anvil::MemoryFeatureFlags m_memory_features;
MTSafety m_mt_safety;
Anvil::Buffer* const m_parent_buffer_ptr;
Anvil::QueueFamilyBits m_queue_families;
const Anvil::SparseResidencyScope m_residency_scope;
VkSharingMode m_sharing_mode;
VkDeviceSize m_size;
VkDeviceSize m_start_offset;
const BufferType m_type;
VkBufferUsageFlags m_usage_flags;
const void* m_client_data_ptr;
const Anvil::BaseDevice* m_device_ptr;
Anvil::ExternalMemoryHandleTypeBits m_external_memory_handle_types;
Anvil::MemoryFeatureFlags m_memory_features;
MTSafety m_mt_safety;
Anvil::Buffer* const m_parent_buffer_ptr;
Anvil::QueueFamilyBits m_queue_families;
const Anvil::SparseResidencyScope m_residency_scope;
VkSharingMode m_sharing_mode;
VkDeviceSize m_size;
VkDeviceSize m_start_offset;
const BufferType m_type;
VkBufferUsageFlags m_usage_flags;

ANVIL_DISABLE_ASSIGNMENT_OPERATOR(BufferCreateInfo);
ANVIL_DISABLE_COPY_CONSTRUCTOR(BufferCreateInfo);
Expand Down
Loading