WIP: Vulkan: Initial Immediate Mode Support. #106954

Closed
Jeroen Bakker wants to merge 27 commits from Jeroen-Bakker:vulkan-immediate into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.

27 Commits

Author SHA1 Message Date
Jeroen Bakker c5e4e76008 Vulkan: Immediate mode emulation. 2023-04-14 15:48:04 +02:00
Jeroen Bakker 8fe177425e Added test case for immediate mode drawing. 2023-04-14 11:43:09 +02:00
Jeroen Bakker 25873c4963 Fix state issue 2023-04-14 09:05:38 +02:00
Jeroen Bakker 6c407c94f4 Merge branch 'main' into vulkan-offscreen-rendering 2023-04-14 08:23:24 +02:00
Jeroen Bakker a32ee85b51 Added all non-custom blending test cases. 2023-04-13 16:14:54 +02:00
Jeroen Bakker d295aff40a Merge branch 'gpu-offscreen-texture-usage' into vulkan-offscreen-rendering 2023-04-13 15:43:45 +02:00
Jeroen Bakker a01991b538 Remove unneeded file. 2023-04-13 15:42:24 +02:00
Jeroen Bakker 36578ac4ee Automatic add GPU_TEXTURE_USAGE_ATTACHMENT. 2023-04-13 15:40:21 +02:00
Jeroen Bakker a5f7d44115 Track framebuffer state in command buffer. 2023-04-13 15:35:07 +02:00
Jeroen Bakker 9e83be5c40 Merge branch 'gpu-offscreen-texture-usage' into vulkan-offscreen-rendering 2023-04-13 13:44:18 +02:00
Jeroen Bakker 29cc37cf22 GPU: Add texture usage parameter to GPUOffscreen.
Currently the Textures used for offscreen rendering don't have
the `GPU_TEXTURE_USAGE_HOST_READ` flag. But some cases it is
needed. This PR adds a parameter when creating an offscreen
buffer.

Other solution could be to add this flag to all textures, but
we chose not to do this as that reduces the amount of fine-tuning
options for Metal/Vulkan backends. GPU can store textures
differently based on its actual usage.

This option isn't available in the python API as we don't expect
add-on developers to fine-tune texture usages to this extent.
2023-04-13 12:33:50 +02:00
Jeroen Bakker c9a1be0fc9 Temp commit as changes to GPU api are needed to proceed. 2023-04-13 12:24:18 +02:00
Jeroen Bakker 8b8fb15430 Merge branch 'main' into vulkan-offscreen-rendering 2023-04-13 10:52:22 +02:00
Jeroen Bakker 560ba241fe Fix overbind vbos. 2023-04-07 15:01:36 +02:00
Jeroen Bakker 21b49096d6 Fix issues with vertex attribute objects. 2023-04-07 14:14:02 +02:00
Jeroen Bakker 812217fb67 Remove unneeded changes. 2023-04-07 12:51:21 +02:00
Jeroen Bakker 3100807739 Revert unneeded change. 2023-04-07 12:14:34 +02:00
Jeroen Bakker f00e82d5dc Migrated to pipeline specific state manager. 2023-04-07 12:09:53 +02:00
Jeroen Bakker 1e0b6a4707 Use correct primitive topology 2023-04-07 09:04:26 +02:00
Jeroen Bakker 85ffcfb04f Fix push constants and use VAO in pipeline 2023-04-07 08:22:36 +02:00
Jeroen Bakker 12e9e90b6c Vertex buffer binding. 2023-04-06 16:21:39 +02:00
Jeroen Bakker e3e3037a4d Merge branch 'main' into vulkan-offscreen-rendering 2023-04-06 08:46:22 +02:00
Jeroen Bakker 2fe23a2f03 Merge branch 'main' into vulkan-offscreen-rendering 2023-04-04 14:13:15 +02:00
Jeroen Bakker 44aae51d41 Merge branch 'main' into vulkan-offscreen-rendering 2023-03-29 08:07:40 +02:00
Jeroen Bakker 2b4988b18d Hardcoded graphics pipeline. 2023-03-28 16:01:04 +02:00
Jeroen Bakker 075790d69f Merge branch 'main' into vulkan-offscreen-rendering 2023-03-28 11:57:31 +02:00
Jeroen Bakker b0563f520e Added test for offscreen rendering.
It doesn't validate anything yet, it should (for now) be used
with renderdoc.
2023-03-28 11:49:52 +02:00