Jeroen Bakker
9d0e6c1d6f
Merged blender:main in
2023-03-06 12:26:15 +01:00
Jeroen Bakker
a265b19985
Hide updating of push constants inside VKPushConstants.update.
2023-03-06 11:07:50 +01:00
Jeroen Bakker
70b1f871a7
Moved fallback name to local static const of init.
...
* constexpr isn't compiling on all platforms (CLang/Apple)
* Visibility is only in a single function.
2023-03-06 10:46:16 +01:00
Jeroen Bakker
b466cbcbc8
Merge branch 'main' into vulkan-push-constants
2023-02-28 08:00:05 +01:00
Jeroen Bakker
0c5745f060
Missing renames Layout->LayoutT
2023-02-27 14:03:32 +01:00
Jeroen Bakker
919e0ece3b
Use single memcpy when copying an array that is tightly packed in std140.
2023-02-27 13:11:34 +01:00
Jeroen Bakker
f9e23882c7
Rename template argument Layout->LayoutT
2023-02-27 13:05:55 +01:00
Jeroen Bakker
390cee5f88
Naming parameters generate_test_data function.
2023-02-27 13:04:12 +01:00
Jeroen Bakker
cbccad44cc
Merge branch 'main' into vulkan-push-constants
2023-02-27 13:02:14 +01:00
Jeroen Bakker
ad5ac6bdf7
Cleanup: Spelling in comment.
2023-02-23 18:24:14 +01:00
Jeroen Bakker
7876291d08
Cleanup: Incorrect reference to storage buffer in comment.
2023-02-23 18:22:12 +01:00
Jeroen Bakker
8a591a7845
Cleanup: function naming.
2023-02-23 18:20:02 +01:00
Jeroen Bakker
d20bf06825
Cleanup: Moved Layout inside VKPushConstants.
2023-02-23 17:55:55 +01:00
Jeroen Bakker
b4cad5c613
Remove unneeded comment.
2023-02-23 15:01:21 +01:00
Jeroen Bakker
2e9062e4d4
Merge branch 'main' into vulkan-push-constants
2023-02-23 14:58:30 +01:00
Jeroen Bakker
868b2e377f
Added documentation.
2023-02-23 13:35:33 +01:00
Jeroen Bakker
c088dcbaab
Reverted unneeded change in includes.
2023-02-23 13:31:03 +01:00
Jeroen Bakker
64e4d5e7d5
Identified resource change issue.
2023-02-23 12:55:41 +01:00
Jeroen Bakker
9698a12bc3
Element striding of std140 arrays.
2023-02-22 21:00:52 +01:00
Jeroen Bakker
2765552504
Add builtin uniforms.
2023-02-22 20:42:44 +01:00
Jeroen Bakker
87feaaf40f
Updated assert message to be more generic.
2023-02-22 20:32:20 +01:00
Jeroen Bakker
e8ad8d934e
Documentation.
2023-02-22 19:22:51 +01:00
Jeroen Bakker
df5985548a
Fixed test case.
2023-02-22 17:53:39 +01:00
Jeroen Bakker
a26eca251b
Added test cases for std140.
2023-02-22 17:46:13 +01:00
Jeroen Bakker
7b9edb674f
Missing removal of storage buffer.
2023-02-22 16:58:48 +01:00
Jeroen Bakker
27590e3a11
Fix incorrect comment.
2023-02-22 14:51:45 +01:00
Jeroen Bakker
42191cf0eb
Merge branch 'main' into vulkan-push-constants
2023-02-22 14:51:25 +01:00
Jeroen Bakker
edc641947f
Small clean ups.
2023-02-22 13:04:59 +01:00
Jeroen Bakker
c9bd43b0a1
Remove Storage buffers for push constants.
2023-02-22 12:42:05 +01:00
Jeroen Bakker
739d088c55
Initial (incomplete) Std140 implementation.
2023-02-22 12:06:09 +01:00
Jeroen Bakker
05d533e057
Fix issue where uniform buffers where not updated in the descriptor set.
2023-02-22 10:19:44 +01:00
Jeroen Bakker
9e6947d744
Determine descriptor set location after input sorting.
2023-02-22 09:56:10 +01:00
Jeroen Bakker
56cbef9e02
Refactored shader interface to keep track of descriptor sets.
2023-02-22 07:04:16 +01:00
Jeroen Bakker
dee686bd9d
Some small tweaks
2023-02-21 21:39:17 +01:00
Jeroen Bakker
0ae03c78f4
Use uniform buffers for fallback. (still in progress)
2023-02-21 20:21:14 +01:00
Jeroen Bakker
76dcdf78e9
Move std430 layout utility to vk_memory.
2023-02-21 16:17:00 +01:00
Jeroen Bakker
754c0acc76
Merge branch 'main' into vulkan-push-constants
2023-02-21 15:39:39 +01:00
Jeroen Bakker
ec31a09e20
Merge branch 'main' into vulkan-push-constants
2023-02-21 15:12:53 +01:00
Jeroen Bakker
17157843cd
Merge branch 'vulkan-compute-shaders' into vulkan-push-constants
2023-02-21 14:36:19 +01:00
Jeroen Bakker
6937a26243
Merge branch 'main' into vulkan-compute-shaders
2023-02-21 14:31:23 +01:00
Jeroen Bakker
797320c96b
Use storage buffers as fallback.
...
Eventually we want to use uniform buffers as they are a bit faster.
But they require std140.
2023-02-21 14:27:11 +01:00
Jeroen Bakker
a8dc114efc
First round trip of using push constants.
2023-02-21 07:54:01 +01:00
Jeroen Bakker
e7d683106e
Initial commit for push constants.
2023-02-21 07:53:48 +01:00
Jeroen Bakker
baf768ecfb
Merge branch 'main' into vulkan-compute-shaders
2023-02-21 07:48:58 +01:00
Jeroen Bakker
28220c4505
Merge branch 'main' into vulkan-compute-shaders
2023-02-20 09:23:31 +01:00
Jeroen Bakker
36d6cb2b17
Merge branch 'blender-v3.5-release'
2023-02-20 09:18:53 +01:00
Jeroen Bakker
dd76a85011
Merge branch 'blender-v3.5-release'
2023-02-20 08:12:35 +01:00
Jeroen Bakker
64f81d7c29
Merge branch 'main' into vulkan-compute-shaders
2023-02-18 17:41:22 +01:00
Jeroen Bakker
c7b9a5a759
Remove binding clashing between textures and images.
2023-02-17 11:29:20 +01:00
Jeroen Bakker
902250a704
Remove debug statement.
2023-02-17 10:15:14 +01:00
Jeroen Bakker
aca7d7ed35
Add support for shaders without any resources.
2023-02-17 10:05:29 +01:00
Jeroen Bakker
59c667b524
Merge branch 'main' into vulkan-compute-shaders
2023-02-17 09:55:33 +01:00
Jeroen Bakker
5079127a5a
Merge branch 'main' into vulkan-compute-shaders
2023-02-17 09:50:43 +01:00
Jeroen Bakker
1a6a97d8df
Add support for shader input lookup in shaders using samplers + images.
2023-02-17 09:40:17 +01:00
Jeroen Bakker
74c505c25d
Separate descriptor set bindings and gpu module bindings.
2023-02-17 09:00:44 +01:00
Jeroen Bakker
380e69148e
Check if image format is supported.
2023-02-16 12:13:14 +01:00
Jeroen Bakker
4fcaf128b0
Added documentation to the GHOST C-api and Context.
2023-02-16 10:25:44 +01:00
Jeroen Bakker
68bbed1e4b
Added initial support for sampling.
2023-02-16 09:27:29 +01:00
Jeroen Bakker
26b0c7c3fb
Increase descriptor pool resources.
...
Added image samplers and uniform buffers. Required for
shader builder.
2023-02-16 07:50:25 +01:00
Jeroen Bakker
bbece58e98
Merge branch 'main' into vulkan-compute-shaders
2023-02-14 15:13:12 +01:00
Jeroen Bakker
d75180cfba
Improve comments of known limitations of the implementation.
2023-02-14 14:43:15 +01:00
Jeroen Bakker
a2ba452c31
Move common data conversions to vk_common.
2023-02-14 14:23:41 +01:00
Jeroen Bakker
22cc7f7749
Fixed unneeded std::move.
2023-02-14 14:07:30 +01:00
Jeroen Bakker
6225cb7c94
Introduce vk_common.
2023-02-14 13:46:31 +01:00
Jeroen Bakker
64c20b4d6e
Add support for 2d and 3d textures.
2023-02-14 12:58:11 +01:00
Jeroen Bakker
fda61f18d1
Add support for 1d textures.
2023-02-14 12:38:20 +01:00
Jeroen Bakker
afa2d25db0
Added 1d texture, bind as image. Descriptor sets still needs to be updated.
2023-02-13 16:08:55 +01:00
Jeroen Bakker
319c79128d
Fix ssbo name change during merge.
2023-02-13 14:24:55 +01:00
Jeroen Bakker
0295a2e2fa
Merge branch 'main' into vulkan-compute-shaders
2023-02-13 13:58:47 +01:00
Jeroen Bakker
8b6db40ccc
Use guardedalloc for vulkan allocations.
2023-02-13 13:56:26 +01:00
Jeroen Bakker
0331654760
Added initial support for index buffers.
2023-02-13 13:29:56 +01:00
Jeroen Bakker
95609c174e
Fix missing create info for ssbo test.
2023-02-13 09:45:52 +01:00
Jeroen Bakker
366404d274
Vulkan: Initial Compute Shaders and SSBO+VBO support.
...
This patch adds initial support for compute shaders and SSBOs to
the vulkan backend. As the development is oriented to the test-
cases we have the implementation is limited to what is used there.
It has been validated that with this patch 2 test cases are running
as expected
- `GPUVulkanTest.gpu_shader_compute_ssbo`
- `GPUVulkanTest.gpu_storage_buffer_create_update_read`
This patch includes:
- Allocating VkBuffer on device.
- Uploading data from CPU to VkBuffer.
- Binding VkBuffer as SSBO to a compute shader.
- Execute compute shader and altering VkBuffer.
- Download the VkBuffer to CPU ram.
- Validate that it worked.
GHOST API has been changed as the original design was created before
we even had support for compute shaders in blender. The function `GHOST_getVulkanBackbuffer` has been separated to retrieve the command
buffer without a backbuffer (`GHOST_getVulkanCommandBuffer`). In order
to do correct command buffer processing we needed access to the queue
owned by GHOST. This is returned as part of the `GHOST_getVulkanHandles`
function.
2023-02-13 09:36:43 +01:00