Page MenuHomeWildfire Games

jprahman (Jason Rahman)
User

Projects

User Details

User Since
May 31 2022, 6:07 AM (99 w, 3 d)

Recent Activity

Dec 29 2022

jprahman added inline comments to D4838: StaticVector.
Dec 29 2022, 8:44 AM
jprahman added inline comments to D4838: StaticVector.
Dec 29 2022, 4:10 AM

Dec 6 2022

jprahman accepted D4773: Normalize names for ClientId in /network.

Looks good to me (with the exception of the remaining discussion around the -1 cast)

Dec 6 2022, 5:57 AM

Nov 30 2022

jprahman added a comment to D4428: SM91 upgrade.

@wraitii any update on this migration to SM91? Would be great to move to the newer SM version

Nov 30 2022, 9:27 AM
jprahman accepted D4730: Type-erased SharedState.

Lgtm, could probably bikeshed more on the existing futures code, but let's move this along :)

Nov 30 2022, 9:14 AM

Aug 28 2022

jprahman added inline comments to D4758: Rearrange GC scheduling for reduced lag.
Aug 28 2022, 8:04 AM
jprahman updated subscribers of D4730: Type-erased SharedState.

Looks pretty good to me, nice win and good cleanup on the type erasure. I don't have any other major comments, so I'll leave it up to @Stan or @wraitii for a final accept.

Aug 28 2022, 5:37 AM

Aug 22 2022

jprahman added inline comments to D4730: Type-erased SharedState.
Aug 22 2022, 3:01 AM

Aug 20 2022

jprahman added a comment to D4766: [WIP] PS::Execution.

From a 40,000ft view, libraries like libunifex already implement similar sender-receiver functionality à la the wg21 P2300 paper. Are there particular advantages of adding our own implementation of a subset of p2300 vs. adopting a library like libunifex which offers a much broader set of functionality?

Aug 20 2022, 9:31 AM

Aug 9 2022

jprahman added a comment to D4718: Allocator and generator for component data..

Looks good from my end for the most part. A few lingering nit type comments left, but otherwise great.

Aug 9 2022, 7:08 AM

Aug 6 2022

jprahman added a comment to D4718: Allocator and generator for component data..

Awesome perf win! I play lots of large multiplayer matches, and definitely appreciate seeing the late game speed up with many units.

Aug 6 2022, 12:22 AM

Jul 4 2022

jprahman added a comment to D4730: Type-erased SharedState.

Usually the overhead from std::function<> comes from one of two sources:

  1. Heap allocation for the functor/function pointer/callable std::function is wrapping (https://devblogs.microsoft.com/oldnewthing/20200514-00/?p=103749), including CPU cache misses when following the pointer
  2. Indirection when invoking the type erased std::function through a virtual method call
Jul 4 2022, 1:16 AM

Jun 13 2022

jprahman added a comment to D4695: Fix Naval Shipyard..

Curious as well what sort of tooling 0AD has for template scanning/validation? I saw the templateanalyzer under source/tools, but that appears to be about balance analysis, rather than validation.

Jun 13 2022, 8:18 AM
jprahman added a comment to D4695: Fix Naval Shipyard..

Is it possible there are other templates with this same issue?

Jun 13 2022, 7:52 AM

Jun 12 2022

jprahman published D4693: Fix clang warning for deprecated binary_negate<> for review.
Jun 12 2022, 5:58 AM
jprahman updated the test plan for D4673: [NetClient] Clean up g_xmppClient checking.
Jun 12 2022, 4:26 AM
jprahman updated the diff for D4673: [NetClient] Clean up g_xmppClient checking.

Update from feedback

Jun 12 2022, 4:24 AM

Jun 1 2022

jprahman added a comment to D3877: ThreadPool extension -> Timer for recurrent task & adapt netClient..

Hey @wraitii are you planning on cleaning up and landing these changes soon? Asking since I'd like to pull in changes with the AddRecurrentTask API and can either wait for this to land, or put up a diff with an updated version of TimerThread :)

Jun 1 2022, 5:00 AM
jprahman requested review of D4675: [TaskManager] Minor cleanup in Future + TaskManager.
Jun 1 2022, 4:36 AM
jprahman added a comment to D4673: [NetClient] Clean up g_xmppClient checking.
In D4673#198748, @Stan wrote:

Did you see https://trac.wildfiregames.com/wiki/Coding_Conventions?
Some braces are out of place ?

Did you check the logic change by running some networked matches ? :)

Jun 1 2022, 4:16 AM
jprahman added a comment to D4673: [NetClient] Clean up g_xmppClient checking.

Looking at the details, the ip and port values inferred in the three conditional blocks are not used in the actual connection attempt. But rather those two values are only used to establish a Stun tunnel. For that reason, I'm not convinced that QueryConnectionDetails() would be semantically accurate for the name. Instead, something like SetupStun() would more accurately reflect the intent. Additionally, naively extracting the middle section of TryToConnect() which is gated on g_XmppClient into a second function requires some gymnastics around the return value. There are three possibilities for the return value:

  1. One value indicating the original code had 'return true' in the initial TryToConnect() implementation, and the new TryToConnect() implementation should have an early 'return true' and not proceed further following the call to 'SetupStun()'
  2. Another value indicating the original code had 'return false' in the initial TryToConnect() implementation, and the new TryToConnect() implementation should have an early 'return false' and not proceed further following the call to 'SetupStun()'
  3. Another value indicating the original code extracted into SetupStun() had neither 'return false' nor 'return true' and TryToConnect() should continue to perform 'g_NetClient->SetupConnection(enetClient)' as before
Jun 1 2022, 4:07 AM

May 31 2022

jprahman added a comment to D4673: [NetClient] Clean up g_xmppClient checking.
In D4673#198742, @Stan wrote:

Hey thanks for the patch, can you add yourself to the credits ?

May 31 2022, 8:47 AM
jprahman updated the diff for D4673: [NetClient] Clean up g_xmppClient checking.

Added to programming.json credits file

May 31 2022, 8:47 AM
jprahman added a comment to D4664: Non-local condition_variable.

I suppose the underlying assumption here is the queue is expected to be empty the majority of the time, and thus worker threads should be able to idle themselves to free up CPU cores.

May 31 2022, 8:19 AM
jprahman added inline comments to D4664: Non-local condition_variable.
May 31 2022, 7:15 AM
jprahman added inline comments to D4664: Non-local condition_variable.
May 31 2022, 7:14 AM
jprahman added reviewers for D4673: [NetClient] Clean up g_xmppClient checking: Stan, wraitii, vladislavbelov.
May 31 2022, 6:20 AM
jprahman updated the diff for D4673: [NetClient] Clean up g_xmppClient checking.

Formatting fixes

May 31 2022, 6:17 AM
jprahman requested review of D4673: [NetClient] Clean up g_xmppClient checking.
May 31 2022, 6:13 AM