-
Notifications
You must be signed in to change notification settings - Fork 57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Background not rendering, Blue Background instead #10
Comments
Are you using the sample distribution of CEF this sample provides or did you build your own? I was wondering if you are able to run the DEBUG version of this app. The D3D11 device is setup with the D3D11_CREATE_DEVICE_DEBUG when running in Debug mode and it should trace out any D3D errors. I can only assume Chromium is unable to create the shared texture on the hardware sets you have listed. I would also be curious what information is listed in Chrome on any of those machines if you navigate to chrome://gpu in the browser. |
I am using the sample distribution of CEF linked in this repo. How would I go about running the DEBUG version? |
You would have to build CEF with the pull request which takes quite a bit of time. With D3D11_CREATE_DEVICE_DEBUG the error messages just goto the output of OutputDebugString so you could in theory just comment out the #ifdef on line 765 in d3d11.cpp in this app and simply run the Release build. If you dont have Visual Studio on one of those test machines you can use DebugView to see the trace messages. I'm pretty sure you need the Win10 SDK installed however at a minimum to be able to create a D3D11 device with D3D11_CREATE_DEVICE_DEBUG flag. So it could be a pain if you don't already have VS installed. I'm trying to dig up an old machine here to see if I can get something reproducible. |
I am currently building cef, after I am done and tested again I will get back at you... Here is the chrome://gpu output btw: |
if there is anything i can do to help let me know, i also have been having this issue since the 15th march update ot the CEF |
I reproduced this issue on NVidia GeForce 8400 GS (driver version 342.01). Looks like the code that was added to Chromium setting up the FBO on the D3D11 texture is likely failing. These are the error messages I'm seeing here:
I will have to do some more digging to see if this can be resolved. |
that would be great. need anything let me know, ill test new and wonderful things on my old gpu hahah |
Ok, looks like the issue is setting up the gl pbuffer with the D3D11 texture. The code was using the following for the config attributes on the pbuffer: EGL_RENDERABLE_TYPE, EGL_OPENGL_ES3_BIT On older hardware, ES3 isn't available via ANGLE so the call to If you need to build CEF yourself (and don't want to wait for me to update the PR) ... you can make the change in gpu\command_buffer\service\external_texture_manager.cc at line 188. Thanks! |
In @Flatracer's
This might be problematic if Chrome itself wouldn't work without these workarounds at all either - it's likely for the issue with old (feature level 10) GPUs to be distinct from this issue with Intel/AMD or AMD/AMD switchable graphics. The bugs referred to, for reference, are #451420 and apparently #755722 which shows that Chrome is only meant to apply these workarounds on older drivers.
Might it be needed to disable the GPU workaround blacklist using a flag to get this to work on this kind of hardware, and should doing this not be affecting the scenario at all (e.g. if both the mixer as well as Chrome are forced to run on the AMD GPU)? |
@wesselsga |
@Flatracer, it seems to be the case the link in the project README to the binary distribution was updated, so only However, if only the above change was made, just dropping in the new |
What about nvidia gpu's @blattersturm they would give out a different log? |
@blattersturm I don't think he updated the repo with the new file, thats the same file I downloaded earlier do build the demo. 🤔 When it is the updated file, it doesn't work, still the same problem. |
@blattersturm is correct - if You could try updating the html_layer.cpp source file in cefmixer and add the I'm surprised this wouldn't work on the Nvidia systems you listed? If the last modified date of the libcef.dll is 4/15/2018 6:53 UTC time - you should have the correct latest version. |
I am trying this on the AMD/Intel system I mentioned very first. The Nvidia systems are from other ppl. So, I did what you said (copied the libcef.dll over)... Here is the debug log, with a bunch of errors: debug.log |
On that same machine - is disable_d311 listed in chrome://gpu? |
I think you mean |
Adding |
Yeah, sorry - I meant |
I added |
Excellent, thanks for the update. I'll just add that flag to the |
Fixed with the latest commit! |
Still not fixed for me, what can i do to help? AMD 8850M + Intel Graphics 4000 |
Which driver version of AMD are you using? Can you run My guess is we're still running into the issue @blattersturm referred to above where Chromium is falling back to D3D9 for AMD switchable graphics. In windows Task Manager, there is an option to view the command line args for a process. When running cefmixer - can you check for any of the cefmixer process instances having the command line arg If you have Visual Studio on that machine - you can run cefmixer in VS and look for any error logs in the Output window. I'm pretty sure there will be errors about |
18.2 (latest one i think)
None of the processes were running with this arg.
I tried doing that anyway, but it didn't work.
Output seems normal i think, but im getting some dll errors though, here: Maybe im doing something wrong idk. Just to clarify, im using the sample distribution for CEF. |
Thanks for the info. Looking at the log from the program it really should be working, that is you are getting the calls to In main.cpp in Also you could try setting up a profile in AMD settings so that Chrome runs on the AMD gpu. (just to see if that works). Currently the string in chrome://gpu reports:
If you have it setup on the AMD gpu - the value for GL_RENDERER ANGLE will show 'AMD' something or other |
Okay, sorry that i took a long time to respond... So commenting out the declare for I tried to create a profile for chrome as well, to run in high performace, but no matter what, always runs on intel graphics. Anyway, i'm thinking about building CEF and debug cef-mixer comparing both profiles. Do you think i could identify the problem this way? |
You can certainly try debugging Something sort of off-topic - I'm surprised commenting out |
I would be curious if you were able to run cef-mixer in DEBUG - there could potentially be some D3D11 warnings traced - I'm guessing that it might be failing to open or use the shared texture in cef-mixer. My suspicion is that the cef-mixer application and Chromium are actually using 2 different gpus - in which case the sharing wouldn't work. And cef-mixer basically will not render anything if it fails to open the shared texture. If you do get a DEBUG build running - maybe step through the To easily run cef-mixer DEBUG, just copy the Release folder from the sample distribution and rename it to Debug. Then you can switch Visual Studio to DEBUG for the cef-mixer project. I have updated the cef-mixer app to display the name of the GPU adapter it is using in the Window title bar. You can also dump the source of the HTML views by using a new flag on the command line:
With the |
I think you might be right, that explains why it works when cef-mixer is in power saving mode.
Chrome just won't run w/ the AMD card, and honestly i have no idea what to do. :( I also tried to disable the intel graphics in the BIOS, but there's no option, apparently you can't use only the AMD card in most machines with switchable graphics. Here's the output for chrome://gpu with the flag you added: Also a screenshot that shows the application running and the current settings in amd ui: |
I'm quickly running out of ideas as well. Simply Googling 'AMD switchable Chrome' shows plenty of results indicating that AMD has went out of their way to make this unnecessarily difficult to get Chrome to run on the hybrid setup with the High Performance gpu. You can confirm this does still work in Low Power mode? The screenshot you included indicates cefmixer is using Intel Graphics and the dump you pasted says that chromium is using Intel Graphics .. seems like this should be working. I must be missing something when I get that vendor string. Another funny thing is from your dump of chrome://gpu: GPU0 VENDOR = 0x1002, DEVICE= 0x6823 From above it says Chromium is using GPU1 which is Intel based on the vendor ID. But the driver vendor is AMD? |
Happens on some system, the system where the picture was taken has an AMD Radeon HD7600M & Intel® HD Graphics 4000.
Some other Graphics Units with the same problem:
Nvidia Geforce 9500 GT, Driver version 342.01
Nvidia Geforce 9800 GT, Driver version Unknown
Nvidia Geforce 545 GT, Driver version: 267.95
Nvidia Quadro FX 3800, Driver version: 342.00
AMD Radeon R9 M200X, second GPU: Intel® HD Graphics 4600
ATI Radeon HD 4650, Driver version: Unknown
The text was updated successfully, but these errors were encountered: