Froschkoenig84 Posted September 9, 2020 Report Share Posted September 9, 2020 It's not working. And it seems like, I'm not the only one. Installed version: 0ad-0.0.23b-alpha.This Patch wasn't working for me. my machine (Windows 10 Enterprise): Quote DEVICE # DETAILS CPU 1 AMD Ryzen TR 3960X CPU-COOLER 1 Noctua NH-U14S TR4-SP3 MAINBOARD 1 MSI TRX40 PRO WIFI 7C60-005R RAM 1 G.SKill RipJaws V 256GB (8x32GB, Octa Kit) DDR4-3200 CL16 GRAPHIC 1 ASRock RX 5700XT Taichi X8 OC+ DDR6 8GB M.2 NVMe 2 CORSAIR MP600 2TB NVMe, PCIe-4.0 PWR 1 be quiet! STRAIGHT POWER 11 Platinum 1000W CASE 1 Fractal Design Define 7 XL Black Any ideas? crashlog.dmp crashlog.txt Quote Link to comment Share on other sites More sharing options...
Stan` Posted September 10, 2020 Report Share Posted September 10, 2020 See What do you mean was not working ? cc @Itms Quote Link to comment Share on other sites More sharing options...
OptimusShepard Posted September 10, 2020 Report Share Posted September 10, 2020 (edited) I guess the workaround for the hardware detection is not working for the Threadrippers, so it crashes by starting the game. I remember, there was another Threadripper guy, who didn't get it to work. So I think, we should drop the detection, or do the correct implementation. Especially as we have good chances, to get the next problems, when the new Ryzen gen will be released. Maybe @Imarok could do that, if he has the time? For more informations have a look on the post at the AMDs forum here. Edited September 10, 2020 by OptimusShepard Quote Link to comment Share on other sites More sharing options...
Froschkoenig84 Posted September 10, 2020 Author Report Share Posted September 10, 2020 Should I start a ticket (today I got the verification mail)? Is there a bug-report in your list? Because all Ryzens (and also TRs) in the future? A lot of RoG-Fans are using TRs now. I'm not a "heavy-gamer", just a C#.NET Developer, who needed a heavy machine. That's all. But I really wanna play that game, because Empires-Apart and War-Selection is simply just not the same. :/ Another question... Why is 0.A.D. not part of the steam community? Please don't misunderstand, I think your work is fantastic and as soon as the game starts and runs for me and I like it, I will donate money too. Quote Link to comment Share on other sites More sharing options...
Silier Posted September 10, 2020 Report Share Posted September 10, 2020 Hi @Froschkoenig84, 0ad is not on steam, because licenses are not compatible. Quote Link to comment Share on other sites More sharing options...
Froschkoenig84 Posted September 10, 2020 Author Report Share Posted September 10, 2020 (edited) On 9/10/2020 at 6:28 PM, Angen said: Hi @Froschkoenig84, 0ad is not on steam, because licenses are not compatible. Okay, I understand. But despite all the pros, ... maybe the better way. I like your concepts. Edited September 13, 2020 by Froschkoenig84 Quote Link to comment Share on other sites More sharing options...
OptimusShepard Posted September 11, 2020 Report Share Posted September 11, 2020 Hello @Froschkoenig84 I may have a workaround for you. system.zip Try this, and give me feedback please. Our problem with the wrong hardware detection is, that we read the new CPUIDs in a wrong way. So we get a wrong index, to interpret the cache associativity value. My workaround for you replaces the associativityTable[idxAssociativity] directly by the associativity value. @Stan` I was thinking, if our timer problems are CPUID problems? Do we read the CPUID to get the right timer? I know from my SIMD patches, that we use CPUID in other parts of the code too. I think it might be good, to have a look on this implementations. Maybe they need changes too. I don't know if the CPUID changes came with Zen2, or earlier. If the changes are older, we may had only luck, that the first Zen CPUs didn't crash too. But this is only speculating. Quote Link to comment Share on other sites More sharing options...
Stan` Posted September 11, 2020 Report Share Posted September 11, 2020 Our problem (On windows at least) is that we trusted the hardware and I guess janwas made educated guesses about it which has worked until AMD decided to mess things up. Also there are two different bugs. Hardware detection which is probably too precise for its own good and for our needs, and the timer code. AFAIK we only use the former to detect the timer then use a custom function for TSC or with my patch QPC which is part of the windows API. I chatted a bit with @wraitii on the SIMD changes and I believe the discrepancy on Linux vs Windows is due to the fact some optmizations are disabled on MSVC while they are "on" on Linux. Quote Link to comment Share on other sites More sharing options...
Froschkoenig84 Posted September 13, 2020 Author Report Share Posted September 13, 2020 (edited) On 9/11/2020 at 10:58 AM, OptimusShepard said: Hello @Froschkoenig84 I may have a workaround for you. system.zip Try this, and give me feedback please. Our problem with the wrong hardware detection is, that we read the new CPUIDs in a wrong way. So we get a wrong index, to interpret the cache associativity value. My workaround for you replaces the associativityTable[idxAssociativity] directly by the associativity value. The CPUIDs... I didn't know, that they had change the CPUIDs with the new AMD processors. Maybe it's also interesting for me by using .NET. But I noticed that GoLang has a new patch, specifically for modern AMD Ryzens and TRs. But I don't know what it was all about either. Any problems in "single thread mode" or something that. Because your patch... No, I'm sorry to say that... ...it's not working. Attached: log files (PS: system_info.txt is empty) crashlog.dmp crashlog.txt Edited September 13, 2020 by Froschkoenig84 Quote Link to comment Share on other sites More sharing options...
OptimusShepard Posted September 13, 2020 Report Share Posted September 13, 2020 8 minutes ago, Froschkoenig84 said: No, I'm sorry to say that... I'm sorry to hear that. I will have a look on the code again, but I guess, without the possibility of debugging, my chances aren't that good to find a quick workaround. I have also already tried, to do the correct implementation, but the CPUID and the technical backround ist out of my knowledge. I hope @Imarok can fix it soon. On the Ryzen CPUs it was possible, to press multiple time continue (at the crash window), to launch the game. Maybe this will work on the Threadrippers too? If so, you can press Alt + Enter to change to fullscreen mode. Quote Link to comment Share on other sites More sharing options...
OptimusShepard Posted September 13, 2020 Report Share Posted September 13, 2020 On 9/11/2020 at 11:45 AM, Stan` said: AFAIK we only use the former to detect the timer then use a custom function for TSC or with my patch QPC which is part of the windows API. Yep, this is what I meant. If we detect a false positive for TSC. On 9/11/2020 at 11:45 AM, Stan` said: I chatted a bit with @wraitii on the SIMD changes and I believe the discrepancy on Linux vs Windows is due to the fact some optmizations are disabled on MSVC while they are "on" on Linux. Do you meant the performance difference at all, or only when using SSE? I guess, most of the differences are related to the AMD OpenGl drivers. Do you think the newer 2019 compiler would have a big performance benefit? Quote Link to comment Share on other sites More sharing options...
Froschkoenig84 Posted September 13, 2020 Author Report Share Posted September 13, 2020 (edited) Just another info... Is there a problem because localization? "," (comma) and "." (point) for floats and doubles (fraction signs)? Edited September 13, 2020 by Froschkoenig84 Quote Link to comment Share on other sites More sharing options...
OptimusShepard Posted September 13, 2020 Report Share Posted September 13, 2020 4 minutes ago, Froschkoenig84 said: Just another info... Is there a problem because localization? "," (comma) and "." (point) for floats and doubles (fraction signs)? I guess, test.exe wont work, because it's normally only available with the development (svn/git) version. I didn't delete all unnecessary files out of the folder. 1 Quote Link to comment Share on other sites More sharing options...
Froschkoenig84 Posted September 13, 2020 Author Report Share Posted September 13, 2020 1 minute ago, OptimusShepard said: I guess, test.exe wont work, because it's normally only available with the development (svn/git) version. I didn't delete all unnecessary files out of the folder. Okay. Quote Link to comment Share on other sites More sharing options...
Stan` Posted September 14, 2020 Report Share Posted September 14, 2020 -------------------------------------------------------FMT bug--------------------------------------------------------------------------- The error above is actually a bug it's fixed when @s0600204 or @Itms update FMT the library being the serialization. Basically it's broken when the used locale is not present on the system. -------------------------------------------------------Thread Ripper bug--------------------------------------------------------------------------- https://github.com/0ad/0ad/blob/4b35ac33f7f30e6bb0a674a6996357a8a75cf1a3/source/lib/sysdep/arch/x86_x64/topology.cpp#L174-L193 Here is the callstack KERNELBASE.dll!76529962() Unknown KERNELBASE.dll![Frames below may be incorrect and/or missing, no symbols loaded for KERNELBASE.dll] Unknown VCRUNTIME140.dll!74e87756() Unknown msvcp140.dll!73dcec4f() Unknown [Inline Frame] pyrogenesis.exe!std::bitset<32>::_Xran() Line 486 C++ [Inline Frame] pyrogenesis.exe!std::bitset<32>::set(unsigned int) Line 266 C++ > pyrogenesis.exe!`topology::InitCpuTopology'::`5'::NumUniqueValuesInField::operator()(const topology::ApicField & apicField) Line 185 C++ pyrogenesis.exe!topology::InitCpuTopology() Line 193 C++ pyrogenesis.exe!ModuleInit(volatile int * initState, __int64(*)() init) Line 47 C++ pyrogenesis.exe!topology::NumPackages() Line 247 C++ pyrogenesis.exe!RunHardwareDetection() Line 307 C++ pyrogenesis.exe!InitGraphics(const CmdLineArgs & args, int flags, const std::vector<CStr8,std::allocator<CStr8>> & installedMods) Line 1001 C++ pyrogenesis.exe!AtlasMessage::fInitGraphics(AtlasMessage::mInitGraphics * msg) Line 90 C++ pyrogenesis.exe!AtlasMessage::fInitGraphics_wrapper(AtlasMessage::IMessage * msg) Line 84 C++ pyrogenesis.exe!RunEngine(void * data) Line 173 C++ pyrogenesis.exe!thread_start(void * param) Line 624 C++ ucrtbase.dll!7701505f() Unknown kernel32.dll!7694f989() Unknown ntdll.dll!77da74a4() Unknown ntdll.dll!77da7474() Unknown The bug is this one https://trac.wildfiregames.com/ticket/5412 @Itms submitted a fix https://code.wildfiregames.com/D1789 @OptimusShepard can you make another zip for @Froschkoenig84 to try? Quote Link to comment Share on other sites More sharing options...
OptimusShepard Posted September 14, 2020 Report Share Posted September 14, 2020 (edited) On 9/14/2020 at 4:23 PM, Stan` said: The bug is this one https://trac.wildfiregames.com/ticket/5412 @Itms submitted a fix https://code.wildfiregames.com/D1789 @OptimusShepard can you make another zip for @Froschkoenig84 to try? I add the patch D1789, hopefully it work system.zip If this doesn't work you may want to test this here. I hardcoded some parts, so another chance ^^ system_hardcoded.zip On 9/14/2020 at 4:23 PM, Stan` said: -------------------------------------------------------FMT bug--------------------------------------------------------------------------- The error above is actually a bug it's fixed when @s0600204 or @Itms update FMT the library being the serialization. Basically it's broken when the used locale is not present on the system. So ignoring this bug? Edited September 30, 2020 by OptimusShepard Reupload and different naming of the files. Quote Link to comment Share on other sites More sharing options...
OptimusShepard Posted September 29, 2020 Report Share Posted September 29, 2020 On 9/14/2020 at 11:24 PM, OptimusShepard said: On 9/14/2020 at 4:23 PM, Stan` said: The bug is this one https://trac.wildfiregames.com/ticket/5412 @Itms submitted a fix https://code.wildfiregames.com/D1789 @OptimusShepard can you make another zip for @Froschkoenig84 to try? I add the patch D1789, hopefully it work system.zip If this doesn't work you may want to test this here. I hardcoded some parts, so another chance ^^ system.zip @Froschkoenig84 does it work for you? Quote Link to comment Share on other sites More sharing options...
OptimusShepard Posted October 1, 2020 Report Share Posted October 1, 2020 I think I have found an easy general solution. Skipping the validation. These data are only used for the hardware report. So a validation is not necessary needed. So here is the new patch. @Froschkoenig84 please test it, and tell me, if everything is working now. system.zip Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.