-
Notifications
You must be signed in to change notification settings - Fork 178
Open
Labels
A-ClientA-EngineT-CleanupT-ImprovementImprovement for an existing featureImprovement for an existing featureT-Performance
Description
I plan on making the amount of IPC calls largely static for 0.56, as right now their amount can often cripple performance. This issue is to keep track of such calls.
| IPC call | Usage | Solution | Status |
|---|---|---|---|
trap_CM_MarkFragments() |
Unused now that fragments are batched | Remove. | Done: DaemonEngine/Daemon#1428 |
trap_GetEntityToken() |
Unused | Remove. | Done: DaemonEngine/Daemon#1428 |
trap_QuoteString() |
Unused | Remove. | Done: DaemonEngine/Daemon#1428 |
trap_R_GetShaderNameFromHandle() |
Done for every beacon and a bunch of RMLUI elements every frame | Stop using it: no handle->name->handle round trips. | Done: #3347 |
trap_R_RegisterModel() |
Done for each model. Affects loading time? | N/A | N/A |
trap_R_RegisterSkin() |
Done for each skin. Affects loading time? | N/A | N/A |
trap_R_RegisterShader() |
Done for each shader. Affects loading time? | N/A | N/A |
trap_R_AddRefEntityToScene() |
Done for each visible entity, sometimes more than once (e. g. for players/bots, for head, torso, legs, jetpack, radar, weapon etc.) | Already an async call, but does a lot of copies of the heavy refSkeleton_t struct. Also, maybe make refEntity_t persistent between frames (this would also help with caching shadowmaps, since engine would then know if an entity hasn't moved within a light source's frustum)? |
Done: DaemonEngine/Daemon#1489 |
trap_R_ModelBounds() |
Only used when loading models. Increases loading time? | N/A | N/A |
trap_R_LerpTag() |
Used for potentially visible weapons/attachments | Move to the engine. | Done: DaemonEngine/Daemon#1489 |
trap_R_GetTextureSize() |
Done once on load. Increases loading time? | N/A | N/A |
trap_R_GenerateTexture() |
Same as above | N/A | N/A |
trap_GetUserCmd() |
See #2660 | N/A | N/A |
trap_R_RemapShader() |
Only done when loading or if some shader changed (?). Increases loading time? | N/A | N/A |
trap_R_inPVS() |
Unused now that it's batched | Remove. | Done: DaemonEngine/Daemon#1428 |
trap_R_inPVVS() |
Unused | Remove, evaluate engine-side usefulness to determine affected surfaces for shadowmapping. | Done: DaemonEngine/Daemon#1428 |
trap_R_LightForPoint() |
Used for "inverse shadow mapping" (wtf is that even supposed to mean?)? Also used for particles and trails with realLight parm (do we even use that anywhere?). Looks like this is some hack to create entity shadows on the absence of light source definitions? For some reason uses lightgrid, although also claims it fails without lightmaps... |
Remove, use actual lights for shadowmapping (also see DaemonEngine/Daemon#1298) | realLight: Done: DaemonEngine/Daemon#1523; shadowCaster: Removed #3475 DaemonEngine/Daemon#1910 |
trap_R_RegisterAnimation() |
Only done when loading animations. Increases loading time? | N/A | N/A |
trap_R_BuildSkeleton() |
Used twice for all potentially visible buildings, more for players and bots. Together with trap_R_AddRefEntity() involves a lot of copies of the heavy refSkeleton_t struct. |
Move to engine, only send the lerp parameters etc with refEntity_t. Remove refSkeleton_t from refEntity_t definition. Also see DaemonEngine/Daemon#1386 (comment). |
Done: DaemonEngine/Daemon#1489 |
trap_R_BoneIndex() |
Used for potentially visible weapons/attachments | Do one IPC call after loading models/animations to get the required info, move the code to process it to cgame. | Done: #3402 |
trap_R_AnimNumFrames() |
Only done when loading animations. Increases loading time? | Evaluate whether we really need this. | |
trap_R_AnimFrameRate() |
Only done when loading animations. Increases loading time? | Evaluate whether we really need this. | |
trap_RegisterVisTest() |
Only used for Wolf:ET flares | Do we really need this? | N/A |
trap_AddVisTestToScene() |
Only used for Wolf:ET flares | Do we really need this? | N/A |
trap_CheckVisibility() |
Only used for Wolf:ET flares | Do we really need this? | N/A |
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
A-ClientA-EngineT-CleanupT-ImprovementImprovement for an existing featureImprovement for an existing featureT-Performance