cosmonaut
a531fb8593
Render Pass API Streamlining ( #14 )
...
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: MoonsideGames/Refresh#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
2022-02-22 21:54:32 -08:00
cosmonaut
0319c26f6a
Submission rewrite ( #13 )
...
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 )
...
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
2022-02-09 21:42:19 -08:00
cosmonaut
829356d927
Revise swapchain management + remove external
2022-02-08 17:16:11 -08:00
cosmonaut
42f5f84524
Transfer Buffer Pool ( #7 )
...
Reviewed-on: MoonsideGames/Refresh#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
2022-01-17 21:28:25 -08:00
cosmonaut
80fdf09d86
fix some fence edge cases
2022-01-17 21:09:27 -08:00
cosmonaut
e59e3e6b02
insert missing memory barrier after buffer copy
2022-01-17 19:57:45 -08:00
cosmonaut
49d7b1fabc
fix transfer buffer offset not incrementing
2022-01-17 18:32:45 -08:00
cosmonaut
34e4b4f576
SetBufferData rework ( #6 )
...
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: MoonsideGames/Refresh#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
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
2022-01-12 23:09:06 -08:00
cosmonaut
8e04b357db
reset uniform buffer offset when acquiring
2022-01-12 22:47:04 -08:00
cosmonaut
62789005dd
fix for multi-submit
2022-01-12 22:04:07 -08:00
cosmonaut
53c65fb5eb
fix incorrect index
2022-01-12 22:00:08 -08:00
cosmonaut
0e05ed6b34
Buffer and Submission Rework ( #1 )
...
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: MoonsideGames/Refresh#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
2021-11-14 20:36:26 -08:00
cosmonaut
ab941a68df
fix debug mode flag not set before creating instance
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
2021-02-09 22:51:49 -08:00
cosmonaut
17524fd30b
fix depth attachment barriers
2021-02-09 17:52:26 -08:00
cosmonaut
8f1cdf190f
change shader uniform push to take pipelines instead of command buffers
2021-02-05 19:59:29 -08:00
cosmonaut
7f3e89315e
uniform API update
2021-02-02 16:37:01 -08:00
cosmonaut
4699c158f3
calculate texture length internally + fix rename
2021-01-31 21:17:27 -08:00
cosmonaut
76c845cbb4
rename PushShaderParams to PushShaderUniforms
2021-01-31 19:37:16 -08:00
cosmonaut
254d209a48
fix issue where texture staging buffer would be too small to contain incoming data
2021-01-31 18:01:21 -08:00
cosmonaut
a60725fecc
fix bad malloc size
2021-01-31 17:16:32 -08:00
cosmonaut
d99bd756f4
remove extra region merge checks
2021-01-31 16:29:38 -08:00
cosmonaut
952cf974b4
fix empty compute image descriptor set creation
2021-01-31 14:30:16 -08:00
cosmonaut
52d06f9f6c
merge free regions
2021-01-29 16:03:00 -08:00
cosmonaut
b2199fcaae
improve device enumeration + fix host memory allocation
2021-01-29 15:57:58 -08:00
cosmonaut
978d1e9451
cpu texture alloc tweak
2021-01-28 22:05:44 -08:00
cosmonaut
7bbb15d8a5
fix depth RTs
2021-01-28 21:48:50 -08:00
cosmonaut
b854a822d6
fix some depth issues
2021-01-28 21:37:11 -08:00
cosmonaut
6457967470
texture alloc fallback to host memory
2021-01-27 12:51:36 -08:00
cosmonaut
68d9a74ff4
change renderArea to a pointer
2021-01-26 20:27:42 -08:00
cosmonaut
316e662f44
remove distinction between color target and depth target
2021-01-26 18:57:46 -08:00
cosmonaut
fe03f1739a
change Clear definition to make more sense
2021-01-22 14:16:02 -08:00
cosmonaut
d9700707d0
fix index buffer binding
2021-01-21 14:03:36 -08:00
cosmonaut
41ea091749
fix hang when staging buffer flushes
2021-01-21 12:34:50 -08:00
cosmonaut
6a1c2aa9bf
fix transfer flush submission
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
cosmonaut
778a8d89bd
splitting up push shader params by stages
2020-12-20 01:33:32 -08:00
cosmonaut
4233c7767e
draw functions
2020-12-20 01:29:15 -08:00
cosmonaut
6e7f6ef1ec
EndRenderPass
2020-12-20 00:05:53 -08:00
cosmonaut
2f06a8a13f
BeginRenderPass
2020-12-20 00:05:12 -08:00
cosmonaut
ffae2d8bfb
remove AddDisposeShaderParamBuffer
2020-12-19 23:41:03 -08:00
cosmonaut
7d2018e712
BindVertexBuffers and BindIndexBuffer
2020-12-19 23:31:55 -08:00
cosmonaut
47823c67ac
BindGraphicsPipeline
2020-12-19 23:17:55 -08:00
cosmonaut
bedc1f7196
set sampler functions
2020-12-18 21:35:21 -08:00
cosmonaut
d193327760
create descriptor pool on pipeline
2020-12-18 20:17:50 -08:00
cosmonaut
4202ad8e56
reintroduce sub buffers
2020-12-18 20:08:07 -08:00
cosmonaut
deb2d6f7a7
implement all texture data setters
2020-12-18 18:38:15 -08:00
cosmonaut
bd4bd74020
revising shader param API
2020-12-18 18:24:22 -08:00
cosmonaut
61bdec0357
GenVertexBuffer and GenIndexBuffer
2020-12-18 17:32:27 -08:00
cosmonaut
a153433cec
CreateShaderModule
2020-12-18 17:25:22 -08:00
cosmonaut
0b3bf3181b
SetTextureData2D
2020-12-18 17:03:26 -08:00
cosmonaut
faf536377f
add depth stencil target to createFramebuffer
2020-12-18 16:42:54 -08:00
cosmonaut
ba9447ae4c
render targets
2020-12-18 16:39:03 -08:00
cosmonaut
a6f13dff8d
implement texture creation
2020-12-18 14:35:33 -08:00
cosmonaut
5e5515fbe8
CreateFramebuffer
2020-12-18 12:58:03 -08:00
cosmonaut
4070636d91
CreateSampler
2020-12-17 17:48:26 -08:00
cosmonaut
501a9d61a2
fix some warnings and add vulkan headers
2020-12-17 16:39:25 -08:00
cosmonaut
91bea9e25a
remove unneeded layout info
2020-12-17 12:11:50 -08:00
cosmonaut
75093afddb
fix some doc comments
2020-12-17 11:44:34 -08:00
cosmonaut
09b776d172
implement CreateGraphicsPipeline
2020-12-17 11:40:49 -08:00
cosmonaut
b10b9bfafd
VULKAN_CreateRenderPass
2020-12-17 00:19:02 -08:00
cosmonaut
fd731ac648
add Present call to API
2020-12-16 20:19:11 -08:00
cosmonaut
67b0503935
fence, semaphore and command pool
2020-12-16 20:04:47 -08:00
cosmonaut
458bd6049d
swapchain creation
2020-12-16 19:50:31 -08:00
cosmonaut
36eb134c9f
instantiation madness
2020-12-16 19:28:02 -08:00
cosmonaut
ee6bcdc427
fix warnings on all but vulkan driver
2020-12-16 18:38:22 -08:00
cosmonaut
f8621562f2
remove FNA3D dependency
2020-12-16 18:12:20 -08:00
cosmonaut
16d70b2ad8
vulkan boilerplate
2020-12-16 17:23:49 -08:00
cosmonaut
dcef2e68c7
add boilerplate
2020-12-16 17:08:44 -08:00
cosmonaut
6f793a5a3c
started entry points
2020-12-16 16:38:09 -08:00
cosmonaut
c57842afb9
laying out the multi-driver skeleton
2020-12-16 16:27:14 -08:00
cosmonaut
715950f44a
initial commit
2020-12-15 15:00:46 -08:00