| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Only compositor contexts are known to use only the subset of GL
that can be safely migrated between the iGPU and the dGPU. Mark
those contexts as safe to forcibly transition between the GPUs.
In particular, Intel GPUs support using a GL_STENCIL_INDEX8
attachment with no depth buffer, but NV GPUs don't. Skia will use
this FBO combo if it is listed as available.
If we use this combo on the iGPU and then forcibly transition the
GL context using this combo from the iGPU to the dGPU, corruption
occurs on NV, and a hang happens on AMD.
Further, if we cache complete FBO combos, then we will cache this
combo as valid when using the iGPU, and claim that it's valid when
using the dGPU, resulting in GL errors.
BUG=180876
Review URL: https://chromiumcodereview.appspot.com/13746002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193302 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
Switching between the discrete GPU and integrated GPU is expensive (and probably buggy), so delay switching back from the discrete GPU to the integrated GPU for 10 seconds after a context is deleted in case a new context will soon request the discrete GPU.
BUG=156986
Review URL: https://chromiumcodereview.appspot.com/12619009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@190096 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
There's a race condition when a context that requires a GPU is created, causing it to be migrated to the integrated GPU which was where the context in the browser process last presented from. Fix this by not migrating contexts that require the discrete GPU, and clearing out the current renderer id when creating a context that requires the discrete GPU.
BUG=181629
Review URL: https://chromiumcodereview.appspot.com/12771022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187789 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
they present to.
When OS X switches GPUs, some contexts that were created beforehand and aren't associated with an NSView can be left behind on the old GPU, which will cause problems when other contexts attempt to share textures with them.
To fix this, track what renderer is being used to present to the screen, transmit that to the IOSurfaceImageTransportSurface in the GPU process, and change every context in the same share group to use that renderer.
BUG=174149
Review URL: https://chromiumcodereview.appspot.com/12383042
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186388 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=155557
Review URL: https://chromiumcodereview.appspot.com/11275120
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166442 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=127983
TBR=apatrick@chromium.org
Review URL: https://codereview.chromium.org/11013008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@160728 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before we hardwired the forcing.
Also, we refactor the SupportsDualGpus() code so it's only checked on browser process, mainly the part we check the availability of online/offline renderers.
We suspect calling the renderer detection code at the same time in browser/gpu processes might cause GPU driver crashes on certain Mac systems (mostly 10.8 from crash reports). This refactoring hopefully will fix the issue.
BUG=151741,131276
TEST=tree, manual on dual GPU systems (10.7 and 10.8)
Review URL: https://codereview.chromium.org/10995002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@159579 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in dual GPU machines.
This is part 2. In part one we implement the semantics in blacklist. Now we hook it up with the "real" forcing code.
For now we only hook it up with Mac CGL port.
BUG=140114,131276,111720
TEST=tree
Review URL: https://codereview.chromium.org/10909221
TBR=zmo@chromium.org
Review URL: https://codereview.chromium.org/10959061
TBR=tzik@chromium.org
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158213 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is part 2. In part one we implement the semantics in blacklist. Now we hook it up with the "real" forcing code.
For now we only hook it up with Mac CGL port.
BUG=140114,131276,111720
TEST=tree
Review URL: https://codereview.chromium.org/10909221
TBR=zmo@chromium.org
Review URL: https://codereview.chromium.org/10959061
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158211 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before we only stays on discrete GPU if any GL contexts are active.
Now we truly stay on discrete GPU, always.
This CL also remove --disable-gpu-switching;
use --gpu-switching=force_integrated/force_discrete instead.
Also, user's --gpu-switching option will overwrite the hardwired
force_discrete decision, i.e., if a user wants to stay on integrated
GPU and save battery, we honor that.
BUG=140114,131276,111720
TEST=tree
Review URL: https://codereview.chromium.org/10959050
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158128 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is part 2. In part one we implement the semantics in blacklist. Now we hook it up with the "real" forcing code.
For now we only hook it up with Mac CGL port.
BUG=140114,131276,111720
TEST=tree
Review URL: https://codereview.chromium.org/10909221
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158076 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GLContext to query the GPU's total video memory.
Note that this is the amount of video memory on the currently-rendering GPU, so different contexts will give different values, and the same context may give different values over time (for instance, on a Macbook Pro with graphics switching).
Of note is that on a Macbook Pro with graphics switching enabled, the contexts don't move together between GPUs -- some stay on the integrated GPU while others use the discrete GPU.
BUG=132994
Review URL: https://chromiumcodereview.appspot.com/10957009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157879 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was causing issues with silverlight on 10.6 machines.
BUG=132235
TEST=
Review URL: https://chromiumcodereview.appspot.com/10539178
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@142570 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
It looks like OS X automatically migrates old contexts onto the discrete GPU when it's using the discrete GPU. Therefore, instead of destroying the entire channel and all its contexts to switch GPUs, we can create a pixelformat that requires the discrete GPU before creating the new context, which will force every context onto the discrete GPU for the duration.
BUG=129258
TEST=
Review URL: https://chromiumcodereview.appspot.com/10545077
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@141347 0039d316-1c4b-4281-b951-d872f2087c98
|
|
BUG=104040
R=ben@chromium.org
TBR=tony@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10392068
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@136777 0039d316-1c4b-4281-b951-d872f2087c98
|