Commit Graph

71 Commits

Author SHA1 Message Date
Skyth
fe4801b9ff Fix counter shared pointer getting created with the wrong function. 2024-12-03 18:44:58 +03:00
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