Adobe-Runtime-Support icon indicating copy to clipboard operation
Adobe-Runtime-Support copied to clipboard

Windows build shows white screen on some of Win10 machines

Open GeneralVimes opened this issue 1 year ago • 30 comments

I've updated my game https://airapport.itch.io/engineer-millionaire using AIR 50.2.2.5 and on my laptop and several laptops and PCs where I tested it everything worked fine.

But I received at least 3 messages form the players that they get just white screen when they tried to play the game on Win10. One of the players tried an older build, which was built using AIR 33.1.1.929, and it work fine.

What additional information can I obtain from the players to find out, what has started causing plain white screen instead of the game on some of the machines with Win10?

GeneralVimes avatar May 13 '23 16:05 GeneralVimes

Hi

My guess would be there's something going wrong in the video drivers that means the Stage3D set-up is failing. Is it possible to ask them to capture some logging of the first few seconds of the app using Adobe Scout? In particular if the person could do that with the new one and with the old one, we can then see the difference in the system information. https://helpx.adobe.com/uk/scout/kb/download-adobe-scout-cc.html

Or it may be worth trying with these folk to add a new line into the application descriptor file:

<windows><maxD3D>9</maxD3D></windows>

This would force it to the older Direct3D 9 drivers which may work around the problem. See https://airsdk.dev/docs/building/application-descriptor-files/elements/windows#maxd3d

thanks

ajwfrost avatar May 14 '23 05:05 ajwfrost

Hello, we often face this issue on Intel graphic cards of some older machines. As our are business apps, we can instruct our customers to put some .txt files in known locations (for us) that on app startup force RenderMode to "software" and Profile to "baselineConstrained". This fixes the issue on that specific machine.

The line where these two parameters are used in our apps is like this:

_starling = new Starling( null, this.stage, null, null, renderMode, profile);

I didn't investigate on what of these two workarounds (or if both) allows our app to start. Also you should figure how to make this fix automatic, but we didn't need to figure how.

EDIT: also, this issue was there for us on older AIR versions, too, so can't be sure it's the same as you reported

rdefalco avatar May 14 '23 07:05 rdefalco

Thank you! I stay in touch with the player to find this out. For now I've got that

<windows><maxD3D>9</maxD3D></windows>

did not work. I'll keep the thread updated as I get more info.

GeneralVimes avatar May 20 '23 16:05 GeneralVimes

Hello i'm having the same error in some machines using starling.

in my case <windows><maxD3D>9</maxD3D></windows>

fix the problem

bobaoapae avatar Sep 08 '23 04:09 bobaoapae

@ajwfrost do we can expect some fix about this in directx 11 ? using directx 9 fix the problem but with performance degradation in machines that can handle directx 11 without problems.

bobaoapae avatar Sep 11 '23 20:09 bobaoapae

@ajwfrost can this get some fix?

bobaoapae avatar Dec 02 '23 23:12 bobaoapae

Hi @bobaoapae - sadly we've never managed to reproduce this on any of the machines we have access to. If you have a particular machine where you can reproduce it yourself, then (a) could you please provide full details of the CPU and GPU, and (b) we can perhaps then start to look at debug builds that we can send you, in case we're not able to get hold of the necessary equipment for reproducing it..

thanks

ajwfrost avatar Dec 04 '23 09:12 ajwfrost

Hi @bobaoapae - sadly we've never managed to reproduce this on any of the machines we have access to. If you have a particular machine where you can reproduce it yourself, then (a) could you please provide full details of the CPU and GPU, and (b) we can perhaps then start to look at debug builds that we can send you, in case we're not able to get hold of the necessary equipment for reproducing it..

thanks

The problem i'm having it's this one:

https://github.com/airsdk/Adobe-Runtime-Support/issues/35

The same error, it's very old and never get fixed.

Only happens in old machines with intel HD graphics.

bobaoapae avatar Dec 05 '23 02:12 bobaoapae

I'd not seen that other message, that does seem to have a little more information about the cause of the problem. We've got machines with Intel UHD Graphics but they don't seem to be affected, I'll check with our IT folk to see if we may have any older machines with Intel HD Graphics -> any details such as graphics card specs etc may help. But knowing that this is a 3613 error from within an assembleagal / program upload might help.

Has anyone on this thread got a machine themselves that can reproduce the issue? There's a possibility we'd just have to try to identify the GPU details and then have it automatically switch over to software rendering to avoid these problems..

ajwfrost avatar Dec 05 '23 05:12 ajwfrost

