~osomon/oxide/override-touchUngrabEvent

« back to all changes in this revision

Viewing changes to shared/browser/oxide_gpu_info_collector_linux.cc

  • Committer: Chris Coulson
  • Date: 2016-01-08 21:31:20 UTC
  • Revision ID: chris.coulson@canonical.com-20160108213120-9v54434yvfmsd7lz
Be a bit more intelligent when detecting whether the hybris camera compatibility layer is available, or whether we're running on the Android EGL stack

Show diffs side-by-side

added added

removed removed

Lines of Context:
43
43
#include "base/files/file_util.h"
44
44
#include "base/logging.h"
45
45
#include "base/macros.h"
46
 
#include "base/native_library.h"
47
 
#include "base/strings/string_number_conversions.h"
48
46
#include "base/strings/string_split.h"
49
47
#include "base/strings/string_tokenizer.h"
50
48
#include "base/strings/string_util.h"
51
 
#include "base/strings/stringprintf.h"
52
49
#include "gpu/config/gpu_info.h"
53
50
#include "gpu/config/gpu_info_collector.h"
54
51
#include "third_party/libXNVCtrl/NVCtrl.h"
55
52
#include "third_party/libXNVCtrl/NVCtrlLib.h"
56
53
#include "ui/gfx/x/x11_types.h"
57
 
#include "ui/gl/egl_util.h"
58
 
#include "ui/gl/gl_bindings.h"
59
 
#include "ui/gl/gl_context.h"
60
54
#include "ui/gl/gl_implementation.h"
61
55
 
62
56
#include "library_loaders/libpci.h"
63
57
 
64
58
#include "shared/port/gpu_config/gpu_info_collector_oxide_linux.h"
65
59
 
66
 
#include "oxide_android_properties.h"
 
60
#if defined(ENABLE_HYBRIS)
 
61
#include "base/native_library.h"
 
62
#include "base/strings/string_number_conversions.h"
 
63
#include "base/strings/stringprintf.h"
 
64
#include "ui/gl/egl_util.h"
 
65
#include "ui/gl/gl_bindings.h"
 
66
 
 
67
#include "oxide_hybris_utils.h"
 
68
#endif
67
69
 
68
70
namespace oxide {
69
71
 
70
72
namespace {
71
73
 
 
74
#if defined(ENABLE_HYBRIS)
72
75
std::string GetDriverVersionFromString(const std::string& version_string) {
73
76
  // Extract driver version from the second number in a string like:
74
77
  // "OpenGL ES 2.0 V@6.0 AU@ (CL@2946718)"
310
313
    gpu::GPUInfo* gpu_info) {
311
314
  gpu_info->can_lose_context = false;
312
315
 
313
 
  gpu_info->machine_model_name = AndroidProperties::GetInstance()->GetModel();
 
316
  gpu_info->machine_model_name = HybrisUtils::GetDeviceProperties().model;
314
317
 
315
318
  // Create a short-lived context on the UI thread to collect the GL strings.
316
319
  gpu::CollectInfoResult result = CollectDriverInfo(gpu_info);
334
337
  return gpu::kCollectInfoSuccess;
335
338
}
336
339
 
 
340
#endif
 
341
 
337
342
// Scan /etc/ati/amdpcsdb.default for "ReleaseVersion".
338
343
// Return empty string on failing.
339
344
std::string CollectDriverVersionATI() {
597
602
  *vendor_id = 0;
598
603
  *device_id = 0;
599
604
 
600
 
  if (AndroidProperties::GetInstance()->Available()) {
 
605
#if defined(ENABLE_HYBRIS)
 
606
  if (HybrisUtils::IsUsingAndroidEGL()) {
601
607
    return gpu::kCollectInfoNonFatalFailure;
602
608
  }
 
609
#endif
603
610
 
604
611
  gpu::GPUInfo gpu_info;
605
612
  gpu::CollectInfoResult result = CollectPCIVideoCardInfo(&gpu_info);
613
620
 
614
621
gpu::CollectInfoResult GpuInfoCollectorLinux::CollectContextGraphicsInfo(
615
622
    gpu::GPUInfo* gpu_info) {
616
 
  if (AndroidProperties::GetInstance()->Available()) {
 
623
#if defined(ENABLE_HYBRIS)
 
624
  if (HybrisUtils::IsUsingAndroidEGL()) {
617
625
    return CollectContextGraphicsInfoAndroid(gpu_info);
618
626
  }
 
627
#endif
619
628
 
620
629
  return CollectContextGraphicsInfoLinux(gpu_info);
621
630
}
622
631
 
623
632
gpu::CollectInfoResult GpuInfoCollectorLinux::CollectBasicGraphicsInfo(
624
633
    gpu::GPUInfo* gpu_info) {
625
 
  if (AndroidProperties::GetInstance()->Available()) {
 
634
#if defined(ENABLE_HYBRIS)
 
635
  if (HybrisUtils::IsUsingAndroidEGL()) {
626
636
    return CollectBasicGraphicsInfoAndroid(gpu_info);
627
637
  }
 
638
#endif
628
639
 
629
640
  return CollectBasicGraphicsInfoLinux(gpu_info);
630
641
}
631
642
 
632
643
gpu::CollectInfoResult GpuInfoCollectorLinux::CollectDriverInfoGL(
633
644
    gpu::GPUInfo* gpu_info) {
634
 
  if (AndroidProperties::GetInstance()->Available()) {
 
645
#if defined(ENABLE_HYBRIS)
 
646
  if (HybrisUtils::IsUsingAndroidEGL()) {
635
647
    return CollectDriverInfoGLAndroid(gpu_info);
636
648
  }
 
649
#endif
637
650
 
638
651
  return CollectDriverInfoGLLinux(gpu_info);
639
652
}