-- [ 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