We have this problem with several of our clients. Intel graphics cards always gives us trouble. A workaround for us was to add a parameter to the exe and catch in the app, then swith the render mode: if(Agenda.accelerationType == "software") { this._starling = new Starling(MainSprite, this.stage, null, null, Context3DRenderMode.SOFTWARE); } else { this._starling = new Starling(MainSprite, this.stage); }

raresn avatar Dec 05 '23 09:12 raresn

I'd not seen that other message, that does seem to have a little more information about the cause of the problem. We've got machines with Intel UHD Graphics but they don't seem to be affected, I'll check with our IT folk to see if we may have any older machines with Intel HD Graphics -> any details such as graphics card specs etc may help. But knowing that this is a 3613 error from within an assembleagal / program upload might help.

Has anyone on this thread got a machine themselves that can reproduce the issue? There's a possibility we'd just have to try to identify the GPU details and then have it automatically switch over to software rendering to avoid these problems..

I have a machine where i can reproduce that problem. SO: Windows 10 CPU: Intel(R) Core(TM) i3 CPU M 370 @ 2.40GHz 2.40 GHz https://www.intel.com.br/content/www/br/pt/products/sku/49020/intel-core-i3370m-processor-3m-cache-2-40-ghz/specifications.html

Data from Adobe Scout CC: Forcing Direct9 GPU: Intel(R) HD Graphics. GPU Driver: igdumdx32.dll GPU Interface: DirectX 9.0 GPU Driver Version Low: 658260 GPU Driver Version High: 524303 GPU Vendor ID: 32902 GPU Device ID: 70

But software rendering fallback will make things worses, the application just need to fallback to directx9, as the problem only occurs in directx11 on these machines.

bobaoapae avatar Dec 05 '23 18:12 bobaoapae

I have other machine, with have a: Intel(R) Core(TM) i3-10100F, in this machine i get a full black screen, adobe scout don't connect, the application (the code)works just don't render nothing. Forcing D9 also fix the problem.

in both case i have access to debugger the problem.

bobaoapae avatar Dec 05 '23 21:12 bobaoapae

Thanks @bobaoapae - are you able to confirm whether or not you see any exceptions being thrown (per the mention of AS3/Stage3D error 3613 being thrown in the above-referenced issue)? And/or, do you see this also when using normal displaylist stuff if you have direct/gpu render modes set up?

If you're using Starling, please enable the error checking/debug flag.

thanks

ajwfrost avatar Dec 06 '23 15:12 ajwfrost

In the machine with the i3 CPU M 370 i get the error 3613, only when using 3d (starling), normal display objects don't have problem.

in the other machine with i3-10100F i don't get any error, the screen just stay black.

In both case forcing D9 fix all issues.

In starling in my application the error come from this agal program:

