Home | History | Annotate | Download | only in config
      1 // Copyright (c) 2013 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/config/gpu_driver_bug_list.h"
      6 
      7 #include "base/basictypes.h"
      8 #include "base/logging.h"
      9 #include "gpu/config/gpu_driver_bug_workaround_type.h"
     10 
     11 namespace gpu {
     12 
     13 namespace {
     14 
     15 struct DriverBugInfo {
     16   int feature_type;
     17   std::string feature_name;
     18 };
     19 
     20 }  // namespace anonymous
     21 
     22 GpuDriverBugList::GpuDriverBugList()
     23     : GpuControlList() {
     24 }
     25 
     26 GpuDriverBugList::~GpuDriverBugList() {
     27 }
     28 
     29 // static
     30 GpuDriverBugList* GpuDriverBugList::Create() {
     31   GpuDriverBugList* list = new GpuDriverBugList();
     32 
     33   const DriverBugInfo kFeatureList[] = {
     34 #define GPU_OP(type, name) { type, #name },
     35     GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP)
     36 #undef GPU_OP
     37   };
     38   DCHECK_EQ(static_cast<int>(arraysize(kFeatureList)),
     39             NUMBER_OF_GPU_DRIVER_BUG_WORKAROUND_TYPES);
     40   for (int i = 0; i < NUMBER_OF_GPU_DRIVER_BUG_WORKAROUND_TYPES; ++i) {
     41     list->AddSupportedFeature(kFeatureList[i].feature_name,
     42                               kFeatureList[i].feature_type);
     43   }
     44   return list;
     45 }
     46 
     47 std::string GpuDriverBugWorkaroundTypeToString(
     48     GpuDriverBugWorkaroundType type) {
     49   switch (type) {
     50 #define GPU_OP(type, name) case type: return #name;
     51     GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP)
     52 #undef GPU_OP
     53     default:
     54       return "unknown";
     55   };
     56 }
     57 
     58 }  // namespace gpu
     59 
     60