Merge branch 'master' of github.com:Kbz-8/KVF
This commit is contained in:
20
kvf.h
20
kvf.h
@@ -1,7 +1,7 @@
|
|||||||
/***
|
/***
|
||||||
* MIT License
|
* MIT License
|
||||||
*
|
*
|
||||||
* Copyright (c) 2023-2024 kbz_8
|
* Copyright (c) 2023-2025 kbz_8
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
@@ -51,7 +51,7 @@
|
|||||||
#ifndef KBZ_8_VULKAN_FRAMEWORK_H
|
#ifndef KBZ_8_VULKAN_FRAMEWORK_H
|
||||||
#define KBZ_8_VULKAN_FRAMEWORK_H
|
#define KBZ_8_VULKAN_FRAMEWORK_H
|
||||||
|
|
||||||
#ifdef KVF_IMPL_VK_NO_PROTOTYPES
|
#if defined(KVF_IMPL_VK_NO_PROTOTYPES) && !defined(VK_NO_PROTOTYPES)
|
||||||
#define VK_NO_PROTOTYPES
|
#define VK_NO_PROTOTYPES
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -160,7 +160,7 @@ VkSampler kvfCreateSampler(VkDevice device, VkFilter filters, VkSamplerAddressMo
|
|||||||
void kvfDestroySampler(VkDevice device, VkSampler sampler);
|
void kvfDestroySampler(VkDevice device, VkSampler sampler);
|
||||||
|
|
||||||
VkBuffer kvfCreateBuffer(VkDevice device, VkBufferUsageFlags usage, VkDeviceSize size);
|
VkBuffer kvfCreateBuffer(VkDevice device, VkBufferUsageFlags usage, VkDeviceSize size);
|
||||||
void kvfCopyBufferToBuffer(VkCommandBuffer cmd, VkBuffer dst, VkBuffer src, size_t size);
|
void kvfCopyBufferToBuffer(VkCommandBuffer cmd, VkBuffer dst, VkBuffer src, size_t size, size_t src_offset, size_t dst_offset);
|
||||||
void kvfCopyBufferToImage(VkCommandBuffer cmd, VkImage dst, VkBuffer src, size_t buffer_offset, VkImageAspectFlagBits aspect, VkExtent3D extent);
|
void kvfCopyBufferToImage(VkCommandBuffer cmd, VkImage dst, VkBuffer src, size_t buffer_offset, VkImageAspectFlagBits aspect, VkExtent3D extent);
|
||||||
void kvfDestroyBuffer(VkDevice device, VkBuffer buffer);
|
void kvfDestroyBuffer(VkDevice device, VkBuffer buffer);
|
||||||
|
|
||||||
@@ -375,12 +375,12 @@ void kvfCheckVk(VkResult result);
|
|||||||
#ifdef KVF_DESCRIPTOR_POOL_CAPACITY
|
#ifdef KVF_DESCRIPTOR_POOL_CAPACITY
|
||||||
#undef KVF_DESCRIPTOR_POOL_CAPACITY
|
#undef KVF_DESCRIPTOR_POOL_CAPACITY
|
||||||
#endif
|
#endif
|
||||||
#define KVF_DESCRIPTOR_POOL_CAPACITY 512
|
#define KVF_DESCRIPTOR_POOL_CAPACITY 1024
|
||||||
|
|
||||||
#ifdef KVF_COMMAND_POOL_CAPACITY
|
#ifdef KVF_COMMAND_POOL_CAPACITY
|
||||||
#undef KVF_COMMAND_POOL_CAPACITY
|
#undef KVF_COMMAND_POOL_CAPACITY
|
||||||
#endif
|
#endif
|
||||||
#define KVF_COMMAND_POOL_CAPACITY 512
|
#define KVF_COMMAND_POOL_CAPACITY 1024
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
@@ -561,6 +561,7 @@ void __kvfCompleteDevice(VkPhysicalDevice physical, VkDevice device)
|
|||||||
|
|
||||||
kvf_device->device = device;
|
kvf_device->device = device;
|
||||||
kvf_device->cmd_pool = pool;
|
kvf_device->cmd_pool = pool;
|
||||||
|
kvf_device->callbacks = NULL;
|
||||||
kvf_device->sets_pools = NULL;
|
kvf_device->sets_pools = NULL;
|
||||||
kvf_device->sets_pools_size = 0;
|
kvf_device->sets_pools_size = 0;
|
||||||
kvf_device->cmd_buffers_size = 0;
|
kvf_device->cmd_buffers_size = 0;
|
||||||
@@ -1480,9 +1481,6 @@ int32_t __kvfScorePhysicalDevice(VkPhysicalDevice device, VkSurfaceKHR surface,
|
|||||||
if(device_props.deviceType == VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU)
|
if(device_props.deviceType == VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU)
|
||||||
score += 1000;
|
score += 1000;
|
||||||
|
|
||||||
if(!device_features.geometryShader)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
score += device_props.limits.maxImageDimension2D;
|
score += device_props.limits.maxImageDimension2D;
|
||||||
score += device_props.limits.maxBoundDescriptorSets;
|
score += device_props.limits.maxBoundDescriptorSets;
|
||||||
|
|
||||||
@@ -2283,7 +2281,7 @@ VkBuffer kvfCreateBuffer(VkDevice device, VkBufferUsageFlags usage, VkDeviceSize
|
|||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
void kvfCopyBufferToBuffer(VkCommandBuffer cmd, VkBuffer dst, VkBuffer src, size_t size)
|
void kvfCopyBufferToBuffer(VkCommandBuffer cmd, VkBuffer dst, VkBuffer src, size_t size, size_t src_offset, size_t dst_offset)
|
||||||
{
|
{
|
||||||
KVF_ASSERT(cmd != VK_NULL_HANDLE);
|
KVF_ASSERT(cmd != VK_NULL_HANDLE);
|
||||||
KVF_ASSERT(dst != VK_NULL_HANDLE);
|
KVF_ASSERT(dst != VK_NULL_HANDLE);
|
||||||
@@ -2294,6 +2292,8 @@ void kvfCopyBufferToBuffer(VkCommandBuffer cmd, VkBuffer dst, VkBuffer src, size
|
|||||||
#endif
|
#endif
|
||||||
VkBufferCopy copy_region = {};
|
VkBufferCopy copy_region = {};
|
||||||
copy_region.size = size;
|
copy_region.size = size;
|
||||||
|
copy_region.srcOffset = src_offset;
|
||||||
|
copy_region.dstOffset = dst_offset;
|
||||||
KVF_GET_DEVICE_FUNCTION(vkCmdCopyBuffer)(cmd, src, dst, 1, ©_region);
|
KVF_GET_DEVICE_FUNCTION(vkCmdCopyBuffer)(cmd, src, dst, 1, ©_region);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2549,7 +2549,7 @@ VkAttachmentDescription kvfBuildAttachmentDescription(KvfImageType type, VkForma
|
|||||||
__KvfSwapchain* kvf_swapchain = __kvfGetKvfSwapchainFromVkSwapchainKHR(swapchain);
|
__KvfSwapchain* kvf_swapchain = __kvfGetKvfSwapchainFromVkSwapchainKHR(swapchain);
|
||||||
KVF_ASSERT(kvf_swapchain != NULL);
|
KVF_ASSERT(kvf_swapchain != NULL);
|
||||||
KVF_ASSERT(kvf_swapchain->images_count != 0);
|
KVF_ASSERT(kvf_swapchain->images_count != 0);
|
||||||
return kvfBuildAttachmentDescription(KVF_IMAGE_COLOR, kvf_swapchain->images_format, VK_IMAGE_LAYOUT_UNDEFINED,VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, clear, VK_SAMPLE_COUNT_1_BIT);
|
return kvfBuildAttachmentDescription(KVF_IMAGE_COLOR, kvf_swapchain->images_format, VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, clear, VK_SAMPLE_COUNT_1_BIT);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user