Commit Graph

286 Commits (740fb56aa14cbb9959a042972b9989816e96651d)

Author SHA1 Message Date
cosmonaut 163adfb5cd add BC7 support
continuous-integration/drone/push Build is passing Details
2022-05-11 21:16:24 -07:00
cosmonaut f0b970496e vertex format changes
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
2022-03-17 14:41:16 -07:00
cosmonaut 4bba0f99f9 remove lineWidth from RasterizerState
continuous-integration/drone/push Build is passing Details
2022-03-14 10:43:01 -07:00
cosmonaut 3820d458fe remove Clear and add pWidth and pHeight to AcquireSwapchainTexture
continuous-integration/drone/push Build is passing Details
2022-03-10 10:21:49 -08:00
cosmonaut 7a0b0f5709 suboptimal on recreate is still technically fine
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
2022-03-08 11:21:36 -08:00
cosmonaut ce34f4a435 fix deadlock on multi window swapchain resize
continuous-integration/drone/push Build is passing Details
2022-03-08 10:47:07 -08:00
TheSpydog eb5617f40e Update template for latest ABI breaks (#16)
continuous-integration/drone/push Build is passing Details
Co-authored-by: Caleb Cornett <caleb.cornett@outlook.com>
Co-authored-by: cosmonaut <evan@moonside.games>
Reviewed-on: #16
Co-authored-by: TheSpydog <thespydog@noreply.example.org>
Co-committed-by: TheSpydog <thespydog@noreply.example.org>
2022-03-07 08:05:58 +00:00
cosmonaut 0380a96817 Swapchain resize fixes (#18)
continuous-integration/drone/push Build is passing Details
Fixes various errors related to the swapchain being recreated.

Additionally, `BeginRenderPass` now allows a NULL `renderArea` parameter. If NULL, Refresh will select a sensible default render area.
Co-authored-by: cosmonaut <evan@moonside.games>
Co-committed-by: cosmonaut <evan@moonside.games>
2022-03-07 06:31:39 +00:00
cosmonaut 715ca591f6 fix compute pipeline create bug
continuous-integration/drone/push Build is passing Details
2022-03-04 13:37:45 -08:00
cosmonaut 2731d47419 rename viewport and scissor set functions
continuous-integration/drone/push Build is passing Details
2022-03-04 12:47:36 -08:00
cosmonaut 0fbf1b2546 fix erroneous stack free
continuous-integration/drone/push Build is passing Details
2022-03-04 12:36:02 -08:00
cosmonaut f6b96fe34b viewport and scissor ABI break
continuous-integration/drone/push Build is failing Details
2022-03-04 12:30:33 -08:00
cosmonaut 6302603b08 add some missing frees
continuous-integration/drone/push Build is passing Details
2022-03-03 17:30:26 -08:00
cosmonaut 5fe4c8dbf3 remove command buffer from QueueDestroy calls
continuous-integration/drone/push Build is passing Details
2022-03-03 17:07:07 -08:00
cosmonaut 057a48e96f separate shader types
continuous-integration/drone/push Build is passing Details
2022-03-02 11:22:52 -08:00
cosmonaut 61e83cfba8 D3D compatibility ABI break
continuous-integration/drone/push Build is passing Details
2022-03-02 11:10:28 -08:00
cosmonaut e4ea104a88 remove swapchain log spam
continuous-integration/drone/push Build is passing Details
2022-03-02 10:27:03 -08:00
cosmonaut 83c2372499 only mark swapchain as needing recreate if it exists
continuous-integration/drone/push Build is passing Details
2022-03-02 10:02:07 -08:00
cosmonaut cb99489b3c Rework Presentation Flow (#15)
continuous-integration/drone/push Build is passing Details
Removes `Refresh_RenderTarget`, `Refresh_CreateRenderTarget` and `Refresh_QueueDestroyRenderTarget`. Render targets are now managed by the implementation.

Adds `REFRESH_TEXTUREFORMAT_B8G8R8A8`.

Adds `Refresh_AcquireSwapchainTexture`. Returns a swapchain texture for the requested window.

Removes `Refresh_QueuePresent`. It is now assumed that the texture returned by `Refresh_AcquireSwapchainTexture` will be presented. This texture can be manipulated like any other texture.

Adds `Refresh_GetSwapchainFormat`. Returns the swapchain format for the requested window.

Reviewed-on: #15
Co-authored-by: cosmonaut <evan@moonside.games>
Co-committed-by: cosmonaut <evan@moonside.games>
2022-03-02 06:33:57 +00:00
cosmonaut d22bed8b76 transition entire images + rework swapchain image management
continuous-integration/drone/push Build is passing Details
2022-02-28 12:02:39 -08:00
cosmonaut 436b990d45 Fix intro message formatting
continuous-integration/drone/push Build is passing Details
2022-02-25 23:13:17 -08:00
cosmonaut a26d3e3689 move color blend state to AttachmentInfo
continuous-integration/drone/push Build is passing Details
2022-02-25 17:37:42 -08:00
cosmonaut a38a9d461d fix right alignment spacing
continuous-integration/drone/push Build is passing Details
2022-02-25 13:51:29 -08:00
cosmonaut 517399f5d9 convert all spaces to tabs
continuous-integration/drone/push Build is passing Details
2022-02-25 13:42:11 -08:00
cosmonaut 5187093ddc reset command buffers on the thread they were spawned
continuous-integration/drone/push Build is passing Details
2022-02-24 22:06:00 -08:00
cosmonaut 336468cc31 fix some invalid accesses
continuous-integration/drone/push Build is passing Details
2022-02-24 21:29:52 -08:00
cosmonaut a531fb8593 Render Pass API Streamlining (#14)
continuous-integration/drone/push Build is passing Details
Removes `Refresh_RenderPass` and `Refresh_Framebuffer` objects.

`Refresh_BeginRenderPass` now takes a set of `Refresh_ColorAttachmentInfo` structs and an optional `Refresh_DepthStencilAttachmentInfo` struct that describe the render pass. The render pass and framebuffer objects are now managed by the implementation instead of the application.

Accordingly, `Refresh_GraphicsPipelineCreateInfo` now takes a `Refresh_GraphicsPipelineAttachmentInfo` struct that describes render passes that may be used with the pipeline. It is an error to bind a pipeline during an incompatible render pass.

Reviewed-on: #14
Co-authored-by: cosmonaut <evan@moonside.games>
Co-committed-by: cosmonaut <evan@moonside.games>
2022-02-24 22:01:37 +00:00
cosmonaut a3aea0f796 Reset fence as late as possible
continuous-integration/drone/push Build is passing Details
2022-02-22 21:54:32 -08:00
cosmonaut 0319c26f6a Submission rewrite (#13)
continuous-integration/drone/push Build is passing Details
Rework submission flow to reduce waiting and improve the resource cleanup process.

This patch also gets rid of descriptor set caching.
Co-authored-by: cosmonaut <evan@moonside.games>
Co-committed-by: cosmonaut <evan@moonside.games>
2022-02-23 00:49:45 +00:00
TheSpydog 1d72fdb995 Added a Refresh driver template file (#12)
continuous-integration/drone/push Build is passing Details
This allows us to avoid monotonous boilerplate when bringing up new backends.
Co-authored-by: TheSpydog <thespydog@noreply.example.org>
Co-committed-by: TheSpydog <thespydog@noreply.example.org>
2022-02-22 03:28:31 +00:00
cosmonaut b54b7cc42d fix separate swapchain synchronization
continuous-integration/drone/push Build is passing Details
2022-02-09 21:42:19 -08:00
cosmonaut 829356d927 Revise swapchain management + remove external
continuous-integration/drone/push Build is passing Details
2022-02-08 17:16:11 -08:00
cosmonaut 42f5f84524 Transfer Buffer Pool (#7)
continuous-integration/drone/push Build is passing Details
Reviewed-on: #7
Co-authored-by: cosmonaut <evan@moonside.games>
Co-committed-by: cosmonaut <evan@moonside.games>
2022-01-20 22:56:28 +00:00
cosmonaut c5a689c6d6 fix bad realloc
continuous-integration/drone/push Build is passing Details
2022-01-17 21:28:25 -08:00
cosmonaut 80fdf09d86 fix some fence edge cases
continuous-integration/drone/push Build is passing Details
2022-01-17 21:09:27 -08:00
cosmonaut e59e3e6b02 insert missing memory barrier after buffer copy
continuous-integration/drone/push Build is passing Details
2022-01-17 19:57:45 -08:00
cosmonaut 49d7b1fabc fix transfer buffer offset not incrementing
continuous-integration/drone/push Build is passing Details
2022-01-17 18:32:45 -08:00
cosmonaut 34e4b4f576 SetBufferData rework (#6)
continuous-integration/drone/push Build is passing Details
Buffer uploads now require a command buffer, like textures do. Additionally it is now regarded as an error to upload data in the middle of a render pass.

Reviewed-on: #6
Co-authored-by: cosmonaut <evan@moonside.games>
Co-committed-by: cosmonaut <evan@moonside.games>
2022-01-13 23:08:08 +00:00
cosmonaut 0cd9a2e8e9 fix validation error on exit
continuous-integration/drone/push Build is passing Details
2022-01-13 12:03:44 -08:00
cosmonaut 0ffa045f78 fix UBO descriptor set not being resized 2022-01-13 12:03:32 -08:00
cosmonaut c17ec99c50 deadlock fixes
continuous-integration/drone/push Build is passing Details
2022-01-12 23:09:06 -08:00
cosmonaut 8e04b357db reset uniform buffer offset when acquiring
continuous-integration/drone/push Build is passing Details
2022-01-12 22:47:04 -08:00
cosmonaut 62789005dd fix for multi-submit
continuous-integration/drone/push Build is passing Details
2022-01-12 22:04:07 -08:00
cosmonaut 53c65fb5eb fix incorrect index
continuous-integration/drone/push Build is passing Details
2022-01-12 22:00:08 -08:00
cosmonaut 0e05ed6b34 Buffer and Submission Rework (#1)
continuous-integration/drone/push Build is passing Details
We used to have monolithic uniform buffers on the VulkanRenderer object, but this was inefficient in the case of threaded usage.

Now, we have a pool of uniform buffers. A uniform buffer is selected from the pool when a pipeline is bound. The uniform buffers are rotated upon presentation.

Now pushing uniforms is now a concern of the command buffer instead of the pipeline. The pipeline should just always have been a static object anyway.

Additionally, we now do extra buffer record-keeping so that buffer data can be updated after a bind/draw.

Fence submission has also been restructured so that submissions don't cause unnecessary blocks. Now we assign one fence per submission, and we don't wait for fences until it's time to present.

Reviewed-on: #1
Co-authored-by: cosmonaut <evan@moonside.games>
Co-committed-by: cosmonaut <evan@moonside.games>
2022-01-12 22:41:10 +00:00
David Weil c51b4e95d2 Fixed multiple command buffer submissions 2022-01-03 13:51:13 -08:00
cosmonaut c7666cd8fc fix use after free 2022-01-03 10:36:47 -08:00
cosmonaut ca07286e29 change texture transfer to be per-CB 2022-01-02 14:35:57 -08:00
cosmonaut 78c5d54bf1 revise SetTextureData to take a command buffer
continuous-integration/drone/push Build is passing Details
2021-11-14 20:36:26 -08:00
cosmonaut ab941a68df fix debug mode flag not set before creating instance
continuous-integration/drone/push Build is passing Details
2021-11-08 14:25:18 -08:00
cosmonaut dd1ba55312 fix YUV upload 2021-02-27 13:03:30 -08:00
cosmonaut b6a09517c2 change clear color type
continuous-integration/drone/push Build is passing Details
2021-02-09 22:51:49 -08:00
cosmonaut 17524fd30b fix depth attachment barriers
continuous-integration/drone/push Build is passing Details
2021-02-09 17:52:26 -08:00
cosmonaut 8f1cdf190f change shader uniform push to take pipelines instead of command buffers
continuous-integration/drone/push Build is passing Details
2021-02-05 19:59:29 -08:00
cosmonaut 7f3e89315e uniform API update
continuous-integration/drone/push Build is passing Details
2021-02-02 16:37:01 -08:00
cosmonaut 4699c158f3 calculate texture length internally + fix rename
continuous-integration/drone/push Build is passing Details
2021-01-31 21:17:27 -08:00
cosmonaut 76c845cbb4 rename PushShaderParams to PushShaderUniforms
continuous-integration/drone/push Build is passing Details
2021-01-31 19:37:16 -08:00
cosmonaut 254d209a48 fix issue where texture staging buffer would be too small to contain incoming data
continuous-integration/drone/push Build is passing Details
2021-01-31 18:01:21 -08:00
cosmonaut a60725fecc fix bad malloc size
continuous-integration/drone/push Build is passing Details
2021-01-31 17:16:32 -08:00
cosmonaut d99bd756f4 remove extra region merge checks
continuous-integration/drone/push Build is passing Details
2021-01-31 16:29:38 -08:00
cosmonaut 952cf974b4 fix empty compute image descriptor set creation
continuous-integration/drone/push Build is passing Details
2021-01-31 14:30:16 -08:00
cosmonaut 52d06f9f6c merge free regions
continuous-integration/drone/push Build is passing Details
2021-01-29 16:03:00 -08:00
cosmonaut b2199fcaae improve device enumeration + fix host memory allocation
continuous-integration/drone/push Build is passing Details
2021-01-29 15:57:58 -08:00
cosmonaut 978d1e9451 cpu texture alloc tweak
continuous-integration/drone/push Build is passing Details
2021-01-28 22:05:44 -08:00
cosmonaut 7bbb15d8a5 fix depth RTs
continuous-integration/drone/push Build is passing Details
2021-01-28 21:48:50 -08:00
cosmonaut b854a822d6 fix some depth issues
continuous-integration/drone/push Build is passing Details
2021-01-28 21:37:11 -08:00
cosmonaut 6457967470 texture alloc fallback to host memory
continuous-integration/drone/push Build is passing Details
2021-01-27 12:51:36 -08:00
cosmonaut 68d9a74ff4 change renderArea to a pointer
continuous-integration/drone/push Build is passing Details
2021-01-26 20:27:42 -08:00
cosmonaut 316e662f44 remove distinction between color target and depth target
continuous-integration/drone/push Build is passing Details
2021-01-26 18:57:46 -08:00
cosmonaut fe03f1739a change Clear definition to make more sense
continuous-integration/drone/push Build is passing Details
2021-01-22 14:16:02 -08:00
cosmonaut d9700707d0 fix index buffer binding
continuous-integration/drone/push Build is passing Details
2021-01-21 14:03:36 -08:00
cosmonaut 41ea091749 fix hang when staging buffer flushes
continuous-integration/drone/push Build is passing Details
2021-01-21 12:34:50 -08:00
cosmonaut 6a1c2aa9bf fix transfer flush submission
continuous-integration/drone/push Build is passing Details
2021-01-20 17:16:43 -08:00
cosmonaut 56f4c3c2c4 texture creation uses one function + Refresh_TextureCreateInfo 2021-01-14 01:52:45 -08:00
cosmonaut 79bc36d99d replace topologyState with primitiveType 2021-01-13 21:06:20 -08:00
cosmonaut b25daa5198 remove unused parameters from draw calls 2021-01-13 21:04:53 -08:00
cosmonaut bf91de783f Vulkan: persisent map buffers 2021-01-13 18:02:45 -08:00
thatcosmonaut b12b785dbe
External Interop (#14) 2021-01-13 17:37:54 -08:00
cosmonaut 4b6f17054c rename AddDispose to QueueDestroy 2021-01-05 17:02:36 -08:00
cosmonaut d3d9c9ad55 rename Set_Samplers to Bind_Samplers 2021-01-05 17:00:06 -08:00
cosmonaut b19fab415d misc API tweaks 2021-01-05 15:53:16 -08:00
cosmonaut 4ca101099d uncapitalize REFRESH in API calls 2021-01-05 15:05:16 -08:00
thatcosmonaut 2dbfab6b98
DroneCI (#12) 2021-01-04 23:31:56 -08:00
cosmonaut 5a92fdf984 move count param on REFRESH_Submit 2021-01-03 14:57:46 -08:00
cosmonaut 788c63f3ac rename SURFACEFORMAT to COLORFORMAT 2021-01-03 14:53:12 -08:00
thatcosmonaut b4dee16f80
Texture API Refactor (#9) 2021-01-03 14:37:02 -08:00
cosmonaut 3066fce16b few more mutex fixes 2021-01-03 14:00:43 -08:00
cosmonaut 62d962cf23 staging buffer lock 2021-01-03 14:00:43 -08:00
cosmonaut e91a83f357 memory thread safety 2021-01-03 14:00:43 -08:00
cosmonaut e82bce10dc texture copy API 2021-01-03 14:00:43 -08:00
cosmonaut 087a60fa52 add wait API call 2021-01-03 14:00:43 -08:00
cosmonaut 540c0985b7 proper texture staging + fix buffer dispose api 2021-01-03 14:00:43 -08:00
cosmonaut 10d326b201 revert exclusive transfer queue 2021-01-03 14:00:43 -08:00
cosmonaut dc2c3ef111 transfer fixes 2021-01-03 14:00:43 -08:00
cosmonaut 47c951ec14 new command pool structure 2021-01-03 14:00:43 -08:00
cosmonaut f8c99c4e18 make gets and sets async 2021-01-03 14:00:43 -08:00
cosmonaut e0ff380989 implement transfer queue 2021-01-03 14:00:43 -08:00
cosmonaut c818e332e7 started exposing command buffers 2021-01-03 14:00:43 -08:00
cosmonaut 14c75e058d compute pipeline cleanup 2020-12-30 23:07:59 -08:00
cosmonaut da52bd68f0 fix texture set data sync 2020-12-30 23:07:59 -08:00
cosmonaut bc3c52162b compute barriers 2020-12-30 23:07:59 -08:00
cosmonaut 08c4f8a24f some cleanup 2020-12-30 23:07:59 -08:00
cosmonaut 5b3fa07790 more compute implementation 2020-12-30 23:07:59 -08:00
cosmonaut e832b9cfbf compute functions 2020-12-30 23:07:59 -08:00
cosmonaut c6418cfdf3 clean up descriptor set layout 2020-12-30 23:07:59 -08:00
cosmonaut 5bddb9faab add compute related functions to API 2020-12-30 23:07:59 -08:00
cosmonaut 602e669970 buffer descriptor set cache 2020-12-30 23:07:59 -08:00
cosmonaut 223d053274 generalized image descriptor set cache 2020-12-30 23:07:59 -08:00
cosmonaut 234048d366 unify descriptor set layout cacheing 2020-12-30 23:07:59 -08:00
cosmonaut dc92a1e274 started implementing compute structure 2020-12-30 23:07:59 -08:00
cosmonaut d6cd3715cb implement texture getters 2020-12-28 23:41:59 -08:00
cosmonaut cea9b853a4 implement Clear 2020-12-28 22:19:46 -08:00
cosmonaut ee91cca9f6 add new barrier for any-shader sampling 2020-12-28 21:43:14 -08:00
cosmonaut fd01d6c033 name tweak + remove d24s8 2020-12-28 20:09:31 -08:00
cosmonaut 031f36f450 dispose renderpass 2020-12-28 19:44:34 -08:00
cosmonaut 2548833525 update API to allow batchable shader params 2020-12-28 19:32:49 -08:00
cosmonaut da9b255dec dispose framebuffer 2020-12-28 17:35:18 -08:00
cosmonaut aa9b27aecf dispose sampler 2020-12-28 16:56:49 -08:00
cosmonaut 6bfc44ca98 more disposal 2020-12-28 16:42:51 -08:00
cosmonaut e3f07a9f5a implementing some disposals 2020-12-28 16:28:14 -08:00
cosmonaut 9cecc63991 texture dispose 2020-12-28 15:11:05 -08:00
cosmonaut 5a38907294 implement DestroyDevice 2020-12-28 14:57:14 -08:00
cosmonaut 6367ccdac0 sync point on SetTextureData 2020-12-28 14:29:29 -08:00
cosmonaut 0a7eb1fb2e dummy uniform buffers 2020-12-28 14:07:13 -08:00
cosmonaut a92a03a69a texture usage for auto layout transition 2020-12-28 13:40:26 -08:00
cosmonaut 941cce595c add texture layout transition to API 2020-12-28 12:15:17 -08:00
cosmonaut ce0eea711b SetSamplers no longer takes pipeline 2020-12-27 23:13:49 -08:00
cosmonaut 6e59750ff2 image load and save 2020-12-27 22:45:12 -08:00
cosmonaut 39ec13501a fix null reference 2020-12-27 15:38:58 -08:00
cosmonaut 2a4811315b deactivate unused descriptor sets 2020-12-27 15:34:15 -08:00
cosmonaut 3780772bdd descriptor set cacheing system 2020-12-27 15:20:59 -08:00
cosmonaut d23b2a6a75 cacheing descriptor set layouts and pipeline layouts 2020-12-27 13:26:55 -08:00
cosmonaut 1b22664756 whoops 2020-12-23 13:49:53 -08:00
cosmonaut 838e840a70 fix vert UBO size check 2020-12-23 13:14:36 -08:00
cosmonaut ae44d3ef23 shader uniforms 2020-12-23 13:11:09 -08:00
cosmonaut d2d2dee5f4 fix sub buffer index oversight 2020-12-22 23:46:37 -08:00
cosmonaut 25314dad57 layout transition on BeginRenderPass 2020-12-22 23:17:09 -08:00
cosmonaut 89f8ef1e9e draw call API revision 2020-12-22 22:56:26 -08:00
cosmonaut a174573b02 proper sub buffer index system 2020-12-22 22:05:01 -08:00
cosmonaut 87920c0048 hack to fix sub buffer index issue 2020-12-22 21:53:39 -08:00
cosmonaut 14993a4f22 handle case where shader does not take samplers 2020-12-22 20:50:32 -08:00
cosmonaut a586040123 misc fixes 2020-12-22 20:22:17 -08:00
cosmonaut a795e1f825 rename to QueuePresent + make textureslice input a pointer 2020-12-21 18:54:36 -08:00
cosmonaut 8752ed4391 misc fixes 2020-12-21 18:34:57 -08:00
cosmonaut bab86149c9 some init fixes 2020-12-21 17:59:08 -08:00
cosmonaut 9fa0e54e67 add PresentationParameters 2020-12-21 16:18:21 -08:00
cosmonaut 7de212c322 rename Gen_ functions to Create_ 2020-12-21 15:50:12 -08:00
cosmonaut 06b805cf93 presentation loop 2020-12-21 15:44:43 -08:00
cosmonaut 6827eea6d3 push vertex param functions 2020-12-21 13:02:07 -08:00
cosmonaut feb4b5e16b vertex and index buffers 2020-12-21 12:37:54 -08:00