gpu_blocklist.cc 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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. #include "gpu/config/gpu_blocklist.h"
  5. #include "gpu/config/gpu_feature_type.h"
  6. #include "gpu/config/software_rendering_list_autogen.h"
  7. namespace gpu {
  8. GpuBlocklist::GpuBlocklist(const GpuControlListData& data)
  9. : GpuControlList(data) {}
  10. GpuBlocklist::~GpuBlocklist() = default;
  11. // static
  12. std::unique_ptr<GpuBlocklist> GpuBlocklist::Create() {
  13. GpuControlListData data(kSoftwareRenderingListEntryCount,
  14. kSoftwareRenderingListEntries);
  15. return Create(data);
  16. }
  17. // static
  18. std::unique_ptr<GpuBlocklist> GpuBlocklist::Create(
  19. const GpuControlListData& data) {
  20. std::unique_ptr<GpuBlocklist> list(new GpuBlocklist(data));
  21. list->AddSupportedFeature("accelerated_2d_canvas",
  22. GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS);
  23. list->AddSupportedFeature("accelerated_webgl",
  24. GPU_FEATURE_TYPE_ACCELERATED_WEBGL);
  25. list->AddSupportedFeature("accelerated_video_decode",
  26. GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE);
  27. list->AddSupportedFeature("accelerated_video_encode",
  28. GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE);
  29. list->AddSupportedFeature("gpu_rasterization",
  30. GPU_FEATURE_TYPE_GPU_RASTERIZATION);
  31. list->AddSupportedFeature("accelerated_webgl2",
  32. GPU_FEATURE_TYPE_ACCELERATED_WEBGL2);
  33. list->AddSupportedFeature("android_surface_control",
  34. GPU_FEATURE_TYPE_ANDROID_SURFACE_CONTROL);
  35. list->AddSupportedFeature("accelerated_gl", GPU_FEATURE_TYPE_ACCELERATED_GL);
  36. list->AddSupportedFeature("metal", GPU_FEATURE_TYPE_METAL);
  37. list->AddSupportedFeature("vulkan", GPU_FEATURE_TYPE_VULKAN);
  38. list->AddSupportedFeature("canvas_oop_rasterization",
  39. GPU_FEATURE_TYPE_CANVAS_OOP_RASTERIZATION);
  40. list->AddSupportedFeature("accelerated_webgpu",
  41. GPU_FEATURE_TYPE_ACCELERATED_WEBGPU);
  42. return list;
  43. }
  44. // static
  45. bool GpuBlocklist::AreEntryIndicesValid(
  46. const std::vector<uint32_t>& entry_indices) {
  47. return GpuControlList::AreEntryIndicesValid(entry_indices,
  48. kSoftwareRenderingListEntryCount);
  49. }
  50. } // namespace gpu