Commit graph

201 commits

Author SHA1 Message Date
chyyran ded8851e16 d3d11/12: fix sampler set creation 2023-02-21 17:08:24 -05:00
chyyran e2901b4a59 chore: Release 2023-02-19 15:38:43 -05:00
chyyran 85ea566575 chore: Release 2023-02-18 00:29:01 -05:00
chyyran b780ca2a90 chore: Release 2023-02-17 01:13:52 -05:00
chyyran af6f58981e vk: move internal frame count to common 2023-02-16 21:16:42 -05:00
chyyran a6b1e0a412 capi: use unwrap_unchecked when we're certain a value is not null. 2023-02-16 18:23:56 -05:00
chyyran 8ed244f6fa rt: clean up sampler sets 2023-02-16 18:19:38 -05:00
chyyran 912099f00a test: fix unsafe changes 2023-02-16 17:38:00 -05:00
chyyran 0adf3505ec rt: mark frame and create APIs unsafe
This doesn't cause an API break in the C API but we don't actually make an attempt to verify that it's safe to access any of the device contexts.
2023-02-16 17:33:47 -05:00
chyyran 7ebc3da94b chore: Release 2023-02-16 01:11:55 -05:00
chyyran 0eb9859cc4 build(docs.rs): try a default-feature based approach 2023-02-16 01:09:43 -05:00
chyyran 284d644f99 cache: make cache opt-in by default so docs.rs can build sqlite properly 2023-02-16 00:54:22 -05:00
chyyran f42328280a tests: split tests into their own crates 2023-02-16 00:39:36 -05:00
chyyran 7d6701aa4e chore: Release 2023-02-15 22:58:34 -05:00
chyyran 0000fdbdec chore: Release 2023-02-15 18:40:06 -05:00
chyyran 2ca6aecfe4 cache: clean up cache api 2023-02-15 18:08:47 -05:00
chyyran e7645a5592 rt: expose cache disable option in filter options 2023-02-15 18:08:47 -05:00
chyyran 604edfb78f cache: implement transparent shader object cache
supported objects:

