diff --git a/Sources/Backends/Vulkan/VulkanDescriptor.c b/Sources/Backends/Vulkan/VulkanDescriptor.c index ee56d6e..52fedda 100644 --- a/Sources/Backends/Vulkan/VulkanDescriptor.c +++ b/Sources/Backends/Vulkan/VulkanDescriptor.c @@ -250,8 +250,6 @@ void VulkanReturnDescriptorSetToPool(VulkanDescriptorSetPool* pool, const Vulkan } } -#include - void VulkanBindDescriptorSets(PulseComputePass pass) { VulkanComputePass* vulkan_pass = VULKAN_RETRIEVE_DRIVER_DATA_AS(pass, VulkanComputePass*); @@ -426,9 +424,7 @@ void VulkanBindDescriptorSets(PulseComputePass pass) vulkan_pass->should_recreate_uniform_descriptor_sets = false; } - fprintf(stderr, "test device %p, fn %p, vkdevice %p, count %d\n", vulkan_device, vulkan_device->vkUpdateDescriptorSets, vulkan_device->device, write_count); vulkan_device->vkUpdateDescriptorSets(vulkan_device->device, write_count, writes, 0, PULSE_NULLPTR); - fprintf(stderr, "end test\n"); VkDescriptorSet sets[3]; sets[0] = vulkan_pass->read_only_descriptor_set->set; diff --git a/Sources/Backends/Vulkan/VulkanImage.c b/Sources/Backends/Vulkan/VulkanImage.c index 58a124a..97b75d6 100644 --- a/Sources/Backends/Vulkan/VulkanImage.c +++ b/Sources/Backends/Vulkan/VulkanImage.c @@ -140,32 +140,29 @@ PulseImage VulkanCreateImage(PulseDevice device, const PulseImageCreateInfo* cre CHECK_VK_RETVAL(device->backend, vmaCreateImage(vulkan_device->allocator, &image_create_info, &allocation_create_info, &vulkan_image->image, &vulkan_image->allocation, PULSE_NULLPTR), PULSE_ERROR_INITIALIZATION_FAILED, PULSE_NULL_HANDLE); vmaGetAllocationInfo(vulkan_device->allocator, vulkan_image->allocation, &vulkan_image->allocation_info); - if(create_infos->usage & PULSE_IMAGE_USAGE_STORAGE_READ) - { - VkImageViewCreateInfo image_view_create_info = { 0 }; - image_view_create_info.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO; - image_view_create_info.image = vulkan_image->image; - image_view_create_info.format = PulseImageFormatToVkFormat[create_infos->format]; - image_view_create_info.components = SwizzleForFormat(create_infos->format); - image_view_create_info.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - image_view_create_info.subresourceRange.baseMipLevel = 0; - image_view_create_info.subresourceRange.levelCount = 1; - image_view_create_info.subresourceRange.baseArrayLayer = 0; - image_view_create_info.subresourceRange.layerCount = layer_count; + VkImageViewCreateInfo image_view_create_info = { 0 }; + image_view_create_info.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO; + image_view_create_info.image = vulkan_image->image; + image_view_create_info.format = PulseImageFormatToVkFormat[create_infos->format]; + image_view_create_info.components = SwizzleForFormat(create_infos->format); + image_view_create_info.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + image_view_create_info.subresourceRange.baseMipLevel = 0; + image_view_create_info.subresourceRange.levelCount = 1; + image_view_create_info.subresourceRange.baseArrayLayer = 0; + image_view_create_info.subresourceRange.layerCount = layer_count; - if(create_infos->type == PULSE_IMAGE_TYPE_CUBE) - image_view_create_info.viewType = VK_IMAGE_VIEW_TYPE_CUBE; - else if(create_infos->type == PULSE_IMAGE_TYPE_CUBE_ARRAY) - image_view_create_info.viewType = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY; - else if(create_infos->type == PULSE_IMAGE_TYPE_3D) - image_view_create_info.viewType = VK_IMAGE_VIEW_TYPE_3D; - else if(create_infos->type == PULSE_IMAGE_TYPE_2D_ARRAY) - image_view_create_info.viewType = VK_IMAGE_VIEW_TYPE_2D_ARRAY; - else - image_view_create_info.viewType = VK_IMAGE_VIEW_TYPE_2D; + if(create_infos->type == PULSE_IMAGE_TYPE_CUBE) + image_view_create_info.viewType = VK_IMAGE_VIEW_TYPE_CUBE; + else if(create_infos->type == PULSE_IMAGE_TYPE_CUBE_ARRAY) + image_view_create_info.viewType = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY; + else if(create_infos->type == PULSE_IMAGE_TYPE_3D) + image_view_create_info.viewType = VK_IMAGE_VIEW_TYPE_3D; + else if(create_infos->type == PULSE_IMAGE_TYPE_2D_ARRAY) + image_view_create_info.viewType = VK_IMAGE_VIEW_TYPE_2D_ARRAY; + else + image_view_create_info.viewType = VK_IMAGE_VIEW_TYPE_2D; - CHECK_VK_RETVAL(device->backend, vulkan_device->vkCreateImageView(vulkan_device->device, &image_view_create_info, PULSE_NULLPTR, &vulkan_image->view), PULSE_ERROR_INITIALIZATION_FAILED, PULSE_NULL_HANDLE); - } + CHECK_VK_RETVAL(device->backend, vulkan_device->vkCreateImageView(vulkan_device->device, &image_view_create_info, PULSE_NULLPTR, &vulkan_image->view), PULSE_ERROR_INITIALIZATION_FAILED, PULSE_NULL_HANDLE); return image; } diff --git a/Tests/Vulkan/main.c b/Tests/Vulkan/main.c index 3a3a668..bf1a921 100644 --- a/Tests/Vulkan/main.c +++ b/Tests/Vulkan/main.c @@ -1,39 +1,41 @@ #include -#include #include #include -struct backtrace_state* state = NULL; -static size_t trace_count = 0; +#ifdef BACKTRACE + #include + struct backtrace_state* state = NULL; + static size_t trace_count = 0; -void ErrorCallback(void* data, const char* msg, int errnum) -{ - (void)data; - fprintf(stderr, "Error in backtrace: %s (error %d)\n", msg, errnum); -} + void ErrorCallback(void* data, const char* msg, int errnum) + { + (void)data; + fprintf(stderr, "Error in backtrace: %s (error %d)\n", msg, errnum); + } -int SymbolCallback(void* data, unsigned long pc, const char* filename, int lineno, const char* function) -{ - (void)data; - if(filename && function) - fprintf(stderr, "\t#%zu\033[1;34m 0x%lx\033[1;0m in\033[1;33m %s() from %s:%d\033[1;0m\n", trace_count, pc, function, filename, lineno); - else if(function) - fprintf(stderr, "\t#%zu\033[1;34m 0x%lx\033[1;0m in\033[1;33m %s() from unknown:unknown\033[1;0m\n", trace_count, pc, function); - else - fprintf(stderr, "\t#%zu\033[1;34m 0x%lx\033[1;0m in\033[1;33m ??\()\033[1;0m\n", trace_count, pc); - trace_count++; - return 0; -} + int SymbolCallback(void* data, unsigned long pc, const char* filename, int lineno, const char* function) + { + (void)data; + if(filename && function) + fprintf(stderr, "\t#%zu\033[1;34m 0x%lx\033[1;0m in\033[1;33m %s() from %s:%d\033[1;0m\n", trace_count, pc, function, filename, lineno); + else if(function) + fprintf(stderr, "\t#%zu\033[1;34m 0x%lx\033[1;0m in\033[1;33m %s() from unknown:unknown\033[1;0m\n", trace_count, pc, function); + else + fprintf(stderr, "\t#%zu\033[1;34m 0x%lx\033[1;0m in\033[1;33m ??\()\033[1;0m\n", trace_count, pc); + trace_count++; + return 0; + } -void SignalHandler(int sig) -{ - fprintf(stderr, "\n==========================================================\nFatal error: %s.\n\n", sig == SIGSEGV ? "segmentation fault" : "aborted"); - trace_count = 0; - backtrace_full(state, 0, SymbolCallback, ErrorCallback, NULL); - fprintf(stderr, "\n==========================================================\n"); - exit(1); -} + void SignalHandler(int sig) + { + fprintf(stderr, "\n==========================================================\nFatal error: %s.\n\n", sig == SIGSEGV ? "segmentation fault" : "aborted"); + trace_count = 0; + backtrace_full(state, 0, SymbolCallback, ErrorCallback, NULL); + fprintf(stderr, "\n==========================================================\n"); + exit(1); + } +#endif extern void TestBackend(); extern void TestDevice(); @@ -43,9 +45,11 @@ extern void TestPipeline(); int main(void) { - state = backtrace_create_state(NULL, 1, ErrorCallback, NULL); - signal(SIGSEGV, SignalHandler); - signal(SIGABRT, SignalHandler); + #ifdef BACKTRACE + state = backtrace_create_state(NULL, 1, ErrorCallback, NULL); + signal(SIGSEGV, SignalHandler); + signal(SIGABRT, SignalHandler); + #endif UNITY_BEGIN(); TestBackend(); diff --git a/Tests/Vulkan/xmake.lua b/Tests/Vulkan/xmake.lua index 2665fdc..c565f47 100644 --- a/Tests/Vulkan/xmake.lua +++ b/Tests/Vulkan/xmake.lua @@ -108,6 +108,7 @@ if has_config("vulkan-tests") then if is_plat("linux") then add_packages("libbacktrace") set_extension(".x86_64") + add_defines("BACKTRACE") end target_end() end