Commit Graph

338 Commits (bf4b6409379700415367490f988d8ccde3d02d0d)

Author SHA1 Message Date
Caleb Cornett bf4b640937 Fix texture conversion array
continuous-integration/drone/pr Build is failing Details
2023-10-26 23:03:05 -05:00
Caleb Cornett 01aff2e5f1 Fix command buffer memory leak
continuous-integration/drone/pr Build is failing Details
2023-10-26 21:39:15 -05:00
Caleb Cornett 3966614681 CreateTexture, SetTextureData, BindIndexBuffer, BindFragmentSamplers, QueueDestroyTexture, DrawIndexedPrimitives, DrawInstancedPrimitives
continuous-integration/drone/pr Build is failing Details
2023-10-26 21:25:03 -05:00
Caleb Cornett 21c5ded803 Fix redundant error code printing
continuous-integration/drone/pr Build is failing Details
2023-10-26 20:37:27 -05:00
Caleb Cornett 5ba865489b QueueDestroySampler
continuous-integration/drone/pr Build is failing Details
2023-10-12 22:12:55 -05:00
Caleb Cornett 595c15a087 Add a border color conversion function
continuous-integration/drone/pr Build is failing Details
2023-10-12 22:11:55 -05:00
Caleb Cornett 50730bd52d CreateSampler
continuous-integration/drone/pr Build is failing Details
2023-10-12 22:07:46 -05:00
Caleb Cornett e3748391fe CreateBuffer, QueueDestroyBuffer, SetBufferData, BindVertexBuffers
continuous-integration/drone/pr Build is failing Details
2023-10-12 21:31:04 -05:00
Caleb Cornett 5c6d32e21a Initial work on DestroyDevice 2023-10-12 08:42:32 -05:00
Caleb Cornett 0555023100 Implement SetViewport and SetScissor 2023-10-12 08:18:53 -05:00
Caleb Cornett 3c22699dbb Style cleanups + added FIXME note for shader compilation 2023-10-12 08:18:39 -05:00
Caleb Cornett 509bd278c7 shaderc now flips Y values in the vertex shader 2023-10-10 21:51:34 -05:00
Caleb Cornett e17f86724a DrawPrimitives, BindGraphicsPipeline, misc cleanup 2023-10-10 21:45:32 -05:00
Caleb Cornett c327c3547a Implement CreateShaderModule 2023-10-10 21:32:12 -05:00
Caleb Cornett e7b2542bc0 Pipeline creation copied over from old work + shaderc update 2023-10-10 21:27:36 -05:00
Caleb Cornett e48941eb48 Fix for command pool crash, fix for hanging on Wait 2023-10-08 16:16:11 -05:00
Caleb Cornett 4fecc829bf Reworked Wait and Submit logic to use D3D11 Query objects as fences 2023-10-08 16:05:33 -05:00
Caleb Cornett ff41afb04a Stub out D3D11_Wait, fix crash when unclaiming windows, fix backend order 2023-10-08 15:14:43 -05:00
Caleb Cornett cb467c7b1a UnclaimWindow, swapchain destruction, fixed template signature 2023-10-08 15:14:43 -05:00
Caleb Cornett d5a3438547 Implemented BeginRenderPass and Submit, ClearScreen works now! 2023-10-08 15:14:43 -05:00
Caleb Cornett 287d3a7a6e More swapchain setup 2023-10-08 15:14:43 -05:00
Caleb Cornett 433c70eb8c Apply swapchainDesc fix from FNA3D, add cdefines.h to CMakeLists 2023-10-08 15:14:43 -05:00
Caleb Cornett 8c98889f46 Implemented AcquireCommandBuffer (from old D3D11 work) 2023-10-08 15:14:43 -05:00
Caleb Cornett 0e5da8a2ea Implement ClaimWindow, mostly copied from Vulkan and FNA3D D3D11 2023-10-08 15:14:43 -05:00
Caleb Cornett 8b999aca93 Remove old stuff, flesh out PrepareDriver 2023-10-08 15:14:43 -05:00
Caleb Cornett 2498e2d7c4 Groundwork for D3D11. Yoinked most of this from the prior work, but updated the ABI 2023-10-08 15:13:08 -05: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 172fa83417 1.15.0
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
2023-09-18 23:12:01 -07: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 f55968814f 1.14.1
continuous-integration/drone/tag Build is passing Details
continuous-integration/drone/push Build is passing Details
2023-07-31 16:14:53 -07: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 4f412b5c15 fix refreshc breaking on file paths with spaces
continuous-integration/drone/push Build is passing Details
2023-07-03 15:35:11 -07:00
cosmonaut c3a5d9f417 enable independentBlend feature
continuous-integration/drone/push Build is passing Details
2023-06-16 15:00:47 -07:00
cosmonaut 9631dc9f83 1.14.0
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
2023-06-07 14:13:21 -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 4df0459b04 1.13.0
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
2023-04-18 23:43:59 -07: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 3f5fe1ff67 1.12.0
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
2023-04-03 17:15:14 -07: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
cosmonaut 2d66ec775b 1.11.0
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
2023-02-07 12:26:46 -08:00
cosmonaut 8be8ce1062 shader output name includes shader type
continuous-integration/drone/push Build is passing Details
2023-02-03 15:06:14 -08:00
cosmonaut 8eebd9c744 refreshc publish AOT 2023-02-03 15:05:53 -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
TheSpydog 6439516835 ABI break: Textures now have a sample count, not render passes (#37)
continuous-integration/drone/push Build is passing Details
This change makes Refresh behave more like FNA and other rendering APIs, where user-side textures have a sample count instead of generating MSAA RTs on the fly.

This should theoretically reduce memory consumption since subresource views no longer generate their own MSAA textures. Instead, each texture with a sample count > 1 now has a reference to an MSAA texture baked into the root texture itself, so views can just reference that.

This also simplifies VulkanRenderTarget significantly, to the point where it's just a wrapper around VkImageView. We could probably remove the abstraction entirely at this point.

Since VkRenderPass objects still require knowing the sample count, we can use the first bound texture's sample count. This means users only have to specify sample count in two places -- the graphics pipeline, and the texture. Easy enough.

I also noticed and fixed a bug with clear values with MSAA levels > 1.

Co-authored-by: Caleb Cornett <caleb.cornett@outlook.com>
Reviewed-on: #37
Co-authored-by: TheSpydog <thespydog@noreply.example.org>
Co-committed-by: TheSpydog <thespydog@noreply.example.org>
2023-01-30 18:22:16 +00:00
TheSpydog 89ba9c52ff vulkan: Fix framebuffer creation with mip levels (#36)
continuous-integration/drone/push Build is passing Details
Before this change, framebuffers were created based on the attachments' full dimensions, instead of the dimensions of the requested mip level. This fixes validation errors in the RenderTextureMipmaps test program.

Co-authored-by: Caleb Cornett <caleb.cornett@outlook.com>
Reviewed-on: #36
Co-authored-by: TheSpydog <thespydog@noreply.example.org>
Co-committed-by: TheSpydog <thespydog@noreply.example.org>
2023-01-24 00:15:02 +00:00