Forum Replies Created

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • in reply to: 24 (Stern 2009) #221763
    Robsoie
    Participant
      @robsoie

      Hello,

      I come to make an update on the very strange lagging and stuttering problem i had with this particular table.

      Because i discovered the actual source of it. Originally i thought it was somewhere in the many events of this table, though it was strange to me because some other tables with a lot more light show were playing completely smoothly.

      After discovering the report about Window 10 new security system against vbs script attacks, that played a role in Visual Pinball – VPinMAME possible sttuters on some tables (tough it was strange to me as why only some tables could be affected as all are using vbs scripts), i thought it had to do with Window Defender.

      And today toying around video settings in VPX, i ran directly into the source of this problem with the table 24 :

      It the VPX Video/Graphic Opptions , the   “Texture Compression (Performance)” setting.

      In nearly all games i have and that feature a similar texture compresion setting it’s always by default turned on as it saves some GPU time and workload so it can be used better elsewhere. So mostly by habitude i had it enabled

      But in VPX if this “Texture Compression (Performance)” option is DISABLED , the table 24 will play perfectly smoothly, while if it is ENABLED, i see those bizarre stutter and lag of the ball.

      So for my case finally the mystery is solved, though it’s very strange as in no other game in existence in which this option exist i observed such problem.

      if i would try a guess it’s that VPX may only do the texture compression for the texture that are loaded at the start of the game, and as some textures only load on specific events, maybe VPX is compressing those new textures on the fly instead of compression them at the same time as other, possibly generating those micro stutter and lag.

       

      in reply to: 24 (Stern 2009) #195258
      Robsoie
      Participant
        @robsoie

        A little update on the stutter problem, the source of this very strange stutter was discovered there by user Rawnei :

        https://www.vpforums.org/index.php?showtopic=44135&p=453825

        https://www.vpforums.org/index.php?showtopic=44135&p=454358

        https://www.vpforums.org/index.php?showtopic=44135&p=453956

        Not VPX 10.7 specifically but stumbled upon a VPVR problem that is also related to VPX and the use of Visual Basic / COM so the problem should exist in both.

        I’ve managed to push GPU frametime down quite a bit in VPVR which is now causing the rendering pipeline to fire off even more IDispatch invokes in EventProxy that Windows Defender is interfering with and thus causing a very high CPU frametime instead, an easy test is to disable Windows Defender Real-Time Protection and it’s like night and day in frametime and performance but absolutely not a good permanent solution to disable antivirus.

        So I’m trying to find workarounds for it, google is not helping and I am not too familiar with everything we do in Visual Basic so if you guys have any bright ideas they are all welcome.

        Maybe some way of firing events without locking the rendering pipeline or somesuch?

        A lot of stutter can be caused by anti-virus since lights trigger eventproxy COM events thus triggering Microsoft AMSI which is stalling the whole pipeline. Microsoft AMSI is relatively new thing and it affects all anti virus software.

        Did more research into Microsoft AMSI due to the performance issues it’s causing, AMSI is Microsofts way of stopping fileless attacks (VBScript, Powershell, etc) and it’s an API that AV products can choose to use or not.

        In Windows Defender it’s been kind of hard implemented, it’s tied to the Real-Time Protection setting, add exclusions in Windows Defneder does not affect Real-Time Protection only scans so only way to disable AMSI in Windows Defender is to toggle Real-Time Protection Off (bad).

        In some products for example Sophos Home edition they haven’t implemented AMSI integration (yet?) so it does not happen there even with Sophos version of real-time protection, I tried this.

        In some premium products for example Kaspersky Total Security 2021 they are supposed to have AMSI exclusive options for disabling that specifically and being able add exclusions (see https://help.kaspersky.com/KTS/2021/en-US/186114.htm ), since they are paid products I haven’t tested that.

        Hopefully we get more and better options for this in the future.

        In summary when you’re on window 10 , turning off your security programs will make the stutter go away, but it’s -very- heavily recommended to not turn off those security program when you are connected to the internet, so disconnect from the internet if you want to turn off things like internet defender to enjoy vpx tables without stutters (just remember to turn it back on when you’re connecting again)

        It explain then why i observe some stuttering on some of the most event intensive tables despite my window 10 system can run more complex or ressource intensive program than vpx, and disabling some part of the script had a noticable impact on that stutter.

        No idea what changed in that vbs scritped communication between VP<->VPinmame and the rom between vp9 and vpx, as this vbs script vs amsi security checks stutter wasn’t happening in vp9 version of the tables that have stutter that can be noticed.

        in reply to: 24 (Stern 2009) #188490
        Robsoie
        Participant
          @robsoie

          I think you are right, the effects should be pre cached by VPX (the whole “rendering the table” is supposed to do that) before the table finish to load but it seems there are still effects of the table that aren’t and vpx has then a lot of trouble when they all trigger for the first time (as it happens in this 24 table when the ball first hit the 3 bumpers), and only then it caches them so they run smoothly after. I’ll try to see if increasing this setting you mention can help.

           

          Before reading your post i was wondering if the very many lights flashing all over the table when those 3 bumpers were hits on the first play could be weakened in number somehow, so i edited the script and removed the references  in the Sub UpdateLamps() that were concerning the flashers (except the sniper and safehouse ones) and “lampbulbs” entries along a couple of lamp that i have no idea which exactly they were on the table.

          It seems to have solved the problem for me, certainly i cost a few light show (even with less updatelamp there are still a lot of them active) but it’s always better to have constant smooth gameplay than even a single stutter in my opinion.

          in reply to: 24 (Stern 2009) #188389
          Robsoie
          Participant
            @robsoie

            Hello,

            I have a very strange problem with this very nice table and only this one.

            I never played the previous version of it (and they’re not available anymore so i can’t make comparison) but it didn’t happened in VP9 version of freneticamnesic (so at least i know it’s not the rom that is the source of this)

            When i start the flipper and use the plunger, once the ball get out of the starting ramp and will hit the 2 or 3 bumpers there’s a very heavy stutter that last 1 second (the image basically freeze for 1 second, but the ball isn’t as once the image run normally, the ball has moved as if it had teleported).

            After that heavy stutter has happened, it does not happen anymore, even if i manage to move the ball to those 2/3 bumpers they will function smoothly.

            I noticed it also only happen when i load the table, as if i lose a ball, the next ball will never exhibit the stutter and will always hit the bumper smoothly as expected.

            To see if it was a texture problem, i spent time and reduced every single texture by 50% but it changed absolutely nothing (out of making the table loading obviously faster), the heavy stutter always happen on the 1st ball at the same exact location. As unfortunately i’m not knowledgable in scripting i have no idea how to fix that.

            Any help ?

          Viewing 4 posts - 1 through 4 (of 4 total)