Commit Graph

268 Commits (6b39da7d2de030240b5ae4ddbf8bd6c737796040)

Author SHA1 Message Date
Caleb Cornett 6b39da7d2d CreateSampler 2024-02-06 21:13:02 -06:00
Caleb Cornett e35efa4061 CreateBuffer, QueueDestroyBuffer, SetBufferData, BindVertexBuffers 2024-02-06 21:13:02 -06:00
Caleb Cornett 741d3ebcff Initial work on DestroyDevice 2024-02-06 21:13:02 -06:00
Caleb Cornett 0f1a2423d0 Implement SetViewport and SetScissor 2024-02-06 21:13:02 -06:00
Caleb Cornett 38d51cf6de Style cleanups + added FIXME note for shader compilation 2024-02-06 21:13:02 -06:00
Caleb Cornett 9b139cf672 DrawPrimitives, BindGraphicsPipeline, misc cleanup 2024-02-06 21:11:22 -06:00
Caleb Cornett 2cb678d9a1 Implement CreateShaderModule 2024-02-06 21:11:22 -06:00
Caleb Cornett afcfacb305 Pipeline creation copied over from old work + shaderc update 2024-02-06 21:11:22 -06:00
Caleb Cornett e47e7b2c75 Fix for command pool crash, fix for hanging on Wait 2024-02-06 21:11:22 -06:00
Caleb Cornett ce984f58d1 Reworked Wait and Submit logic to use D3D11 Query objects as fences 2024-02-06 21:11:22 -06:00
Caleb Cornett 413095923b Stub out D3D11_Wait, fix crash when unclaiming windows, fix backend order 2024-02-06 21:11:22 -06:00
Caleb Cornett e195e7f222 UnclaimWindow, swapchain destruction, fixed template signature 2024-02-06 21:11:22 -06:00
Caleb Cornett d7d89530de Implemented BeginRenderPass and Submit, ClearScreen works now! 2024-02-06 21:11:22 -06:00
Caleb Cornett f4c332f4e3 More swapchain setup 2024-02-06 21:11:22 -06:00
Caleb Cornett 1637401a8a Apply swapchainDesc fix from FNA3D, add cdefines.h to CMakeLists 2024-02-06 21:11:22 -06:00
Caleb Cornett 49c64a230f Implemented AcquireCommandBuffer (from old D3D11 work) 2024-02-06 21:11:22 -06:00
Caleb Cornett 13ae5dee54 Implement ClaimWindow, mostly copied from Vulkan and FNA3D D3D11 2024-02-06 21:11:22 -06:00
Caleb Cornett 951f124662 Remove old stuff, flesh out PrepareDriver 2024-02-06 21:11:22 -06:00
Caleb Cornett 547ed52305 Groundwork for D3D11. Yoinked most of this from the prior work, but updated the ABI 2024-02-06 21:11:22 -06:00
cosmonaut c99b4cdfa1 fix incorrect flag bit
continuous-integration/drone/push Build is passing Details
2024-01-31 14:47:01 -08:00
cosmonaut 2803e6d94e force ignore device-local property if allocation failed
continuous-integration/drone/push Build is passing Details
2024-01-31 14:36:02 -08:00
cosmonaut 30b5f1dd21 user-requested buffers are no longer host-visible
continuous-integration/drone/push Build is passing Details
2024-01-31 14:26:40 -08:00
cosmonaut 4ce2d80f80 Intel doesn't like 1 byte buffers
continuous-integration/drone/push Build is passing Details
2024-01-19 10:19:23 -08:00
cosmonaut c10ca98ccd Remove some unused variables
continuous-integration/drone/push Build is passing Details
2024-01-15 22:25:27 -08:00
cosmonaut d441424b7c Fix ANY_SHADER_READ_SAMPLED_IMAGE sync hazard
continuous-integration/drone/push Build is passing Details
2024-01-15 21:41:36 -08:00
cosmonaut 55c77def69 Revert "Fix potential sync hazards (#49)"
This reverts commit 20636ec951.
2024-01-15 21:38:37 -08:00
cosmonaut 2634359b48 Texture size calculation fixes
continuous-integration/drone/push Build is passing Details
2024-01-15 16:36:56 -08:00
cosmonaut 859fc3b9fa fix UBO buffer size
continuous-integration/drone/push Build is passing Details
2024-01-13 23:45:07 -08:00
cosmonaut 05350a9332 UBO offsets should respect alignment
continuous-integration/drone/push Build is passing Details
2024-01-13 23:39:58 -08:00
cosmonaut 20636ec951 Fix potential sync hazards (#49)
We now do certain image layout transitions in the render pass instead of a barrier in EndRenderPass.

There is also an additional barrier on buffer uploads to prevent write-after-write hazard. It's a kludge on the fact that we're only tracking the most recent resource access.

Reviewed-on: #49
2024-01-12 18:10:11 -08:00
cosmonaut 7297eba889 Uniform buffers are now slices of dedicated allocs (#48)
continuous-integration/drone/push Build is passing Details
This should fix an issue where draw calls could flicker if a defrag was in progress and a uniform buffer was being used.

Uniform buffer "pools" are now just a single dedicated VulkanBuffer, and the uniform buffer objects are offsets into that buffer.

Reviewed-on: #48
2024-01-13 01:41:12 +00:00
cosmonaut fa92e9e08a change dummy uniform buffer size to 1
continuous-integration/drone/push Build is passing Details
2023-12-08 12:49:46 -08:00
cosmonaut 483c07f3a8 Vulkan: fix dummy UBOs becoming invalid after defrag
continuous-integration/drone/push Build is passing Details
2023-12-05 12:22:40 -08:00
cosmonaut f01d5d817a Vulkan: fix some missed cleanup in DestroyDevice
continuous-integration/drone/push Build is passing Details
2023-12-04 17:28:25 -08:00
cosmonaut 1b3e954da8 change render pass barriers to read-write
continuous-integration/drone/push Build is passing Details
2023-11-09 11:00:19 -08:00
Evan Hemsley 0989e45f88 MoltenVK support
continuous-integration/drone/push Build is passing Details
2023-10-14 22:14:00 -07:00
cosmonaut 54a8ff122c Fix uniform buffers not tracking correctly 2023-10-12 11:11:27 -07:00
TheSpydog a15e26b124 Update Driver Template + Window Crash Fix (#46)
continuous-integration/drone/push Build is passing Details
Some minor stuff that's cropped up from the D3D11 work so far. This PR updates the Driver_Template with the latest API, and also fixes a crash in the Vulkan driver -- if you acquired a swapchain texture from a window that had been destroyed, there was no null check before de-referencing the WindowData.

Co-authored-by: Caleb Cornett <caleb.cornett@outlook.com>
Reviewed-on: #46
Co-authored-by: TheSpydog <thespydog@noreply.example.org>
Co-committed-by: TheSpydog <thespydog@noreply.example.org>
2023-09-30 17:50:48 +00:00
cosmonaut a3949528eb Fence API (#45)
continuous-integration/drone/push Build is passing Details
Reviewed-on: #45
2023-09-19 06:11:20 +00:00
cosmonaut c978df6275 remove unused variables
continuous-integration/drone/push Build is passing Details
2023-07-31 16:12:20 -07:00
cosmonaut de42163673 rework Vulkan device selection and initialization
continuous-integration/drone/push Build is passing Details
2023-07-31 16:06:47 -07:00
cosmonaut c3a5d9f417 enable independentBlend feature
continuous-integration/drone/push Build is passing Details
2023-06-16 15:00:47 -07:00
cosmonaut 5a2b07097a SetTextureDataYUV rework (#44)
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
Reviewed-on: #44
2023-06-07 20:59:55 +00:00
cosmonaut 1f9f7e0939 Memory Management Rewrite (#41)
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
continuous-integration/drone Build is passing Details
Various changes to reduce and optimize memory usage.

- Defragmenter
- Allocate 4 16MB transfer buffers for pool
- If transfer is larger than 16MB, create temporary transfer buffer
- Fixed some issues with CopyTextureToTexture

Reviewed-on: #41
2023-05-18 23:43:11 +00:00
cosmonaut 0f29bf03e9 Remove qoi.h
continuous-integration/drone/push Build is passing Details
2023-04-18 23:43:23 -07:00
cosmonaut 74909b49c3 Redesign image API to be format agnostic (#40)
continuous-integration/drone/push Build is passing Details
2023-04-19 06:42:44 +00:00
cosmonaut 3fc743ce28 Add support for QOI format and reading images from memory (#39)
continuous-integration/drone/push Build is passing Details
Reviewed-on: #39
2023-04-04 00:14:20 +00:00
cosmonaut 153c3c3c60 add missing texture formats to size function
continuous-integration/drone/push Build is passing Details
2023-02-27 09:54:26 -08:00
cosmonaut decddae384 Fix MultipleThreads error on command buffer reset
continuous-integration/drone/push Build is passing Details
2023-02-14 12:26:39 -08:00
TheSpydog 1f2aaeed9f add msaa support for depth textures (#38)
continuous-integration/drone/push Build is passing Details
Depth textures handle MSAA differently than color textures do, because there's no need for a resolve texture. This means the root VulkanTexture can have the sample count instead of needing an additional `msaaTex`.

This changeset also fixes a bug where the depth buffer wasn't getting cleared if there were MSAA color attachments.

Co-authored-by: Caleb Cornett <caleb.cornett@outlook.com>
Reviewed-on: #38
Co-authored-by: TheSpydog <thespydog@noreply.example.org>
Co-committed-by: TheSpydog <thespydog@noreply.example.org>
2023-01-31 20:30:05 +00:00