gl_switches.h 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  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. #ifndef UI_GL_GL_SWITCHES_H_
  5. #define UI_GL_GL_SWITCHES_H_
  6. // Defines all the command-line switches used by ui/gl.
  7. #include "base/feature_list.h"
  8. #include "base/metrics/field_trial_params.h"
  9. #include "ui/gl/gl_export.h"
  10. namespace gl {
  11. // The GL implementation names that can be passed to --use-gl.
  12. GL_EXPORT extern const char kGLImplementationDesktopName[];
  13. GL_EXPORT extern const char kGLImplementationAppleName[];
  14. GL_EXPORT extern const char kGLImplementationEGLName[];
  15. GL_EXPORT extern const char kGLImplementationANGLEName[];
  16. GL_EXPORT extern const char kGLImplementationMockName[];
  17. GL_EXPORT extern const char kGLImplementationStubName[];
  18. GL_EXPORT extern const char kGLImplementationDisabledName[];
  19. GL_EXPORT extern const char kANGLEImplementationDefaultName[];
  20. GL_EXPORT extern const char kANGLEImplementationD3D9Name[];
  21. GL_EXPORT extern const char kANGLEImplementationD3D11Name[];
  22. GL_EXPORT extern const char kANGLEImplementationD3D11on12Name[];
  23. GL_EXPORT extern const char kANGLEImplementationOpenGLName[];
  24. GL_EXPORT extern const char kANGLEImplementationOpenGLEGLName[];
  25. GL_EXPORT extern const char kANGLEImplementationOpenGLESName[];
  26. GL_EXPORT extern const char kANGLEImplementationOpenGLESEGLName[];
  27. GL_EXPORT extern const char kANGLEImplementationNullName[];
  28. GL_EXPORT extern const char kANGLEImplementationVulkanName[];
  29. GL_EXPORT extern const char kANGLEImplementationSwiftShaderName[];
  30. GL_EXPORT extern const char kANGLEImplementationSwiftShaderForWebGLName[];
  31. GL_EXPORT extern const char kANGLEImplementationMetalName[];
  32. GL_EXPORT extern const char kANGLEImplementationNoneName[];
  33. GL_EXPORT extern const char kANGLEImplementationD3D11NULLName[];
  34. GL_EXPORT extern const char kANGLEImplementationOpenGLNULLName[];
  35. GL_EXPORT extern const char kANGLEImplementationOpenGLESNULLName[];
  36. GL_EXPORT extern const char kANGLEImplementationVulkanNULLName[];
  37. GL_EXPORT extern const char kANGLEImplementationMetalNULLName[];
  38. GL_EXPORT extern const char kCmdDecoderValidatingName[];
  39. GL_EXPORT extern const char kCmdDecoderPassthroughName[];
  40. GL_EXPORT extern const char kSwapChainFormatNV12[];
  41. GL_EXPORT extern const char kSwapChainFormatYUY2[];
  42. GL_EXPORT extern const char kSwapChainFormatBGRA[];
  43. } // namespace gl
  44. namespace switches {
  45. GL_EXPORT extern const char kDisableD3D11[];
  46. GL_EXPORT extern const char kDisableES3GLContext[];
  47. GL_EXPORT extern const char kDisableES3GLContextForTesting[];
  48. GL_EXPORT extern const char kDisableGpuDriverBugWorkarounds[];
  49. GL_EXPORT extern const char kDisableGpuVsync[];
  50. GL_EXPORT extern const char kEnableGPUServiceLogging[];
  51. GL_EXPORT extern const char kEnableGPUServiceTracing[];
  52. GL_EXPORT extern const char kGpuNoContextLost[];
  53. GL_EXPORT extern const char kUseANGLE[];
  54. GL_EXPORT extern const char kUseCmdDecoder[];
  55. GL_EXPORT extern const char kEnableANGLEFeatures[];
  56. GL_EXPORT extern const char kDisableANGLEFeatures[];
  57. GL_EXPORT extern const char kUseGL[];
  58. GL_EXPORT extern const char kTestGLLib[];
  59. GL_EXPORT extern const char kUseGpuInTests[];
  60. GL_EXPORT extern const char kEnableSgiVideoSync[];
  61. GL_EXPORT extern const char kDisableGLExtensions[];
  62. GL_EXPORT extern const char kEnableSwapBuffersWithBounds[];
  63. GL_EXPORT extern const char kDisableDirectComposition[];
  64. GL_EXPORT extern const char kEnableDirectCompositionVideoOverlays[];
  65. GL_EXPORT extern const char kDisableDirectCompositionVideoOverlays[];
  66. GL_EXPORT extern const char kUseAdapterLuid[];
  67. GL_EXPORT extern const char kDirectCompositionForceFullDamageForTesting[];
  68. GL_EXPORT extern const char kDirectCompositionVideoSwapChainFormat[];
  69. // These flags are used by the test harness code, not passed in by users.
  70. GL_EXPORT extern const char kDisableGLDrawingForTests[];
  71. GL_EXPORT extern const char kOverrideUseSoftwareGLForTests[];
  72. GL_EXPORT extern const char* const kGLSwitchesCopiedFromGpuProcessHost[];
  73. GL_EXPORT extern const int kGLSwitchesCopiedFromGpuProcessHostNumSwitches;
  74. } // namespace switches
  75. namespace features {
  76. GL_EXPORT extern const base::Feature kDCompTripleBufferRootSwapChain;
  77. GL_EXPORT extern const base::Feature kDCompTripleBufferVideoSwapChain;
  78. GL_EXPORT extern const base::Feature kDirectCompositionForceFullDamage;
  79. GL_EXPORT extern const base::Feature kDirectCompositionGpuVSync;
  80. GL_EXPORT extern const base::Feature kDirectCompositionLowLatencyPresentation;
  81. GL_EXPORT extern const base::Feature kDirectCompositionVerifyDrawOffset;
  82. GL_EXPORT extern const base::FeatureParam<int> kVerifyDrawOffsetX;
  83. GL_EXPORT extern const base::FeatureParam<int> kVerifyDrawOffsetY;
  84. GL_EXPORT extern const base::Feature kDirectCompositionSoftwareOverlays;
  85. GL_EXPORT extern const base::Feature kEGLDualGpuRendering;
  86. GL_EXPORT extern const base::Feature kIntelVpSuperResolution;
  87. GL_EXPORT extern const base::Feature kDefaultANGLEOpenGL;
  88. GL_EXPORT extern const base::Feature kDefaultANGLEMetal;
  89. GL_EXPORT extern const base::Feature kDefaultANGLEVulkan;
  90. GL_EXPORT extern const base::Feature kTrackCurrentShaders;
  91. GL_EXPORT extern const base::Feature kVulkanFromANGLE;
  92. GL_EXPORT extern const base::Feature kDXGIWaitableSwapChain;
  93. GL_EXPORT extern const base::FeatureParam<int>
  94. kDXGIWaitableSwapChainMaxQueuedFrames;
  95. GL_EXPORT bool IsDefaultANGLEVulkan();
  96. GL_EXPORT bool SupportsEGLDualGpuRendering();
  97. } // namespace features
  98. #endif // UI_GL_GL_SWITCHES_H_