├── .gitignore ├── CMakeLists.txt ├── LICENSE ├── README.md ├── cmake ├── ShaderUtils.cmake └── VulkanSiftConfig.cmake.in ├── docs ├── Performances.md ├── feature_metrics_comparison.png ├── perf_runtime_oxford_640x480.png └── perf_runtime_oxford_640x480_updated.png ├── include └── vulkansift │ ├── vulkansift.h │ └── vulkansift_types.h ├── scripts ├── gen_embedded_shader_code.py ├── hannover_runtime_perf.py ├── oxford_runtime_perf.py ├── plot_matching_results.py └── plot_oxford_runtime_perf.py └── src ├── examples ├── test_sift_detect.cpp ├── test_sift_error_handling.cpp ├── test_sift_gpu_debug.cpp ├── test_sift_match.cpp ├── test_sift_show_pyr.cpp ├── test_utils.cpp └── test_utils.h ├── perf ├── perf_common.cpp ├── perf_common.h ├── perf_matching.cpp ├── perf_runtime.cpp └── wrappers │ ├── opencv_wrapper.cpp │ ├── opencv_wrapper.h │ ├── popsift_wrapper.cpp │ ├── popsift_wrapper.h │ ├── siftgpu_wrapper.cpp │ ├── siftgpu_wrapper.h │ ├── vlfeat_wrapper.cpp │ ├── vlfeat_wrapper.h │ ├── vulkansift_wrapper.cpp │ ├── vulkansift_wrapper.h │ └── wrapper.h ├── thirdparty └── volk │ ├── LICENSE.md │ ├── version.txt │ ├── volk.c │ └── volk.h └── vulkansift ├── shaders ├── ComputeDescriptors.comp ├── ComputeOrientation.comp ├── DifferenceOfGaussian.comp ├── ExtractKeypoints.comp ├── GaussianBlur.comp ├── GaussianBlurInterpolated.comp └── Get2NearestNeighbors.comp ├── sift_detector.c ├── sift_detector.h ├── sift_matcher.c ├── sift_matcher.h ├── sift_memory.c ├── sift_memory.h ├── vkenv ├── debug_presenter.c ├── debug_presenter.h ├── logger.c ├── logger.h ├── vulkan_device.c ├── vulkan_device.h ├── vulkan_surface.c ├── vulkan_surface.h ├── vulkan_swapchain.c ├── vulkan_swapchain.h ├── vulkan_utils.c └── vulkan_utils.h └── vulkansift.c /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/.gitignore -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/CMakeLists.txt -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/README.md -------------------------------------------------------------------------------- /cmake/ShaderUtils.cmake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/cmake/ShaderUtils.cmake -------------------------------------------------------------------------------- /cmake/VulkanSiftConfig.cmake.in: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/cmake/VulkanSiftConfig.cmake.in -------------------------------------------------------------------------------- /docs/Performances.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/docs/Performances.md -------------------------------------------------------------------------------- /docs/feature_metrics_comparison.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/docs/feature_metrics_comparison.png -------------------------------------------------------------------------------- /docs/perf_runtime_oxford_640x480.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/docs/perf_runtime_oxford_640x480.png -------------------------------------------------------------------------------- /docs/perf_runtime_oxford_640x480_updated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/docs/perf_runtime_oxford_640x480_updated.png -------------------------------------------------------------------------------- /include/vulkansift/vulkansift.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/include/vulkansift/vulkansift.h -------------------------------------------------------------------------------- /include/vulkansift/vulkansift_types.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/include/vulkansift/vulkansift_types.h -------------------------------------------------------------------------------- /scripts/gen_embedded_shader_code.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/scripts/gen_embedded_shader_code.py -------------------------------------------------------------------------------- /scripts/hannover_runtime_perf.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/scripts/hannover_runtime_perf.py -------------------------------------------------------------------------------- /scripts/oxford_runtime_perf.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/scripts/oxford_runtime_perf.py -------------------------------------------------------------------------------- /scripts/plot_matching_results.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/scripts/plot_matching_results.py -------------------------------------------------------------------------------- /scripts/plot_oxford_runtime_perf.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/scripts/plot_oxford_runtime_perf.py -------------------------------------------------------------------------------- /src/examples/test_sift_detect.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/examples/test_sift_detect.cpp -------------------------------------------------------------------------------- /src/examples/test_sift_error_handling.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/examples/test_sift_error_handling.cpp -------------------------------------------------------------------------------- /src/examples/test_sift_gpu_debug.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/examples/test_sift_gpu_debug.cpp -------------------------------------------------------------------------------- /src/examples/test_sift_match.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/examples/test_sift_match.cpp -------------------------------------------------------------------------------- /src/examples/test_sift_show_pyr.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/examples/test_sift_show_pyr.cpp -------------------------------------------------------------------------------- /src/examples/test_utils.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/examples/test_utils.cpp -------------------------------------------------------------------------------- /src/examples/test_utils.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/examples/test_utils.h -------------------------------------------------------------------------------- /src/perf/perf_common.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/perf/perf_common.cpp -------------------------------------------------------------------------------- /src/perf/perf_common.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/perf/perf_common.h -------------------------------------------------------------------------------- /src/perf/perf_matching.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/perf/perf_matching.cpp -------------------------------------------------------------------------------- /src/perf/perf_runtime.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/perf/perf_runtime.cpp -------------------------------------------------------------------------------- /src/perf/wrappers/opencv_wrapper.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/perf/wrappers/opencv_wrapper.cpp -------------------------------------------------------------------------------- /src/perf/wrappers/opencv_wrapper.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/perf/wrappers/opencv_wrapper.h -------------------------------------------------------------------------------- /src/perf/wrappers/popsift_wrapper.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/perf/wrappers/popsift_wrapper.cpp -------------------------------------------------------------------------------- /src/perf/wrappers/popsift_wrapper.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/perf/wrappers/popsift_wrapper.h -------------------------------------------------------------------------------- /src/perf/wrappers/siftgpu_wrapper.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/perf/wrappers/siftgpu_wrapper.cpp -------------------------------------------------------------------------------- /src/perf/wrappers/siftgpu_wrapper.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/perf/wrappers/siftgpu_wrapper.h -------------------------------------------------------------------------------- /src/perf/wrappers/vlfeat_wrapper.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/perf/wrappers/vlfeat_wrapper.cpp -------------------------------------------------------------------------------- /src/perf/wrappers/vlfeat_wrapper.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/perf/wrappers/vlfeat_wrapper.h -------------------------------------------------------------------------------- /src/perf/wrappers/vulkansift_wrapper.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/perf/wrappers/vulkansift_wrapper.cpp -------------------------------------------------------------------------------- /src/perf/wrappers/vulkansift_wrapper.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/perf/wrappers/vulkansift_wrapper.h -------------------------------------------------------------------------------- /src/perf/wrappers/wrapper.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/perf/wrappers/wrapper.h -------------------------------------------------------------------------------- /src/thirdparty/volk/LICENSE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/thirdparty/volk/LICENSE.md -------------------------------------------------------------------------------- /src/thirdparty/volk/version.txt: -------------------------------------------------------------------------------- 1 | volk release for Vulkan 1.3.270 (commit: f2a16e3) 2 | -------------------------------------------------------------------------------- /src/thirdparty/volk/volk.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/thirdparty/volk/volk.c -------------------------------------------------------------------------------- /src/thirdparty/volk/volk.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/thirdparty/volk/volk.h -------------------------------------------------------------------------------- /src/vulkansift/shaders/ComputeDescriptors.comp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/vulkansift/shaders/ComputeDescriptors.comp -------------------------------------------------------------------------------- /src/vulkansift/shaders/ComputeOrientation.comp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/vulkansift/shaders/ComputeOrientation.comp -------------------------------------------------------------------------------- /src/vulkansift/shaders/DifferenceOfGaussian.comp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/vulkansift/shaders/DifferenceOfGaussian.comp -------------------------------------------------------------------------------- /src/vulkansift/shaders/ExtractKeypoints.comp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/vulkansift/shaders/ExtractKeypoints.comp -------------------------------------------------------------------------------- /src/vulkansift/shaders/GaussianBlur.comp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/vulkansift/shaders/GaussianBlur.comp -------------------------------------------------------------------------------- /src/vulkansift/shaders/GaussianBlurInterpolated.comp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/vulkansift/shaders/GaussianBlurInterpolated.comp -------------------------------------------------------------------------------- /src/vulkansift/shaders/Get2NearestNeighbors.comp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/vulkansift/shaders/Get2NearestNeighbors.comp -------------------------------------------------------------------------------- /src/vulkansift/sift_detector.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/vulkansift/sift_detector.c -------------------------------------------------------------------------------- /src/vulkansift/sift_detector.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/vulkansift/sift_detector.h -------------------------------------------------------------------------------- /src/vulkansift/sift_matcher.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/vulkansift/sift_matcher.c -------------------------------------------------------------------------------- /src/vulkansift/sift_matcher.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/vulkansift/sift_matcher.h -------------------------------------------------------------------------------- /src/vulkansift/sift_memory.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/vulkansift/sift_memory.c -------------------------------------------------------------------------------- /src/vulkansift/sift_memory.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/vulkansift/sift_memory.h -------------------------------------------------------------------------------- /src/vulkansift/vkenv/debug_presenter.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/vulkansift/vkenv/debug_presenter.c -------------------------------------------------------------------------------- /src/vulkansift/vkenv/debug_presenter.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/vulkansift/vkenv/debug_presenter.h -------------------------------------------------------------------------------- /src/vulkansift/vkenv/logger.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/vulkansift/vkenv/logger.c -------------------------------------------------------------------------------- /src/vulkansift/vkenv/logger.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/vulkansift/vkenv/logger.h -------------------------------------------------------------------------------- /src/vulkansift/vkenv/vulkan_device.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/vulkansift/vkenv/vulkan_device.c -------------------------------------------------------------------------------- /src/vulkansift/vkenv/vulkan_device.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/vulkansift/vkenv/vulkan_device.h -------------------------------------------------------------------------------- /src/vulkansift/vkenv/vulkan_surface.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/vulkansift/vkenv/vulkan_surface.c -------------------------------------------------------------------------------- /src/vulkansift/vkenv/vulkan_surface.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/vulkansift/vkenv/vulkan_surface.h -------------------------------------------------------------------------------- /src/vulkansift/vkenv/vulkan_swapchain.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/vulkansift/vkenv/vulkan_swapchain.c -------------------------------------------------------------------------------- /src/vulkansift/vkenv/vulkan_swapchain.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/vulkansift/vkenv/vulkan_swapchain.h -------------------------------------------------------------------------------- /src/vulkansift/vkenv/vulkan_utils.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/vulkansift/vkenv/vulkan_utils.c -------------------------------------------------------------------------------- /src/vulkansift/vkenv/vulkan_utils.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/vulkansift/vkenv/vulkan_utils.h -------------------------------------------------------------------------------- /src/vulkansift/vulkansift.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maelaubert/VulkanSift/HEAD/src/vulkansift/vulkansift.c --------------------------------------------------------------------------------