Home | History | Annotate | Download | only in gl
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "ui/gl/gl_switches.h"
      6 #include "base/basictypes.h"
      7 
      8 namespace gfx {
      9 
     10 const char kGLImplementationDesktopName[]     = "desktop";
     11 const char kGLImplementationOSMesaName[]      = "osmesa";
     12 const char kGLImplementationAppleName[]       = "apple";
     13 const char kGLImplementationEGLName[]         = "egl";
     14 const char kGLImplementationSwiftShaderName[] = "swiftshader";
     15 const char kGLImplementationMockName[]        = "mock";
     16 
     17 }  // namespace gfx
     18 
     19 namespace switches {
     20 
     21 // Disables use of D3D11.
     22 const char kDisableD3D11[]                  = "disable-d3d11";
     23 
     24 // Stop the GPU from synchronizing on the vsync before presenting.
     25 const char kDisableGpuVsync[]               = "disable-gpu-vsync";
     26 
     27 // Turns on GPU logging (debug build only).
     28 const char kEnableGPUServiceLogging[]       = "enable-gpu-service-logging";
     29 const char kEnableGPUClientLogging[]        = "enable-gpu-client-logging";
     30 
     31 // Turns on calling TRACE for every GL call.
     32 const char kEnableGPUServiceTracing[]       = "enable-gpu-service-tracing";
     33 
     34 // Select which implementation of GL the GPU process should use. Options are:
     35 //  desktop: whatever desktop OpenGL the user has installed (Linux and Mac
     36 //           default).
     37 //  egl: whatever EGL / GLES2 the user has installed (Windows default - actually
     38 //       ANGLE).
     39 //  osmesa: The OSMesa software renderer.
     40 const char kUseGL[]                         = "use-gl";
     41 
     42 const char kSwiftShaderPath[]               = "swiftshader-path";
     43 
     44 // Inform Chrome that a GPU context will not be lost in power saving mode,
     45 // screen saving mode, etc.  Note that this flag does not ensure that a GPU
     46 // context will never be lost in any situations, say, a GPU reset.
     47 const char kGpuNoContextLost[]              = "gpu-no-context-lost";
     48 
     49 // Indicates whether the dual GPU switching is supported or not.
     50 const char kSupportsDualGpus[]              = "supports-dual-gpus";
     51 
     52 // Flag used for Linux tests: for desktop GL bindings, try to load this GL
     53 // library first, but fall back to regular library if loading fails.
     54 const char kTestGLLib[]                     = "test-gl-lib";
     55 
     56 // Use hardware gpu, if available, for tests.
     57 const char kUseGpuInTests[] = "use-gpu-in-tests";
     58 
     59 // On Windows only: use the WARP software rasterizer in the GPU process.
     60 const char kUseWarp[] = "use-warp";
     61 
     62 // Disables GL drawing operations which produce pixel output. With this
     63 // the GL output will not be correct but tests will run faster.
     64 const char kDisableGLDrawingForTests[] = "disable-gl-drawing-for-tests";
     65 
     66 // Forces the use of OSMesa instead of hardware gpu.
     67 const char kOverrideUseGLWithOSMesaForTests[] =
     68     "override-use-gl-with-osmesa-for-tests";
     69 
     70 // This is the list of switches passed from this file that are passed from the
     71 // GpuProcessHost to the GPU Process. Add your switch to this list if you need
     72 // to read it in the GPU process, else don't add it.
     73 const char* kGLSwitchesCopiedFromGpuProcessHost[] = {
     74   kDisableGpuVsync,
     75   kDisableD3D11,
     76   kEnableGPUServiceLogging,
     77   kEnableGPUServiceTracing,
     78   kGpuNoContextLost,
     79   kDisableGLDrawingForTests,
     80   kOverrideUseGLWithOSMesaForTests,
     81   kUseWarp
     82 };
     83 const int kGLSwitchesCopiedFromGpuProcessHostNumSwitches =
     84     arraysize(kGLSwitchesCopiedFromGpuProcessHost);
     85 
     86 }  // namespace switches
     87 
     88