Stephen Seo
ef7f623fb3
Optimize buffer writes in vulkan_get_filter calls
...
When only a single item in pbp buffer is changed, only update the single
item in the staging buffer and the device buffer prior to Vulkan compute
execution on buffers.
2024-04-03 17:55:37 +09:00
Stephen Seo
2854aa5104
Make OpenCL default backend
...
Order of backends to use:
OpenCL -> Vulkan -> CPU threads
Unless I figure out a way to make Vulkan faster, OpenCL will be the
default backend used, or at least it will have higher priority than
Vulkan if both OpenCL and Vulkan is available.
2024-04-01 11:19:55 +09:00
Stephen Seo
f3d1ad425c
Vulkan compute: Minor refactoring
2024-03-27 11:27:43 +09:00
Stephen Seo
7fb458dad5
Vulkan compute: Minor refactoring
2024-03-26 14:00:46 +09:00
Stephen Seo
5913b7669b
Vulkan compute: Refactor pbp integer setting loop
2024-03-26 13:57:13 +09:00
Stephen Seo
d137dc44ff
inline get_filter in vulkan compute impl.
2024-03-26 13:49:37 +09:00
Stephen Seo
045d3ef18d
Use "invalidate", not "flush" for buffer read
2024-03-26 13:37:51 +09:00
Stephen Seo
3a97f14199
Use "cached", not "coherent" for staging buffers
2024-03-26 12:21:40 +09:00
Stephen Seo
2d47b7f892
Attempt to optimize vulkan compute
2024-03-25 16:53:42 +09:00
Stephen Seo
47ba03337b
Impl. Vulkan compute
...
Tests indicate Vulkan compute runs 2x slower than OpenCL, so there
probably is room for optimization.
2024-03-25 13:27:06 +09:00
Stephen Seo
d4661996d2
WIP Vulkan compute: descriptor set and command buf
...
Some more Vulkan initialization code to set up Vulkan compute.
2024-03-25 11:39:50 +09:00
Stephen Seo
ea66a44238
QueueFamilyIndices struct: fn definitions in .cpp
...
Instead of defining struct functions in header file, only declare them
in the header file and define them in the source file.
2024-03-22 17:03:56 +09:00
Stephen Seo
16f0e0e865
Define vulkan specific helper fns in header
2024-03-22 16:59:23 +09:00
Stephen Seo
03b3c90e9a
Minor fix
...
Fix debug messenger initialization check.
2024-03-21 12:31:38 +09:00
Stephen Seo
6ed76af210
Restructure vulkan init code
...
Vulkan init code was resturctured so that "temporary" structs (e.g.
vulkan "info create" structs) are discarded after they are used.
2024-03-21 12:07:46 +09:00
Stephen Seo
020993fb19
Refactor: Move shader loading code to inner scope
...
This prevents the loaded shader data from persisting on the stack even
when it is no longer needed.
2024-03-20 19:25:22 +09:00
Stephen Seo
d29d2434ab
utility::Cleanup: Replace "Nop"
...
A default constructor suffices where "Nop" was used, so it was removed.
2024-03-20 19:18:37 +09:00
Stephen Seo
3b0a5ab7dd
WIP Vulkan compute: Fix buffer data
...
"filter_size" integer must be odd. This is how it is defined for the
OpenCL implementation.
2024-03-20 16:12:23 +09:00
Stephen Seo
5cee471f1f
WIP Vulkan compute: create buffers
2024-03-20 16:00:47 +09:00
Stephen Seo
7cca2bfbff
WIP vulkan compute: create command pool
2024-03-20 14:29:48 +09:00
Stephen Seo
a7dc666082
Refactor: code where neither Vulkan/OpenCL is used
2024-03-20 14:29:03 +09:00
Stephen Seo
bc02b924e2
WIP vulkan compute: create compute pipeline, fixes
...
Fix Cleanup class.
Implement setting up compute pipeline.
2024-03-20 11:54:38 +09:00
Stephen Seo
8c1190d923
Refactor glslc usage
2024-03-20 11:11:22 +09:00
Stephen Seo
bd5cfaebd3
Fix minor typo
2024-03-19 16:24:08 +09:00
Stephen Seo
6cefcc5f94
Compile glsl with glslc, fixes
...
Fix incorrectly set "bindings" for descriptors.
Fix blue_gen.glsl .
Program now attempts to compile blue_gen.glsl using "glslc".
2024-03-19 16:13:10 +09:00
Stephen Seo
b73c6fb94b
WIP Vulkan compute: compute descriptors, glsl
2024-03-19 14:58:35 +09:00
Stephen Seo
a0de033d34
WIP Vulkan compute: initialize VkDevice
2024-03-08 13:48:42 +09:00
Stephen Seo
38f7248f49
Minor refactoring
...
Use `const std::array<...>` instead of `const std::vector<...>`.
2024-03-07 16:47:37 +09:00
Stephen Seo
d0f14585b6
WIP vulkan compute: query physical devices
2024-03-07 12:13:32 +09:00
Stephen Seo
aaa986b0eb
Remove erronous Vulkan init. property
...
TODO: Vulkan compute
2024-03-06 17:56:30 +09:00
Stephen Seo
4e4ee7f558
Begin work on Vulkan compute (WIP)
...
Some Vulkan initialization stuff WIP.
2024-03-06 17:04:08 +09:00
Stephen Seo
d60e9497ff
Fix not using OpenCL header on disabled OpenCL
2023-03-31 19:04:25 +09:00
Stephen Seo
ecd65fc42b
clang-format --style=google
2023-03-31 18:47:33 +09:00
Stephen Seo
62d15771ad
Make usage of OpenCL conditional (configuring)
2023-03-31 18:46:10 +09:00
Stephen Seo
2f768f43bd
Add check for OpenCL kernel file
2023-03-31 15:00:27 +09:00
stephenseo
b40894f9d3
Update 'src/blue_noise.cl'
...
Fix `twoToOne(...)` having variables with no types.
2023-03-31 05:54:47 +00:00
Stephen Seo
afa27fc555
Round values when creating image from rankings
2021-11-11 15:36:05 +09:00
Stephen Seo
c9ec105664
Impl arg-parsing for generic use of blue-noise gen
2021-11-10 20:04:08 +09:00
Stephen Seo
2357fd9c05
Fix blue-noise when not using OpenCL
2021-11-10 19:21:33 +09:00
Stephen Seo
e715c18a4d
Fix blue-noise generation
2021-11-10 18:48:16 +09:00
Stephen Seo
d44297d079
WIP Attempt to fix resulting blue-noise
2021-11-10 18:12:04 +09:00
Stephen Seo
e90834dc0a
WIP work on generating blue-noise
2021-11-08 20:04:58 +09:00
Stephen Seo
73aa21e92a
Some attempts at fixing grayscale blue-noise
2021-10-07 15:34:13 +09:00
Stephen Seo
a8f0ec788a
Switch to CMake, try to fix grayscale blue-noise
2021-10-06 19:54:07 +09:00
Stephen Seo
c5364f2ebc
Fix image::Bl output pgm and ppm
2021-10-06 18:26:00 +09:00
Stephen Seo
e85412d61a
Some fixes, progress with grayscale blue-noise
2021-10-06 18:22:31 +09:00
Stephen Seo
1eee20d6ae
Some work on grayscale blue-noise
2021-10-06 17:59:27 +09:00
Stephen Seo
5826c3677c
Fix image::Bl write, use image::Bl as result for blue_noise
2021-02-11 11:33:14 +09:00
Stephen Seo
5155b847ca
Some work on image objects
2021-01-26 22:25:34 +09:00
Stephen Seo
6ca0db1e57
Split utility functions to utility.hpp
2021-01-26 19:53:11 +09:00