- SPIR-V artifacts
- Validated DXIL artifacts
- DXBC artifacts
- OpenGL Program Binaries
- Vulkan Pipeline caches
- D3D12 CACHED_PIPELINE_STATE
2023-02-15 18:08:47 -05:00
chyyran 07fac4d1e9 rt: load luts with multiple threads 2023-02-14 02:56:06 -05:00
chyyran 893c58c53d chore: Release 2023-02-13 00:41:53 -05:00
chyyran f2357f9ab1 d3d12: add proper fallback for output textures that need mipmapping 2023-02-12 23:30:32 -05:00
chyyran d6bbdb43fd d3d12: no need to build hlsl if not needed 2023-02-12 22:49:23 -05:00
chyyran abadfb3ee1 d3d12: use dxc to compile mipmap shader
removes fxc dependency completely.
Also slim down windows-rs features where only needed for testing.
2023-02-12 13:03:31 -05:00
chyyran 0eac766685 capi: expose deferred API and make order consistent.
gotta get all these ABI breaks done before release.
2023-02-11 15:30:20 -05:00
chyyran fa6cd87c60 vk/11/12: allow gpu-deferred creation of filter chains 2023-02-11 02:44:07 -05:00
chyyran 3c15a3a523 rt: fix history framebuffer requirements and unify framebuffer initialization logic 2023-02-11 00:20:35 -05:00
chyyran 0cb6f6a346 d3d11: be agnostic about deferred contexts
This brings the D3D11 API more in line with the D3D12 and Vulkan runtimes. To get the old behaviour with immediate contexts, just pass a NULL context.
2023-02-10 18:08:13 -05:00
chyyran 512a4c0050 rt: make runtimes thread safe and document thread safety guarantees 2023-02-10 03:20:59 -05:00
chyyran 2b250db353 capi: make _opt* structs more forwards compatible
yay another abi break 🙃
hopefully for the last time
2023-02-09 23:44:39 -05:00
chyyran 121209da10 fmt: clean up warnings 2023-02-09 21:06:58 -05:00
chyyran 55e800b67e d3d12: fix mipmaps again 2023-02-09 19:44:01 -05:00
chyyran cc3e50611e chore: Release 2023-02-08 21:22:33 -05:00
chyyran 5e99ddf73c vk/d3d12: recompile pipelines on incompatible output format.
This also involves changes to the C API, since we're breaking API anyways
might as well unify some type names. No breakages for D3D11.
2023-02-08 21:21:40 -05:00
chyyran 771a0896d7 chore: Release 2023-02-08 18:55:46 -05:00
chyyran 5ebc248078 chore: Release 2023-02-08 18:49:11 -05:00
chyyran 9847e5e603 chore: Release 2023-02-08 18:47:36 -05:00
chyyran 07d9869f85 chore: Release 2023-02-08 18:44:40 -05:00
chyyran c02416314e preprocess: fix dev dependency 2023-02-08 18:44:30 -05:00
chyyran 85497e47c1 build: untangle spirv-to-dxil from non-d3d12 paths 2023-02-08 03:21:28 -05:00
chyyran ccc2539e2f chore: Release 2023-02-08 03:09:03 -05:00
chyyran 48a1b28665 presets: greatly improve path resolution logic and parsing of invalid constructs 2023-02-08 03:06:25 -05:00
chyyran 59e0b5da86 rt: unify render target logic 2023-02-07 23:14:39 -05:00
chyyran 06161b5aad rt: make scale framebuffers a lot nicer to use 2023-02-07 22:02:08 -05:00
chyyran 45dbdc6157 chore: Release 2023-02-07 20:05:12 -05:00
chyyran d9a97de131 rt: doc FilterPassMeta 2023-02-07 02:55:15 -05:00
chyyran d6e1f2ca16 chore: Release 2023-02-07 02:32:55 -05:00
chyyran 6d75dc5100 fmt: general format and clean up 2023-02-07 02:31:08 -05:00
chyyran c8a1d4d196 rt: abstract framebuffer scaling into common code 2023-02-07 02:12:47 -05:00
chyyran 3eae38f815 fmt: cargo fmt 2023-02-06 21:56:30 -05:00
chyyran 7ba2b26baa d3d12: optimize barriers 2023-02-06 21:56:24 -05:00
chyyran f14f918068 d3d12: use HV 2016 when compiling HLSL pipelines 2023-02-06 21:24:55 -05:00
chyyran cb4dc418cd chore: Release 2023-02-06 19:23:06 -05:00
chyyran 3ad67d9539 dep: upgrade to spirv-to-dxil 0.3 2023-02-06 19:22:53 -05:00
chyyran 8588021a6e chore: Release 2023-02-06 02:48:40 -05:00
chyyran 37cb3493ca chore: Release 2023-02-06 02:21:19 -05:00
chyyran 4dcbdadb4f capi: publish d3d12 2023-02-06 02:17:30 -05:00
chyyran 3cdf3aa105 doc(d3d12): clean up docs for d3d12 2023-02-06 01:25:06 -05:00
chyyran ec619ec5e2 d3d12: clean up API for d3d12 2023-02-06 01:05:19 -05:00
chyyran d32ad8e3b2 options: fix frame-direction docs 2023-02-06 00:26:27 -05:00
chyyran 3db89e5351 vk/11/12: bind VBO only once per frame to save on draw calls. 2023-02-06 00:23:37 -05:00
chyyran d4525ee23e dx12: render identity MVP in intermediate passes 2023-02-05 23:26:14 -05:00
chyyran 99954f011f dx12: fix mipmapping 2023-02-05 23:20:01 -05:00
chyyran 1fe4b47981 dx12: use versionedrootsignature 2023-02-05 22:31:34 -05:00
chyyran fd48d88fdd dx12: use persistently bound buffers 2023-02-05 22:24:58 -05:00
chyyran f077f86bad dx12: cleanup and micro-opts 2023-02-05 21:49:55 -05:00
chyyran 621d1da3c2 dx12: reduce initializations of dxc 2023-02-05 21:17:16 -05:00
chyyran 227cae6405 fmt: clean up d3d12 2023-02-05 20:05:22 -05:00
chyyran 34b334fd7f d3d12: enable parallel shader compilation
Turns out the weird errors were because of mipmapping
2023-02-05 20:03:59 -05:00
chyyran a3589cc794 d3d12: make panic free 2023-02-05 19:58:51 -05:00
chyyran b81b2b1d25 fmt: run clippy 2023-02-05 18:34:30 -05:00
chyyran 0506733dad d3d12: implement mipmaps 2023-02-05 18:25:59 -05:00
chyyran 271788b9c6 d3d12: implement history 2023-02-05 18:03:38 -05:00
chyyran 6a1138f0dc d3d12: allow force hlsl 2023-02-05 17:30:55 -05:00
chyyran 2d2ed22e9a fmt: run cargo fmt 2023-02-05 16:19:22 -05:00
chyyran 7d8c137083 rt: abstract reusable bindingmeta ops 2023-02-05 16:19:22 -05:00
chyyran 66a4b1a648 doc: document d3d12 differences 2023-02-05 02:22:28 -05:00
chyyran 72c9548c7a d3d12: use hlsl as a fallback pipeline 2023-02-05 01:54:56 -05:00
chyyran f677666900 d3d12: initial implementation of spirv-to-dxil 2023-02-05 01:05:42 -05:00
chyyran e66c2a628f d3d12: run final pass 2023-02-01 18:09:34 -05:00
chyyran dada615a0a d3d12: use default mvp for intermediates for now 2023-02-01 02:08:50 -05:00
chyyran c29cc51ed5 d3d12: render to intermediate buffers 2023-02-01 02:08:50 -05:00
chyyran cbe087fa6c d3d12: fix texture resource loads 2023-02-01 02:08:50 -05:00
chyyran 03b4a7574e d3d12: filter chain pass 2023-02-01 02:08:50 -05:00
chyyran e1154ac52a d3d12: make hello_triangle copy fb 2023-02-01 02:08:50 -05:00
chyyran 10cd240868 d3d12: bind logic 2023-02-01 02:08:50 -05:00
chyyran 3506e1a3da d3d12: allocate work heaps for each pass 2023-02-01 02:08:50 -05:00
chyyran 624a749098 d3d12: allocate framebuffers 2023-02-01 02:08:50 -05:00
chyyran c28e5195c2 d3d12: texture infrastructure 2023-02-01 02:08:50 -05:00
chyyran 17203692f0 d3d12: make framebuffer 2023-02-01 02:08:50 -05:00
chyyran 22599285d3 d3d12: load vertex buffers 2023-02-01 02:08:50 -05:00
chyyran c2bef7f985 d3d12: upload shaders 2023-02-01 02:08:50 -05:00
chyyran 53e3732a93 d3d12: complete mipmapper 2023-02-01 02:08:50 -05:00
chyyran 48e5a8a149 d3d12: build mipmapper shader 2023-02-01 02:08:50 -05:00
chyyran d7da5c175f dx12: mipmap stuff 2023-02-01 02:08:50 -05:00
chyyran 8bb02d31e9 d3d12: sketch out mipmap gen 2023-02-01 02:08:50 -05:00
chyyran 56538dbfbf d3d12: load lut texture data 2023-02-01 02:08:50 -05:00
chyyran 9a3ce029d7 d3d12: partially implement lut texture 2023-02-01 02:08:50 -05:00
chyyran 2f82c5f430 d3d12: implement sampler palette 2023-02-01 02:08:50 -05:00
chyyran 4dc34fceb2 d3d12: try to do desc heaps 2023-02-01 02:08:50 -05:00
chyyran 92c9836985 d3d12: try to do desc heaps 2023-02-01 02:08:50 -05:00
chyyran 0ceb70d799 d3d12: take hello triangle from windows-rs 2023-02-01 02:08:50 -05:00