Commit graph

165 commits

Author SHA1 Message Date
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
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
800b6e7b4b d3d11: cleanup todo 2023-02-11 01:18:04 -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
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
336094cad9 d3d11: properly clear history framebuffers 2023-02-09 00:42:46 -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
07b20fecdc d3d11: fall back to singlethreaded shader compile if device was single threaded 2023-02-07 17:27:44 -05:00
chyyran
d9a97de131 rt: doc FilterPassMeta 2023-02-07 02:55:15 -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
5ffcf005a0 d3d11: set and restore blend state between passes and disable unneeded CPU access write 2023-02-07 00:51:35 -05:00
chyyran
c5b2b50d16 d3d11: make default cpu access none 2023-02-06 23:34:32 -05:00
chyyran
d6b492c614 doc: Vulkan runtime is not limited to 1.3 anymore 2023-02-06 22:05:29 -05:00
chyyran
3eae38f815 fmt: cargo fmt 2023-02-06 21:56:30 -05:00
chyyran
3ad67d9539 dep: upgrade to spirv-to-dxil 0.3 2023-02-06 19:22:53 -05:00
chyyran
3cdf3aa105 doc(d3d12): clean up docs for d3d12 2023-02-06 01:25:06 -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
f5fe3e37ef rt(d3d11/vk): allow for parallel shader compilation
OpenGL is for obvious reasons incompatible, and for DX12 the graphics pipeline creation has to be on the main thread so there isn't that much gain to be had.
2023-02-05 19:53:45 -05:00
chyyran
b81b2b1d25 fmt: run clippy 2023-02-05 18:34:30 -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
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
c2bef7f985 d3d12: upload shaders 2023-02-01 02:08:50 -05:00
chyyran
82ad516db0 d3d11/vk: render intermediate passes with identity matrix 2023-01-31 00:53:55 -05:00
chyyran
b996d60e9b test(d3d11): make args test harness 2023-01-30 19:48:54 -05:00
chyyran
18e1f758cd rt: apply filter settings before drawing frame 2023-01-30 19:30:23 -05:00
chyyran
abcd3bdc24 d3d11: set the proper sampler for each pass input 2023-01-29 22:19:08 -05:00
chyyran
964da2874c fmt: format pass 2023-01-29 21:31:38 -05:00
chyyran
92caad292c runtime: scale output framebuffers according to the previous inputs rather than original size. 2023-01-29 21:26:11 -05:00
chyyran
3c13dc8277 test(d3d11): allow hello_triangle to take image as input 2023-01-29 21:19:18 -05:00
chyyran
2d6a967c7f d3d11: generate mipmaps for inputs if requested 2023-01-29 19:04:34 -05:00
chyyran
8b6481abc1 fmt: run clippy and rustfmt 2023-01-29 02:30:58 -05:00
Ronny Chan
dffea95370
reflect: allow binding uniform names to both UBO and Push Constants (#4) 2023-01-29 01:57:09 -05:00
chyyran
b0dde6eda2 d3d11/vk: fix default mvp 2023-01-28 13:11:14 -05:00
chyyran
43b7d6fb53 preprocess: support latin-1 encoding 2023-01-28 11:58:59 -05:00
chyyran
1e99c169db d3d11: rebind vertices each pass 2023-01-27 01:22:53 -05:00
chyyran
cc97be6a0c d3d11: default to -O3 for compiling shaders 2023-01-27 00:27:06 -05:00
chyyran
3d0bdd0eac test: update slang-shaders repo 2023-01-27 00:07:12 -05:00
chyyran
cdf94cee1f capi(d3d11): Don't drop passed in COM pointers 2023-01-26 23:12:56 -05:00
chyyran
9cdf646681 build: only build d3d11 stuff for windows 2023-01-21 01:54:06 -05:00