cef icon indicating copy to clipboard operation
cef copied to clipboard

Multi GPU support for external textures (DX11) in OSR mode.

Open magreenblatt opened this issue 6 years ago • 2 comments

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?

magreenblatt avatar Oct 28 '18 15:10 magreenblatt