Commit Graph

7493 Commits

Author SHA1 Message Date
Anthony a7bc6a307d fixup remove unused variable 2023-11-11 01:08:34 +13:00
Anthony 7ad047bcea reduce crashing if the shaders are broken and get hotloaded 2023-11-11 01:08:34 +13:00
Anthony 0f21e25d7d Support hotloading pixelshaders 2023-11-11 01:08:34 +13:00
Anthony 79884bdf3d Move shader hlsl management into Shader.cpp
- g_ShaderHlsl keeps track of hlsl
- VS and PS source their hlsl from g_ShaderHlsl
2023-11-11 01:08:34 +13:00
Anthony 260e2fb7c8 Ensure filewatcher is closed if something goes wrong
and avoid creating multiple watchers
2023-11-11 01:08:34 +13:00
Anthony 4d221c3c81 tidy vertex shader loading 2023-11-11 01:08:34 +13:00
Anthony 712d3bee2f move passthrough shader to a file 2023-11-11 01:08:34 +13:00
Anthony 3cd551d827 Reload/recompile vertex shaders hlsl if they change 2023-11-11 01:08:34 +13:00
Anthony 397f33143d Rename VertexShaderSource to VertexShaderCache
because it was a weird name
2023-11-11 01:01:04 +13:00
Luke Usher c3f52e33cc chihiro: prevent JVS register updates from being missed due to long delays
This really needs a better solution, but for now, this will do.
2023-10-29 11:37:44 +01:00
Luke Usher 78f7e097d5 chihiro: emulate a chihiro system when boot.id is present 2023-10-29 11:37:44 +01:00
Luke Usher 30e00d8f24 chihiro: fix an issue where media board detection failed due to instant response time 2023-10-29 11:37:44 +01:00
RadWolfie 04ce11fd87 Cleanly rebase chihiro-work on develop
Co-authored-by: Luke Usher <luke.usher@outlook.com>
Co-authored-by: wutno <aaron@installgentoo.net>
Co-authored-by: RadWolfie <RadWolfie@users.noreply.github.com>
2023-10-29 11:37:44 +01:00
ergo720 c7e75d7c5c
Merge pull request #2432 from Margen67/ci
CI: Upgrade checkout to v4
2023-10-21 16:19:43 +02:00
NZJenkins 4808be65c4
Slightly reduce build time (#2437) 2023-10-16 08:51:56 +02:00
Margen67 def10ff466
CI: Upgrade checkout to v4 2023-09-20 01:28:42 -07:00
Luke Usher e1ea10c4cb
Merge pull request #2428 from jackchentwkh/fix_pushbuffer_subroutine
fix COMMAND_TYPE_CALL pushbuffer command handling
2023-09-03 21:45:52 +01:00
Jack Chen 67f21d5c30 reset subr_active flag to indicate we've returned from any COMMAND_TYPE_CALL command.
NV2A used COMMAND_TYPE_JUMP_LONG to return from COMMAND_TYPE_CALL.
Otogi uses lot's of COMMAND_TYPE_CALL, this should inprove the pushbuffer handling.
2023-09-03 20:42:07 +08:00
PatrickvL 971318a89a
Merge pull request #2426 from Margen67/ci
CI: Fix output
2023-07-27 13:56:36 +02:00
Margen67 b62d39da7d CI: Fix output
set-output is deprecated: https://github.blog/changelog/2023-07-24-github-actions-update-on-save-state-and-set-output-commands/
2023-07-25 16:46:37 -07:00
ergo720 7563dd3ecf Never change the thread priority on the host and the disable boost flag too
This fixes almost all the games that were broken in this branch
2023-04-05 17:48:31 +02:00
ergo720 32ec4ee6f9 Use a DPC for expired timers + don't execute NV2A DPCs from the timer thread to avoid the exception overhead 2023-04-01 19:17:20 +02:00
ergo720 e89b5b2130 Fixed an issue in WaitApc where the wait block was not removed when using a zero timeout or when satisfied by a user APC + properly lock the wait block operations to avoid a race between SatisfyWait and KiTimerExpiration 2023-03-31 15:53:28 +02:00
ergo720 709108b045 Implemented PTIMER alarm interrupt of NV2A + fixed a bug in timer_init
This fixes DOAU showing the dirty disk error in PAL50 mode
2023-03-28 17:59:11 +02:00
ergo720 ccd77fcf4d Fixed wrong nv2a clock frequency
This is accessed by DOAU via PTIMER only in PAL50 mode
2023-03-26 21:26:30 +02:00
ergo720 ea1657018f Fixed a bug in KeTickCount + check all timer indices when we are late in KiClockIsr
This almost completely fixes the slowness in Panzer Dragoon Orta
2023-03-23 01:54:45 +01:00
ergo720 ac31523b09 Make sure to reset WaitStatus when a new wait starts
This fixes an issue in Panzer Dragoon Orta, where KeDelayExecutionThread would return X_STATUS_TIMEOUT | X_STATUS_USER_APC
2023-03-22 21:42:34 +01:00
ergo720 680340f53d Make sure that GetNativeHandle succeeds before attempting to get the native handle
This fixes a sporadic crash in Panzer Dragoon Orta, where the title calls KeSetBasePriorityThread on a thread that has already terminated
2023-03-22 20:51:21 +01:00
ergo720 c292874487 Fixed a bug in KiInsertTimerTable + log all objects being waited on in NtWaitForMultipleObjectsEx
This fixes a crash in Metal Slug 3
2023-03-22 12:17:00 +01:00
ergo720 9238ae3f81 Account for partial milliseconds in KiClockIsr
This fixes the slowness in The lord of the rings: the third era
2023-03-22 12:17:00 +01:00
ergo720 e454e901cc Fixed a race condition in WaitApc + removed wrong InsertTailList for ktimers used during a timeout
This fixes almost all broken games in this branch. Still broken: PDO: 1 fps vs 10 fps, DOA3: freezes after title screen, Lord of the rings The third era: Unable to determine default Xbox backbuffer error???
2023-03-22 12:17:00 +01:00
ergo720 253c198421 Always create a wait object even when we satisfy the wait on the host side + fixed a bug in KiWaitTestNoYield
This fixes an occasionl freeze in Steel Battalion + the slowness in JSRF
2023-03-22 12:16:59 +01:00
ergo720 8cefa8ba8f Revert to using the host to do thread suspension 2023-03-19 23:01:44 +01:00
ergo720 c3b3a1b107 Hack: <= thread priority instead of >= 2023-03-19 23:01:43 +01:00
ergo720 745f450a6c Setup a KTIMER for the other functions using WaitApc too 2023-03-19 23:01:43 +01:00
ergo720 fad4120841 Restore single interrupt loop in update_non_periodic_events 2023-03-19 23:01:43 +01:00
ergo720 9e3873d1df Place nvnet in its own thread 2023-03-19 23:01:43 +01:00
ergo720 7dc2ac080f Use get_now directly in system_events instead of qpc 2023-03-19 23:01:43 +01:00
ergo720 5d510752e6 Adjust KeSystemTime when the host system time is changed by the user 2023-03-19 23:01:42 +01:00
ergo720 b72cfaa909 Account for delays between calls to KiClockIsr
This fixes the slowness in the dashboard
2023-03-19 23:01:42 +01:00
ergo720 32b4393085 Raise priority of system events thread 2023-03-19 23:01:42 +01:00
ergo720 4ea6ecd247 Removed delta amount added to KeSystemTime 2023-03-19 23:01:42 +01:00
ergo720 c828d586db Fixed thread order initialization when a thread starts suspended 2023-03-19 23:01:41 +01:00
ergo720 d1c9883604 Make sure to hold the DPC lock until the DPC list has been emptied
This fixes a crash in Lord of the rings: The fellowship of the ring
2023-03-19 23:01:41 +01:00
ergo720 f52e261c4a Implemented kernel unwait routines + updated/fixed KeWaitForMultipleObjects and KeWaitForSingleObject 2023-03-19 23:01:41 +01:00
ergo720 e323ad50b5 Only change the priority of a thread if it is being set above normal 2023-03-19 23:01:41 +01:00
ergo720 b1ee59fab2 Unpatch D3DDevice_BlockUntilVerticalBlank and D3DDevice_SetVerticalBlankCallback 2023-03-19 23:01:40 +01:00
ergo720 6e63ecd7cc Avoid triggering multiple gpu interrupts outside the vblank 2023-03-19 23:01:40 +01:00
ergo720 c349fbbc00 Moved position of ObfDereferenceObject in NtSuspendThread 2023-03-19 23:01:40 +01:00
ergo720 d8ae1892b4 Removed scaling hack in KeInterruptTime and KeTickCount + added yield in system_events routine
This fixes the stuttering in Halo 2, Metal slug 3, JSRF and restores PDO, PSO to the same state as in master
2023-03-19 23:01:39 +01:00