diff options
Diffstat (limited to 'devel/electron7/files/patch-gpu_ipc_service_gpu__init.cc')
-rw-r--r-- | devel/electron7/files/patch-gpu_ipc_service_gpu__init.cc | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/devel/electron7/files/patch-gpu_ipc_service_gpu__init.cc b/devel/electron7/files/patch-gpu_ipc_service_gpu__init.cc new file mode 100644 index 000000000000..fbc581115c73 --- /dev/null +++ b/devel/electron7/files/patch-gpu_ipc_service_gpu__init.cc @@ -0,0 +1,118 @@ +--- gpu/ipc/service/gpu_init.cc.orig 2019-12-12 12:39:44 UTC ++++ gpu/ipc/service/gpu_init.cc +@@ -109,7 +109,7 @@ void InitializePlatformOverlaySettings(GPUInfo* gpu_in + #endif + } + +-#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(IS_CHROMECAST) ++#if (defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(IS_CHROMECAST)) || defined(OS_BSD) + bool CanAccessNvidiaDeviceFile() { + bool res = true; + base::ScopedBlockingCall scoped_blocking_call(FROM_HERE, +@@ -120,7 +120,7 @@ bool CanAccessNvidiaDeviceFile() { + } + return res; + } +-#endif // OS_LINUX && !OS_CHROMEOS && !IS_CHROMECAST ++#endif // (OS_LINUX && !OS_CHROMEOS && !IS_CHROMECAST) || OS_BSD + + class GpuWatchdogInit { + public: +@@ -165,7 +165,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL + // crash during feature collection. + gpu::SetKeysForCrashLogging(gpu_info_); + +-#if defined(OS_LINUX) && !defined(OS_CHROMEOS) ++#if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_BSD) + if (gpu_info_.gpu.vendor_id == 0x10de && // NVIDIA + gpu_info_.gpu.driver_vendor == "NVIDIA" && !CanAccessNvidiaDeviceFile()) + return false; +@@ -246,7 +246,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL + sandbox_helper_->PreSandboxStartup(); + + bool attempted_startsandbox = false; +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) && !defined(OS_BSD) + // On Chrome OS ARM Mali, GPU driver userspace creates threads when + // initializing a GL context, so start the sandbox early. + // TODO(zmo): Need to collect OS version before this. +@@ -255,7 +255,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL + watchdog_thread_.get(), &gpu_info_, gpu_preferences_); + attempted_startsandbox = true; + } +-#endif // defined(OS_LINUX) ++#endif // defined(OS_LINUX) && !defined(OS_BSD) + + base::TimeTicks before_initialize_one_off = base::TimeTicks::Now(); + +@@ -304,14 +304,14 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL + } + if (gl_initialized && use_swiftshader && + gl::GetGLImplementation() != gl::kGLImplementationSwiftShaderGL) { +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) || defined(OS_BSD) + VLOG(1) << "Quit GPU process launch to fallback to SwiftShader cleanly " + << "on Linux"; + return false; + #else + gl::init::ShutdownGL(true); + gl_initialized = false; +-#endif // OS_LINUX ++#endif // OS_LINUX || OS_BSD + } + if (!gl_initialized) + gl_initialized = gl::init::InitializeGLNoExtensionsOneOff(); +@@ -337,7 +337,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL + command_line, gpu_feature_info_, + gpu_preferences_.disable_software_rasterizer, false); + if (use_swiftshader) { +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) || defined(OS_BSD) + VLOG(1) << "Quit GPU process launch to fallback to SwiftShader cleanly " + << "on Linux"; + return false; +@@ -348,7 +348,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL + << "failed"; + return false; + } +-#endif // OS_LINUX ++#endif // OS_LINUX || OS_BSD + } + } + +@@ -377,7 +377,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL + + InitializePlatformOverlaySettings(&gpu_info_); + +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) || defined(OS_BSD) + // Driver may create a compatibility profile context when collect graphics + // information on Linux platform. Try to collect graphics information + // based on core profile context after disabling platform extensions. +@@ -396,7 +396,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL + return false; + } + } +-#endif // defined(OS_LINUX) ++#endif // defined(OS_LINUX) || defined(OS_BSD) + + if (use_swiftshader) { + AdjustInfoToSwiftShader(); +@@ -569,7 +569,7 @@ void GpuInit::InitializeInProcess(base::CommandLine* c + + InitializePlatformOverlaySettings(&gpu_info_); + +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) || defined(OS_BSD) + // Driver may create a compatibility profile context when collect graphics + // information on Linux platform. Try to collect graphics information + // based on core profile context after disabling platform extensions. +@@ -589,7 +589,7 @@ void GpuInit::InitializeInProcess(base::CommandLine* c + } + } + } +-#endif // defined(OS_LINUX) ++#endif // defined(OS_LINUX) || defined(OS_BSD) + + if (use_swiftshader) { + AdjustInfoToSwiftShader(); |