Commit Graph

120 Commits

Author SHA1 Message Date
Skyth 1821fae71e Update pipeline cache. 2024-12-01 14:06:32 +03:00
Skyth 1a53a3b463 Rename the RHI. 2024-11-30 18:20:56 +03:00
Skyth 63b8a1e130 Check for triangle fan support when precompiling pipelines. 2024-11-30 12:18:13 +03:00
Skyth (Asilkan) d36aa26bac Specialization constants, reverse Z and async PSO implementation. (#9)
* Specialization constant implementation for Vulkan.

* Implement DXIL library linking.

* Implement proper reverse Z & fix motion blur flicker.

* Mirage API mapping.

* Initial work for async PSO.

* Further async PSO work.

* Set pipeline names.

* Handle special layers writing depth.

* Handle bones in shadow pipeline.

* Fix additive mode setting wrong pipeline field.

* Pass models to compilation threads through shared pointers.

* Safety improvements.

* Allow DXIL linking to happen in parallel.

* Display more debug information.

* Queue unique models for compilation immediately.

* Put async PSO debug printing behind a macro.

* Kick off terrain models to pipeline compilation thread the moment they are made.

* Hook a different function to do waiting in.

* Fix pipelines getting dropped.

* Account for ConstTexCoord.

* Fix async PSO accounting for alpha to coverage even when MSAA is off.

* Remove "has bone" specialization constant.

* Sky shader compilation & more debugging helpers.

* Assign names to shaders during loading.

* Fix string symbol definitions.

* Print description of recently compiled render thread pipelines.

* Switch to an enum library that doesn't murder IntelliSense.

* Precompile pipelines for object icons.

* Skip fur pipelines.

* Skip printing info for pipelines compiled during loading.

* Precompile pipelines for Sonic's mouth, motion blur, and forced transparent objects.

* Precompile planar reflection shaders.

* Precompile sparkle shaders in loading screens.

* Precompile fur shader.

* Refactor model traversing to enqueue every single compilation to worker threads.

* Dynamically create pipeline threads depending on hardware concurrency.

* Fix MSAA depth resolve not accounting for reverse Z.

* Integrate smol-v.

* Implement PSO caching.

* Update ShaderRecomp & remove unused function.
2024-11-29 23:30:48 +03:00
Hyper 8f525b571b Implemented guest-to-host function pointers (#7)
* Implemented guest-to-host function pointers (WIP)

Co-Authored-By: Skyth (Asilkan) <19259897+blueskythlikesclouds@users.noreply.github.com>

* function: support more types for function pointers

* api: ported BlueBlur headers and misc. research

* Move over function-pointers changes from options-menu branch.

---------

Co-authored-by: Skyth (Asilkan) <19259897+blueskythlikesclouds@users.noreply.github.com>
2024-11-25 13:50:10 +03:00
Skyth f7d4f93ba0 Implement brightness slider & color correction. 2024-11-21 23:00:15 +03:00
Hyper 118c2f3ce2 config_detail: move implementation to cpp, relocate sources 2024-11-15 21:21:43 +00:00
Skyth 5ecc397639 Fix Chip not appearing transparent in "To The Surface" cutscene. 2024-11-11 16:01:25 +03:00
Skyth cc2727d068 Fix vertex declaration not getting set in guest device. 2024-11-11 15:51:59 +03:00
Skyth 05e09ba7e2 Implement ImGui. 2024-11-09 21:47:50 +03:00
Skyth 0962560ec9 Add triangle list fallback path for triangle fans. 2024-11-08 22:03:26 +03:00
Skyth 329d51885d Negate the game's reverse Z implementation. 2024-11-08 20:18:54 +03:00
Skyth 4fa03e96b9 Add resolution patches for bloom glare & light shaft. 2024-11-08 13:34:17 +03:00
Skyth 0400c79628 Add D3DXFillTexture implementation for the 1x1 white texture. 2024-11-06 23:56:51 +03:00
Skyth 182b5bebc2 Hold a pointer to provided shader blob instead of cloning it in D3D12. 2024-11-06 13:33:15 +03:00
Skyth cd99cf2c04 Refactor resource destruction to fix data races. 2024-11-04 12:14:52 +03:00
Hyper 1c7b66237d window: refactored code 2024-10-30 11:41:48 +00:00
Darío 7d04ed057c Add Vsync configuration support to the RHI. (#1) 2024-10-30 11:32:30 +03:00
Skyth b3b8d1657a Move main thread buffer copy to graphics command list. 2024-10-27 20:43:01 +03:00
Skyth f807feaeb1 Implement proper null texture descriptors per dimension type. 2024-10-27 20:16:08 +03:00
Skyth 24d257d421 Fix a bunch of warnings. 2024-10-27 18:48:09 +03:00
Skyth 882f371de4 Move buffer copies to render thread if they happen in the main thread. 2024-10-27 17:17:12 +03:00
Skyth b867961000 Enqueue render commands in bulk. 2024-10-27 15:24:30 +03:00
Skyth 78788620b7 Fix scissor rect not getting updated along with the viewport. 2024-10-27 00:28:24 +03:00
Skyth 5676591618 Refactor render commands to execute asynchronously. 2024-10-27 00:02:47 +03:00
Skyth 31f34a8669 Add TGA loading support. 2024-10-26 11:55:37 +03:00
Skyth 0b3e0009d6 Fix MSAA depth resolve. 2024-10-26 00:51:03 +03:00
Skyth c20130036e Refactor framebuffer usage to fix 1024x1024 shadowmaps. 2024-10-25 23:31:15 +03:00
Skyth edc1eeead6 Update ShaderRecomp submodule. 2024-10-25 17:31:43 +03:00
Skyth c2d0128226 Remove half pixel globally instead of negating them with patches. 2024-10-24 17:43:05 +03:00
Skyth 9b70e1034a Implement alpha to coverage. 2024-10-24 14:57:23 +03:00
Skyth 98554eaffa Fix backbuffer format. 2024-10-23 17:50:12 +03:00
Skyth 1181b5d905 Force Vulkan when Wine is detected. 2024-10-22 23:40:20 +03:00
Skyth fd9b44f968 Use BGRA8 backbuffer format. 2024-10-22 22:59:45 +03:00
Skyth 8b223c121a Implement bicubic GI texture filtering. 2024-10-22 16:29:10 +03:00
Hyper f1a82ac97e config: some final adjustments to config types 2024-10-21 23:16:34 +01:00
Hyper 361cf21681 config: decouple header from pch 2024-10-21 22:30:11 +01:00
Hyper efaf8fb8c4 config: implemented string<->enum conversion 2024-10-21 22:23:52 +01:00
Hyper 23b5bdab85 config: use enum classes 2024-10-21 20:09:57 +01:00
Hyper 231a78a118 config: override type operator 2024-10-21 17:18:17 +01:00
Hyper cf8bba788b config: implemented saving 2024-10-21 17:07:58 +01:00
Skyth 5578e84069 Refactor barrier usage & fix more validation errors. 2024-10-21 17:36:44 +03:00
Hyper a272c6d32a High DPI window fixes 2024-10-20 23:16:40 +01:00
Skyth b39bc1e065 Make graphics API configurable. 2024-10-20 23:20:52 +03:00
Skyth 02964750ad Add D3D12 Agility SDK & implement triangle fans. 2024-10-20 20:44:25 +03:00
Skyth 66c20e73c9 Implement movie rendering & fix some validation errors. 2024-10-20 18:47:26 +03:00
Skyth ecc1098ddc Discard render targets before first use. 2024-10-20 15:11:15 +03:00
Skyth 018b32062e Embed shader cache to the executable. 2024-10-20 00:53:16 +03:00
Skyth c2ce012155 Implement MSAA properly for Vulkan. 2024-10-19 22:22:09 +03:00
Skyth 64d9cfbd9b Force inline a few simple functions that Clang is refusing to inline. 2024-10-18 16:30:35 +03:00