Vulkan-Hpp/samples
Ilya Doroshenko 5d0d3b7bd9
Shared Handles (#1619)
* stage 1: added shared handles and all traits

* moved deleter to the shared part, now Shared handle weights 2 pointers

* Fixed Destroy Function

* generated headers

* At least no errors.

TODO: get image overload of shared handle back
make an example

* fixed all SFINAE issues, moved image specialization

* Added a sample

* made better example, added specialization for swapchain, added shared handles to readme

* Major update:
Fixed all wishes
Made std::shared_ptr do heavy lifting
Reduced code complexity
Added ParentType to basic handles
Added put and put_native for cross-abi usage

* more readme

* safer release()
removed put() for now

* better synchronization
inspired by STL shared_ptr implementation

* removed test shared pointer

* added forward type for better interop with VMA
added parent checking

* fixed getParent()

* added non-deleting overloads for Queue, DisplayKHR and PhysicalDevice

* Shared non-destoyed type now have handles

* using constructors are made to comply standard

* fixed leak

* shared handles migrated to own header,
made module entries

* header is independent now

* rebased repo, updated the example

* fixed most of the stuff

* renamed parent of, added guide to make shared handles

* vulkansc

* moved destructor to shared handle traits

* resolved issues with CI

* more relaxed memory ordering for release operation

* trying to remove submodule

* renamed to destructorType

* suppressed function cast warning

* only GCC should be affected
2023-09-19 13:04:36 +02:00
..
01_InitInstance Cleanup in CMakeLists.txt (#1572) 2023-05-08 11:54:57 +02:00
02_EnumerateDevices Cleanup in CMakeLists.txt (#1572) 2023-05-08 11:54:57 +02:00
03_InitDevice Cleanup in CMakeLists.txt (#1572) 2023-05-08 11:54:57 +02:00
04_InitCommandBuffer Cleanup in CMakeLists.txt (#1572) 2023-05-08 11:54:57 +02:00
05_InitSwapchain Fix validation layer warning on minImageCount of 2. (#1634) 2023-08-07 12:00:11 +02:00
06_InitDepthBuffer Resolve a validation layer warnings on destruction order of Image/Buffer and bound DeviceMemory. (#1636) 2023-08-08 13:40:56 +02:00
07_InitUniformBuffer Resolve a validation layer warnings on destruction order of Image/Buffer and bound DeviceMemory. (#1636) 2023-08-08 13:40:56 +02:00
08_InitPipelineLayout Cleanup in CMakeLists.txt (#1572) 2023-05-08 11:54:57 +02:00
09_InitDescriptorSet Cleanup in CMakeLists.txt (#1572) 2023-05-08 11:54:57 +02:00
10_InitRenderPass Cleanup in CMakeLists.txt (#1572) 2023-05-08 11:54:57 +02:00
11_InitShaders Cleanup in CMakeLists.txt (#1572) 2023-05-08 11:54:57 +02:00
12_InitFrameBuffers Cleanup in CMakeLists.txt (#1572) 2023-05-08 11:54:57 +02:00
13_InitVertexBuffer Resolve some validation layer warnings in some samples. (#1640) 2023-08-17 14:28:39 +02:00
14_InitPipeline Cleanup in CMakeLists.txt (#1572) 2023-05-08 11:54:57 +02:00
15_DrawCube Change samples from resetting command buffers to resetting command pool (#1638) 2023-08-14 16:09:11 +02:00
16_Vulkan_1_1 Make C++20 modules work with the defaultDispatchLoaderDynamic. (#1651) 2023-09-07 15:20:10 +02:00
CopyBlitImage Resolve some validation layer warnings in some samples. (#1640) 2023-08-17 14:28:39 +02:00
CreateDebugUtilsMessenger Cleanup in CMakeLists.txt (#1572) 2023-05-08 11:54:57 +02:00
DebugUtilsObjectName Cleanup in CMakeLists.txt (#1572) 2023-05-08 11:54:57 +02:00
DrawTexturedCube Change samples from resetting command buffers to resetting command pool (#1638) 2023-08-14 16:09:11 +02:00
DynamicUniform Change samples from resetting command buffers to resetting command pool (#1638) 2023-08-14 16:09:11 +02:00
EnableValidationWithCallback Make C++20 modules work with the defaultDispatchLoaderDynamic. (#1651) 2023-09-07 15:20:10 +02:00
EnumerateDevicesAdvanced Cleanup in CMakeLists.txt (#1572) 2023-05-08 11:54:57 +02:00
Events Change samples from resetting command buffers to resetting command pool (#1638) 2023-08-14 16:09:11 +02:00
ImmutableSampler Change samples from resetting command buffers to resetting command pool (#1638) 2023-08-14 16:09:11 +02:00
InitTexture Resolve some validation layer warnings in some samples. (#1640) 2023-08-17 14:28:39 +02:00
InputAttachment Resolve synchronization issue in [RAII_]Samples/InputAttachment. (#1644) 2023-08-24 08:32:15 +02:00
InstanceExtensionProperties Cleanup in CMakeLists.txt (#1572) 2023-05-08 11:54:57 +02:00
InstanceLayerExtensionProperties Cleanup in CMakeLists.txt (#1572) 2023-05-08 11:54:57 +02:00
InstanceLayerProperties Cleanup in CMakeLists.txt (#1572) 2023-05-08 11:54:57 +02:00
InstanceVersion Cleanup in CMakeLists.txt (#1572) 2023-05-08 11:54:57 +02:00
MultipleSets Change samples from resetting command buffers to resetting command pool (#1638) 2023-08-14 16:09:11 +02:00
OcclusionQuery Resolve some more validation layer issues. (#1643) 2023-08-23 13:58:54 +02:00
PhysicalDeviceExtensions Cleanup in CMakeLists.txt (#1572) 2023-05-08 11:54:57 +02:00
PhysicalDeviceFeatures Cleanup in CMakeLists.txt (#1572) 2023-05-08 11:54:57 +02:00
PhysicalDeviceGroups Cleanup in CMakeLists.txt (#1572) 2023-05-08 11:54:57 +02:00
PhysicalDeviceMemoryProperties Cleanup in CMakeLists.txt (#1572) 2023-05-08 11:54:57 +02:00
PhysicalDeviceProperties Cleanup in CMakeLists.txt (#1572) 2023-05-08 11:54:57 +02:00
PhysicalDeviceQueueFamilyProperties Cleanup in CMakeLists.txt (#1572) 2023-05-08 11:54:57 +02:00
PipelineCache Change samples from resetting command buffers to resetting command pool (#1638) 2023-08-14 16:09:11 +02:00
PipelineDerivative Change samples from resetting command buffers to resetting command pool (#1638) 2023-08-14 16:09:11 +02:00
PushConstants Change samples from resetting command buffers to resetting command pool (#1638) 2023-08-14 16:09:11 +02:00
PushDescriptors Make C++20 modules work with the defaultDispatchLoaderDynamic. (#1651) 2023-09-07 15:20:10 +02:00
RayTracing Resolve some more validation layer issues. (#1643) 2023-08-23 13:58:54 +02:00
SecondaryCommandBuffer Resolve some more validation layer issues. (#1643) 2023-08-23 13:58:54 +02:00
SeparateImageSampler Change samples from resetting command buffers to resetting command pool (#1638) 2023-08-14 16:09:11 +02:00
SharedHandles Shared Handles (#1619) 2023-09-19 13:04:36 +02:00
SurfaceCapabilities Make C++20 modules work with the defaultDispatchLoaderDynamic. (#1651) 2023-09-07 15:20:10 +02:00
SurfaceFormats Cleanup in CMakeLists.txt (#1572) 2023-05-08 11:54:57 +02:00
Template Change samples from resetting command buffers to resetting command pool (#1638) 2023-08-14 16:09:11 +02:00
TexelBuffer Change samples from resetting command buffers to resetting command pool (#1638) 2023-08-14 16:09:11 +02:00
utils Make C++20 modules work with the defaultDispatchLoaderDynamic. (#1651) 2023-09-07 15:20:10 +02:00
CMakeLists.txt Shared Handles (#1619) 2023-09-19 13:04:36 +02:00