SWADE Playlist
Page 2 of 7 First 1234 ... Last
  1. #11
    Intel Core 2 was introduced in 2006 and multi-core CPUs are widely used ever since. Publishing "completely rebuild" software that is not multi-threaded and "not responding" in 2020 is quite a tragedy.

  2. #12
    Sgt.Rock008's Avatar
    Join Date
    Jul 2017
    Location
    South Saskatchewan (UTC -6)
    Posts
    24
    A progress bar or spinning wheel or whatever to indicate that the program is loading or working and hasn't frozen would be super helpful. This seems like a rudimentary thing, why is it not being implemented?

  3. #13
    The issue here is that the rendering thread is stuck doing processing. That means that a progress bar and spinning wheel will also be frozen. The UI isn't responding to draw events (because it's already in one), so adding a frozen progress bar or frozen wheel will increase the feeling that it's crashed rather than alleviating the issue. In old-school windows programming you could pump the message queue to make it seem like the UI is still working (and update progress bars). There's nothing to pump in the Unity because of the way it calls each component for an update.

    Multi-threaded UI is a misnomer. There is only one render thread, after all, and it has to be synchronous because of the way the drawing is layered, and is therefore not multi-threaded.

    Multi-threading doesn't come for free "even in 2020". It requires appropriate forethought, planning, and architecture. It isn't the kind of thing that is easy to add in retrospect, and it isn't the kind of thing that just happens without intent.

    There are a few programming platforms that make multi-threading easier (such as Go, javascript, .NET), but those still fall prey to issues with contention, race conditions, deadlocks, dirty data, etc., if not done properly.

    The Unity engine assumes that there will be a little bit of calculation every frame. The last time I worked with Unity engine it still suggested doing everything in small increments as the component is called. Creating parallel (multi-core) or multi-threaded (same core, different thread) in Unity wouldn't be trivial for this kind of app. If the developers already knowledgeable about how to use parallel processing and multi-threading then learning how to do it in Unity really isn't a good place to start.

    That's not to say it's impossible... it's just necessary to address each freeze individually by moving it to process asynchronously and render the state as-is so the rest of the application stays responsive. It will start a cascade of additional complaints around "well you fixed piece A, why is piece B hitching? I almost task killed it because I wasn't expecting a freeze after piece A was addressed."

    There are plenty of other glaring issues to address and new features to implement that won't be as bug prone as a developer new to asynchronicity will experience.

  4. #14
    Quote Originally Posted by fubeca150 View Post
    The issue here is that the rendering thread is stuck doing processing.
    The rendering thread should not be stuck doing processing. At this point the modules and extensions are loaded and processed, which should absolutely be done in its own thread(s).

    Code:
    [11/20/2020 10:51:49 AM] MEASURE: RULESETS LOAD - 6.4274138 - PFRPG2
    [11/20/2020 10:51:49 AM] MEASURE: EXTENSIONS LOAD - 0.5778687 - 18
    [11/20/2020 10:51:51 AM] MEASURE: MODULE LIST BUILD - 1.2745536 - 30
    [11/20/2020 10:51:51 AM] MEASURE: REFRESH IMAGE ASSETS - 0.0399868
    [11/20/2020 10:51:51 AM] MEASURE: REFRESH PORTRAIT ASSETS - 0.0129954
    [11/20/2020 10:51:51 AM] MEASURE: REFRESH TOKEN ASSETS - 0.0480212
    [11/20/2020 10:51:51 AM] MEASURE: ASSET LIST BUILD - 0.1019733
    [11/20/2020 10:51:52 AM] MEASURE: LOAD - PART 1 - 9.5619795
    [11/20/2020 10:51:52 AM] Loaded FreeType library version 2.10.2
    [11/20/2020 10:51:53 AM] s''
    [11/20/2020 10:51:55 AM] MEASURE: MODULE LOAD - 1.5399278 - (SR) Drag N Drop
    [11/20/2020 10:51:55 AM] MEASURE: MODULE LOAD - 0.455098 - Age of Ashes AP 2 Cult of Cinders
    [11/20/2020 10:51:55 AM] MEASURE: MODULE LOAD - 0.014 - Age of Ashes Player's Guide
    [11/20/2020 10:51:55 AM] MEASURE: MODULE LOAD - 0.0049707 - Calendars
    [11/20/2020 10:51:57 AM] MEASURE: MODULE LOAD - 1.6023125 - Pathfinder Advanced Player's Guide
    [11/20/2020 10:52:00 AM] MEASURE: MODULE LOAD - 3.3044129 - PF2 Bestiary
    [11/20/2020 10:52:05 AM] MEASURE: MODULE LOAD - 4.6097339 - Pathfinder Second Edition Core Rules
    [11/20/2020 10:52:05 AM] RULESET: Pathfinder RPG Second Edition ruleset v3.3.11 (PF2 release 17e) for Fantasy Grounds
    Copyright 2020 Smiteworks USA, LLC
    [11/20/2020 10:52:05 AM] RULESET: Core RPG ruleset v3.3.12A for Fantasy Grounds
    Copyright 2019 Smiteworks USA, LLC
    [11/20/2020 10:52:05 AM] EXTENSION: PFRPG2 Better Save Descriptions v0.2.\rCopyright 2020 Smiteworks USA, LLC.
    [11/20/2020 10:52:05 AM] EXTENSION: Extension (Calendar Plus) loaded.
    [11/20/2020 10:52:05 AM] EXTENSION: Express Yourself v0.4\rCreated by DIE Hard Gaming\r\nUse '/ey ?' for instructions.\r\nMore great resources at \r\(LINK)
    [11/20/2020 10:52:05 AM] EXTENSION: (LINK)\rPFRPG Time Manager v1.2:\rThis extension is a GM tool which provides an interface for easy time tracking and management.\nThis extension is heavily-based on Clock Adjuster which is the work of pr6i6e6st.
    [11/20/2020 10:52:05 AM] EXTENSION: Formation Graphics by DIE Hard Gaming. \r\nMore great resources at \r\(LINK)
    [11/20/2020 10:52:05 AM] EXTENSION: Additional Golarion Languages and Fonts v1.0.1 by Trenloe and Callum for Fantasy Grounds v3.1.3+.  \rCopyright 2015 Smiteworks USA, LLC.
    [11/20/2020 10:52:06 AM] EXTENSION: Extension (Height) loaded.
    [11/20/2020 10:52:06 AM] EXTENSION: Extension (Remove Effect Tag) loaded.
    [11/20/2020 10:52:06 AM] EXTENSION: Extension (Overlays PF2) loaded.
    [11/20/2020 10:52:06 AM] EXTENSION: Spell Tokens v2.0\r\n
    [11/20/2020 10:52:06 AM] EXTENSION: CT Open on Turn v4
    [11/20/2020 10:52:06 AM] EXTENSION: Dice Color Changer v1.0
    [11/20/2020 10:52:06 AM] EXTENSION: Roboto Font Extension v1.1
    [11/20/2020 10:52:06 AM] EXTENSION: ReadyCheck - Extension v1.3\rCoreRPG version for Fantasy Grounds\r--by Celestian 2018.02.28
    [11/20/2020 10:52:06 AM] EXTENSION: CoreRPG - Single Window version 1.0.\rby Celestian, 2019
    [11/20/2020 10:52:06 AM] EXTENSION: Thème L'Etoile Perdue pour Fantasy Grounds par Sasmira \nLast update : 27.04.2020.
    [11/20/2020 10:52:06 AM] EXTENSION: CoreRPG - Party Item Identified v1.0\nFor Fantasy Grounds v3.3+\nBy Llisandur
    [11/20/2020 10:52:06 AM] EXTENSION: Zuilin's Map Buttons and Trackpad Assistant v1.0\r\nfor FGU
    [11/20/2020 10:52:06 AM] MEASURE: LOAD - PART 2 - 14.4312029


    That's 24 seconds of the screen being frozen while a few megabytes of data are being processed, all modules loaded/processed by a single-thread. During that time Total War: Warhammer 2 processes several gigabytes of data. Compressing the whole Extensions folder into a single ZIP file takes less than 2 seconds on my PC.

    I understand that this is a limitation of LUA, as is well demonstrated when World of Warcraft is loading its addon LUA scripts. But at least WoW manages to keep its UI rolling.

    Multi-threaded UI is a misnomer. There is only one render thread, after all, and it has to be synchronous because of the way the drawing is layered, and is therefore not multi-threaded.
    I disagree. First of all, there is no need for having anything synchronous while modules and extensions are loaded. The UI thread draws a nice spinning wheel or bar and the work-threads do the loading/processing in the background. And during game-play any CPU heavy processing that drops FPS could be done asynchronously in its own thread (unless the overhead negates the advantages).

    Multi-threading doesn't come for free "even in 2020". It requires appropriate forethought, planning, and architecture. It isn't the kind of thing that is easy to add in retrospect, and it isn't the kind of thing that just happens without intent.
    Which makes this such a tragedy to begin with. FGU has only just been published and was announced as a complete "rebuild from the ground up".

    Creating parallel (multi-core) or multi-threaded (same core, different thread) in Unity wouldn't be trivial for this kind of app. If the developers already knowledgeable about how to use parallel processing and multi-threading then learning how to do it in Unity really isn't a good place to start.
    Then maybe something like QT should have been used instead. I put thousands into computer parts and hundreds into Fantasy Grounds. As a result I would like my hardware to be used to its capacity and not sit around twiddling thumbs waiting while most of the system is idle.
    Last edited by Weissrolf; November 20th, 2020 at 11:49.

  5. #15
    damned's Avatar
    Join Date
    Mar 2011
    Location
    Australia
    Posts
    22,936
    Blog Entries
    1
    Quote Originally Posted by Weissrolf View Post
    The rendering thread should not be stuck doing processing. At this point the modules and extensions are loaded and processed, which should absolutely be done in its own thread(s).

    Code:
    [11/20/2020 10:51:49 AM] MEASURE: RULESETS LOAD - 6.4274138 - PFRPG2
    [11/20/2020 10:51:49 AM] MEASURE: EXTENSIONS LOAD - 0.5778687 - 18
    [11/20/2020 10:51:51 AM] MEASURE: MODULE LIST BUILD - 1.2745536 - 30
    [11/20/2020 10:51:51 AM] MEASURE: REFRESH IMAGE ASSETS - 0.0399868
    [11/20/2020 10:51:51 AM] MEASURE: REFRESH PORTRAIT ASSETS - 0.0129954
    [11/20/2020 10:51:51 AM] MEASURE: REFRESH TOKEN ASSETS - 0.0480212
    [11/20/2020 10:51:51 AM] MEASURE: ASSET LIST BUILD - 0.1019733
    [11/20/2020 10:51:52 AM] MEASURE: LOAD - PART 1 - 9.5619795
    [11/20/2020 10:51:52 AM] Loaded FreeType library version 2.10.2
    [11/20/2020 10:51:53 AM] s''
    [11/20/2020 10:51:55 AM] MEASURE: MODULE LOAD - 1.5399278 - (SR) Drag N Drop
    [11/20/2020 10:51:55 AM] MEASURE: MODULE LOAD - 0.455098 - Age of Ashes AP 2 Cult of Cinders
    [11/20/2020 10:51:55 AM] MEASURE: MODULE LOAD - 0.014 - Age of Ashes Player's Guide
    [11/20/2020 10:51:55 AM] MEASURE: MODULE LOAD - 0.0049707 - Calendars
    [11/20/2020 10:51:57 AM] MEASURE: MODULE LOAD - 1.6023125 - Pathfinder Advanced Player's Guide
    [11/20/2020 10:52:00 AM] MEASURE: MODULE LOAD - 3.3044129 - PF2 Bestiary
    [11/20/2020 10:52:05 AM] MEASURE: MODULE LOAD - 4.6097339 - Pathfinder Second Edition Core Rules
    [11/20/2020 10:52:05 AM] RULESET: Pathfinder RPG Second Edition ruleset v3.3.11 (PF2 release 17e) for Fantasy Grounds
    Copyright 2020 Smiteworks USA, LLC
    [11/20/2020 10:52:05 AM] RULESET: Core RPG ruleset v3.3.12A for Fantasy Grounds
    Copyright 2019 Smiteworks USA, LLC
    [11/20/2020 10:52:05 AM] EXTENSION: PFRPG2 Better Save Descriptions v0.2.\rCopyright 2020 Smiteworks USA, LLC.
    [11/20/2020 10:52:05 AM] EXTENSION: Extension (Calendar Plus) loaded.
    [11/20/2020 10:52:05 AM] EXTENSION: Express Yourself v0.4\rCreated by DIE Hard Gaming\r\nUse '/ey ?' for instructions.\r\nMore great resources at \r\(LINK)
    [11/20/2020 10:52:05 AM] EXTENSION: (LINK)\rPFRPG Time Manager v1.2:\rThis extension is a GM tool which provides an interface for easy time tracking and management.\nThis extension is heavily-based on Clock Adjuster which is the work of pr6i6e6st.
    [11/20/2020 10:52:05 AM] EXTENSION: Formation Graphics by DIE Hard Gaming. \r\nMore great resources at \r\(LINK)
    [11/20/2020 10:52:05 AM] EXTENSION: Additional Golarion Languages and Fonts v1.0.1 by Trenloe and Callum for Fantasy Grounds v3.1.3+.  \rCopyright 2015 Smiteworks USA, LLC.
    [11/20/2020 10:52:06 AM] EXTENSION: Extension (Height) loaded.
    [11/20/2020 10:52:06 AM] EXTENSION: Extension (Remove Effect Tag) loaded.
    [11/20/2020 10:52:06 AM] EXTENSION: Extension (Overlays PF2) loaded.
    [11/20/2020 10:52:06 AM] EXTENSION: Spell Tokens v2.0\r\n
    [11/20/2020 10:52:06 AM] EXTENSION: CT Open on Turn v4
    [11/20/2020 10:52:06 AM] EXTENSION: Dice Color Changer v1.0
    [11/20/2020 10:52:06 AM] EXTENSION: Roboto Font Extension v1.1
    [11/20/2020 10:52:06 AM] EXTENSION: ReadyCheck - Extension v1.3\rCoreRPG version for Fantasy Grounds\r--by Celestian 2018.02.28
    [11/20/2020 10:52:06 AM] EXTENSION: CoreRPG - Single Window version 1.0.\rby Celestian, 2019
    [11/20/2020 10:52:06 AM] EXTENSION: Thème L'Etoile Perdue pour Fantasy Grounds par Sasmira \nLast update : 27.04.2020.
    [11/20/2020 10:52:06 AM] EXTENSION: CoreRPG - Party Item Identified v1.0\nFor Fantasy Grounds v3.3+\nBy Llisandur
    [11/20/2020 10:52:06 AM] EXTENSION: Zuilin's Map Buttons and Trackpad Assistant v1.0\r\nfor FGU
    [11/20/2020 10:52:06 AM] MEASURE: LOAD - PART 2 - 14.4312029


    That's 24 seconds of the screen being frozen while a few megabytes of data are being processed, all modules loaded/processed by a single-thread. During that time Total War: Warhammer 2 processes several gigabytes of data. Compressing the whole Extensions folder into a single ZIP file takes less than 2 seconds on my PC.

    I understand that this is a limitation of LUA, as is well demonstrated when World of Warcraft is loading its addon LUA scripts. But at least WoW manages to keep its UI rolling.


    I disagree. First of all, there is no need for having anything synchronous while modules and extensions are loaded. The UI thread draws a nice spinning wheel or bar and the work-threads do the loading/processing in the background. And during game-play any CPU heavy processing that drops FPS could be done asynchronously in its own thread (unless the overhead negates the advantages).


    Which makes this such a tragedy to begin with. FGU has only just been published and was announced as a complete "rebuild from the ground up".


    Then maybe something like QT should have been used instead. I put thousands into computer parts and hundreds into Fantasy Grounds. As a result I would like my hardware to be used to its capacity and not sit around twiddling thumbs waiting while most of the system is idle.
    I think you have previously mentioned your lack of coding experience and yet you write these replies with such authority?

    MoreCore - Generic Ruleset
    --- Projects ---
    Extensions | Tutorials | MoreCore | MoreCore Themes | Call of Cthulhu | Maelstrom | FG Con

  6. #16
    You quoted my whole post, just to derail the discussion towards my personality? Why would you do that? Is this part of the etiquette on this forum?

    I do know coding (but not algorithms and the specific details of most coding languages), but even more so I know computing and computers. Testing drivers, software and hardware is part of my job. That being said, please don't turn this thread into a discussion about me. Stay on topic.

  7. #17
    Trenloe's Avatar
    Join Date
    May 2011
    Location
    Newcastle, UK (for a bit)
    Posts
    28,184
    Moved to The Tavern forum as this is a general discussion about Fantasy Grounds, this is not a support issue and so shouldn't reside in the House of Healing. Please post only technical support issues in the House of Healing forums. Thanks.
    FG Con 16 – Fantasy Grounds Online RPG Convention - Postponed New date To Be Confirmed.
    Register at www.fg-con.com for all the latest info.

    Private Messages: My inbox is forever filling up with PMs. Please don't send me PMs unless they are actually private/personal messages. General FG questions should be asked in the forums - don't be afraid, the FG community don't bite and you're giving everyone the chance to respond and learn!

  8. #18
    Fair enough. One should consider, though, that *all* of my players and other FG users thought FGU to be frozen/crashed due to this mechanism. I actively have to keep my players from shutting down FGU to restart it, because whenever someone sees "not responding" and grayed out UI they deem an application crashed.

    One could consider to call the latter a support case and problem that needs to be fixed. Anyway, suffering GUI freezes directly relates to the lack of multi-threading, so without one we won't see a fix for the other.
    Last edited by Weissrolf; November 20th, 2020 at 12:38.

  9. #19
    Trenloe's Avatar
    Join Date
    May 2011
    Location
    Newcastle, UK (for a bit)
    Posts
    28,184
    Quote Originally Posted by Weissrolf View Post
    Fair enough. One should consider, though, that *all* of my players and other FG users thought FGU to be frozen/crashed due to this mechanism. I actively have to keep my players from shutting down FGU to restart it, because whenever someone sees "not responding" and grayed out UI they deem an application crashed.

    One could call absolutely call this a support case and problem that needs to be fixed.
    A specific issue with logs etc. is absolutely a support case. A generic discussion, with lots of hypotheses and guesses as to how FGU really works, might work and should work is not a support case. It wastes the time of those who are trying to work on actual support cases.
    FG Con 16 – Fantasy Grounds Online RPG Convention - Postponed New date To Be Confirmed.
    Register at www.fg-con.com for all the latest info.

    Private Messages: My inbox is forever filling up with PMs. Please don't send me PMs unless they are actually private/personal messages. General FG questions should be asked in the forums - don't be afraid, the FG community don't bite and you're giving everyone the chance to respond and learn!

  10. #20
    I am not guessing, I am monitoring threads directly, it's no rocket science with tools like Process Explorer.

    Given the current design the "not responding" issues don't seem to be solvable, but of course I can gladly open up a proper support case for "not responding" issues with logs, screenshots, thread analysis and everything. I have no beef here.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
DMsGuild

Log in

Log in