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
ff36314092
Update README.md
2024-04-01 11:30:42 +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
3b11564a4a
Addendum note to previous commit
...
It was assumed in the previous commit's message that the shader data was
stored on the stack. In actuality, the usage of std::vector<char> uses
dynamically allocated memory, which means the data should be on the heap
not the stack.
2024-03-21 11:56:12 +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
d5d722022c
CMakeLists.txt: Debug flag "-Og" instead of "-O0"
2024-03-20 16:20:13 +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
c823f90c14
Update LICENSE year
2024-03-06 17:38:53 +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
0da27b59be
Fix CMakeLists.txt
2023-07-23 17:34:38 +09:00
Stephen Seo
834cae6ca5
Rename project/binary-name
2023-04-01 21:48:19 +09:00
Stephen Seo
d60e9497ff
Fix not using OpenCL header on disabled OpenCL
2023-03-31 19:04:25 +09:00
Stephen Seo
7041f732a9
Fixes/Refactorings to CMakeLists.txt
2023-03-31 18:55:36 +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
Stephen Seo
22f085cdcf
Update LICENSE year
2023-03-31 14:56:40 +09:00
stephenseo
b40894f9d3
Update 'src/blue_noise.cl'
...
Fix `twoToOne(...)` having variables with no types.
2023-03-31 05:54:47 +00:00
stephenseo
16ed743197
Update 'README.md'
2021-12-10 06:39:37 +00:00
Stephen Seo
19e3cc6041
Fix typo in README.md
2021-11-11 17:44:06 +09:00
Stephen Seo
ff3b69cc6a
Add README.md
2021-11-11 17:43:27 +09: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