Jump to content
The Dark Mod Forums


Active Developer
  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by stgatilov

  1. And the blame goes to: Revision: 8380 Author: duzenko Date: 12 октября 2019 г. 2:04:12 Message: More BFG frontend bits & pieces merged ---- Modified : /trunk/renderer/tr_backend.cpp Modified : /trunk/renderer/tr_local.h Modified : /trunk/renderer/Interaction.cpp Modified : /trunk/renderer/Interaction.h Modified : /trunk/renderer/tr_light.cpp Modified : /trunk/renderer/tr_main.cpp UPDATE: If on revision 8379 I remove the call to HasActive( shadowScissor ) in idInteraction::AddActiveInteraction and take shadowScissor as vLight->scissorRect instead, then I get this problem.
  2. Yes, quickloading fixes the issue. And with r_showPrimitives 1, I can see pretty much every counter going up after load: more draws, more tris, more VBOs, even image memory is increased. Maybe some draw calls are lost, e.g. in frontend. UPDATE: At this moment people usually bisect. It should be possible, unless SVN was completely broken. This is yet another reason why developers should keep trunk working, including Linux build, Just imagine you have Linux build broken for 100+ revisions, and then realize that some of those revisions introduced a Linux-only bug, which you cannot bisect...
  3. Interestingly, I don't see the problem where Grayman showed it in the training mission. But I see completely unlit pieces of walls behind "Keys and Lockpicks" and "Gamma and Brightness" doors. UPDATE: Doing vid_restart fixes those problematic sections, but breaks different places: they become completely black so that even lantern does not help. This is accompanied with GL_INVALID_OPERATION error spamming in console. I guess vid_restart is broken for a long time already, so no surprise here.
  4. I am seeing the same issue in New Job mission, at the very beginning. Some sections of the floor are totally black, unless I enable a lantern (which lights them). Looks so weird, like if the world is partially disintegrated. Here is the video. Attached config file and console. Darkmod.cfg qconsole.log
  5. Since DXT5 format with custom channels swizzling is used by default in TDM for ages, why are normal maps still in TGAs? I mean, why they were not converted to DDS when DXT5 compression was supported?
  6. Disregard this warning about "Microsoft Visual C++ redistributable". The only case when it is a real problem is when you start TDM and it crashes right away with some dialog box. Since it is not happening to you, it is not a problem for you. Could you please tell us which version of TDM you have? Also, attach tdm_update.log file which should be created when you run tdm_update. P.S. I guess the most likely culprit is our sick server not serving some of the files.
  7. All the three libs which I posted have debugging info, so stack trace should show OpenAL function names on crash.
  8. Ehm... not directly. Is it too bad when you copy the wanted version over SVN package, then build, then rename executable? Repeat it three times, and you have three executables, each with its own version of OpenAL.
  9. Alberto, could you please comment if my suggestion would help for your goal? I'm afraid that some sort of compromise is the best we could get here. P.S. When I start hearing trendy words like Agile, DevOps, etc., I usually instinctively block myself from whatever follows...
  10. Alberto, I think we can introduce a cvar which would control warnings behavior. With possibilities: Print to console and do nothing else (like it does now). Print to console + show a few latest ones on top of the screen even with console closed (this already happens in debug builds, maybe there is even a cvar for it). Print to console + show last few, and produce a beep sound. Raise every warning to error. Errors throw exceptions, efficiently ending the current game session and going to main menu. Given the amount of already released missions, I seriously doubt we would ever have anything except p.1 as default. But we could at least recommend more annoying warning policies to mappers when they are close to finishing their maps.
  11. You should not be so bold about it. The idea of crashing if anything goes wrong is a very good idea in general, and I think a lot of programmers do so. I do so on my daily job most of the time. It is especially right because it is well-know that error-handling code is always the least-tested and the most-buggy. But I guess gamedev is somewhat different. The particular example about missing assets is rather stupid, because assets for game engine is treated as input data. Crashing from a missing asset is like if interpreter would crash from any ill-formed source code. When a mapper develops his own mission, I guess he has missing assets most of the time, and he would be very unhappy if he could not play the game because of this. Speaking about TDM, we have tons of console warnings on any FM right now. It surely could not happen if warnings were more annoying to everyone. I hope someone would clean them one day, but it is really a problem. So the main problem right now is that obvious crashes somehow report zero exit code, right? I guess we can fix it.
  12. It sounds like a good idea, but TDM has several interconnected services with a lot of data worth saving. You can put repository somewhere, but what about mantis bugtracker, invision forums, and mediawiki? The bugtracker, SVN, and forums are linking to each other a lot, so losing one of them would mean losing a lot of information about when, how and why something was done. Don't say that GitHub has issue tracker: it is very simplistic compared to mantis, and I bet it won't import all the mantis data in lossless way.
  13. You can specify the URL to an XML file of specific format into tdm_mission_list_urls cvar. You can read more about it here:
  14. UPDATE: As of November 12, in-game mission downloader works again. No tweaks/hacks required. The game has an option to store FMs on mirrors. I'm pretty sure all of them are located on mirrors. However, the game itself has no way to learn about new missions and their locations, except for ask someone else. That's why when you click "Download Missions", TDM downloads an XML file from one of the URLs stored in cvar tdm_mission_list_urls, which serves as a catalogue of all FMs available. By default this cvar points to the location on thedarkmod.com, which is not available now. So while all FMs are located on mirrors, right now TDM does not know how to get them. I have all FMs from January 2019 locally. I have reconstructed the XML file from them, and uploaded everything to my Azure storage. If you point TDM to it, then in-game downloader will work. There are two ways to do so: Execute: tdm_mission_list_urls http://tdmcdn.azureedge.net/fms/missionList.xml in game console. Then click Download Missions, and it will use my catalogue of FMs. The downside is that TDM won't remember this, so you will have to run this console command every time you restart TDM. Add +set tdm_mission_list_urls "http://tdmcdn.azureedge.net/fms/missionList.xml" to command line parameters of TDM. You can do it by taking or creating TDM shortcut on desktop, then going to its properties, and adding the underlined string after TheDarkModx64.exe. The downside is that you should not forget to remove this parameter when the TDM server is back online. Note that this is only a temporary emergency solution, and it suffers from some issues: Mission details and screenshots won't work. They are stored only on TDM server, so I have no way to reconstruct them. Release date is missing. Titles may be wrong/weird. Localizations are missing. Perhaps I can upload them too, but I tried to keep it simple. Sometimes you are allowed to download an FM you already have. This is caused by some TDM deficiency IMHO: the codenames are obviously matching. Some FMs may be outdated, recent missions are not available (the snapshot is one year old). Download speeds are not very good. Clouds are slow. So be patient ? P.S. If you use this way, then you will download FMs from my storage, and not from the original mirrors. I would be glad to point you to the mirrors, but I can't: their locations are stored in the XML file which went offline ?
  15. I have found that browser is the only RAM-consuming feature on a typical PC (and on my PCs most of the time). I think RAM manufacturers should pay money to Google for ongoing Chromium development ?
  16. Most of the errors about missing files do not terminate TDM. Missing assets usually allow to run the game, but corresponding objects look weird. There are only fatal errors which actually terminate stuff (where Windows users are dropped out of rendering engine and see a small blue window), and they happen rather rarely. Also, there are crashes, where application does not have reliable ways of doing anything. In which cases do you suggest to return nonzero exit code? I think right now you can see if anything bad happened by enabling qconsole.log via cvar and grepping it for ERROR: after TDM terminates. But note that perhaps you would see errors which don't stop users from playing the game normally.
  17. I would be glad to check it, but I guess I'm stuck at a rather old SVN revision for now.
  18. I guess there emscripten supports OpenGL-to-WebGL translation. But the OpenGL currently used in TDM is surely wider than a "subset of GLES 3". Moreover, WebGL does not support some of the features used right now. Clearly, all the window system integration, threading, and probably many more has to be rewritten in order to make it work. To be honest, I personally dislike the trend of putting everything into the browser. Doing so to hardcore games is the worst idea I ever heard.
  19. I have built RelWithDebInfo x64 library for versions 1.18.2, 1.19.0, and 1.19.1. There are here. You can replace the lib "rel" version with any of them, build TDM, and it will produce PDB with symbols for OpenAL. On the other hand, if you want to see the place in debugger, then you will have to download source code and point MSVC to it. Maybe we should build most of the libraries with debug info to make debugging easier. P.S. Conan has one major issue: it has steep learning curve. I wish more people try to use it, but understand that it is not trivial.
  20. Only if you will build it yourself. I can try to make some experiments, probably it could work with little changes --- then I could send you a patch on source code. Separating one DLL from EXE means you will either have two CRT or you need to separate CRT into its own DLL too, in which case you also need to install VC redistributable on every player's machine... Let's say we had this for 2.06 and 2.07 and it did not work well enough, so we have reverted to the old way, "acknowledging the wisdom of our ancestors" For the majority of players having one EXE with everything is much better. UPDATE: BTW, setting cvar s_nosound or something like this should disable all sound. It would probably circumvent the crash, but of course at the cost of sound. We can try to update OpenAL. Initially, we had version 1.18.2 in 2.06. Then I updated it to 1.19.0 somewhere after 2.07, but it caused some problems, so we reverted it back. Now 1.19.1 is out, maybe it would fix both problems.
  21. Where did you take PDB (debug symbols) from? Are you sure it matches the executable?
  22. The thing I am really worried about is supporting custom GLSL shaders. We have discussed it a bit without any conclusion. Imagine some mapper creates a custom GLSL shader for his material and it works. Then developers have to change something, e.g. move to newer GL version. Suddenly these custom shaders stop working because something also changes on GLSL side and the syntax must be changed. It is not clear how this could be resolved, aside from developers converting all such custom shaders and repacking missions. In case of ARB shaders, it turned out that there is only one custom shader in all the FMs ever created, and it is used only on one TV box. No player would notice it if it stops working. But GLSL is much easier to use than ARB, so it is much more likely that mappers would use it. This is probably the only reason for weak public exposure.
  23. I'm trying to find usages of every shader we have. It might be interesting to note that this murky water is used in Volta 2 FM ?. It seems to be the only usage to this date. It was also copied into maps ws4_warrens, penny3, northdale1, but none of them actually use such materials.
  24. Speaking of workaround: I think it is possible to override timezone for one process only. Just set TZ environment variable in the shell from which you start TDM. See more details in this comment. Duzenko, the DST flag should have been set to "uncertain" (negative value). I have started discussion in developer forums about how should we fix the problem, and I believe removing the whole piece of code is much more reliable than trying to fix it ?
  25. Glad it helped! And thanks for going through all of this ? The problem happens only if all the conditions hold true: You have a very recent version of glibc (like 2.29). You have a timezone where DST (i.e. daylight saving time) is not used (and was never used). I guess it also depends on some undefined behavior (uninitialized variable). I have already created issue 5042 about it. Can't say exactly how we would fix it, but we definitely would do that for 2.08. Don't want to rush decisions right now. Bad news is that it is highly unlikely that an official fix will come out before 2.08, given that we have already had one "hotfix" version of 2.07. Meanwhile, setting any timezone which has DST can be used as workaround.
  • Create New...