build: move libcc patches to electron repo (#14104)
In the GN build, libchromiumcontent is no longer a distinct library, but merely a container for a set of scripts and patches. Maintaining those patches in a separate repository is tedious and error-prone, so merge them into the main repo. Once this is merged and GN is the default way to build Electron, the libchromiumcontent repository can be archived.
This commit is contained in:
parent
9e85bdb02c
commit
76c5f5cc8a
147 changed files with 86931 additions and 6 deletions
111
patches/common/chromium/webgl_context_attributes.patch
Normal file
111
patches/common/chromium/webgl_context_attributes.patch
Normal file
|
@ -0,0 +1,111 @@
|
|||
diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc
|
||||
index 0affacaa0294..0c321d51364d 100644
|
||||
--- a/content/renderer/renderer_blink_platform_impl.cc
|
||||
+++ b/content/renderer/renderer_blink_platform_impl.cc
|
||||
@@ -1136,8 +1136,10 @@ RendererBlinkPlatformImpl::CreateOffscreenGraphicsContext3DProvider(
|
||||
attributes.sample_buffers = 0;
|
||||
attributes.bind_generates_resource = false;
|
||||
attributes.enable_raster_interface = web_attributes.enable_raster_interface;
|
||||
- // Prefer discrete GPU for WebGL.
|
||||
- attributes.gpu_preference = gl::PreferDiscreteGpu;
|
||||
+
|
||||
+ attributes.gpu_preference = web_attributes.prefer_integrated_gpu
|
||||
+ ? gl::PreferIntegratedGpu
|
||||
+ : gl::PreferDiscreteGpu;
|
||||
|
||||
attributes.fail_if_major_perf_caveat =
|
||||
web_attributes.fail_if_major_performance_caveat;
|
||||
diff --git a/third_party/blink/renderer/core/html/canvas/canvas_context_creation_attributes_core.h b/third_party/blink/renderer/core/html/canvas/canvas_context_creation_attributes_core.h
|
||||
index ca4543a10e69..a1f5e5c9f906 100644
|
||||
--- a/third_party/blink/renderer/core/html/canvas/canvas_context_creation_attributes_core.h
|
||||
+++ b/third_party/blink/renderer/core/html/canvas/canvas_context_creation_attributes_core.h
|
||||
@@ -30,6 +30,7 @@ class CORE_EXPORT CanvasContextCreationAttributesCore {
|
||||
String pixel_format = "8-8-8-8";
|
||||
bool premultiplied_alpha = true;
|
||||
bool preserve_drawing_buffer = false;
|
||||
+ String power_preference = "default";
|
||||
bool stencil = false;
|
||||
|
||||
// This attribute is of type XRDevice, defined in modules/xr/XRDevice.h
|
||||
diff --git a/third_party/blink/renderer/modules/canvas/htmlcanvas/canvas_context_creation_attributes_module.idl b/third_party/blink/renderer/modules/canvas/htmlcanvas/canvas_context_creation_attributes_module.idl
|
||||
index 7419bb20d316..5b04af00fab4 100644
|
||||
--- a/third_party/blink/renderer/modules/canvas/htmlcanvas/canvas_context_creation_attributes_module.idl
|
||||
+++ b/third_party/blink/renderer/modules/canvas/htmlcanvas/canvas_context_creation_attributes_module.idl
|
||||
@@ -28,6 +28,12 @@ enum CanvasPixelFormat {
|
||||
"float16",
|
||||
};
|
||||
|
||||
+enum CanvasPowerPreference {
|
||||
+ "default",
|
||||
+ "low-power",
|
||||
+ "high-performance",
|
||||
+};
|
||||
+
|
||||
[PermissiveDictionaryConversion]
|
||||
dictionary CanvasContextCreationAttributesModule {
|
||||
// This is an experimental feature, but it is not hidden behind a flag in
|
||||
@@ -47,6 +47,7 @@ dictionary CanvasContextCreationAttributesModule {
|
||||
boolean antialias = true;
|
||||
boolean premultipliedAlpha = true;
|
||||
boolean preserveDrawingBuffer = false;
|
||||
+ CanvasPowerPreference powerPreference = "default";
|
||||
boolean failIfMajorPerformanceCaveat = false;
|
||||
[OriginTrialEnabled=WebXR] XRDevice compatibleXRDevice = null;
|
||||
};
|
||||
diff --git a/third_party/blink/renderer/modules/webgl/webgl_context_attribute_helpers.cc b/third_party/blink/renderer/modules/webgl/webgl_context_attribute_helpers.cc
|
||||
index 332fa9fb0547..e8fae4b01c39 100644
|
||||
--- a/third_party/blink/renderer/modules/webgl/webgl_context_attribute_helpers.cc
|
||||
+++ b/third_party/blink/renderer/modules/webgl/webgl_context_attribute_helpers.cc
|
||||
@@ -18,6 +18,7 @@ WebGLContextAttributes ToWebGLContextAttributes(
|
||||
result.setAntialias(attrs.antialias);
|
||||
result.setPremultipliedAlpha(attrs.premultiplied_alpha);
|
||||
result.setPreserveDrawingBuffer(attrs.preserve_drawing_buffer);
|
||||
+ result.setPowerPreference(attrs.power_preference);
|
||||
result.setFailIfMajorPerformanceCaveat(
|
||||
attrs.fail_if_major_performance_caveat);
|
||||
result.setCompatibleXRDevice(
|
||||
@@ -30,6 +30,7 @@ Platform::ContextAttributes ToPlatformContextAttributes(
|
||||
unsigned web_gl_version,
|
||||
bool support_own_offscreen_surface) {
|
||||
Platform::ContextAttributes result;
|
||||
+ result.prefer_integrated_gpu = attrs.power_preference == "low-power";
|
||||
result.fail_if_major_performance_caveat =
|
||||
attrs.fail_if_major_performance_caveat;
|
||||
result.context_type = web_gl_version == 2 ? Platform::kWebGL2ContextType
|
||||
diff --git a/third_party/blink/renderer/modules/webgl/webgl_context_attributes.idl b/third_party/blink/renderer/modules/webgl/webgl_context_attributes.idl
|
||||
index 180673be9bd0..0af29cbc9402 100644
|
||||
--- a/third_party/blink/renderer/modules/webgl/webgl_context_attributes.idl
|
||||
+++ b/third_party/blink/renderer/modules/webgl/webgl_context_attributes.idl
|
||||
@@ -26,6 +26,12 @@
|
||||
|
||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2
|
||||
|
||||
+enum WebGLPowerPreference {
|
||||
+ "default",
|
||||
+ "low-power",
|
||||
+ "high-performance",
|
||||
+};
|
||||
+
|
||||
dictionary WebGLContextAttributes {
|
||||
boolean alpha = true;
|
||||
boolean depth = true;
|
||||
@@ -33,6 +33,7 @@ dictionary WebGLContextAttributes {
|
||||
boolean antialias = true;
|
||||
boolean premultipliedAlpha = true;
|
||||
boolean preserveDrawingBuffer = false;
|
||||
+ WebGLPowerPreference powerPreference = "default";
|
||||
boolean failIfMajorPerformanceCaveat = false;
|
||||
[OriginTrialEnabled=WebXR] XRDevice compatibleXRDevice = null;
|
||||
};
|
||||
diff --git a/third_party/blink/public/platform/platform.h b/third_party/blink/public/platform/platform.h
|
||||
index d4948345246e..bc277ba6aa5f 100644
|
||||
--- a/third_party/blink/public/platform/platform.h
|
||||
+++ b/third_party/blink/public/platform/platform.h
|
||||
@@ -522,6 +522,7 @@ class BLINK_PLATFORM_EXPORT Platform {
|
||||
kGLES3ContextType, // GLES 3.0 context
|
||||
};
|
||||
struct ContextAttributes {
|
||||
+ bool prefer_integrated_gpu = false;
|
||||
bool fail_if_major_performance_caveat = false;
|
||||
ContextType context_type = kGLES2ContextType;
|
||||
// Offscreen contexts usually share a surface for the default frame buffer
|
Loading…
Add table
Add a link
Reference in a new issue