]>
git.seodisparate.com - blue_noise_generation/log
summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Stephen Seo [Thu, 28 Mar 2024 07:33:55 +0000 (16:33 +0900)]
Vulkan compute: combine all minmax calls
This commit combines the minmax execution via Vulkan compute. The
previous implementation executed compute in vulkan_minmax with a new
command buffer each time. This implementation combines all required
executions of compute in vulkan_minmax in a single command buffer and
uses a pipeline to ensure the enqueued compute calls stay in order.
Stephen Seo [Wed, 27 Mar 2024 07:04:16 +0000 (16:04 +0900)]
Do "minmax" on Vulkan compute
Was an attempt to speed up blue-noise-generation with Vulkan compute,
but this implementation seems to slow it down instead.
Stephen Seo [Wed, 3 Apr 2024 08:55:37 +0000 (17:55 +0900)]
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.
Stephen Seo [Mon, 1 Apr 2024 02:30:42 +0000 (11:30 +0900)]
Update README.md
Stephen Seo [Mon, 1 Apr 2024 02:19:16 +0000 (11:19 +0900)]
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.
Stephen Seo [Wed, 27 Mar 2024 02:27:43 +0000 (11:27 +0900)]
Vulkan compute: Minor refactoring
Stephen Seo [Tue, 26 Mar 2024 05:00:46 +0000 (14:00 +0900)]
Vulkan compute: Minor refactoring
Stephen Seo [Tue, 26 Mar 2024 04:56:56 +0000 (13:56 +0900)]
Vulkan compute: Refactor pbp integer setting loop
Stephen Seo [Tue, 26 Mar 2024 04:49:37 +0000 (13:49 +0900)]
inline get_filter in vulkan compute impl.
Stephen Seo [Tue, 26 Mar 2024 04:37:51 +0000 (13:37 +0900)]
Use "invalidate", not "flush" for buffer read
Stephen Seo [Tue, 26 Mar 2024 03:21:40 +0000 (12:21 +0900)]
Use "cached", not "coherent" for staging buffers
Stephen Seo [Mon, 25 Mar 2024 07:53:42 +0000 (16:53 +0900)]
Attempt to optimize vulkan compute
Stephen Seo [Mon, 25 Mar 2024 04:27:06 +0000 (13:27 +0900)]
Impl. Vulkan compute
Tests indicate Vulkan compute runs 2x slower than OpenCL, so there
probably is room for optimization.
Stephen Seo [Mon, 25 Mar 2024 02:39:50 +0000 (11:39 +0900)]
WIP Vulkan compute: descriptor set and command buf
Some more Vulkan initialization code to set up Vulkan compute.
Stephen Seo [Fri, 22 Mar 2024 08:03:56 +0000 (17:03 +0900)]
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.
Stephen Seo [Fri, 22 Mar 2024 07:59:23 +0000 (16:59 +0900)]
Define vulkan specific helper fns in header
Stephen Seo [Thu, 21 Mar 2024 03:31:38 +0000 (12:31 +0900)]
Minor fix
Fix debug messenger initialization check.
Stephen Seo [Thu, 21 Mar 2024 03:07:46 +0000 (12:07 +0900)]
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.
Stephen Seo [Thu, 21 Mar 2024 02:56:12 +0000 (11:56 +0900)]
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.
Stephen Seo [Wed, 20 Mar 2024 10:25:22 +0000 (19:25 +0900)]
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.
Stephen Seo [Wed, 20 Mar 2024 10:18:37 +0000 (19:18 +0900)]
utility::Cleanup: Replace "Nop"
A default constructor suffices where "Nop" was used, so it was removed.
Stephen Seo [Wed, 20 Mar 2024 07:20:13 +0000 (16:20 +0900)]
CMakeLists.txt: Debug flag "-Og" instead of "-O0"
Stephen Seo [Wed, 20 Mar 2024 07:12:23 +0000 (16:12 +0900)]
WIP Vulkan compute: Fix buffer data
"filter_size" integer must be odd. This is how it is defined for the
OpenCL implementation.
Stephen Seo [Wed, 20 Mar 2024 07:00:47 +0000 (16:00 +0900)]
WIP Vulkan compute: create buffers
Stephen Seo [Wed, 20 Mar 2024 05:29:48 +0000 (14:29 +0900)]
WIP vulkan compute: create command pool
Stephen Seo [Wed, 20 Mar 2024 05:29:03 +0000 (14:29 +0900)]
Refactor: code where neither Vulkan/OpenCL is used
Stephen Seo [Wed, 20 Mar 2024 02:54:38 +0000 (11:54 +0900)]
WIP vulkan compute: create compute pipeline, fixes
Fix Cleanup class.
Implement setting up compute pipeline.
Stephen Seo [Wed, 20 Mar 2024 02:11:22 +0000 (11:11 +0900)]
Refactor glslc usage
Stephen Seo [Tue, 19 Mar 2024 07:24:08 +0000 (16:24 +0900)]
Fix minor typo
Stephen Seo [Tue, 19 Mar 2024 07:13:10 +0000 (16:13 +0900)]
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".
Stephen Seo [Tue, 19 Mar 2024 05:58:35 +0000 (14:58 +0900)]
WIP Vulkan compute: compute descriptors, glsl
Stephen Seo [Fri, 8 Mar 2024 04:45:18 +0000 (13:45 +0900)]
WIP Vulkan compute: initialize VkDevice
Stephen Seo [Thu, 7 Mar 2024 07:47:37 +0000 (16:47 +0900)]
Minor refactoring
Use `const std::array<...>` instead of `const std::vector<...>`.
Stephen Seo [Thu, 7 Mar 2024 03:13:32 +0000 (12:13 +0900)]
WIP vulkan compute: query physical devices
Stephen Seo [Wed, 6 Mar 2024 08:56:30 +0000 (17:56 +0900)]
Remove erronous Vulkan init. property
TODO: Vulkan compute
Stephen Seo [Wed, 6 Mar 2024 08:38:53 +0000 (17:38 +0900)]
Update LICENSE year
Stephen Seo [Wed, 6 Mar 2024 08:04:08 +0000 (17:04 +0900)]
Begin work on Vulkan compute (WIP)
Some Vulkan initialization stuff WIP.
Stephen Seo [Sun, 23 Jul 2023 08:34:38 +0000 (17:34 +0900)]
Fix CMakeLists.txt
Stephen Seo [Sat, 1 Apr 2023 12:48:19 +0000 (21:48 +0900)]
Rename project/binary-name
Stephen Seo [Fri, 31 Mar 2023 10:04:25 +0000 (19:04 +0900)]
Fix not using OpenCL header on disabled OpenCL
Stephen Seo [Fri, 31 Mar 2023 09:55:36 +0000 (18:55 +0900)]
Fixes/Refactorings to CMakeLists.txt
Stephen Seo [Fri, 31 Mar 2023 09:47:33 +0000 (18:47 +0900)]
clang-format --style=google
Stephen Seo [Fri, 31 Mar 2023 09:46:10 +0000 (18:46 +0900)]
Make usage of OpenCL conditional (configuring)
Stephen Seo [Fri, 31 Mar 2023 06:00:27 +0000 (15:00 +0900)]
Add check for OpenCL kernel file
Stephen Seo [Fri, 31 Mar 2023 05:56:40 +0000 (14:56 +0900)]
Update LICENSE year
stephenseo [Fri, 31 Mar 2023 05:54:47 +0000 (05:54 +0000)]
Update 'src/blue_noise.cl'
Fix `twoToOne(...)` having variables with no types.
stephenseo [Fri, 10 Dec 2021 06:39:37 +0000 (06:39 +0000)]
Update 'README.md'
Stephen Seo [Thu, 11 Nov 2021 08:44:06 +0000 (17:44 +0900)]
Fix typo in README.md
Stephen Seo [Thu, 11 Nov 2021 08:43:27 +0000 (17:43 +0900)]
Add README.md
Stephen Seo [Thu, 11 Nov 2021 06:36:05 +0000 (15:36 +0900)]
Round values when creating image from rankings
Stephen Seo [Wed, 10 Nov 2021 11:04:08 +0000 (20:04 +0900)]
Impl arg-parsing for generic use of blue-noise gen
Stephen Seo [Wed, 10 Nov 2021 10:21:33 +0000 (19:21 +0900)]
Fix blue-noise when not using OpenCL
Stephen Seo [Wed, 10 Nov 2021 09:48:16 +0000 (18:48 +0900)]
Fix blue-noise generation
Stephen Seo [Wed, 10 Nov 2021 09:12:04 +0000 (18:12 +0900)]
WIP Attempt to fix resulting blue-noise
Stephen Seo [Mon, 8 Nov 2021 11:04:58 +0000 (20:04 +0900)]
WIP work on generating blue-noise
Stephen Seo [Thu, 7 Oct 2021 06:34:13 +0000 (15:34 +0900)]
Some attempts at fixing grayscale blue-noise
Stephen Seo [Wed, 6 Oct 2021 10:54:07 +0000 (19:54 +0900)]
Switch to CMake, try to fix grayscale blue-noise
Stephen Seo [Wed, 6 Oct 2021 09:26:00 +0000 (18:26 +0900)]
Fix image::Bl output pgm and ppm
Stephen Seo [Wed, 6 Oct 2021 09:22:31 +0000 (18:22 +0900)]
Some fixes, progress with grayscale blue-noise
Stephen Seo [Wed, 6 Oct 2021 08:59:27 +0000 (17:59 +0900)]
Some work on grayscale blue-noise
Stephen Seo [Sun, 14 Feb 2021 04:55:10 +0000 (13:55 +0900)]
Add MIT LICENSE
Stephen Seo [Thu, 11 Feb 2021 02:33:14 +0000 (11:33 +0900)]
Fix image::Bl write, use image::Bl as result for blue_noise
Stephen Seo [Tue, 26 Jan 2021 13:25:34 +0000 (22:25 +0900)]
Some work on image objects
Stephen Seo [Tue, 26 Jan 2021 10:53:11 +0000 (19:53 +0900)]
Split utility functions to utility.hpp
Stephen Seo [Sat, 23 Jan 2021 07:42:45 +0000 (16:42 +0900)]
Impl use of OpenCL for generating blue noise
Stephen Seo [Sat, 23 Jan 2021 04:50:43 +0000 (13:50 +0900)]
Use precomputed gaussian for filter function
Stephen Seo [Sat, 23 Jan 2021 03:21:02 +0000 (12:21 +0900)]
Use 0-255 range for pgm output
Stephen Seo [Sat, 23 Jan 2021 02:58:16 +0000 (11:58 +0900)]
Fixes and Refactorings
Stephen Seo [Sat, 23 Jan 2021 01:14:59 +0000 (10:14 +0900)]
Use int instead of std::size_t, float instead of double
Stephen Seo [Fri, 22 Jan 2021 13:57:37 +0000 (22:57 +0900)]
Fix filter_size not being used properly in filter
Stephen Seo [Fri, 22 Jan 2021 13:53:31 +0000 (22:53 +0900)]
Some refactoring
Stephen Seo [Sat, 16 Jan 2021 13:46:47 +0000 (22:46 +0900)]
Impl blue noise generation (maybe still WIP)
Stephen Seo [Sat, 16 Jan 2021 09:54:56 +0000 (18:54 +0900)]
WIP blue_noise impl
Stephen Seo [Sat, 16 Jan 2021 08:40:45 +0000 (17:40 +0900)]
Init skeleton C++ project
Stephen Seo [Sat, 16 Jan 2021 08:36:45 +0000 (17:36 +0900)]
Initial empty commit