• SrcDemo² - Render smoother Source engine movies, faster.
    276 replies, posted
Alright, gonna give that a shot with DOTA 2 later this week. Thanks.
Released a new build. You can download it from [url]http://code.google.com/p/srcdemo2/downloads/list[/url] as usual. Changes include: - Relicensed under the [url=http://www.opensource.org/licenses/bsd-license.php]New (2-clause) BSD License[/url] (code was previously under the GPL). - Moved around libraries and utilities to make way for non-Windows versions. - The Windows installer now offers to uninstall the previous version of SrcDemo² before installing itself, if any exists. It is recommended to do so for this particular version, as some files have been moved around such that simply overwriting the installation would leave some useless files around. I realize that this means the only reason to upgrade is to enjoy the added freedom of the BSD license. Other than that, this should pave the way to make the OS X and Linux versions possible. The source code is available [url=http://code.google.com/p/srcdemo2/source/browse/?r=95#svn%2Ftrunk%2Fsrc%2Fnet%2Fsrcdemo]here[/url].
] host_framerate 90 ] startmovie srcdemo/someprefix_ Started recording movie, frames will record after console is cleared... ] playdemo demo Playing demo from demo.dem. Left 4 Dead 2 Map: c10m1_caves Players: 1 (0 bots) / 4 humans Build: 4777 Server Number: 1 CAsyncWavDataCache: 2 .wavs total 0 bytes, 0.00 % of capacity Error! Variable "$blendframes" is multiply defined in material "particle/smoke1/smoke1_add_nearcull"! No pure server whitelist. sv_pure = 0 KeyValues Error: RecursiveLoadFromBuffer: got EOF instead of keyname in file materials/vgui/s_panel_gambler_incap.vmt UnlitGeneric, (*proxies*), (*AnimatedTexture*), KeyValues Error: RecursiveLoadFromBuffer: got EOF instead of keyname in file materials/vgui/s_panel_coach_incap.vmt UnlitGeneric, (*proxies*), (*AnimatedTexture*), KeyValues Error: RecursiveLoadFromBuffer: got EOF instead of keyname in file materials/vgui/s_panel_mechanic_incap.vmt UnlitGeneric, (*proxies*), (*AnimatedTexture*), KeyValues Error: RecursiveLoadFromBuffer: got EOF instead of keyname in file materials/vgui/s_panel_producer_incap.vmt UnlitGeneric, (*proxies*), (*AnimatedTexture*), KeyValues Error: RecursiveLoadFromBuffer: got EOF instead of keyname in file materials/vgui/s_panel_biker_incap.vmt UnlitGeneric, (*proxies*), (*AnimatedTexture*), KeyValues Error: RecursiveLoadFromBuffer: got EOF instead of keyname in file materials/vgui/s_panel_manager_incap.vmt UnlitGeneric, (*proxies*), (*AnimatedTexture*), KeyValues Error: RecursiveLoadFromBuffer: got EOF instead of keyname in file materials/vgui/s_panel_teenangst_incap.vmt UnlitGeneric, (*proxies*), (*AnimatedTexture*), Error! Variable "$blendframes" is multiply defined in material "particle/smoke1/smoke1_add_nearcull"! Redownloading all lightmaps KeyValues Error: RecursiveLoadFromBuffer: got EOF instead of keyname in file resource/UI/ZombiePanel.res resource/UI/ZombiePanel.res, (*TankTakeover*), (*BackgroundFill*), KeyValues Error: RecursiveLoadFromBuffer: got EOF instead of keyname in file resource/UI/ZombiePanel.res resource/UI/ZombiePanel.res, (*TankTakeover*), (*BackgroundFill*), Receiving uncompressed update from server Couldn't write movie snapshot to file srcdemo/someprefix_0000.tga. WaveFixupTmpFile( 'srcdemo/someprefix_.WAV' ) failed to open file for editing Stopped recording movie... holidaytheory unpaused the game Alright this is the console. I suspect the problem is with dokan as it simply isn't mounting anything. Would it be too hard to specify exactly how to install dokan? If it didn't have the java runtime environ it simply wouldn't launch so...probably dokan.
[QUOTE=cardboardtheory;34027400]] host_framerate 90 ] startmovie srcdemo/someprefix_ Started recording movie, frames will record after console is cleared... ] playdemo demo Playing demo from demo.dem. Left 4 Dead 2 Map: c10m1_caves Players: 1 (0 bots) / 4 humans Build: 4777 Server Number: 1 CAsyncWavDataCache: 2 .wavs total 0 bytes, 0.00 % of capacity Error! Variable "$blendframes" is multiply defined in material "particle/smoke1/smoke1_add_nearcull"! No pure server whitelist. sv_pure = 0 KeyValues Error: RecursiveLoadFromBuffer: got EOF instead of keyname in file materials/vgui/s_panel_gambler_incap.vmt UnlitGeneric, (*proxies*), (*AnimatedTexture*), KeyValues Error: RecursiveLoadFromBuffer: got EOF instead of keyname in file materials/vgui/s_panel_coach_incap.vmt UnlitGeneric, (*proxies*), (*AnimatedTexture*), KeyValues Error: RecursiveLoadFromBuffer: got EOF instead of keyname in file materials/vgui/s_panel_mechanic_incap.vmt UnlitGeneric, (*proxies*), (*AnimatedTexture*), KeyValues Error: RecursiveLoadFromBuffer: got EOF instead of keyname in file materials/vgui/s_panel_producer_incap.vmt UnlitGeneric, (*proxies*), (*AnimatedTexture*), KeyValues Error: RecursiveLoadFromBuffer: got EOF instead of keyname in file materials/vgui/s_panel_biker_incap.vmt UnlitGeneric, (*proxies*), (*AnimatedTexture*), KeyValues Error: RecursiveLoadFromBuffer: got EOF instead of keyname in file materials/vgui/s_panel_manager_incap.vmt UnlitGeneric, (*proxies*), (*AnimatedTexture*), KeyValues Error: RecursiveLoadFromBuffer: got EOF instead of keyname in file materials/vgui/s_panel_teenangst_incap.vmt UnlitGeneric, (*proxies*), (*AnimatedTexture*), Error! Variable "$blendframes" is multiply defined in material "particle/smoke1/smoke1_add_nearcull"! Redownloading all lightmaps KeyValues Error: RecursiveLoadFromBuffer: got EOF instead of keyname in file resource/UI/ZombiePanel.res resource/UI/ZombiePanel.res, (*TankTakeover*), (*BackgroundFill*), KeyValues Error: RecursiveLoadFromBuffer: got EOF instead of keyname in file resource/UI/ZombiePanel.res resource/UI/ZombiePanel.res, (*TankTakeover*), (*BackgroundFill*), Receiving uncompressed update from server Couldn't write movie snapshot to file srcdemo/someprefix_0000.tga. WaveFixupTmpFile( 'srcdemo/someprefix_.WAV' ) failed to open file for editing Stopped recording movie... holidaytheory unpaused the game Alright this is the console. I suspect the problem is with dokan as it simply isn't mounting anything. Would it be too hard to specify exactly how to install dokan? If it didn't have the java runtime environ it simply wouldn't launch so...probably dokan.[/QUOTE]I'm pretty sure you installed it right; it checks the installed version of Dokan on start and will tell you if Dokan is not installed or is not the right version. Anyway: - Go to [url]http://dokan-dev.net/en/download/[/url] - Download dokan-0.6.0 (2011/01/10) - If you already have a version of Dokan installed, uninstall it and [b]reboot after the uninstallation[/b] - Install the version you just downloaded; when it asks you for the library/driver versions, choose the 32-bit library (Dokan Library x86), and choose the driver that corresponds to your architecture (Dokan Driver x86 on 32-bit Windows, Dokan Driver x64 on 64-bit Windows) - [b]Reboot[/b] - Make sure you're using a 32-bit JVM (run "C:\wherever-the-jre-is\bin\java.exe" -version; if it says "64-bit" then it's not right; if it says "32-bit" or if it doesn't say anything then it's alright) - Start SrcDemo² and hope for the best
I've given up on both Fraps and DXtory, is this a good replacement?
[QUOTE=Raijin;34164939]I've given up on both Fraps and DXtory, is this a good replacement?[/QUOTE]This is not a replacement. It is simply is an extension to Source Recorder. In itself, it has nothing to do with the game or anything about recording; in fact, [b]SrcDemo2 doesn't contain any video capturing code at all[/b]. It's simply meant to be using in conjunction with Source Recorder. So a slightly better question would be "Is Source Recorder a good replacement for Fraps?", but that's still not a very good question because they simply don't operate the same way at all. Fraps captures from the game as it is running, whereas Source Recorder is part of the Source engine itself and essentially forces it to render at a certain framerate and to write out all resulting frames to disk, regardless of the execution speed that the game has to slow down to. By this difference in mode of operation, it is clear that Source Recorder is capable of achieving much higher quality and framerates than Fraps and the like, since it is not limited by hard drive write speed and game execution speed. Still, since you asked this question, I assume that you don't know what Source Recorder is yet; I advise you [url=https://developer.valvesoftware.com/wiki/Demo_Recording_Tools]look[/url] [url=https://developer.valvesoftware.com/wiki/Demo_Video_Creation]into[/url] [url=http://wiki.teamfortress.com/wiki/Help:Recording_demos]that[/url] and learn it in depth on its own before you try SrcDemo2. Otherwise that's twice the learning curve and twice the possible pitfalls you will run into.
[QUOTE=Raijin;34164939]I've given up on both Fraps and DXtory, is this a good replacement?[/QUOTE] Yes. SrcDemo2 takes a little bit more work to get running, but the end result is absolutely phenomenal. It will blow away anyone who watches your video. No lie.
So I tried running SrcDemo2 with the DOTA 2 replay system this morning. Unfortunately, the L4D2 rate commands still don't work. I think this is because, unlike the Source demo system, the replay system is still connected to a server. DOTA 2 has two players - demo and replay, with replay being much more advanced and user friendly. However, when using replay, it was the camera that lagged and not the models, so there is obviously a difference between the two systems. I'll try with a demo later but don't keep your hopes up :c.
Not a formal update, but the version control system has been changed to Git. The main repository is still on Google Code. [url=http://code.google.com/p/srcdemo2/source/browse/]It is available here[/url]. Additionally, there is now [url=https://github.com/EtiennePerot/srcdemo2]a GitHub clone[/url] and [url=https://bitbucket.org/EtiennePerot/srcdemo2]a Bitbucket clone[/url] as well.
[QUOTE=Reimu;34206192]So I tried running SrcDemo2 with the DOTA 2 replay system this morning. Unfortunately, the L4D2 rate commands still don't work. I think this is because, unlike the Source demo system, the replay system is still connected to a server. DOTA 2 has two players - demo and replay, with replay being much more advanced and user friendly. However, when using replay, it was the camera that lagged and not the models, so there is obviously a difference between the two systems. I'll try with a demo later but don't keep your hopes up :c.[/QUOTE] Sorry for being late (I just noticed thanks to WindPower's bump) What I know from Replay is that its a seperate system and probably has its own commands. I know that sourceTV (the thing replay's evolved from) had commands such as tv_snapshotrate tv_maxrate tv_transmitall and other commands, so the replay system may have similar effecting commands. [url]https://developer.valvesoftware.com/wiki/SourceTV[/url] [url]http://wiki.teamfortress.com/wiki/Replay[/url]
I may give it a shot later. However, both the Source TV and regular demo system have the same issue, so I don't know for certain. DOTA 2 IS getting a new replay system in one of the upcoming updates, however, so it's best if I just put any renders on hold until later.
[QUOTE=Reimu;34348932]I may give it a shot later. However, both the Source TV and regular demo system have the same issue, so I don't know for certain. DOTA 2 IS getting a new replay system in one of the upcoming updates, however, so it's best if I just put any renders on hold until later.[/QUOTE] Its definitely worth contacting the engine net code handler at VALVe, I may later, but you should for your special case as well.
Well I have given up on getting it to work for L4D2, it wouldn’t be useful anyways. However if it doesn’t work for GMod I will cut my right arm off and set it ablaze for being stupid enough to fail 3000 times
[QUOTE=cardboardtheory;34367065]Well I have given up on getting it to work for L4D2, it wouldn’t be useful anyways. However if it doesn’t work for GMod I will cut my right arm off and set it ablaze for being stupid enough to 3000 times[/QUOTE]I'm sorry >: At this point, I don't really know what else to tell you (besides to try it on another computer). MaxOfS2D has had success using Gmod with it, as shown on the first page of this thread, so it definitely is possible. (And if all else fails, you can still use good old Source Recorder)
No, it's not your problem. I am at fault, after all its worked several times for others. Anyways, somewhat the same issue. ] host_framerate 1500 ] startmovie srcdemo/name_ Started recording movie, frames will record after console is cleared... ] playdemo name Browser Message: Uncaught ReferenceError: SetStatusChanged is not defined - :0Playing demo from name.dem. Lua initialized (Lua 5.1) > SharpeYe is in normal mode. Now querying Version. Registering gamemode 'sandbox' derived from 'base' Sending 268 'User Info' ConVars to server (cl_spewuserinfoconvars to see) Scanning for downloaded fonts.. Could not find table "downloadables" Could not find table "modelprecache" Could not find table "genericprecache" Could not find table "soundprecache" Could not find table "decalprecache" Could not find table "instancebaseline" Could not find table "lightstyles" Could not find table "userinfo" Could not find table "DynamicModels" Could not find table "server_query_info" Could not find table "ParticleEffectNames" Could not find table "EffectDispatch" Could not find table "VguiScreen" Could not find table "Materials" Could not find table "InfoPanel" Could not find table "Scenes" Could not find table "ServerMapCycle" Could not find table "GameRulesCreation" Could not find table "OgfGiyegPNbFOf" Could not find table "pfhremThHuasw" Could not find table "FiifuvFjTSoiLjgH" Redownloading all lightmaps Couldn't write movie snapshot to file srcdemo/name_0000.tga. If Dokan is doing something wrong, srcdemo will tell you, right? Should be the same with Java, if they don't work the thing just won't run. If it just won't mount... I've tried running it in admin mode, everything...if what I entered in the console is correct, and this: [IMG]http://i.imgur.com/0fxFS.png[/IMG] is correct, I guess it's time to call it a day. However, judging by other's videos, the program is excellent! If it can't be solved, thanks for your effort anyways.
[QUOTE=cardboardtheory;34432298]No, it's not your problem. I am at fault, after all its worked several times for others. Anyways, somewhat the same issue. ] host_framerate 1500 ] startmovie srcdemo/name_ Started recording movie, frames will record after console is cleared... ] playdemo name Browser Message: Uncaught ReferenceError: SetStatusChanged is not defined - :0Playing demo from name.dem. Lua initialized (Lua 5.1) > SharpeYe is in normal mode. Now querying Version. Registering gamemode 'sandbox' derived from 'base' Sending 268 'User Info' ConVars to server (cl_spewuserinfoconvars to see) Scanning for downloaded fonts.. Could not find table "downloadables" Could not find table "modelprecache" Could not find table "genericprecache" Could not find table "soundprecache" Could not find table "decalprecache" Could not find table "instancebaseline" Could not find table "lightstyles" Could not find table "userinfo" Could not find table "DynamicModels" Could not find table "server_query_info" Could not find table "ParticleEffectNames" Could not find table "EffectDispatch" Could not find table "VguiScreen" Could not find table "Materials" Could not find table "InfoPanel" Could not find table "Scenes" Could not find table "ServerMapCycle" Could not find table "GameRulesCreation" Could not find table "OgfGiyegPNbFOf" Could not find table "pfhremThHuasw" Could not find table "FiifuvFjTSoiLjgH" Redownloading all lightmaps Couldn't write movie snapshot to file srcdemo/name_0000.tga. If Dokan is doing something wrong, srcdemo will tell you, right? Should be the same with Java, if they don't work the thing just won't run. If it just won't mount... I've tried running it in admin mode, everything...if what I entered in the console is correct, and this: [IMG]http://i.imgur.com/0fxFS.png[/IMG] is correct, I guess it's time to call it a day. However, judging by other's videos, the program is excellent! If it can't be solved, thanks for your effort anyways.[/QUOTE]Well it says "garrysmod\New folder" in that screenshot, so the command would be "startmovie "New folder/name_"", not "startmovie srcdemo/name_". Other than that, it looks all correct.
Well I found some interesting info about the error on the TF2 wiki: Saving a replay movie with the TGA/WAV option only saves the .tga image sequence. The audio stream does not save as the game appears to have problems creating the .wav file: WaveFixupTmpFile( '.mytempwave.WAV' ) failed to open file for editing Would this be any help in finding a fix?
[QUOTE=cardboardtheory;34434257]Well I found some interesting info about the error on the TF2 wiki: Saving a replay movie with the TGA/WAV option only saves the .tga image sequence. The audio stream does not save as the game appears to have problems creating the .wav file: WaveFixupTmpFile( '.mytempwave.WAV' ) failed to open file for editing Would this be any help in finding a fix?[/QUOTE]This only applies to the TF2 replay system; regular Source engine demos should work fine.
And this from SPUF: I found a way to make it so you can record tga files with a wav file instead of just getting the raw file. instead of just typing "startmovie aa h264", add this to the line so it reads: startmovie aa h264 tga wav it will give you the tga files and the wav file like it normally would. a workaround that took me the whole of a few minutes to figure out.. I'm going to try it except with srcdemo. Hopefully it'll turn out okay :p automerge arrghhh Oh shit. Just found this on the SPUF thread. Does it have to be garrysmod/garrysmod/srcdemo?
Didn't you just have to create a file called mytempwave.wav in the tf2 folder to fix that?
Oh my god I got it to work WindPower, you are the best. This program is fabulous. Also you might want to note in the OP that the srcdemo folder should be placed in the game folder inside of the game folder, that is gamename/gamename. Great work. Thanks for your continued help.
Hi, I've been using srcdemo2 on L4D2 and thought I'd share some helpful hints. If you're recording new footage, and have a Sourcemod-enabled server or local client, you can set nb_update_frequency 0 to force AI-controlled infected to update every tick instead of every third tick. This can help the smoothness in playback of the demo. Note that this can't be done for existing demos--you have to set nb_update_frequency 0 when you're making the demo. If you're just trying to record certain scenes or something and not live gameplay, you can use a [url=http://l4d2.prodigysim.com/tickrate_enabler/]Tickrate Enabler[/url] to enable the -tickrate command line option, and get a 100 tick server/local client to use for recording. However, this breaks boomer vomit range and a number of other pieces of gameplay, so it's not recommended for any actual gameplay. Now I have a question which may or may not be off topic. I like to use the demoui's editor to set ChangePlayBackRate events in my video, which I normally use when recording with fraps or dxtory. However, when host_framerate is nonzero, these values don't get used :(. Does anyone know a workaround or a way to make these work? I also have general instability issues. It seems like dokan crashes sometimes or something, and the game will report "Couldn't write movie snapshot to file srcdemo\myvideo35457.tga.", so my recording ends early :( srcdemo also freezes upon deactivation at this point.
[QUOTE=ProdigySim;34638872]Hi, I've been using srcdemo2 on L4D2 and thought I'd share some helpful hints. If you're recording new footage, and have a Sourcemod-enabled server or local client, you can set nb_update_frequency 0 to force AI-controlled infected to update every tick instead of every third tick. This can help the smoothness in playback of the demo. Note that this can't be done for existing demos--you have to set nb_update_frequency 0 when you're making the demo. If you're just trying to record certain scenes or something and not live gameplay, you can use a [url=http://l4d2.prodigysim.com/tickrate_enabler/]Tickrate Enabler[/url] to enable the -tickrate command line option, and get a 100 tick server/local client to use for recording. However, this breaks boomer vomit range and a number of other pieces of gameplay, so it's not recommended for any actual gameplay. Now I have a question which may or may not be off topic. I like to use the demoui's editor to set ChangePlayBackRate events in my video, which I normally use when recording with fraps or dxtory. However, when host_framerate is nonzero, these values don't get used :(. Does anyone know a workaround or a way to make these work? I also have general instability issues. It seems like dokan crashes sometimes or something, and the game will report "Couldn't write movie snapshot to file srcdemo\myvideo35457.tga.", so my recording ends early :( srcdemo also freezes upon deactivation at this point.[/QUOTE]Dunno about the non-zero host_framerate, sorry. As for general instability, can't really know what it is without more information than that >: A debug log, or some kind of pattern when it fails (always at a specific frame number for example)
[QUOTE=WindPower;34639392]Dunno about the non-zero host_framerate, sorry. As for general instability, can't really know what it is without more information than that >: A debug log, or some kind of pattern when it fails (always at a specific frame number for example)[/QUOTE] I'll run it in debug mode next time I'm using it, thanks. It looks like if I want to change the recording rate in the middle of a record, I'm going to have to figure out timings with wait commands somehow. But even then, the audio isn't going to sync up :( Oh well, worth a shot.
Released a new build today. You can download it from [url]http://code.google.com/p/srcdemo2/downloads/list[/url] as usual. Changes include: - Wrapped Dokan library in order to make non-Windows platforms share the filesystem code - Typing "?" as log name in debug mode will guess a proper location for the log file - Added some logic in the executable wrapper to attempt unmounting on application start and exit (to prevent Dokan driver BSODs in case of application crash) - Changed "shutter angle" explanatory link to [url=http://code.google.com/p/srcdemo2/wiki/ShutterAngle]Google Code Wiki page[/url] - Reduced default audio buffer size from 4 megabytes to 1 megabyte - Added "(Unstable)" to "Enable preview" checkbox label - Made preview picture disabled when the application does not have focus to further mitigate the memory access error in Qt - Bundled Apache libraries inside main package instead of external files (makes installation size smaller) - Slight performance improvements in non-debug mode - Now with 100% more secret stoats And I'll just leave this here for now: [img]http://upload.gaiatools.com/files/srcdemo-osx_0.png[/img] The source code is available [url=https://code.google.com/p/srcdemo2/source/browse/?r=5eb1dccc01563f63c64c78085012d17706bcce39#git%2Fsrc%2Fnet%2Fsrcdemo]here[/url].
[QUOTE=ProdigySim;34638872]Hi, I've been using srcdemo2 on L4D2 and thought I'd share some helpful hints. If you're recording new footage, and have a Sourcemod-enabled server or local client, you can set nb_update_frequency 0 to force AI-controlled infected to update every tick instead of every third tick. This can help the smoothness in playback of the demo. Note that this can't be done for existing demos--you have to set nb_update_frequency 0 when you're making the demo. If you're just trying to record certain scenes or something and not live gameplay, you can use a [url=http://l4d2.prodigysim.com/tickrate_enabler/]Tickrate Enabler[/url] to enable the -tickrate command line option, and get a 100 tick server/local client to use for recording. However, this breaks boomer vomit range and a number of other pieces of gameplay, so it's not recommended for any actual gameplay. Now I have a question which may or may not be off topic. I like to use the demoui's editor to set ChangePlayBackRate events in my video, which I normally use when recording with fraps or dxtory. However, when host_framerate is nonzero, these values don't get used :(. Does anyone know a workaround or a way to make these work? I also have general instability issues. It seems like dokan crashes sometimes or something, and the game will report "Couldn't write movie snapshot to file srcdemo\myvideo35457.tga.", so my recording ends early :( srcdemo also freezes upon deactivation at this point.[/QUOTE] Pretty awesome, maybe hope for L4D isn't gone for srcdemo! [editline]11th February 2012[/editline] There's a problem with the new update, deactivating it will have permission problems if not running under administrator.
[QUOTE=cardboardtheory;34660043][editline]11th February 2012[/editline] There's a problem with the new update, deactivating it will have permission problems if not running under administrator.[/QUOTE]What exactly do you mean? What tells you there's a permission problem, and what does that cause ("problem" is pretty vague)? I ask because running as administrator or not running as administrator makes no difference for me.
Re: My tga write error issue. It looks like perhaps a performance issue from srcdemo2's end. When I start recording ( host_framerate 960, 180 deg, blendrate 32, framerate 30 ), I get about 30fps recording speed according to srcdemo2. Good performance. L4D2 uses about 0-4% CPU and 1.1GB of RAM. The java.exe*32 instance for srcdemo uses ~10% CPU and 150MB of RAM or so. As the number of recorded frames increases, the performance degrades. After about 20k frames recorded, I'm at an average 15fps recording speed. L4D2's CPU and RAM usage look about the same, but java.exe*32 is now hitting ~18% CPU usage. Once I hit about 32k frames recorded, I'm getting less than 10fps recording speed--with an average of 5 or 6 fps. L4D2's process still looks normal, but the java.exe*32 is using 22-25% CPU (maxing one of my cores?) and it's nearly at 350MB of RAM usage. Every once in a while from this point, performance will drop to ~1fps for a few frames. When I get unlucky, during one of these severe framerate dips L4D2 will report that it has failed to write a TGA out: [quote]Couldn't write movie snapshot to file srcdemo2\nirvanacbktank2X37473.tga.[/quote] I did this particular run in debug mode with logging, so I have the relevant logs. Interestingly, it looks like srcdemo2 gets this exact frame that l4d2 complains about. Here's the last 50 or so lines of the log where it starts mentioning nirvanacbktank2X37473.tga: [url]http://pastie.org/private/b4ufp4o4k8fhp21bqyhgha[/url] Perhaps the lines about writing the last of the audio buffer are useful. And I zipped up the whole log just in case you really want to read an 82MB text file: [url]http://l4d2.prodigysim.com/srcdemo2-2012-02-17-at-07-52-59-us46j0.7z[/url] I suppose a good test case to rule out L4D2 being the issue would be to record 37,000 frames with source recorder alone. I guess I could perhaps test that if I wrote some script to delete them as they're made. Anyway, if you can read anything into this and figure out the issue, amazing. I'd really like to be able to record more than 30 second segments at once.
[QUOTE=ProdigySim;34740929]Re: My tga write error issue. It looks like perhaps a performance issue from srcdemo2's end. When I start recording ( host_framerate 960, 180 deg, blendrate 32, framerate 30 ), I get about 30fps recording speed according to srcdemo2. Good performance. L4D2 uses about 0-4% CPU and 1.1GB of RAM. The java.exe*32 instance for srcdemo uses ~10% CPU and 150MB of RAM or so. As the number of recorded frames increases, the performance degrades. After about 20k frames recorded, I'm at an average 15fps recording speed. L4D2's CPU and RAM usage look about the same, but java.exe*32 is now hitting ~18% CPU usage. Once I hit about 32k frames recorded, I'm getting less than 10fps recording speed--with an average of 5 or 6 fps. L4D2's process still looks normal, but the java.exe*32 is using 22-25% CPU (maxing one of my cores?) and it's nearly at 350MB of RAM usage. Every once in a while from this point, performance will drop to ~1fps for a few frames. When I get unlucky, during one of these severe framerate dips L4D2 will report that it has failed to write a TGA out: I did this particular run in debug mode with logging, so I have the relevant logs. Interestingly, it looks like srcdemo2 gets this exact frame that l4d2 complains about. Here's the last 50 or so lines of the log where it starts mentioning nirvanacbktank2X37473.tga: [url]http://pastie.org/private/b4ufp4o4k8fhp21bqyhgha[/url] Perhaps the lines about writing the last of the audio buffer are useful. And I zipped up the whole log just in case you really want to read an 82MB text file: [url]http://l4d2.prodigysim.com/srcdemo2-2012-02-17-at-07-52-59-us46j0.7z[/url] I suppose a good test case to rule out L4D2 being the issue would be to record 37,000 frames with source recorder alone. I guess I could perhaps test that if I wrote some script to delete them as they're made. Anyway, if you can read anything into this and figure out the issue, amazing. I'd really like to be able to record more than 30 second segments at once.[/QUOTE]Well I have good news for you~ I've been working on an update to fix just that. I am currently attempting to render 15 minute segments of Dear Esther; will release update once I confirm it all works. The memory leak problem is still there (that problem is part of the Dokan bindings, not much I can do about it except rewriting the Dokan bindings, which I plan to do eventually) but it lasts much, much longer (right now for me it lasts for about 160,000 game frames, which is about 6 minutes. Should be good enough for most things; not good enough for a whole left 4 dead or TF2 match yet, but certainly easier to work with). Also changed the garbage collection algorithm to run on a separate core so that garbage collection doesn't hinder image blending by using up the same CPU.
Released a new build today. You can download it from [url]http://code.google.com/p/srcdemo2/downloads/list[/url] as usual. Changes include: - Launcher will now automatically probe the Java installation to check if a [url=http://stackoverflow.com/questions/198577/real-differences-between-java-server-and-java-client]server JVM[/url] is available, and use that instead if there is. The server JVM takes longer to start but offers better performance. If you've downloaded Java regularly or don't know what this is about, then you probably don't have a server JVM. You can get it by [url=http://www.oracle.com/technetwork/java/javase/downloads/index.html]downloading the JDK corresponding to the version of Java you already have installed[/url] (most likely version 6, so you would press the "JDK" download button for "Java SE 6 Update 31" at the time of this writing), installing it, then copying "(JDK installation path)\bin\server" to "(JRE installation path)\bin\server". You can then check if it worked by running the command "(JRE installation path)\bin\java -server -version". If it doesn't complain, then you did it right. - Force garbage collection to be performed regularly, despite Java supposedly guaranteeing this in the first place - Default garbage collection algorithm is now the parallel one, which means it should not impact performance on multicore systems (performance should stay the same as long as the programs runs) - Default maximum allowed memory usage increased to 1024 MB - Added various default flags to the JVM to reduce memory usage and increase performance further (string cache, compressed strings, lower compilation threshold, smaller default thread stack size, bypass class loader checks) As indicated above, this build should last much longer than all previous ones. I hereby shamelessly present the Dear Esther walkthrough I have used as a benchmark for this build (1080p highly recommended, as usual): [video=youtube;o_UbHu4Un3o]http://www.youtube.com/watch?v=o_UbHu4Un3o[/video] (Full disclosure: This clip is actually the concatenation of 3 separate renders because I started rendering this before all the above changes were made, and I uploaded the result once I had it. I then rendered the next part of the walkthrough (The Buoy, 15 minutes, 450fps) with this build in only 2 parts but have not uploaded it yet. I hope to be able to render the third or fourth part in only one go...) The source code is available [url=https://code.google.com/p/srcdemo2/source/browse/?r=cf776e1559fc45a5c81e4aa6f7e7e043fd904df4#git%2Fsrc%2Fnet%2Fsrcdemo]here[/url].
Sorry, you need to Log In to post a reply to this thread.