Home | History | Annotate | Download | only in service
      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 "gpu/command_buffer/service/gpu_switches.h"
      6 #include "base/basictypes.h"
      7 
      8 namespace switches {
      9 
     10 // Always return success when compiling a shader. Linking will still fail.
     11 const char kCompileShaderAlwaysSucceeds[]   = "compile-shader-always-succeeds";
     12 
     13 // Disable the GL error log limit.
     14 const char kDisableGLErrorLimit[]           = "disable-gl-error-limit";
     15 
     16 // Disable the GLSL translator.
     17 const char kDisableGLSLTranslator[]         = "disable-glsl-translator";
     18 
     19 // Disable workarounds for various GPU driver bugs.
     20 const char kDisableGpuDriverBugWorkarounds[] =
     21     "disable-gpu-driver-bug-workarounds";
     22 
     23 // Turn off user-defined name hashing in shaders.
     24 const char kDisableShaderNameHashing[]      = "disable-shader-name-hashing";
     25 
     26 // Turn on Logging GPU commands.
     27 const char kEnableGPUCommandLogging[]       = "enable-gpu-command-logging";
     28 
     29 // Turn on Calling GL Error after every command.
     30 const char kEnableGPUDebugging[]            = "enable-gpu-debugging";
     31 
     32 // Enable GPU service logging. Note: This is the same switch as the one in
     33 // gl_switches.cc. It's defined here again to avoid dependencies between
     34 // dlls.
     35 const char kEnableGPUServiceLoggingGPU[]    = "enable-gpu-service-logging";
     36 
     37 // Turn off gpu program caching
     38 const char kDisableGpuProgramCache[]        = "disable-gpu-program-cache";
     39 
     40 // Enforce GL minimums.
     41 const char kEnforceGLMinimums[]             = "enforce-gl-minimums";
     42 
     43 // Force the use of a workaround for graphics hangs seen on certain
     44 // Mac OS systems. Enabled by default (and can't be disabled) on known
     45 // affected systems.
     46 const char kForceGLFinishWorkaround[]       = "force-glfinish-workaround";
     47 
     48 // Sets the total amount of memory that may be allocated for GPU resources
     49 const char kForceGpuMemAvailableMb[]        = "force-gpu-mem-available-mb";
     50 
     51 // Force the synchronous copy path in compositing_iosurface_mac.
     52 const char kForceSynchronousGLReadPixels[]  = "force-synchronous-glreadpixels";
     53 
     54 // Pass a set of GpuDriverBugWorkaroundType ids, seperated by ','.
     55 const char kGpuDriverBugWorkarounds[] = "gpu-driver-bug-workarounds";
     56 
     57 // Sets the maximum size of the in-memory gpu program cache, in kb
     58 const char kGpuProgramCacheSizeKb[]         = "gpu-program-cache-size-kb";
     59 
     60 const char kTraceGL[]       = "trace-gl";
     61 
     62 // Disables the GPU shader on disk cache.
     63 const char kDisableGpuShaderDiskCache[]     = "disable-gpu-shader-disk-cache";
     64 
     65 // Allows async texture uploads (off main thread) via GL context sharing.
     66 const char kEnableShareGroupAsyncTextureUpload[] =
     67     "enable-share-group-async-texture-upload";
     68 
     69 const char* kGpuSwitches[] = {
     70   kCompileShaderAlwaysSucceeds,
     71   kDisableGLErrorLimit,
     72   kDisableGLSLTranslator,
     73   kDisableGpuDriverBugWorkarounds,
     74   kDisableShaderNameHashing,
     75   kEnableGPUCommandLogging,
     76   kEnableGPUDebugging,
     77   kEnableGPUServiceLoggingGPU,
     78   kDisableGpuProgramCache,
     79   kEnforceGLMinimums,
     80   kForceGLFinishWorkaround,
     81   kForceGpuMemAvailableMb,
     82   kForceSynchronousGLReadPixels,
     83   kGpuDriverBugWorkarounds,
     84   kGpuProgramCacheSizeKb,
     85   kTraceGL,
     86   kDisableGpuShaderDiskCache,
     87   kEnableShareGroupAsyncTextureUpload,
     88 };
     89 
     90 const int kNumGpuSwitches = arraysize(kGpuSwitches);
     91 
     92 }  // namespace switches
     93