3323 Commits

Author SHA1 Message Date
Kawe Mazidjatari
51858ed012 DataCache: improve FindUncachedMDL error handling
Just use a single branch.
2024-01-07 02:05:14 +01:00
Kawe Mazidjatari
7c4d080406 DataCache: rename studiodata_t::GetStudioCache()
Rename studiodata_t::GetStudioCache() to studiodata_t::GetModelCache().
2024-01-07 02:02:40 +01:00
Kawe Mazidjatari
686e65cc70 DataCache: add missing check
Must check on this animrig cache handle as well.
2024-01-07 01:44:09 +01:00
Kawe Mazidjatari
bdb6be6255 DataCache: add missing checks
Should check for model cache handle again, and also check anim cache handle.
2024-01-07 01:42:26 +01:00
Kawe Mazidjatari
ab79606c7f DataCache: cleanup & improvements
* follow naming convention of studio.h.
* renamed studiocache_t to studiomodelcache_t.
* merged 'ModelHeader' struct with studiomodelcache_t.
* add 'physfile_t' structure.
2024-01-07 01:39:15 +01:00
Kawe Mazidjatari
5979153306 DataCache: clear fallback handler if main pak gets unloaded
If common.rpak is unloaded, the fallback model handles/pointers become invalid.
2024-01-07 00:02:26 +01:00
Kawe Mazidjatari
440a29513e DataCache: fix inline crash 2024-01-06 23:56:19 +01:00
Kawe Mazidjatari
e416bdbbfe DataCache: add proper fallback mdl handler and fix rendering
Add a proper class for dealing with fallback models and the warnings thereof. Also reverted the 'old_gather_props' removal, as otherwise fallback models won't draw (new gather props solution doesn't call CMDLCache::GetHardwareData()).
2024-01-05 01:22:55 +01:00
Kawe Mazidjatari
6b708e33ea DataCache: harden mdl error handling logic
Rebuild 'CMDLCache::GetPhysicsGeometry()' and properly handle missing cache pointers. Also cleaned up various methods in CMDLCache and renamed 'studiophysicscache_t' to 'studiophysicsref_t'. The changes made the 'old_gather_props' convar hack redundant and has thus been removed.
2024-01-04 21:19:32 +01:00
Kawe Mazidjatari
5615400c07 DataCache: remove legacy inlines 2024-01-04 21:01:30 +01:00
Kawe Mazidjatari
3ab3171018 Studio: fix compile error
Include for CRefCounted.
2024-01-04 18:50:43 +01:00
Kawe Mazidjatari
adf12a3c22 DataCache: cleanup mdlcache code
Cleanup and fixup CMDLCache::GetVCollide (originally named CMDLCache::GetStudioHdr which was incorrect).
2024-01-04 16:12:25 +01:00
Kawe Mazidjatari
96a3bb259c VPhysics: add vcollide structure 2024-01-04 16:09:31 +01:00
Kawe Mazidjatari
4df2c83247 Tier1: add refcount class 2024-01-04 16:08:27 +01:00
Kawe Mazidjatari
eb07b3eafa
Merge pull request #118 from Mauler125/idetour_iface_refactor
IDetour: interface refactor
2024-01-02 18:02:09 +01:00
Kawe Mazidjatari
f428e09654 Patch: make const 2024-01-02 17:30:39 +01:00
Kawe Mazidjatari
91ba2b543d Texture: fix crash caused by unused define
GAMEDLL_S3 is no longer defined due to deprecation.
2024-01-02 17:28:12 +01:00
Kawe Mazidjatari
ef109f9315 Patch: remove GAMEDLL compile time checks
GAMEDLL_S# defines are no longer used.
2024-01-02 17:09:14 +01:00
Kawe Mazidjatari
4cfcdcd863 ModelLoader: don't compile sprite functions for dedicated 2024-01-02 17:08:08 +01:00
Kawe Mazidjatari
555ab1f9e0
README: update support list 2024-01-02 15:26:08 +01:00
Kawe Mazidjatari
97db990d94 CMake: remove OPTION_GAMEDLL
Only S3 is supported moving forward; see commit e825a1e7.
2024-01-02 15:24:54 +01:00
Kawe Mazidjatari
e825a1e7a8 IDetour: remove extraneous pointer assignments
Originally, we store the search results in a CMemory instance which we then assign to the actual function pointer. CMemory is just a pointer class; we can assign the results directly to the actual function pointer. This commit reduces a lot of code verbosity, and also reduced roughly 2KiB worth of static pointers in the resulting executable. This commit also officially deprecates the support for any GameDLL's below S3 (Season 3), since it makes more sense to port the assets from earlier/later games back to the version this SDK supports.
2024-01-02 15:21:36 +01:00
Kawe Mazidjatari
59a506305f CMemory: add reference overload
Assign pointer to reference.
2024-01-02 14:56:28 +01:00
Kawe Mazidjatari
b25bc7c455 RConServer: remove extraneous copy
CSocketCreator::GetAcceptedSocketAddress() returns a reference.
2024-01-01 20:09:32 +01:00
Kawe Mazidjatari
18235b43f3 Pylon: fix typo 2024-01-01 16:46:16 +01:00
Kawe Mazidjatari
073abad6a8 CEngine: rename fields 2024-01-01 16:46:02 +01:00
Kawe Mazidjatari
bf5734f5d6 InputSystem: add note to 'CGame::DispatchKeyEvent()'
These are hardcoded delay values for if you want to pick and swap an item from the ground. Perhaps nice to make a cvar and an in-game UI setting for adjusting them.
2023-12-30 17:38:54 +01:00
Kawe Mazidjatari
d592bb2241 InputSystem: fix controller hold keys not working
Should've been !keyInfo.m_bKeyDown.
2023-12-30 17:32:38 +01:00
Kawe Mazidjatari
b618daa694 Server: properly rate limit client side script execution
Blocking it all together will cause problem when user wants to reset their controller binds. Now we limit execution to 4 per second (default) which doesn't cause problems when resetting any configuration, while also preventing cfg hacks.
2023-12-30 17:31:55 +01:00
Kawe Mazidjatari
c5808e1117 Server: improve extended client class
Use setters/getters and make members private and only accessible from CClient or CClientExtended.
2023-12-30 15:05:14 +01:00
Kawe Mazidjatari
b1eb8ae26f CL_MoveEx: const correctness 2023-12-30 14:33:42 +01:00
Kawe Mazidjatari
89320b48ad Server: rename 'ServerPlayer_t' to 'CClientExtended'
A more correct name + comments as to why this structure exists.
2023-12-30 02:51:02 +01:00
Kawe Mazidjatari
caba6a7aba Server: sync client's clock with server's
This should in theory fix the server and client desync that takes place after multiple hours of uptime without disconnecting or reloading. Note that in this version of the engine the server tick is only send on connect (Titanfall 2 does seem to send it every tick, as this netmsg is also responsible for updating the server percentage on the 'cl_showfps' HUD, which does work as designed). The patched code still writes a 'statistics only' server tick update every tick, but only sends full if the interval time has been reached for that particular client instance.
2023-12-30 01:17:39 +01:00
Kawe Mazidjatari
0c56af38fc Server: add CServer::BroadcastMessage()
Add CServer::BroadcastMessage and rename CServer::FrameJob parameter.
2023-12-29 23:06:49 +01:00
Kawe Mazidjatari
0bc0f71a25 MaterialSystem: add note 2023-12-29 23:05:01 +01:00
Kawe Mazidjatari
0ba4c6a867 NVIDIA: make vars static 2023-12-27 23:39:01 +01:00
Amos
492af0d5d1 Fix dedicated compile errors 2023-12-27 13:22:33 +01:00
Kawe Mazidjatari
2ce819712a NVIDIA: enable gfx_nvnUseMarkersToOptimize by default
Enabled by default, and removed playerprofile flag as we want to be able to disable this in the future may it cause problems. All tests done so far (on different hardware) yielded more latency reduction/performance improvements. Also added updated note for convar promo_version_accepted.
2023-12-26 23:42:44 +01:00
Kawe Mazidjatari
23b856d3f5 Recast: make detail mesh edge detection more robust
Merge recastnavitagion/recastnavitagion@c393777d26
Instead of using a distance check which can fail at large magnitudes due
to low precision we can check whether the edges are actually on the
hull.
2023-12-26 16:54:29 +01:00
Kawe Mazidjatari
9254ac2de3 Recast: fix:rcBuildLayerRegions missing areaType
Merge recastnavitagion/recastnavitagion@ddaa361b08
2023-12-26 16:24:43 +01:00
Kawe Mazidjatari
20112679cd Engine: reversed some CGame field names
Reversable thanks to the CInputSystem rebuild.
2023-12-26 11:32:27 +01:00
Kawe Mazidjatari
be53feed65 MaterialSystem: fix console not drawing in the 4:3/5:4 aspect ratio modes
DrawImGui should be called BEFORE ID3D11DeviceContext::ClearRenderTargetView() or ID3D11DeviceContext::End(). Moved drawing code to SpinPresent which is just before the clear/end calls are being made. Console now draws in the 4:3/5:4 aspect ratio video modes.
2023-12-26 02:37:07 +01:00
Kawe Mazidjatari
1ea7edd009 NVIDIA: move markers to actual IDXGISwapChain::Present runtime call
Testing revealed better latency reduction when moved directly here as we also take into account the additional buffy copy's the game does in SpinPresent, our new render thread frame limiter and and ImGui. The difference is very large when the render thread frame limiter is used. The code still passes NVIDIA's reflex testing utility after this patch.
2023-12-26 01:42:54 +01:00
Kawe Mazidjatari
10017fd84e NVIDIA: only run latency on success
Only run latency markers if NvAPI_D3D_SetSleepMode returned NVAPI_OK.
2023-12-25 23:43:41 +01:00
Kawe Mazidjatari
af8a3add00 NVIDIA: limit to 1 sleep per frame
The purpose of this bool was to only limit nv sleep to 1 per frame, but the bool was never reset.
2023-12-25 22:36:35 +01:00
Kawe Mazidjatari
8791745ad4
Merge pull request #115 from Mauler125/nvidia_reflex_markers
NVIDIA latency marker implementation
2023-12-25 19:39:14 +01:00
Kawe Mazidjatari
3873cc81c2 InputSystem: rename function parameter 2023-12-25 19:36:59 +01:00
Kawe Mazidjatari
acbf0352da NVIDIA: always run PC Latency stats
PCLStats is not NVIDIA hardware bound as per Reflex's documentation, and runs separately from the NVIDIA Reflex code. Always enable!
2023-12-25 19:24:42 +01:00
Kawe Mazidjatari
0251c59227 NVIDIA: properly enqueue frame ID
Sync Frame ID between main thread and render thread, this changes makes the integration PASS the reflex test utility.
2023-12-25 19:23:01 +01:00
Kawe Mazidjatari
c3fed1dc2a MaterialSystem: Expose the proper pointer
The first pointer was a pointing to a pointer to g_MaterialSystem. The new pointer points directly to g_MaterialSystem. Also added CMaterialSystem::GetCurrentFrameCount() for g_FrameNum.
2023-12-25 18:47:05 +01:00