parent
c31aa162c2
commit
c86221443c
@ -1,31 +0,0 @@
|
|||||||
diff -up chromium-105.0.5195.52/third_party/wayland/src/src/wayland-client-core.h.old-wayland chromium-105.0.5195.52/third_party/wayland/src/src/wayland-client-core.h
|
|
||||||
--- chromium-105.0.5195.52/third_party/wayland/src/src/wayland-client-core.h.old-wayland 2022-09-01 19:36:06.099483374 +0000
|
|
||||||
+++ chromium-105.0.5195.52/third_party/wayland/src/src/wayland-client-core.h 2022-09-01 22:09:56.523353619 +0000
|
|
||||||
@@ -119,9 +119,27 @@ struct wl_display;
|
|
||||||
*/
|
|
||||||
struct wl_event_queue;
|
|
||||||
|
|
||||||
+/** Destroy proxy after marshalling
|
|
||||||
+ * @ingroup wl_proxy
|
|
||||||
+ */
|
|
||||||
+#define WL_MARSHAL_FLAG_DESTROY (1 << 0)
|
|
||||||
+
|
|
||||||
void
|
|
||||||
wl_event_queue_destroy(struct wl_event_queue *queue);
|
|
||||||
|
|
||||||
+struct wl_proxy *
|
|
||||||
+wl_proxy_marshal_flags(struct wl_proxy *proxy, uint32_t opcode,
|
|
||||||
+ const struct wl_interface *interface,
|
|
||||||
+ uint32_t version,
|
|
||||||
+ uint32_t flags, ...);
|
|
||||||
+
|
|
||||||
+struct wl_proxy *
|
|
||||||
+wl_proxy_marshal_array_flags(struct wl_proxy *proxy, uint32_t opcode,
|
|
||||||
+ const struct wl_interface *interface,
|
|
||||||
+ uint32_t version,
|
|
||||||
+ uint32_t flags,
|
|
||||||
+ union wl_argument *args);
|
|
||||||
+
|
|
||||||
void
|
|
||||||
wl_proxy_marshal(struct wl_proxy *p, uint32_t opcode, ...);
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
|||||||
From 3e1e86ac882ae0ce4b9ec50834a4ff8becd912ab Mon Sep 17 00:00:00 2001
|
|
||||||
From: Stephan Hartmann <stha09@googlemail.com>
|
|
||||||
Date: Mon, 19 Dec 2022 16:59:46 +0000
|
|
||||||
Subject: [PATCH] GCC: move pragmas in blink::CanvasResourceProvider
|
|
||||||
|
|
||||||
GCC does not allow using #pragma inside an enum.
|
|
||||||
|
|
||||||
Bug: 819294
|
|
||||||
Change-Id: I637b5a616b080d17bb719aae9ec8cf06d0f8c464
|
|
||||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4111848
|
|
||||||
Reviewed-by: Stephen Chenney <schenney@chromium.org>
|
|
||||||
Commit-Queue: Stephan Hartmann <stha09@googlemail.com>
|
|
||||||
Cr-Commit-Position: refs/heads/main@{#1084983}
|
|
||||||
---
|
|
||||||
|
|
||||||
diff --git a/third_party/blink/renderer/platform/graphics/canvas_resource_provider.h b/third_party/blink/renderer/platform/graphics/canvas_resource_provider.h
|
|
||||||
index e898397f..214ab01 100644
|
|
||||||
--- a/third_party/blink/renderer/platform/graphics/canvas_resource_provider.h
|
|
||||||
+++ b/third_party/blink/renderer/platform/graphics/canvas_resource_provider.h
|
|
||||||
@@ -68,6 +68,8 @@
|
|
||||||
public:
|
|
||||||
// These values are persisted to logs. Entries should not be renumbered and
|
|
||||||
// numeric values should never be reused.
|
|
||||||
+#pragma GCC diagnostic push
|
|
||||||
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
|
||||||
enum ResourceProviderType {
|
|
||||||
kTexture [[deprecated]] = 0,
|
|
||||||
kBitmap = 1,
|
|
||||||
@@ -79,11 +81,9 @@
|
|
||||||
kPassThrough = 7,
|
|
||||||
kSwapChain = 8,
|
|
||||||
kSkiaDawnSharedImage [[deprecated]] = 9,
|
|
||||||
-#pragma GCC diagnostic push
|
|
||||||
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
|
||||||
kMaxValue = kSkiaDawnSharedImage,
|
|
||||||
-#pragma GCC diagnostic pop
|
|
||||||
};
|
|
||||||
+#pragma GCC diagnostic pop
|
|
||||||
|
|
||||||
// The following parameters attempt to reach a compromise between not flushing
|
|
||||||
// too often, and not accumulating an unreasonable backlog. Flushing too
|
|
@ -1,41 +0,0 @@
|
|||||||
From b4e56d22275cae5a910463a966a96345430a83ea Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ivan Murashov <ivan.murashov@lge.com>
|
|
||||||
Date: Sat, 17 Dec 2022 12:06:01 +0000
|
|
||||||
Subject: [PATCH] libstdc++: Don't use const members in std::vector in password_manager::CredentialUIEntry
|
|
||||||
|
|
||||||
Otherwise build fails when building with use_custom_libcxx=false.
|
|
||||||
The error example:
|
|
||||||
std::vector must have a non-const, non-volatile value_type
|
|
||||||
|
|
||||||
Implementation of std::vector in libstdc++ does not allow const.
|
|
||||||
|
|
||||||
Bug: 957519
|
|
||||||
Change-Id: I089de2d52df25138d74dbf01fdf61d6301b4d871
|
|
||||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4111037
|
|
||||||
Reviewed-by: Mohamed Amir Yosef <mamir@chromium.org>
|
|
||||||
Commit-Queue: Mohamed Amir Yosef <mamir@chromium.org>
|
|
||||||
Cr-Commit-Position: refs/heads/main@{#1084697}
|
|
||||||
---
|
|
||||||
|
|
||||||
diff --git a/components/password_manager/core/browser/ui/credential_ui_entry.cc b/components/password_manager/core/browser/ui/credential_ui_entry.cc
|
|
||||||
index 1e0766a..a9a34f7 100644
|
|
||||||
--- a/components/password_manager/core/browser/ui/credential_ui_entry.cc
|
|
||||||
+++ b/components/password_manager/core/browser/ui/credential_ui_entry.cc
|
|
||||||
@@ -97,7 +97,7 @@
|
|
||||||
// For cases when the notes differ within grouped passwords (e.g: a
|
|
||||||
// credential exists in both account and profile stores), respective notes
|
|
||||||
// should be concatenated and linebreak used as a delimiter.
|
|
||||||
- std::vector<const std::u16string> notes_with_duplicates;
|
|
||||||
+ std::vector<std::u16string> notes_with_duplicates;
|
|
||||||
for (const auto& form : forms) {
|
|
||||||
// Only notes with an empty `unique_display_name` are supported in the
|
|
||||||
// settings UI.
|
|
||||||
@@ -109,7 +109,7 @@
|
|
||||||
}
|
|
||||||
auto unique_notes =
|
|
||||||
base::MakeFlatSet<std::u16string>(std::move(notes_with_duplicates));
|
|
||||||
- note = base::JoinString(std::vector<const std::u16string>(
|
|
||||||
+ note = base::JoinString(std::vector<std::u16string>(
|
|
||||||
unique_notes.begin(), unique_notes.end()),
|
|
||||||
u"\n");
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
|||||||
From 795c311aae4b718585bc6194189f061000c823a1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Stephan Hartmann <stha09@googlemail.com>
|
|
||||||
Date: Fri, 23 Dec 2022 14:28:55 +0000
|
|
||||||
Subject: [PATCH] libstdc++: fix narrowing in blink::DarkModeLABColorSpace
|
|
||||||
|
|
||||||
Clang-14 errors out with narrowing from double to float. Use std::pow
|
|
||||||
instead.
|
|
||||||
---
|
|
||||||
.../renderer/platform/graphics/dark_mode_lab_color_space.h | 5 +++--
|
|
||||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/third_party/blink/renderer/platform/graphics/dark_mode_lab_color_space.h b/third_party/blink/renderer/platform/graphics/dark_mode_lab_color_space.h
|
|
||||||
index 999c3e5..c18ea7b 100644
|
|
||||||
--- a/third_party/blink/renderer/platform/graphics/dark_mode_lab_color_space.h
|
|
||||||
+++ b/third_party/blink/renderer/platform/graphics/dark_mode_lab_color_space.h
|
|
||||||
@@ -125,7 +125,7 @@ class DarkModeLABColorSpace {
|
|
||||||
// https://en.wikipedia.org/wiki/CIELAB_color_space#Reverse_transformation.
|
|
||||||
SkV3 FromXYZ(const SkV3& v) const {
|
|
||||||
auto f = [](float x) {
|
|
||||||
- return x > kSigma3 ? pow(x, 1.0f / 3.0f)
|
|
||||||
+ return x > kSigma3 ? std::pow(x, 1.0f / 3.0f)
|
|
||||||
: x / (3 * kSigma2) + 4.0f / 29.0f;
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -145,7 +145,8 @@ class DarkModeLABColorSpace {
|
|
||||||
// https://en.wikipedia.org/wiki/CIELAB_color_space#Forward_transformation.
|
|
||||||
SkV3 ToXYZ(const SkV3& lab) const {
|
|
||||||
auto invf = [](float x) {
|
|
||||||
- return x > kSigma ? pow(x, 3.0f) : 3.0f * kSigma2 * (x - 4.0f / 29.0f);
|
|
||||||
+ return x > kSigma ? std::pow(x, 3.0f)
|
|
||||||
+ : 3.0f * kSigma2 * (x - 4.0f / 29.0f);
|
|
||||||
};
|
|
||||||
|
|
||||||
SkV3 v = {Clamp(lab.x, 0.0f, 100.0f), Clamp(lab.y, -128.0f, 128.0f),
|
|
||||||
--
|
|
||||||
2.38.2
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
|||||||
From 63027c62eaa1b6c5b0d2762a511f1611b15d3728 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Stephan Hartmann <stha09@googlemail.com>
|
|
||||||
Date: Mon, 19 Dec 2022 13:56:17 +0000
|
|
||||||
Subject: [PATCH] libstdc++: fix incomplete type of download::InProgressDownloadManager
|
|
||||||
|
|
||||||
Destructor of std::unique_ptr in libstdc++ uses sizeof() which
|
|
||||||
requires full definition of download::InProgressDownloadManager
|
|
||||||
for return type of content::BrowserContext::
|
|
||||||
RetrieveInProgressDownloadManager().
|
|
||||||
|
|
||||||
Bug: 957519
|
|
||||||
Change-Id: If99aa8d52238bacb1cb559a300e14ed3a05b7297
|
|
||||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4111526
|
|
||||||
Reviewed-by: Bo Liu <boliu@chromium.org>
|
|
||||||
Commit-Queue: Stephan Hartmann <stha09@googlemail.com>
|
|
||||||
Cr-Commit-Position: refs/heads/main@{#1084924}
|
|
||||||
---
|
|
||||||
|
|
||||||
diff --git a/content/browser/browser_context.cc b/content/browser/browser_context.cc
|
|
||||||
index 6180969..22e9dbb 100644
|
|
||||||
--- a/content/browser/browser_context.cc
|
|
||||||
+++ b/content/browser/browser_context.cc
|
|
||||||
@@ -30,6 +30,7 @@
|
|
||||||
#include "base/unguessable_token.h"
|
|
||||||
#include "build/build_config.h"
|
|
||||||
#include "build/chromeos_buildflags.h"
|
|
||||||
+#include "components/download/public/common/in_progress_download_manager.h"
|
|
||||||
#include "components/services/storage/privileged/mojom/indexed_db_control.mojom.h"
|
|
||||||
#include "content/browser/blob_storage/chrome_blob_storage_context.h"
|
|
||||||
#include "content/browser/browser_context_impl.h"
|
|
@ -1,29 +0,0 @@
|
|||||||
From 07f0a87e4409f27854b3a1d17f270a3497f38947 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Stephan Hartmann <stha09@googlemail.com>
|
|
||||||
Date: Mon, 19 Dec 2022 19:07:37 +0000
|
|
||||||
Subject: [PATCH] GCC: use fabsf in ui::NativeThemeBase::OutlineColor
|
|
||||||
|
|
||||||
Template deduction fails for base::clamp, because return type of
|
|
||||||
fabs is double and all other parameters are float.
|
|
||||||
|
|
||||||
Bug: 819294
|
|
||||||
Change-Id: I34f1c9c99d13f69097d899bfcb0526cbdf4fe1c1
|
|
||||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4110869
|
|
||||||
Reviewed-by: Peter Kasting <pkasting@chromium.org>
|
|
||||||
Commit-Queue: Stephan Hartmann <stha09@googlemail.com>
|
|
||||||
Cr-Commit-Position: refs/heads/main@{#1085034}
|
|
||||||
---
|
|
||||||
|
|
||||||
diff --git a/ui/native_theme/native_theme_base.cc b/ui/native_theme/native_theme_base.cc
|
|
||||||
index 169c60c..36db49a 100644
|
|
||||||
--- a/ui/native_theme/native_theme_base.cc
|
|
||||||
+++ b/ui/native_theme/native_theme_base.cc
|
|
||||||
@@ -1336,7 +1336,7 @@
|
|
||||||
// The following code has been tested to look OK with all of the
|
|
||||||
// default GTK themes.
|
|
||||||
SkScalar min_diff = base::clamp((hsv1[1] + hsv2[1]) * 1.2f, 0.28f, 0.5f);
|
|
||||||
- SkScalar diff = base::clamp(fabs(hsv1[2] - hsv2[2]) / 2, min_diff, 0.5f);
|
|
||||||
+ SkScalar diff = base::clamp(fabsf(hsv1[2] - hsv2[2]) / 2, min_diff, 0.5f);
|
|
||||||
|
|
||||||
if (hsv1[2] + hsv2[2] > 1.0)
|
|
||||||
diff = -diff;
|
|
@ -1,26 +0,0 @@
|
|||||||
From c69b818a9fce2bf0fb81b280d6f4cc15e6fdb8af Mon Sep 17 00:00:00 2001
|
|
||||||
From: Stephan Hartmann <stha09@googlemail.com>
|
|
||||||
Date: Fri, 16 Dec 2022 17:13:43 +0000
|
|
||||||
Subject: [PATCH] GCC: fix incomplete type of gl::Presenter
|
|
||||||
|
|
||||||
GCC requires full definition of gl::Presenter for return type
|
|
||||||
of gl::GLOzoneEGL::CreateGLContext() with base::scoped_refptr.
|
|
||||||
---
|
|
||||||
ui/ozone/common/gl_ozone_egl.cc | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/ui/ozone/common/gl_ozone_egl.cc b/ui/ozone/common/gl_ozone_egl.cc
|
|
||||||
index 9b1d37e..e745dd7 100644
|
|
||||||
--- a/ui/ozone/common/gl_ozone_egl.cc
|
|
||||||
+++ b/ui/ozone/common/gl_ozone_egl.cc
|
|
||||||
@@ -13,6 +13,7 @@
|
|
||||||
#include "ui/gl/gl_share_group.h"
|
|
||||||
#include "ui/gl/gl_surface.h"
|
|
||||||
#include "ui/gl/gl_utils.h"
|
|
||||||
+#include "ui/gl/presenter.h"
|
|
||||||
|
|
||||||
namespace ui {
|
|
||||||
|
|
||||||
--
|
|
||||||
2.37.4
|
|
||||||
|
|
@ -1,74 +0,0 @@
|
|||||||
From 200fc7c3ec95bc86f6afb55ca3c691e923463104 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Leonid Baraz <lbaraz@chromium.org>
|
|
||||||
Date: Mon, 19 Dec 2022 21:46:04 +0000
|
|
||||||
Subject: [PATCH] GCC: fix usage of decltype in reporting::StorageQueue
|
|
||||||
|
|
||||||
GCC does not allow to use decltype for the default value of
|
|
||||||
a function parameter.
|
|
||||||
|
|
||||||
Bug: 819294
|
|
||||||
Change-Id: I7ebb255634375ce889933f8b67acb10f0e56ca8d
|
|
||||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4111548
|
|
||||||
Reviewed-by: Leonid Baraz <lbaraz@chromium.org>
|
|
||||||
Commit-Queue: Leonid Baraz <lbaraz@chromium.org>
|
|
||||||
Reviewed-by: Hong Xu <xuhong@google.com>
|
|
||||||
Cr-Commit-Position: refs/heads/main@{#1085129}
|
|
||||||
---
|
|
||||||
|
|
||||||
diff --git a/components/reporting/storage/storage_queue.cc b/components/reporting/storage/storage_queue.cc
|
|
||||||
index c546d55a..49e0f2c 100644
|
|
||||||
--- a/components/reporting/storage/storage_queue.cc
|
|
||||||
+++ b/components/reporting/storage/storage_queue.cc
|
|
||||||
@@ -203,7 +203,6 @@
|
|
||||||
encryption_module_(encryption_module),
|
|
||||||
compression_module_(compression_module) {
|
|
||||||
DETACH_FROM_SEQUENCE(storage_queue_sequence_checker_);
|
|
||||||
- DCHECK(write_contexts_queue_.empty());
|
|
||||||
}
|
|
||||||
|
|
||||||
StorageQueue::~StorageQueue() {
|
|
||||||
@@ -2133,9 +2132,7 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
void StorageQueue::TestInjectErrorsForOperation(
|
|
||||||
- base::RepeatingCallback<
|
|
||||||
- Status(test::StorageQueueOperationKind operation_kind, int64_t)>
|
|
||||||
- handler) {
|
|
||||||
+ test::ErrorInjectionHandlerType handler) {
|
|
||||||
test_injection_handler_ = handler;
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/components/reporting/storage/storage_queue.h b/components/reporting/storage/storage_queue.h
|
|
||||||
index 39edd8b..04d5f9f 100644
|
|
||||||
--- a/components/reporting/storage/storage_queue.h
|
|
||||||
+++ b/components/reporting/storage/storage_queue.h
|
|
||||||
@@ -52,6 +52,9 @@
|
|
||||||
kWriteLowDiskSpace,
|
|
||||||
};
|
|
||||||
|
|
||||||
+using ErrorInjectionHandlerType =
|
|
||||||
+ base::RepeatingCallback<Status(test::StorageQueueOperationKind, int64_t)>;
|
|
||||||
+
|
|
||||||
} // namespace test
|
|
||||||
|
|
||||||
// Storage queue represents single queue of data to be collected and stored
|
|
||||||
@@ -142,8 +145,7 @@
|
|
||||||
// can be returned as a resulting operation status too.
|
|
||||||
// If `handler` is null, error injections is disabled.
|
|
||||||
void TestInjectErrorsForOperation(
|
|
||||||
- base::RepeatingCallback<Status(test::StorageQueueOperationKind, int64_t)>
|
|
||||||
- handler = decltype(handler)());
|
|
||||||
+ test::ErrorInjectionHandlerType handler = base::NullCallback());
|
|
||||||
|
|
||||||
// Access queue options.
|
|
||||||
const QueueOptions& options() const { return options_; }
|
|
||||||
@@ -492,8 +494,7 @@
|
|
||||||
// Test only: records callback to be invoked. It will be called with operation
|
|
||||||
// kind and seq id, and will return Status (non-OK status indicates the
|
|
||||||
// failure to be injected). In production code must be null.
|
|
||||||
- base::RepeatingCallback<Status(test::StorageQueueOperationKind, int64_t)>
|
|
||||||
- test_injection_handler_;
|
|
||||||
+ test::ErrorInjectionHandlerType test_injection_handler_{base::NullCallback()};
|
|
||||||
|
|
||||||
// Weak pointer factory (must be last member in class).
|
|
||||||
base::WeakPtrFactory<StorageQueue> weakptr_factory_{this};
|
|
@ -1,28 +0,0 @@
|
|||||||
From da8029438ea8f00a154cb6a1bbc8243de39690de Mon Sep 17 00:00:00 2001
|
|
||||||
From: Stephan Hartmann <stha09@googlemail.com>
|
|
||||||
Date: Sun, 18 Dec 2022 22:11:58 +0000
|
|
||||||
Subject: [PATCH] GCC: remove redundant template parameter from SyncIterator
|
|
||||||
|
|
||||||
GCC 12 in C++20 mode does not allow this anymore.
|
|
||||||
|
|
||||||
Bug: 819294
|
|
||||||
Change-Id: I6b22d3919f08fb72a5b1d69eea59c6e95259c16f
|
|
||||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4111547
|
|
||||||
Commit-Queue: Stephan Hartmann <stha09@googlemail.com>
|
|
||||||
Reviewed-by: Kentaro Hara <haraken@chromium.org>
|
|
||||||
Cr-Commit-Position: refs/heads/main@{#1084808}
|
|
||||||
---
|
|
||||||
|
|
||||||
diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/sync_iterator.py b/third_party/blink/renderer/bindings/scripts/bind_gen/sync_iterator.py
|
|
||||||
index 1d67fa2..9cec5094 100644
|
|
||||||
--- a/third_party/blink/renderer/bindings/scripts/bind_gen/sync_iterator.py
|
|
||||||
+++ b/third_party/blink/renderer/bindings/scripts/bind_gen/sync_iterator.py
|
|
||||||
@@ -36,7 +36,7 @@
|
|
||||||
member_initializer_list=[
|
|
||||||
"${base_class_name}(source, kind)",
|
|
||||||
]),
|
|
||||||
- CxxFuncDeclNode(name="~${class_name}",
|
|
||||||
+ CxxFuncDeclNode(name="~SyncIterator",
|
|
||||||
arg_decls=[],
|
|
||||||
return_type="",
|
|
||||||
override=True,
|
|
@ -1,94 +0,0 @@
|
|||||||
From df728d2e2fe8284316ed083c5a210bca1e50986e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jose Dapena Paz <jdapena@igalia.com>
|
|
||||||
Date: Mon, 16 Jan 2023 12:53:21 +0100
|
|
||||||
Subject: [PATCH] GCC: fix distributed point functions build in ARM64 with SVE
|
|
||||||
|
|
||||||
SVE build is broken in ARM64, because distributed_point_functions
|
|
||||||
is trying to use operator& and operator|.
|
|
||||||
|
|
||||||
Bug:819294
|
|
||||||
Change-Id: I465efa475ed59031a2cfaf4172ef9fbd8bb05050
|
|
||||||
---
|
|
||||||
dpf/internal/evaluate_prg_hwy.cc | 34 ++++++++++++++------------------
|
|
||||||
1 file changed, 15 insertions(+), 19 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dpf/internal/evaluate_prg_hwy.cc b/dpf/internal/evaluate_prg_hwy.cc
|
|
||||||
index 3d743f4..a1dd8e0 100644
|
|
||||||
--- a//third_party/distributed_point_functions/code/dpf/internal/evaluate_prg_hwy.cc
|
|
||||||
+++ b//third_party/distributed_point_functions/code/dpf/internal/evaluate_prg_hwy.cc
|
|
||||||
@@ -124,14 +124,14 @@ auto IsBitSet(D d, const V input, int index) {
|
|
||||||
|
|
||||||
// Compute input AND index_64 on 64-bit integers.
|
|
||||||
auto input_64 = hn::BitCast(d64, input);
|
|
||||||
- input_64 &= index_64;
|
|
||||||
+ input_64 = hn::And(input_64, index_64);
|
|
||||||
|
|
||||||
// Take the OR of every two adjacent 64-bit integers. This ensures that each
|
|
||||||
// half of an 128-bit block is nonzero iff at least one half was nonzero.
|
|
||||||
- input_64 |= hn::Shuffle01(input_64);
|
|
||||||
+ input_64 = hn::Or(input_64, hn::Shuffle01(input_64));
|
|
||||||
|
|
||||||
// Compute a 64-bit mask that checks which integers are nonzero.
|
|
||||||
- return input_64 != hn::Zero(d64);
|
|
||||||
+ return hn::Ne(input_64, hn::Zero(d64));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Dummy struct to get HWY_ALIGN as a number, for testing if an array of
|
|
||||||
@@ -236,24 +236,20 @@ absl::Status EvaluateSeedsHwy(
|
|
||||||
// Apply correction.
|
|
||||||
const auto correction_seed = hn::LoadDup128(
|
|
||||||
d64, reinterpret_cast<const uint64_t*>(correction_seeds + j));
|
|
||||||
- vec_0 ^=
|
|
||||||
- hn::BitCast(d8, hn::IfThenElseZero(control_mask_0, correction_seed));
|
|
||||||
- vec_1 ^=
|
|
||||||
- hn::BitCast(d8, hn::IfThenElseZero(control_mask_1, correction_seed));
|
|
||||||
- vec_2 ^=
|
|
||||||
- hn::BitCast(d8, hn::IfThenElseZero(control_mask_2, correction_seed));
|
|
||||||
- vec_3 ^=
|
|
||||||
- hn::BitCast(d8, hn::IfThenElseZero(control_mask_3, correction_seed));
|
|
||||||
+ vec_0 = hn::Xor(vec_0, hn::BitCast(d8, hn::IfThenElseZero(control_mask_0, correction_seed)));
|
|
||||||
+ vec_1 = hn::Xor(vec_1, hn::BitCast(d8, hn::IfThenElseZero(control_mask_1, correction_seed)));
|
|
||||||
+ vec_2 = hn::Xor(vec_2, hn::BitCast(d8, hn::IfThenElseZero(control_mask_2, correction_seed)));
|
|
||||||
+ vec_3 = hn::Xor(vec_3, hn::BitCast(d8, hn::IfThenElseZero(control_mask_3, correction_seed)));
|
|
||||||
|
|
||||||
// Extract control bit for next level.
|
|
||||||
const auto next_control_mask_0 = IsBitSet(d8, vec_0, 0);
|
|
||||||
const auto next_control_mask_1 = IsBitSet(d8, vec_1, 0);
|
|
||||||
const auto next_control_mask_2 = IsBitSet(d8, vec_2, 0);
|
|
||||||
const auto next_control_mask_3 = IsBitSet(d8, vec_3, 0);
|
|
||||||
- vec_0 &= clear_lowest_bit;
|
|
||||||
- vec_1 &= clear_lowest_bit;
|
|
||||||
- vec_2 &= clear_lowest_bit;
|
|
||||||
- vec_3 &= clear_lowest_bit;
|
|
||||||
+ vec_0 = hn::And(vec_0, clear_lowest_bit);
|
|
||||||
+ vec_1 = hn::And(vec_1, clear_lowest_bit);
|
|
||||||
+ vec_2 = hn::And(vec_2, clear_lowest_bit);
|
|
||||||
+ vec_3 = hn::And(vec_3, clear_lowest_bit);
|
|
||||||
|
|
||||||
// Perform control bit correction.
|
|
||||||
const auto correction_control_mask_left =
|
|
||||||
@@ -321,10 +317,10 @@ absl::Status EvaluateSeedsHwy(
|
|
||||||
// Apply correction.
|
|
||||||
const auto correction_seed = hn::LoadDup128(
|
|
||||||
d64, reinterpret_cast<const uint64_t*>(correction_seeds + j));
|
|
||||||
- vec ^= hn::BitCast(d8, hn::IfThenElseZero(control_mask, correction_seed));
|
|
||||||
+ vec = hn::Xor(vec, hn::BitCast(d8, hn::IfThenElseZero(control_mask, correction_seed)));
|
|
||||||
// Extract control bit for next level.
|
|
||||||
const auto next_control_mask = IsBitSet(d8, vec, 0);
|
|
||||||
- vec &= clear_lowest_bit;
|
|
||||||
+ vec = hn::And(vec, clear_lowest_bit);
|
|
||||||
|
|
||||||
// Perform control bit correction.
|
|
||||||
const auto correction_control_mask_left =
|
|
||||||
@@ -376,9 +372,9 @@ absl::Status EvaluateSeedsHwy(
|
|
||||||
// Perform seed correction.
|
|
||||||
const auto correction_seed = hn::LoadDup128(
|
|
||||||
d64, reinterpret_cast<const uint64_t*>(correction_seeds + j));
|
|
||||||
- vec ^= hn::BitCast(d8, hn::IfThenElseZero(control_mask, correction_seed));
|
|
||||||
+ vec = hn::Xor(vec, hn::BitCast(d8, hn::IfThenElseZero(control_mask, correction_seed)));
|
|
||||||
const auto next_control_mask = IsBitSet(d8, vec, 0);
|
|
||||||
- vec &= clear_lowest_bit;
|
|
||||||
+ vec = hn::And(vec, clear_lowest_bit);
|
|
||||||
const auto correction_control_mask_left =
|
|
||||||
correction_controls_left[j] ? mask_all_one : mask_all_zero;
|
|
||||||
const auto correction_control_mask_right =
|
|
@ -1,28 +0,0 @@
|
|||||||
From 3084e834a211e85f6a17e6f8dceb6b44117211d2 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Stephan Hartmann <stha09@googlemail.com>
|
|
||||||
Date: Wed, 21 Dec 2022 19:22:46 +0000
|
|
||||||
Subject: [PATCH] GCC: fix conflicting type for kCustomizeChromeColors
|
|
||||||
|
|
||||||
GCC cannot match auto with previous declaration.
|
|
||||||
|
|
||||||
Bug: 819294
|
|
||||||
Change-Id: Ie648daaf264fb2ea177ac46c8a510d481f6fa2f4
|
|
||||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4110870
|
|
||||||
Reviewed-by: Tibor Goldschwendt <tiborg@chromium.org>
|
|
||||||
Commit-Queue: Stephan Hartmann <stha09@googlemail.com>
|
|
||||||
Cr-Commit-Position: refs/heads/main@{#1086011}
|
|
||||||
---
|
|
||||||
|
|
||||||
diff --git a/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_colors.cc b/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_colors.cc
|
|
||||||
index 2fccadb..383c9e5 100644
|
|
||||||
--- a/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_colors.cc
|
|
||||||
+++ b/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_colors.cc
|
|
||||||
@@ -31,5 +31,6 @@
|
|
||||||
|
|
||||||
} // namespace
|
|
||||||
|
|
||||||
-const auto kCustomizeChromeColors = MakeCustomizeChromeColors(
|
|
||||||
- std::make_index_sequence<std::size(kCustomizeChromeColorIds)>{});
|
|
||||||
+const decltype(kCustomizeChromeColors) kCustomizeChromeColors =
|
|
||||||
+ MakeCustomizeChromeColors(
|
|
||||||
+ std::make_index_sequence<std::size(kCustomizeChromeColorIds)>{});
|
|
@ -1,11 +0,0 @@
|
|||||||
diff -up chromium-110.0.5481.177/base/memory/ref_counted.h.me chromium-110.0.5481.177/base/memory/ref_counted.h
|
|
||||||
--- chromium-110.0.5481.177/base/memory/ref_counted.h.me 2023-02-23 13:34:33.174817255 -0500
|
|
||||||
+++ chromium-110.0.5481.177/base/memory/ref_counted.h 2023-02-23 13:42:28.646052469 -0500
|
|
||||||
@@ -6,6 +6,7 @@
|
|
||||||
#define BASE_MEMORY_REF_COUNTED_H_
|
|
||||||
|
|
||||||
#include <stddef.h>
|
|
||||||
+#include <limits>
|
|
||||||
|
|
||||||
#include <utility>
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
|||||||
From bd3af998439424886c641279b6f9bb6e950c7142 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Stephan Hartmann <stha09@googlemail.com>
|
|
||||||
Date: Sun, 18 Dec 2022 16:12:29 +0000
|
|
||||||
Subject: [PATCH] GCC: make raw_ptr::operator bool constexpr
|
|
||||||
|
|
||||||
Required because autofill::internal::FormForest uses it in
|
|
||||||
a constexpr method.
|
|
||||||
|
|
||||||
Bug: 819294
|
|
||||||
Change-Id: Ib2258c9d98c2e7f88ad192b517b487f834a87481
|
|
||||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4110924
|
|
||||||
Reviewed-by: Bartek Nowierski <bartekn@chromium.org>
|
|
||||||
Commit-Queue: Stephan Hartmann <stha09@googlemail.com>
|
|
||||||
Cr-Commit-Position: refs/heads/main@{#1084785}
|
|
||||||
---
|
|
||||||
|
|
||||||
diff --git a/base/memory/raw_ptr.h b/base/memory/raw_ptr.h
|
|
||||||
index 4191f0e..a22f64b7 100644
|
|
||||||
--- a/base/memory/raw_ptr.h
|
|
||||||
+++ b/base/memory/raw_ptr.h
|
|
||||||
@@ -1301,7 +1301,9 @@
|
|
||||||
// possible, so use it only if absolutely necessary (e.g. for const_cast).
|
|
||||||
PA_ALWAYS_INLINE T* get() const { return GetForExtraction(); }
|
|
||||||
|
|
||||||
- explicit PA_ALWAYS_INLINE operator bool() const { return !!wrapped_ptr_; }
|
|
||||||
+ constexpr explicit PA_ALWAYS_INLINE operator bool() const {
|
|
||||||
+ return !!wrapped_ptr_;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
template <typename U = T,
|
|
||||||
typename Unused = std::enable_if_t<
|
|
@ -1,34 +0,0 @@
|
|||||||
From 740d1102e3fdaaed5441b5656205df9d7e422c3a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Stephan Hartmann <stha09@googlemail.com>
|
|
||||||
Date: Tue, 20 Dec 2022 20:41:12 +0000
|
|
||||||
Subject: [PATCH] GCC: add cast for vector types in url/url_canon_internal.cc
|
|
||||||
|
|
||||||
GCC requires lax vector conversion for converting __vector(16) to
|
|
||||||
SIMD types. Add explicit cast instead.
|
|
||||||
|
|
||||||
Bug: 819294
|
|
||||||
Change-Id: Icfc9d3586350af469bfd9d83b355d94806430c43
|
|
||||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4110786
|
|
||||||
Commit-Queue: Stephan Hartmann <stha09@googlemail.com>
|
|
||||||
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
|
|
||||||
Cr-Commit-Position: refs/heads/main@{#1085617}
|
|
||||||
---
|
|
||||||
|
|
||||||
diff --git a/url/url_canon_internal.cc b/url/url_canon_internal.cc
|
|
||||||
index e4f7949..f621920 100644
|
|
||||||
--- a/url/url_canon_internal.cc
|
|
||||||
+++ b/url/url_canon_internal.cc
|
|
||||||
@@ -49,11 +49,11 @@
|
|
||||||
auto mask = b >= 0x24 && b <= 0x7e && b != 0x27 && b != 0x3c && b != 0x3e;
|
|
||||||
|
|
||||||
#ifdef __SSE2__
|
|
||||||
- if (_mm_movemask_epi8(mask) != 0xffff) {
|
|
||||||
+ if (_mm_movemask_epi8(reinterpret_cast<__m128i>(mask)) != 0xffff) {
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
- if (vminvq_u8(mask) == 0) {
|
|
||||||
+ if (vminvq_u8(reinterpret_cast<uint8x16_t>(mask)) == 0) {
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
#endif
|
|
@ -1,33 +0,0 @@
|
|||||||
From 15d123009b7e987e946309cd5724ae17f376bd16 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Stephan Hartmann <stha09@googlemail.com>
|
|
||||||
Date: Sun, 18 Dec 2022 16:26:02 +0100
|
|
||||||
Subject: [PATCH] GCC: fix selection of IMMEDIATE_CRASH
|
|
||||||
|
|
||||||
immediate_crash.h still uses V8_CC_GCC define to determine which
|
|
||||||
IMMEDIATE_CRASH macro is used. This should be V8_CC_GNU instead.
|
|
||||||
Otherwise weird compile errors are happening with turboshaft.
|
|
||||||
|
|
||||||
Bug: chromium:819294
|
|
||||||
Change-Id: Id77fe7406ae16a804e1e466844f81d6c728ec008
|
|
||||||
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4111849
|
|
||||||
Commit-Queue: Stephan Hartmann <stha09@googlemail.com>
|
|
||||||
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
|
|
||||||
Cr-Commit-Position: refs/heads/main@{#84923}
|
|
||||||
---
|
|
||||||
|
|
||||||
diff --git a/src/base/immediate-crash.h b/src/base/immediate-crash.h
|
|
||||||
index 770cb27..ce6240b 100644
|
|
||||||
--- a/v8/src/base/immediate-crash.h
|
|
||||||
+++ b/v8/src/base/immediate-crash.h
|
|
||||||
@@ -140,9 +140,9 @@
|
|
||||||
[] { TRAP_SEQUENCE_(); }(); \
|
|
||||||
} while (false)
|
|
||||||
|
|
||||||
-#endif // !V8_CC_GCC
|
|
||||||
+#endif // !V8_CC_GNU
|
|
||||||
|
|
||||||
-#if defined(__clang__) || V8_CC_GCC
|
|
||||||
+#if defined(__clang__) || V8_CC_GNU
|
|
||||||
|
|
||||||
// __builtin_unreachable() hints to the compiler that this is noreturn and can
|
|
||||||
// be packed in the function epilogue.
|
|
File diff suppressed because it is too large
Load Diff
@ -1,198 +0,0 @@
|
|||||||
From 916641c08de44e0a915df223d55781c6c912717c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Nikolaos Papaspyrou <nikolaos@chromium.org>
|
|
||||||
Date: Thu, 19 Jan 2023 13:43:10 +0100
|
|
||||||
Subject: [PATCH] [heap] Move the Stack object from ThreadLocalTop to Isolate
|
|
||||||
|
|
||||||
Stack information is thread-specific and, until now, it was stored in a
|
|
||||||
field in ThreadLocalTop. This CL moves stack information to the isolate
|
|
||||||
and makes sure to update the stack start whenever a main thread enters
|
|
||||||
the isolate. At the same time, the Stack object is refactored and
|
|
||||||
simplified.
|
|
||||||
|
|
||||||
As a side effect, after removing the Stack object, ThreadLocalTop
|
|
||||||
satisfies the std::standard_layout trait; this fixes some issues
|
|
||||||
observed with different C++ compilers.
|
|
||||||
|
|
||||||
Bug: v8:13630
|
|
||||||
Bug: v8:13257
|
|
||||||
Change-Id: I026a35af3bc6999a09b21f277756d4454c086343
|
|
||||||
|
|
||||||
(stripped tests)
|
|
||||||
---
|
|
||||||
|
|
||||||
diff --git a/src/execution/isolate.cc b/src/execution/isolate.cc
|
|
||||||
index 31536a1..22b8492 100644
|
|
||||||
--- a/v8/src/execution/isolate.cc
|
|
||||||
+++ b/v8/src/execution/isolate.cc
|
|
||||||
@@ -3069,21 +3069,23 @@
|
|
||||||
void Isolate::RecordStackSwitchForScanning() {
|
|
||||||
Object current = root(RootIndex::kActiveContinuation);
|
|
||||||
DCHECK(!current.IsUndefined());
|
|
||||||
- thread_local_top()->stack_.ClearStackSegments();
|
|
||||||
- wasm::StackMemory* stack = Managed<wasm::StackMemory>::cast(
|
|
||||||
- WasmContinuationObject::cast(current).stack())
|
|
||||||
- .get()
|
|
||||||
- .get();
|
|
||||||
+ stack().ClearStackSegments();
|
|
||||||
+ wasm::StackMemory* wasm_stack =
|
|
||||||
+ Managed<wasm::StackMemory>::cast(
|
|
||||||
+ WasmContinuationObject::cast(current).stack())
|
|
||||||
+ .get()
|
|
||||||
+ .get();
|
|
||||||
current = WasmContinuationObject::cast(current).parent();
|
|
||||||
- heap()->SetStackStart(reinterpret_cast<void*>(stack->base()));
|
|
||||||
+ heap()->SetStackStart(reinterpret_cast<void*>(wasm_stack->base()));
|
|
||||||
// We don't need to add all inactive stacks. Only the ones in the active chain
|
|
||||||
// may contain cpp heap pointers.
|
|
||||||
while (!current.IsUndefined()) {
|
|
||||||
auto cont = WasmContinuationObject::cast(current);
|
|
||||||
- auto* stack = Managed<wasm::StackMemory>::cast(cont.stack()).get().get();
|
|
||||||
- thread_local_top()->stack_.AddStackSegment(
|
|
||||||
- reinterpret_cast<const void*>(stack->base()),
|
|
||||||
- reinterpret_cast<const void*>(stack->jmpbuf()->sp));
|
|
||||||
+ auto* wasm_stack =
|
|
||||||
+ Managed<wasm::StackMemory>::cast(cont.stack()).get().get();
|
|
||||||
+ stack().AddStackSegment(
|
|
||||||
+ reinterpret_cast<const void*>(wasm_stack->base()),
|
|
||||||
+ reinterpret_cast<const void*>(wasm_stack->jmpbuf()->sp));
|
|
||||||
current = cont.parent();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -3371,23 +3373,13 @@
|
|
||||||
Isolate* saved_isolate = isolate->TryGetCurrent();
|
|
||||||
SetIsolateThreadLocals(isolate, nullptr);
|
|
||||||
isolate->set_thread_id(ThreadId::Current());
|
|
||||||
- if (saved_isolate) {
|
|
||||||
- isolate->thread_local_top()->stack_ =
|
|
||||||
- std::move(saved_isolate->thread_local_top()->stack_);
|
|
||||||
- } else {
|
|
||||||
- isolate->heap()->SetStackStart(base::Stack::GetStackStart());
|
|
||||||
- }
|
|
||||||
+ isolate->heap()->SetStackStart(base::Stack::GetStackStart());
|
|
||||||
|
|
||||||
bool owns_shared_isolate = isolate->owns_shared_isolate_;
|
|
||||||
Isolate* maybe_shared_isolate = isolate->shared_isolate_;
|
|
||||||
|
|
||||||
isolate->Deinit();
|
|
||||||
|
|
||||||
- // Restore the saved isolate's stack.
|
|
||||||
- if (saved_isolate)
|
|
||||||
- saved_isolate->thread_local_top()->stack_ =
|
|
||||||
- std::move(isolate->thread_local_top()->stack_);
|
|
||||||
-
|
|
||||||
#ifdef DEBUG
|
|
||||||
non_disposed_isolates_--;
|
|
||||||
#endif // DEBUG
|
|
||||||
@@ -4652,6 +4644,10 @@
|
|
||||||
void Isolate::Enter() {
|
|
||||||
Isolate* current_isolate = nullptr;
|
|
||||||
PerIsolateThreadData* current_data = CurrentPerIsolateThreadData();
|
|
||||||
+
|
|
||||||
+ // Set the stack start for the main thread that enters the isolate.
|
|
||||||
+ heap()->SetStackStart(base::Stack::GetStackStart());
|
|
||||||
+
|
|
||||||
if (current_data != nullptr) {
|
|
||||||
current_isolate = current_data->isolate_;
|
|
||||||
DCHECK_NOT_NULL(current_isolate);
|
|
||||||
diff --git a/src/execution/isolate.h b/src/execution/isolate.h
|
|
||||||
index afc3d0b..415e476 100644
|
|
||||||
--- a/v8/src/execution/isolate.h
|
|
||||||
+++ b/v8/src/execution/isolate.h
|
|
||||||
@@ -32,6 +32,7 @@
|
|
||||||
#include "src/execution/stack-guard.h"
|
|
||||||
#include "src/handles/handles.h"
|
|
||||||
#include "src/handles/traced-handles.h"
|
|
||||||
+#include "src/heap/base/stack.h"
|
|
||||||
#include "src/heap/factory.h"
|
|
||||||
#include "src/heap/heap.h"
|
|
||||||
#include "src/heap/read-only-heap.h"
|
|
||||||
@@ -2028,6 +2029,8 @@
|
|
||||||
SimulatorData* simulator_data() { return simulator_data_; }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+ ::heap::base::Stack& stack() { return stack_; }
|
|
||||||
+
|
|
||||||
#ifdef V8_ENABLE_WEBASSEMBLY
|
|
||||||
wasm::StackMemory*& wasm_stacks() { return wasm_stacks_; }
|
|
||||||
// Update the thread local's Stack object so that it is aware of the new stack
|
|
||||||
@@ -2526,6 +2529,9 @@
|
|
||||||
// The mutex only guards adding pages, the retrieval is signal safe.
|
|
||||||
base::Mutex code_pages_mutex_;
|
|
||||||
|
|
||||||
+ // Stack information for the main thread.
|
|
||||||
+ ::heap::base::Stack stack_;
|
|
||||||
+
|
|
||||||
#ifdef V8_ENABLE_WEBASSEMBLY
|
|
||||||
wasm::StackMemory* wasm_stacks_;
|
|
||||||
#endif
|
|
||||||
diff --git a/src/execution/thread-local-top.cc b/src/execution/thread-local-top.cc
|
|
||||||
index c115ae0..05cc20b 100644
|
|
||||||
--- a/v8/src/execution/thread-local-top.cc
|
|
||||||
+++ b/v8/src/execution/thread-local-top.cc
|
|
||||||
@@ -37,7 +37,6 @@
|
|
||||||
current_embedder_state_ = nullptr;
|
|
||||||
failed_access_check_callback_ = nullptr;
|
|
||||||
thread_in_wasm_flag_address_ = kNullAddress;
|
|
||||||
- stack_ = ::heap::base::Stack();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ThreadLocalTop::Initialize(Isolate* isolate) {
|
|
||||||
@@ -45,12 +44,8 @@
|
|
||||||
isolate_ = isolate;
|
|
||||||
thread_id_ = ThreadId::Current();
|
|
||||||
#if V8_ENABLE_WEBASSEMBLY
|
|
||||||
- stack_.SetStackStart(base::Stack::GetStackStart(),
|
|
||||||
- v8_flags.experimental_wasm_stack_switching);
|
|
||||||
thread_in_wasm_flag_address_ = reinterpret_cast<Address>(
|
|
||||||
trap_handler::GetThreadInWasmThreadLocalAddress());
|
|
||||||
-#else
|
|
||||||
- stack_.SetStackStart(base::Stack::GetStackStart(), false);
|
|
||||||
#endif // V8_ENABLE_WEBASSEMBLY
|
|
||||||
#ifdef USE_SIMULATOR
|
|
||||||
simulator_ = Simulator::current(isolate);
|
|
||||||
diff --git a/src/execution/thread-local-top.h b/src/execution/thread-local-top.h
|
|
||||||
index 43fec0a..989c817 100644
|
|
||||||
--- a/v8/src/execution/thread-local-top.h
|
|
||||||
+++ b/v8/src/execution/thread-local-top.h
|
|
||||||
@@ -10,7 +10,6 @@
|
|
||||||
#include "include/v8-unwinder.h"
|
|
||||||
#include "src/common/globals.h"
|
|
||||||
#include "src/execution/thread-id.h"
|
|
||||||
-#include "src/heap/base/stack.h"
|
|
||||||
#include "src/objects/contexts.h"
|
|
||||||
#include "src/utils/utils.h"
|
|
||||||
|
|
||||||
@@ -30,7 +29,7 @@
|
|
||||||
// TODO(all): This is not particularly beautiful. We should probably
|
|
||||||
// refactor this to really consist of just Addresses and 32-bit
|
|
||||||
// integer fields.
|
|
||||||
- static constexpr uint32_t kSizeInBytes = 30 * kSystemPointerSize;
|
|
||||||
+ static constexpr uint32_t kSizeInBytes = 25 * kSystemPointerSize;
|
|
||||||
|
|
||||||
// Does early low-level initialization that does not depend on the
|
|
||||||
// isolate being present.
|
|
||||||
@@ -147,9 +146,6 @@
|
|
||||||
|
|
||||||
// Address of the thread-local "thread in wasm" flag.
|
|
||||||
Address thread_in_wasm_flag_address_;
|
|
||||||
-
|
|
||||||
- // Stack information.
|
|
||||||
- ::heap::base::Stack stack_;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace internal
|
|
||||||
diff --git a/src/heap/heap.cc b/src/heap/heap.cc
|
|
||||||
index f4b7da0..6efd486 100644
|
|
||||||
--- a/v8/src/heap/heap.cc
|
|
||||||
+++ b/v8/src/heap/heap.cc
|
|
||||||
@@ -5830,9 +5830,7 @@
|
|
||||||
#endif // V8_ENABLE_WEBASSEMBLY
|
|
||||||
}
|
|
||||||
|
|
||||||
-::heap::base::Stack& Heap::stack() {
|
|
||||||
- return isolate_->thread_local_top()->stack_;
|
|
||||||
-}
|
|
||||||
+::heap::base::Stack& Heap::stack() { return isolate_->stack(); }
|
|
||||||
|
|
||||||
void Heap::StartTearDown() {
|
|
||||||
// Finish any ongoing sweeping to avoid stray background tasks still accessing
|
|
@ -1,24 +0,0 @@
|
|||||||
diff -up chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h.InkDropHost-crash chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h
|
|
||||||
--- chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h.InkDropHost-crash 2021-10-05 16:04:46.313586509 -0400
|
|
||||||
+++ chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h 2021-10-05 16:05:12.213732558 -0400
|
|
||||||
@@ -228,6 +228,11 @@ class VIEWS_EXPORT InkDropHost {
|
|
||||||
// Used to observe View and inform the InkDrop of host-transform changes.
|
|
||||||
ViewLayerTransformObserver host_view_transform_observer_;
|
|
||||||
|
|
||||||
+ // Declared before |ink_drop_|, because InkDropImpl may call
|
|
||||||
+ // RemoveInkDropLayer on partly destructed InkDropHost. In
|
|
||||||
+ // that case |ink_drop_mask_| must be still valid.
|
|
||||||
+ std::unique_ptr<views::InkDropMask> ink_drop_mask_;
|
|
||||||
+
|
|
||||||
// Should not be accessed directly. Use GetInkDrop() instead.
|
|
||||||
std::unique_ptr<InkDrop> ink_drop_;
|
|
||||||
|
|
||||||
@@ -249,8 +254,6 @@ class VIEWS_EXPORT InkDropHost {
|
|
||||||
int ink_drop_small_corner_radius_ = 2;
|
|
||||||
int ink_drop_large_corner_radius_ = 4;
|
|
||||||
|
|
||||||
- std::unique_ptr<views::InkDropMask> ink_drop_mask_;
|
|
||||||
-
|
|
||||||
base::RepeatingCallback<std::unique_ptr<InkDrop>()> create_ink_drop_callback_;
|
|
||||||
base::RepeatingCallback<std::unique_ptr<InkDropRipple>()>
|
|
||||||
create_ink_drop_ripple_callback_;
|
|
@ -1,137 +0,0 @@
|
|||||||
commit e775ac4770bb1e5dfbfe22c5b56752ed4a2317c5
|
|
||||||
Author: Hirokazu Honda <hiroh@chromium.org>
|
|
||||||
Date: Tue Jan 17 17:54:02 2023 +0000
|
|
||||||
|
|
||||||
Revert "media/gpu/v4l2VEA,IP: Workaround to USERPTR API against read-only buf"
|
|
||||||
|
|
||||||
This reverts commit 203fdd03a4317f2eac57161ee101515a82df704f.
|
|
||||||
|
|
||||||
Reason for revert: This workaround is no longer required because of
|
|
||||||
the kernel patch was reverted.
|
|
||||||
|
|
||||||
Original change's description:
|
|
||||||
> media/gpu/v4l2VEA,IP: Workaround to USERPTR API against read-only buf
|
|
||||||
>
|
|
||||||
> VideoFrame fed in VEA::Encode() is read-only since R107 if the
|
|
||||||
> VideoFrame has a shared memory. V4L2VideoEncodeAccelerator fails
|
|
||||||
> because VIDOC_QBUF with USERPTR buffer fails if the pointers
|
|
||||||
> references a read-only buffer.
|
|
||||||
> The USERPTR API issue is apparently to be fixed by a kernel side.
|
|
||||||
> In the meantime, this CL adds the workaround to the issue; the read
|
|
||||||
> only buffer is copied to a writable temporary buffer every Encode
|
|
||||||
> before VIDIOC_QBUF.
|
|
||||||
> Not that VideoFrame has a shared memory in the case of screen share
|
|
||||||
> because a camera stack produces GpuMemoryBuffer.
|
|
||||||
>
|
|
||||||
> Bug: b:243883312
|
|
||||||
> Test: video_encode_accelerator_tests on elm, kevin and trogdor
|
|
||||||
> Test: screen share in Google Meet on elm, kevin and trogdor
|
|
||||||
> Change-Id: I922d98eaf52f80d9cd6c3784a8544bffb1232856
|
|
||||||
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3891421
|
|
||||||
> Reviewed-by: Nathan Hebert <nhebert@chromium.org>
|
|
||||||
> Commit-Queue: Hirokazu Honda <hiroh@chromium.org>
|
|
||||||
> Cr-Commit-Position: refs/heads/main@{#1046659}
|
|
||||||
|
|
||||||
Bug: b:243883312, b:261660224
|
|
||||||
Change-Id: I6fe37276f2ebe8c8730cfd3dd766b04277b32a67
|
|
||||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4091205
|
|
||||||
Reviewed-by: Nathan Hebert <nhebert@chromium.org>
|
|
||||||
Commit-Queue: Hirokazu Honda <hiroh@chromium.org>
|
|
||||||
Cr-Commit-Position: refs/heads/main@{#1093388}
|
|
||||||
|
|
||||||
diff --git a/media/gpu/v4l2/v4l2_image_processor_backend.cc b/media/gpu/v4l2/v4l2_image_processor_backend.cc
|
|
||||||
index dc72a4ac060a9..f3049f4546e2e 100644
|
|
||||||
--- a/media/gpu/v4l2/v4l2_image_processor_backend.cc
|
|
||||||
+++ b/media/gpu/v4l2/v4l2_image_processor_backend.cc
|
|
||||||
@@ -925,35 +925,16 @@ bool V4L2ImageProcessorBackend::EnqueueInputRecord(
|
|
||||||
|
|
||||||
switch (input_memory_type_) {
|
|
||||||
case V4L2_MEMORY_USERPTR: {
|
|
||||||
- VideoFrame& frame = *job_record->input_frame;
|
|
||||||
const size_t num_planes = V4L2Device::GetNumPlanesOfV4L2PixFmt(
|
|
||||||
input_config_.fourcc.ToV4L2PixFmt());
|
|
||||||
std::vector<void*> user_ptrs(num_planes);
|
|
||||||
- if (frame.storage_type() == VideoFrame::STORAGE_SHMEM) {
|
|
||||||
- // TODO(b/243883312): This copies the video frame to a writable buffer
|
|
||||||
- // since the USERPTR API requires writable permission. Remove this
|
|
||||||
- // workaround once the unreasonable permission is fixed.
|
|
||||||
- const size_t buffer_size = frame.shm_region()->GetSize();
|
|
||||||
- std::vector<uint8_t> writable_buffer(buffer_size);
|
|
||||||
- std::memcpy(writable_buffer.data(), frame.data(0), buffer_size);
|
|
||||||
- for (size_t i = 0; i < num_planes; ++i) {
|
|
||||||
- const std::intptr_t plane_offset =
|
|
||||||
- reinterpret_cast<std::intptr_t>(frame.data(i)) -
|
|
||||||
- reinterpret_cast<std::intptr_t>(frame.data(0));
|
|
||||||
- user_ptrs[i] = writable_buffer.data() + plane_offset;
|
|
||||||
- }
|
|
||||||
- job_record->input_frame->AddDestructionObserver(base::BindOnce(
|
|
||||||
- [](std::vector<uint8_t>) {}, std::move(writable_buffer)));
|
|
||||||
- } else {
|
|
||||||
- for (size_t i = 0; i < num_planes; ++i)
|
|
||||||
- user_ptrs[i] = frame.writable_data(i);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
for (size_t i = 0; i < num_planes; ++i) {
|
|
||||||
int bytes_used =
|
|
||||||
- VideoFrame::PlaneSize(frame.format(), i, input_config_.size)
|
|
||||||
+ VideoFrame::PlaneSize(job_record->input_frame->format(), i,
|
|
||||||
+ input_config_.size)
|
|
||||||
.GetArea();
|
|
||||||
buffer.SetPlaneBytesUsed(i, bytes_used);
|
|
||||||
+ user_ptrs[i] = const_cast<uint8_t*>(job_record->input_frame->data(i));
|
|
||||||
}
|
|
||||||
if (!std::move(buffer).QueueUserPtr(user_ptrs)) {
|
|
||||||
VPLOGF(1) << "Failed to queue a DMABUF buffer to input queue";
|
|
||||||
diff --git a/media/gpu/v4l2/v4l2_video_encode_accelerator.cc b/media/gpu/v4l2/v4l2_video_encode_accelerator.cc
|
|
||||||
index 56389ea3eec08..d452ba48a69e2 100644
|
|
||||||
--- a/media/gpu/v4l2/v4l2_video_encode_accelerator.cc
|
|
||||||
+++ b/media/gpu/v4l2/v4l2_video_encode_accelerator.cc
|
|
||||||
@@ -783,7 +783,7 @@ void V4L2VideoEncodeAccelerator::EncodeTask(scoped_refptr<VideoFrame> frame,
|
|
||||||
const bool is_expected_storage_type =
|
|
||||||
native_input_mode_
|
|
||||||
? frame->storage_type() == VideoFrame::STORAGE_GPU_MEMORY_BUFFER
|
|
||||||
- : frame->storage_type() == VideoFrame::STORAGE_SHMEM;
|
|
||||||
+ : frame->IsMappable();
|
|
||||||
if (!is_expected_storage_type) {
|
|
||||||
VLOGF(1) << "Unexpected storage: "
|
|
||||||
<< VideoFrame::StorageTypeToString(frame->storage_type());
|
|
||||||
@@ -1392,27 +1392,16 @@ bool V4L2VideoEncodeAccelerator::EnqueueInputRecord(
|
|
||||||
NOTIFY_ERROR(kPlatformFailureError);
|
|
||||||
}
|
|
||||||
|
|
||||||
- // TODO(b/243883312): This copies the video frame to a writable buffer
|
|
||||||
- // since the USERPTR API requires writable permission. Remove this
|
|
||||||
- // workaround once the unreasonable permission is fixed.
|
|
||||||
- const size_t buffer_size = frame->shm_region()->GetSize();
|
|
||||||
- std::vector<uint8_t> writable_buffer(buffer_size);
|
|
||||||
- std::memcpy(writable_buffer.data(), frame->data(0), buffer_size);
|
|
||||||
+ // The frame data is readable only and the driver doesn't actually write
|
|
||||||
+ // the buffer. But USRPTR buffer needs void*. So const_cast<> is required.
|
|
||||||
std::vector<void*> user_ptrs(num_planes);
|
|
||||||
for (size_t i = 0; i < num_planes; ++i) {
|
|
||||||
- const std::intptr_t plane_offset =
|
|
||||||
- reinterpret_cast<std::intptr_t>(frame->data(i)) -
|
|
||||||
- reinterpret_cast<std::intptr_t>(frame->data(0));
|
|
||||||
- user_ptrs[i] = writable_buffer.data() + plane_offset;
|
|
||||||
+ user_ptrs[i] = const_cast<uint8_t*>(frame->data(i));
|
|
||||||
}
|
|
||||||
-
|
|
||||||
if (!std::move(input_buf).QueueUserPtr(std::move(user_ptrs))) {
|
|
||||||
- VPLOGF(1) << "Failed to queue a USRPTR buffer to input queue";
|
|
||||||
- NOTIFY_ERROR(kPlatformFailureError);
|
|
||||||
+ VPLOGF(1) << "Failed queue a USRPTR buffer to input queue";
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
- frame->AddDestructionObserver(
|
|
||||||
- base::DoNothingWithBoundArgs(std::move(writable_buffer)));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case V4L2_MEMORY_DMABUF: {
|
|
||||||
@@ -1421,6 +1410,7 @@ bool V4L2VideoEncodeAccelerator::EnqueueInputRecord(
|
|
||||||
VPLOGF(1) << "Failed queue a DMABUF buffer to input queue";
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
// Keep |gmb_handle| alive as long as |frame| is alive so that fds passed
|
|
||||||
// to the driver are valid during encoding.
|
|
||||||
frame->AddDestructionObserver(base::BindOnce(
|
|
@ -1,3 +1,3 @@
|
|||||||
SHA512 (node-v16.17.0-linux-x64.tar.xz) = aedfeeb71420a7fbcb07fbc4c5d2ba74ffe4f88c15998809346a84148132ec866dbae4e848531a2a77ca41413f442e1046f981d4f188bdf667faf88069aa28cd
|
SHA512 (node-v16.17.0-linux-x64.tar.xz) = aedfeeb71420a7fbcb07fbc4c5d2ba74ffe4f88c15998809346a84148132ec866dbae4e848531a2a77ca41413f442e1046f981d4f188bdf667faf88069aa28cd
|
||||||
SHA512 (node-v16.17.0-linux-arm64.tar.xz) = ae4aabc2389779c9e1b4a15622cae3ba50e0c313ca3d7a1dc7b2344df06ade1f303d6a75b941d37e2a0ef368cf047c862a822a893684494f55446afd6ab0610e
|
SHA512 (node-v16.17.0-linux-arm64.tar.xz) = ae4aabc2389779c9e1b4a15622cae3ba50e0c313ca3d7a1dc7b2344df06ade1f303d6a75b941d37e2a0ef368cf047c862a822a893684494f55446afd6ab0610e
|
||||||
SHA512 (chromium-110.0.5481.177-clean.tar.xz) = 3cc3fe325bf773e5da9137272741eda61ca620289a27c1bc16cd3e165f5adc6ebaa00139351c324fcc491497e47659188673edd9b7fd33a2771636d153b69213
|
SHA512 (chromium-111.0.5563.50-clean.tar.xz) = 4576e080a55cc1dabf65e14d5380310ee93bfe50e40823adb963bf47d3bbe668b39ef41c3f5e7b8c2aebc8161915926a2f6b37c39cc0289898e515e600743e3c
|
||||||
|
Loading…
Reference in new issue