diff --git a/direct/src/showbase/ShowBase.py b/direct/src/showbase/ShowBase.py index a49404d1b7..a53143aeca 100644 --- a/direct/src/showbase/ShowBase.py +++ b/direct/src/showbase/ShowBase.py @@ -279,12 +279,20 @@ class ShowBase(DirectObject.DirectObject): # Now we can make the TaskManager start using the new globalClock. taskMgr.globalClock = globalClock + # client CPU affinity is determined by, in order: + # - client-cpu-affinity-mask config + # - pcalt-# (# is CPU number, 0-based) + # - client-cpu-affinity config affinityMask = self.config.GetInt('client-cpu-affinity-mask', -1) if affinityMask != -1: TrueClock.getGlobalPtr().setCpuAffinity(affinityMask) else: - affinity = self.config.GetInt('client-cpu-affinity', -1) - if affinity != -1: + affinity = None + if 'clientIndex' in __builtin__.__dict__: + affinity = abs(int(__builtin__.clientIndex)) + else: + affinity = self.config.GetInt('client-cpu-affinity', -1) + if affinity not in (None, -1): TrueClock.getGlobalPtr().setCpuAffinity(1 << affinity) __builtin__.base = self