Commit graph

722 commits

Author SHA1 Message Date
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
f8de1fa2ee docs: fix triangle links 2023-02-16 01:23:01 -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
ceb5a6d6ea build(docs.rs): properly specify no default features 2023-02-16 00:55:47 -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
b81f415917 vk: fix lifetime issues with ash
Using `build` everywhere was causing miscompilations because of lifetimes leaking.
2023-02-15 22:57:20 -05:00
chyyran
d9625187ed doc: doc preset parser differences 2023-02-15 18:50:35 -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
83422de1f7 capi: expose disable_cache option to capi 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
4978e1f24f vk: don't unwrap create_graphics_pipelines 2023-02-14 19:24:42 -05:00
chyyran
0bbf124b54 ci: move slang-shaders submodule to shaders_slang 2023-02-14 17:57:48 -05:00
chyyran
07fac4d1e9 rt: load luts with multiple threads 2023-02-14 02:56:06 -05:00
chyyran
e2e6357cfb presets: parse depth first to allow for proper override behaviour 2023-02-14 02:48:42 -05:00
chyyran
b1a6952020 presets: allow presets to end with a comment 2023-02-14 00:59:43 -05:00
Ronny Chan
58ed82e245
doc: reword thread safety guarantees 2023-02-13 02:32:29 -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
29a1fa05d8 ci: upload profile path build artifacts 2023-02-11 18:37:35 -05:00
chyyran
4745401795 ci: build "debug" profile 2023-02-11 18:30:28 -05:00
chyyran
bc45729a51 build: replace cargo post with custom buildscript 2023-02-11 18:12:14 -05:00
chyyran
cff4f650c9 ld: add a flag to check if the instance is loaded
Also explicitly create function pointers to NULL, otherwise
null instance is technically unsound to call.

Practically if the create function is unloaded, so will the frame
function, but we should be consistent with the safety model.
2023-02-11 16:40:33 -05:00
chyyran
d925dc95c6 capi: expose helpers to ensure ABI version compatibility 2023-02-11 15:37:21 -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
f73cce83d5 doc(readme): nit: retroarch has drivers, not runtimes 2023-02-11 01:09:25 -05:00
chyyran
45314a61c5 vk: make internal frame count wrap 2023-02-11 00:35:13 -05:00
chyyran
3c15a3a523 rt: fix history framebuffer requirements and unify framebuffer initialization logic 2023-02-11 00:20:35 -05:00
chyyran
115382d8f0 gl: rename capi Framebuffer handle to 'fbo' to make it more clear. 2023-02-11 00:19:53 -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
7f17569b58 doc(vk): correct render pass docs 2023-02-10 01:09:43 -05:00
chyyran
a19ea7cf7d gl: remove support for POT textures 2023-02-10 00:59:22 -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
8cfe59c7aa doc(readme): spacing 2023-02-09 18:39:02 -05:00
chyyran
009e740610 vk: use gpu-allocator for memory allocations 2023-02-09 18:14:55 -05:00
chyyran
336094cad9 d3d11: properly clear history framebuffers 2023-02-09 00:42:46 -05:00
chyyran
2adb23c01f gl: remove unused prints 2023-02-08 21:32:09 -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