private function getProgram(tinted:Boolean):Program3D
    {
        var target:Starling = Starling.current;
        var programName:String = QUAD_PROGRAM_NAME;

        if (mTexture)
            programName = getImageProgramName(tinted, mTexture.mipMapping,
                    mTexture.repeat, mTexture.format, mSmoothing);

        var program:Program3D = target.getProgram(programName);

        if (!program)
        {
            // this is the input data we'll pass to the shaders:
            //
            // va0 -> position
            // va1 -> color
            // va2 -> texCoords
            // vc0 -> alpha
            // vc1 -> mvpMatrix
            // fs0 -> texture

            var vertexShader:String;
            var fragmentShader:String;

            if (!mTexture) // Quad-Shaders
            {
                vertexShader =
                        "m44 op, va0, vc1 \n" + // 4x4 matrix transform to output clipspace
                        "mul v0, va1, vc0 \n";  // multiply alpha (vc0) with color (va1)

                fragmentShader =
                        "mov oc, v0       \n";  // output color
            }
            else // Image-Shaders
            {
                vertexShader = tinted ?
                        "m44 op, va0, vc1 \n" + // 4x4 matrix transform to output clipspace
                        "mul v0, va1, vc0 \n" + // multiply alpha (vc0) with color (va1)
                        "mov v1, va2      \n"   // pass texture coordinates to fragment program
                        :
                        "m44 op, va0, vc1 \n" + // 4x4 matrix transform to output clipspace
                        "mov v1, va2      \n";  // pass texture coordinates to fragment program

                fragmentShader = tinted ?
                        "tex ft1,  v1, fs0 <???> \n" + // sample texture 0
                        "mul  oc, ft1,  v0       \n"   // multiply color with texel color
                        :
                        "tex  oc,  v1, fs0 <???> \n";  // sample texture 0

                fragmentShader = fragmentShader.replace("<???>",
                        RenderSupport.getTextureLookupFlags(
                                mTexture.format, mTexture.mipMapping, mTexture.repeat, smoothing));
            }

            program = target.registerProgramFromSource(programName,
                    vertexShader, fragmentShader);
        }

        return program;
    }
    ```
    
The program it's this: 
[trace] Error assembling shader program: m44 op, va0, vc1
[trace] mul v0, va1, vc0
[trace] mov v1, va2
[trace] tex ft1,  v1, fs0 <2d,clamp,linear,mipnone>
[trace] mul  oc, ft1,  v0

bobaoapae avatar Dec 06 '23 16:12 bobaoapae

Hi @bobaoapae - would you be able to try extracting the DLL from the below zip, into your SDK's runtimes folder (runtimes\air\win\Adobe AIR\Versions\1.0\) and then run your test via ADL, with Adobe Scout running already.. Then if you can select all frames and go to the Trace Log panel in Scout, please copy/paste the debug output..

Adobe AIR.zip

thanks

ajwfrost avatar Dec 07 '23 09:12 ajwfrost

Hi @bobaoapae (or others) - wondering if you're able to get use the Scout log for this white screen issue using that test runtime? thanks

ajwfrost avatar Dec 12 '23 15:12 ajwfrost

sorry for the delay, the machine with problem it's from a customer, i need to remote connect when they allow.

logs-directx-crash.txt

bobaoapae avatar Dec 13 '23 16:12 bobaoapae

Ah okay, thanks .. so that shows a reason code (and these details also show this issue is all over the internet... it's fairly common..) So this is DXGI_ERROR_DEVICE_REMOVED (0x887A0005) which can happen for a range of reasons apparently, see https://learn.microsoft.com/en-us/windows/uwp/gaming/handling-device-lost-scenarios#investigating-the-cause-of-device-removed-errors We can add additional code to check for which of the reasons it might be..

It might also be useful if we could see a log from the same application on a machine where it does work!?

We'll also look to see if we can use these details to trigger an earlier test as to whether or not D3D11 will work and hence if we could automatically fall back to D3D9.

thanks

ajwfrost avatar Dec 13 '23 17:12 ajwfrost

Logs from my machine

logs-directx-no-crash.txt

Would be nice if d11 could be fixed instead of just fallback to d9

bobaoapae avatar Dec 13 '23 18:12 bobaoapae

Hi, other client with problem using D11, just black screen without any error, using the dll file don't trace any log to scout.

AMD Ryzen 5 5600X 6-Core Processor

bobaoapae avatar Dec 13 '23 23:12 bobaoapae

Hi - thanks for all this (and yes, getting it actually fixed would be a nice result!). We have an update runtime now with some more traces - particularly to try to capture that above issue when it's just starting up to a black screen without any Stage3D logs - and with a slightly different mechanism for Stage3D. If you're able to ask these folks for logs with this one, it would be great. many thanks https://transfer.harman.com/message/KJUrjlgP170Z7y0P54Cat4

ajwfrost avatar Dec 17 '23 08:12 ajwfrost

D11 also appresent worst performance. D11 should have best results or at least equal

Forcing use of D9: image Using D11 image

bobaoapae avatar Dec 28 '23 02:12 bobaoapae

Hi @bobaoapae - just wondering whether you were able to download that earlier updated version of the runtime, and whether anyone has managed to use this to reproduce the problem yet?

thanks

ajwfrost avatar Jan 12 '24 14:01 ajwfrost

Hi, I'm having a similar problem, but I don't know if it's the same one. I'm not using Starling or Stage3D, just normal Flash display list. I have one user (on windows 10) who cannot see any graphics when they start my app, but they can still interact with the content of the app. The app only shows the Stage background color and nothing else (I know this because I set it to red).

The problem happens to them in AIR 50.2.3.5 and AIR 33, but NOT in AIR 21. I will try the fallback to DX9 trick and let you know if it helps...

KupoGames avatar Mar 04 '24 22:03 KupoGames

The problem happens to them in AIR 50.2.3.5 and AIR 33, but NOT in AIR 21. I will try the fallback to DX9 trick and let you know if it helps...

I tried the fallback to DX9 trick and the user says it works now. I'm glad I found this thread! The user says his graphics card is a AMD Radeon RX 6600 and he just purchased the PC recently.

KupoGames avatar Mar 05 '24 18:03 KupoGames

Hi @bobaoapae - just wondering whether you were able to download that earlier updated version of the runtime, and whether anyone has managed to use this to reproduce the problem yet?

thanks

hey, sorry for the delay, i don't have much users to test this issue, i found a new one that i can remot connect to test, can we start testing again?

bobaoapae avatar Apr 12 '24 20:04 bobaoapae