cef
cef copied to clipboard
Multi GPU support for external textures (DX11) in OSR mode.
Original report by Michael (Bitbucket: K_M_L).
Hi!
This is the first time I'm trying to make changes to the CEF/chromium, so I need professional advice. I try to implement using several GPU for OSR rendering. At the same time, I found two ways to implement this.
First way:
-
Create several GPU processes into browser_main_loop.cc
-
pass GPU ID to GPU process over command line, and use it in Renderer11::callD3D11CreateDevice function to create required device.
-
Create arrays of GpuProcessHost*, BrowserGpuChannelHostFactory*, etc.
Second way:
- Into Renderer11::callD3D11CreateDevice create all devices, and implement all functions of Renderer11 with parameter AdapterID.
I finished the first way. This method works, but for now there are flaws. I'm trying to eliminate them. But one of them is permanent, it is the creation of a GPU process for each adapter. How many adapters, so many processes. Whether they are used or not. But I wondered if I chose the right way? Maybe the second way is safer and better? Which way is more correct from your point of view?