In the base SDK there are only a few areas where realtime is used.  None of 
them should really be important, but I changed the non-perf related ones to 
curtime for consistency in:

c_baseanimating.cpp
hl2_player.cpp

I left the perf ones as realtime in:

perfvisualbenchmark.cpp
vgui_fpspanel.cpp

The main thing would be to not realtime for anything important.  Ideally the 
SDK header would document it as such...

At 2006/05/14 04:07 AM, Garry Newman wrote:
>--
>[ Picked text/plain from multipart/alternative ]
>I always use curtime.. I've only really ever seen Valve use curtime and to
>be honest I didn't know realtime existed.
>
>I've never had any problems with curtime.
>
>
>On 5/14/06, Adam amckern Mckern <[EMAIL PROTECTED]> wrote:
>>
>> Well i ask becuase BK warns not to use realtime all
>> but with perf testing, and then doubts himself with
>> that.
>>
>> I am not on a MP mod team at this time, but am working
>> on my own SP mod, based on the Nightfall game play
>> engine that wrayith, and myself programmed.
>>
>> Adam
>>
>> --- Nick <[EMAIL PROTECTED]> wrote:
>>
>> > --
>> > [ Picked text/plain from multipart/alternative ]
>> > try it, see how well it works for you... LOL
>> >
>> > On 5/14/06, Adam amckern Mckern <[EMAIL PROTECTED]>
>> > wrote:
>> > >
>> > > So BK,
>> > >
>> > > It would be best for all of us working on MP based
>> > > mod's to find and replace every instance of
>> > realtime
>> > > with curtime?
>> > >
>> > > Adam
>> > >
>> > >
>> > >
>> > > --- [EMAIL PROTECTED] wrote:
>> > >
>> > > > FYI all, since dumping ->realtime in favor of
>> > > > ->curtime I have not seen the serious form of
>> > this
>> > > > repro.  The bug was intermittent, so it could be
>> > > > luck, but it's been about 2 weeks, so it's
>> > looking
>> > > > like that was the only bug.
>> > > >
>> > > > Just a heads-up to anyone thinking of using
>> > realtime
>> > > > for anything other than maybe perf testing,
>> > don't.
>> > > > (And even that use is questionable.)
>> > > >
>> > > > -bk
>> > > >
>> > > > At 2006/04/18 06:42 PM,
>> > > > [EMAIL PROTECTED] wrote:
>> > > > >No, I do not need real time accuracy.  I just
>> > need
>> > > > to know how the game thinks time is advancing
>> > each
>> > > > tick.  To give an example, I'm using
>> > > > gpGlobals->realtime to set a stamp and change
>> > the
>> > > > weird feature where you can switch weapons over
>> > and
>> > > > over almost limitlessly fast in HL2 DM.
>> > > > >
>> > > > >I left it running overnight with curtime and
>> > didn't
>> > > > get any odd curtimes (well, except for the level
>> > > > changes, but that's ok.)  Thanks again - this
>> > seems
>> > > > resolve the second biggest SDK issue I know of,
>> > > > which has been a source of user complaints for a
>> > > > quite a while.
>> > > > >
>> > > > >-bk
>> > > > >
>> > > > >At 2006/04/17 11:36 PM, Yahn Bernier wrote:
>> > > > >>Yes.  Curtime is the server's clock, which is
>> > > > bounded by the tick
>> > > > >>interval and smoothly increases in each call
>> > to
>> > > > GameFrame.  If the
>> > > > >>actuall time for a frame takes longer than one
>> > > > tick interval, then you
>> > > > >>can have multiple calls to GameFrame (with
>> > > > advancing curtime) but only
>> > > > >>get a single update to gpGlobals->realtime.
>> > If
>> > > > you need sub-frame clock
>> > > > >>accuracy (only useful for perf. Analysis
>> > really),
>> > > > then use
>> > > > >>Plat_FloatTime() which is independent of
>> > > > gpGlobals->realtime and
>> > > > >>->curtime.  Otherwise, if you need a clock,
>> > > > ->curtime is good enough,
>> > > > >>but does reset between levels.
>> > > > gpGlobals->realtime does not, but,
>> > > > >>again, it only gets advanced at the start of a
>> > > > frame (as opposed to each
>> > > > >>tick).
>> > > > >>
>> > > > >>Yahn
>> > > > >>
>> > > > >>-----Original Message-----
>> > > > >>From: [EMAIL PROTECTED]
>> > > > >>[mailto:[EMAIL PROTECTED]
>> > On
>> > > > Behalf Of
>> > > > >>[EMAIL PROTECTED]
>> > > > >>Sent: Monday, April 17, 2006 8:16 PM
>> > > > >>To: [email protected]
>> > > > >>Subject: RE: [hlcoders] gpGlobals->realtime
>> > > > standing still
>> > > > >>
>> > > > >>Thanks much.  When you say curtime "will
>> > reflect
>> > > > the 0.015 increments
>> > > > >>per tick", it sounds like you're saying that
>> > > > realtime is broken in this
>> > > > >>regard and I should use curtime instead?
>> > That's
>> > > > ok, but please confirm,
>> > > > >>as I will need to do a lot of search and
>> > replace.
>> > > > >>
>> > > > >>I've run a few tests and curtime always seems
>> > > > consistent and monotonic,
>> > > > >>however it seems that curtime doesn't start
>> > moving
>> > > > until the map loads,
>> > > > >>and is reset on map load.  Is that the
>> > expected
>> > > > behavior?
>> > > > >>
>> > > > >>-bk
>> > > > >>
>> > > > >>At 2006/04/13 12:33 PM, Yahn Bernier wrote:
>> > > > >>>gpGlobals->curtime will reflect the 0.015
>> > > > increments per tick.
>> > > > >>>Plat_FloatTime() will resample the high perf
>> > > > clock.
>> > > > >>>
>> > > > >>>Yahn
>> > > > >>>
>> > > > >>>-----Original Message-----
>> > > > >>>From: [EMAIL PROTECTED]
>> > > >
>> > >>>[mailto:[EMAIL PROTECTED] On
>> > > > Behalf Of Jay Stelly
>> > > > >>>Sent: Thursday, April 13, 2006 10:21 AM
>> > > > >>>To: [email protected]
>> > > > >>>Subject: RE: [hlcoders] gpGlobals->realtime
>> > > > standing still
>> > > > >>>
>> > > > >>>Yahn found this one - realtime is only
>> > integrated
>> > > > once per sever frame.
>> > > > >>>Game frame is called once per server tick.
>> > When
>> > > > you run something that
>> > > > >>>uses 100% CPU the server gets starved, then
>> > tries
>> > > > to make up the time
>> > > > >>>all in one frame.  It's a little more complex
>> > > > than that because there's
>> > > > >>>a cap on the sim time it will try to execute
>> > in
>> > > > one frame, but ignoring
>> > > > >>>that:
>> > > > >>>
>> > > > >>>The first GameFrame() has the complete update
>> > to
>> > > > realtime, then the
>> > > > >>>subsequent calls don't change because you're
>> > > > still running ticks to
>> > > > >>>catch up.
>> > > > >>>
>> > > > >>>So in this example:
>> > > > >>>> >odd realtime 11168195898843186 105.437195
>> > > > 105.486000 0.015000
>> > > > >>>> >odd realtime 11168195901330214 105.486000
>> > > > 105.486000 0.015000
>> > > > >>>> >odd realtime 11168195904200006 105.486000
>> > > > 105.486000 0.015000
>> > > > >>>
>> > > > >>>Frame 2 has a 49ms jump in realtime, and
>> > frame 3
>> > > > has the realtime the
>> > > > >>>same because each tick is 15 ms, so you need
>> > to
>> > > > run multiple ticks to
>> > > > >>>catch up.
>> > > > >>>
>> > > > >>>We can change it to make it more incremental,
>> > but
>> > > > you're not actually
>> > > > >>>losing any time (at least I can't see any in
>> > this
>> > > > data).
>> > > > >>>
>> > > > >>>Jay
>> > > > >>>
>> > > > >>>
>> > > > >>>> -----Original Message-----
>> > > > >>>> From: [EMAIL PROTECTED]
>> > > > >>>>
>> > [mailto:[EMAIL PROTECTED]
>> > > > On Behalf Of
>> > > > >>>> [EMAIL PROTECTED]
>> > > > >>>> Sent: Wednesday, April 12, 2006 9:06 PM
>> > > > >>>> To: [email protected]
>> > > > >>>> Subject: RE: [hlcoders] gpGlobals->realtime
>> > > > standing still
>> > > > >>>>
>> > > > >>>> Oh yea forgot to say it's an intel p4
>> > single
>> > > > proc with HT enabled.
>> > > > >>>>
>> > > > >>>> Here's one that repeated 6 times lasting 5
>> > > > ms...
>> > > > >>>>
>> > > > >>>> odd realtime 11172032919604142 1479.026855
>> > > > 1479.368408 0.015000
>> > > > >>>> odd realtime 11172032923627014 1479.368408
>> > > > 1479.368408 0.015000
>> > > > >>>> odd realtime 11172032926027614 1479.368408
>> > > > 1479.368408 0.015000
>> > > > >>>> odd realtime 11172032930865690 1479.368408
>> > > > 1479.368408 0.015000
>> > > > >>>> odd realtime 11172032932857506 1479.368408
>> > > > 1479.368408 0.015000
>> > > > >>>> odd realtime 11172032936032430 1479.368408
>> > > > 1479.368408 0.015000
>> > > > >>>> odd realtime 11172032937616626 1479.368408
>> > > > 1479.368408 0.015000
>> > > > >>>>
>> > > > >>>> At 2006/04/12 10:45 PM,
>> > > > [EMAIL PROTECTED] wrote:
>> > > > >>>> >Using the 100% cpu method that always
>> > breaks
>> > > > rather easily,
>> > > > >>>> I get results as follows, from the code
>> > below.
>> > > > It usually
>> > > > >>>> occurs in groups of 2 or 3.  The long-term
>> > > > slowdown may take
>> > > > >>>> several days to repro again.  In this case
>> > you
>> > > > see realtime
>> > > > >>>> being frozen for 2 milliseconds, calling
>> > > > GameFrame 3 times
>> > > > >>>> with the same value:
>> > > > >>>> >
>> > > > >>>> >odd realtime 11168195898843186 105.437195
>> > > > 105.486000 0.015000
>> > > > >>>> >odd realtime 11168195901330214 105.486000
>> > > > 105.486000 0.015000
>> > > > >>>> >odd realtime 11168195904200006 105.486000
>> > > > 105.486000 0.015000
>> > > > >>>> >
>> > > > >>>> >-----
>> > > > >>>> >
>> > > > >>>> >void CServerGameDLL::GameFrame( bool
>> > > > simulating )
>> > > > >>>> >{
>> > > > >>>> >#if defined(DEBUG)
>> > > > >>>> >    static float last_realtime = 0;
>> > > > >>>> >    if (
>> > > > >>>> >           (gpGlobals->realtime -
>> > > > last_realtime <
>> > > > >>>> gpGlobals->frametime / 3)
>> > > > >>>> >        || (gpGlobals->realtime -
>> > > > last_realtime >
>> > > > >>>> gpGlobals->frametime * 3)
>> > > > >>>> >    ) {
>> > > > >>>> >        LARGE_INTEGER PerformanceCount;
>> > > > >>>> >
>> > > >
>> > assert(QueryPerformanceCounter(&PerformanceCount));
>> > > > >>>> >        Msg("odd realtime %I64d %f %f
>> > %f\n",
>> > > > >>>> PerformanceCount, last_realtime,
>> > > > gpGlobals->realtime,
>> > > > >>>> gpGlobals->frametime);
>> > > > >>>> >    }
>> > > > >>>> >    assert(gpGlobals->frametime >= 0.0);
>> > > > >>>> >    assert(gpGlobals->frametime < .03);
>> > > > >>>> >    last_realtime = gpGlobals->realtime;
>> > > > >>>> >#endif
>> > > > >>>> >
>> > > > >>>> >At 2006/04/12 12:14 PM, Jay Stelly wrote:
>> > > > >>>> >>The master game clock is driven by
>> > > > >>>> QueryPerformanceCounter() on win32
>> > > > >>>> >>and gettimeofday() on linux.
>> > > > >>>> >>
>> > > > >>>> >>Still, we have had reports of clock
>> > issues
>> > > > with QPC() (not this
>> > > > >>>> >>particular issue however) on AMD x2
>> > systems
>> > > > that were fixed
>> > > > >>>> by forcing
>> > > > >>>> >>affinity.  Also, for winxp/xp64 there is
>> > a
>> > > > chipset driver
>> > > > >>>> update that
>> > > > >>>> >>AMD recommends installing to address some
>> > > > timing issues.  I
>> > > > >>>> don't have
>> > > > >>>> >>the info from AMD handy, but someone has
>> > > > written about it here (and
>> > > > >>>> >>provides links to downloads):
>> > > > >>>>
>> > > >
>> > >
>> >
>> >>http://ucguides.savagehelp.com/Quake4/FAQ_DualCore.htm#AMD
>> > > > >>>> >>
>> > > > >>>> >>RDTSC is used for the +showbudget panel.
>> > > > There are some issues
>> > > > >>with
>> > > > >>>> >>that on AMD x2 systems, but that is
>> > limited
>> > > > to the profiling code.
>> > > > >>>> >>
>> > > > >>>> >>Jay
>> > > > >>>> >>
>> > > > >>>> >>
>> > > > >>>> >>> -----Original Message-----
>> > > > >>>> >>> From:
>> > [EMAIL PROTECTED]
>> > > > >>>> >>>
>> > > > [mailto:[EMAIL PROTECTED]
>> > On
>> > > > Behalf Of
>> > > > >>>> >>> Jeffrey "botman" Broome
>> > > > >>>> >>> Sent: Wednesday, April 12, 2006 6:36 AM
>> > > > >>>> >>> To: [email protected]
>> > > > >>>> >>> Subject: Re: [hlcoders]
>> > gpGlobals->realtime
>> > > > standing still
>> > > > >>>> >>>
>> > > > >>>> >>> Jay Stelly wrote:
>> > > > >>>> >>> > What platform? (linux/win32)?  On
>> > linux
>> > > > realtime is just
>> > > > >>>> >>> accumulating
>> > > > >>>> >>> > changes from repeated calls to
>> > > > gettimeofday() Have you compared
>> > > > >>>> >>> > gpGlobals->realtime to the output of
>> > > > Plat_FloatTime() ?
>> > > > >>>> >>> Are they both
>> > > > >>>> >>> > slow/stopped or just realtime?
>> > > > >>>> >>> >
>> > > > >>>> >>> > Has anyone else encountered this
>> > problem?
>> > > > >>>> >>>
>> > > > >>>> >>> ...also, what CPU (Intel or AMD)?  Are
>> > you
>> > > > running multiple
>> > > > >>>> >>> cores and/or CPUs?  I remember recently
>> > > > reading about an AMD
>> > > > >>>> >>> problem with multiple cores (or was it
>> > > > multiple CPUs) where
>> > > > >>>> >>> the RDTSC instruction's time wasn't
>> > > > syncronized between
>> > > > >>>> >>> CPUs/cores so when called once by code,
>> > it
>> > > > would return the
>> > > > >>>> >>> ticks from core 0, when called again,
>> > it
>> > > > would return the
>> > > > >>>> >>> ticks from core 1 (which could be
>> > > > different).  This would
>> > > > >>>> >>> make the system appear to jump ahead in
>> > > > time and/or go back
>> > > > >>>> >>> in time.  If HL2 is using RDTSC instead
>> > of
>> > > > >>>> >>> QueryPerformanceCounter(), it could get
>> > odd
>> > > > results on AMD
>> > > > >>>> >>> multi-CPU systems.  If memory serves
>> > > > correctly, Windows
>> > > > >>>> >>> forces QueryPerformanceCounter() to
>> > always
>> > > > run on CPU 0, so
>> > > > >>>> >>> you don't get any discrepancy between
>> > > > calls.
>> > > > >>>> >>>
>> > > > >>>> >>> --
>> > > > >>>> >>> Jeffrey "botman" Broome
>> > > > >>>> >>>
>> > > > >>>> >>>
>> > > > _______________________________________________
>> > > > >>>> >>> To unsubscribe, edit your list
>> > preferences,
>> > > > or view the list
>> > > > >>>> >>> archives, please visit:
>> > > > >>>> >>>
>> > > >
>> > >
>> >
>> http://list.valvesoftware.com/mailman/listinfo/hlcoders
>> > > > >>>> >>>
>> > > > >>>> >>>
>> > > > >>>> >>
>> > > > >>>>
>> > > >
>> > >>_______________________________________________
>> > > > >>>> >>To unsubscribe, edit your list
>> > preferences,
>> > > > or view the
>> > > > >>>> list archives, please visit:
>> > > > >>>>
>> > > >
>> > >
>> >
>> >>http://list.valvesoftware.com/mailman/listinfo/hlcoders
>> > > > >>>> >
>> > > > >>>>
>> > > > >_______________________________________________
>> > > > >>>> >To unsubscribe, edit your list
>> > preferences, or
>> > > > view the list
>> > > > >>>> archives, please visit:
>> > > > >>>>
>> > > >
>> > >
>> >
>> >http://list.valvesoftware.com/mailman/listinfo/hlcoders
>> > > > >>>>
>> > > > >>>>
>> > _______________________________________________
>> > > > >>>> To unsubscribe, edit your list preferences,
>> > or
>> > > > view the list
>> > > > >>>> archives, please visit:
>> > > > >>>>
>> > > >
>> > >
>> >
>> http://list.valvesoftware.com/mailman/listinfo/hlcoders
>> > > > >>>>
>> > > > >>>>
>> > > > >>>
>> > > >
>> > >>>_______________________________________________
>> > > > >>>To unsubscribe, edit your list preferences,
>> > or
>> > > > view the list archives,
>> > > > >>>please visit:
>> > > >
>> > >
>> >
>> >>>http://list.valvesoftware.com/mailman/listinfo/hlcoders
>> > > > >>>
>> > > > >>>
>> > > >
>> > >>>_______________________________________________
>> > > > >>>To unsubscribe, edit your list preferences,
>> > or
>> > > > view the list archives,
>> > > > >>please visit:
>> > > >
>> > >
>> >
>> >>>http://list.valvesoftware.com/mailman/listinfo/hlcoders
>> > > > >>
>> > > >
>> > >>_______________________________________________
>> > > > >>To unsubscribe, edit your list preferences, or
>> > > > view the list archives,
>> > > > >>please visit:
>> > > >
>> > >
>> >
>> >>http://list.valvesoftware.com/mailman/listinfo/hlcoders
>> > > > >>
>> > > > >>
>> > > >
>> > >>_______________________________________________
>> > > > >>To unsubscribe, edit your list preferences, or
>> > > > view the list archives, please visit:
>> > > >
>> > >
>> >
>> >>http://list.valvesoftware.com/mailman/listinfo/hlcoders
>> > > > >
>> > > > >_______________________________________________
>> > > > >To unsubscribe, edit your list preferences, or
>> > view
>> > > > the list archives, please visit:
>> > > >
>> > >
>> >
>> >http://list.valvesoftware.com/mailman/listinfo/hlcoders
>> > > >
>> > > > _______________________________________________
>> > > > To unsubscribe, edit your list preferences, or
>> > view
>> > > > the list archives, please visit:
>> > > >
>> > >
>> >
>> http://list.valvesoftware.com/mailman/listinfo/hlcoders
>> > > >
>> > > >
>> > >
>> > > --------
>> > > My Website http://www.ammahls.com
>> > >    Lead Programer NightFall
>> > http://www.nightfallmod.net
>> > >       Developer of CST and ZHLT 3.0
>> > http://www.zhlt.info
>> > >          Team Lead - Prime -
>> > http://www.nigredostudios.com
>> > >
>> > > __________________________________________________
>> > > Do You Yahoo!?
>> > > Tired of spam?  Yahoo! Mail has the best spam
>> > protection around
>> > > http://mail.yahoo.com
>> > >
>> > > _______________________________________________
>> > > To unsubscribe, edit your list preferences, or
>> > view the list archives,
>> > > please visit:
>> > >
>> >
>> http://list.valvesoftware.com/mailman/listinfo/hlcoders
>> > >
>> > >
>> > --
>> >
>> > _______________________________________________
>> > To unsubscribe, edit your list preferences, or view
>> > the list archives, please visit:
>> >
>> http://list.valvesoftware.com/mailman/listinfo/hlcoders
>> >
>> >
>>
>> --------
>> My Website http://www.ammahls.com
>>    Lead Programer NightFall http://www.nightfallmod.net
>>       Developer of CST and ZHLT 3.0 http://www.zhlt.info
>>          Team Lead - Prime - http://www.nigredostudios.com
>>
>> __________________________________________________
>> Do You Yahoo!?
>> Tired of spam?  Yahoo! Mail has the best spam protection around
>> http://mail.yahoo.com
>>
>> _______________________________________________
>> To unsubscribe, edit your list preferences, or view the list archives,
>> please visit:
>> http://list.valvesoftware.com/mailman/listinfo/hlcoders
>>
>>
>--
>
>_______________________________________________
>To unsubscribe, edit your list preferences, or view the list archives, please 
>visit:
>http://list.valvesoftware.com/mailman/listinfo/hlcoders

_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders

Reply via email to