|
f8fd9cfb
|
2020-06-09T10:52:57
|
|
Fix racy GetCategory with trace_event
See racy trace_event:
http://crbug.com/1091723
The trace event macros were racy because of this code:
INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(...)
The macro is using a static variable which is not thread-safe.
The design of tracing was racy (by design) and rely on
the fact that addTraceEvent(...) is threadsafe internally via
TraceLog::lock_
This CL is replacing the static variable with a scope (C++11)
pattern. The static variable is guaranted (C++) to be atomic
and it is implemented efficiently.
see: ยง6.7 [stmt.dcl] p4
" If control enters the declaration concurrently while the
variable is being initialized, the concurrent execution
shall wait for completion of the initialization. "
Bug to track follow-up migration:
http://anglebug.com/4702
Bug: chromium:1091259, chromium:1091723
Change-Id: If67b501e6e826ccf603eb2349c3f0aa6272c9a52
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2233410
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
44a0e734
|
2019-09-02T13:55:59
|
|
Re-enable -Wextra-semi-stmt.
Now that the DEPS roller is fixed this should not be able to
break the CQ.
Bug: angleproject:3128
Change-Id: I0f51b5d8a7b71859cced335ca9bd6ad155637ec5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1781619
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3ea463bf
|
2019-06-19T14:21:33
|
|
Move event tracer back into common.
Requires that we update the TRACE_EVENT macros to accept a platform as
an argument. The refactor isn't complete. In order to finish we'd need
to ensure we have the Display's PlatformMethods available at all sites.
Unblocks adding trace events directly in the perf tests.
Bug: angleproject:1892
Bug: angleproject:3117
Change-Id: Iee0ca086ccfe23acab3fc186fb042f018711a94c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1664794
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a8300e56
|
2019-03-01T11:01:48
|
|
Fix scoped trace events
The macro was introducing an additional scope that was not the
scope we intend to trace.
Test: ./external/chromium-trace/systrace.py -t 10 -o /tmp/maps.html -a com.google.android.apps.maps gfx sched freq idle am wm gfx view sync irq binder_driver
Examine trace for markers and verify they are expected size.
Bug: angleproject:3176
Change-Id: I593b8685c5e72a844bebec4b98e1373110a235ad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1492012
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@google.com>
|
|
c09ae15c
|
2019-02-01T14:16:32
|
|
Enable -Wextra-semi and -Wextra-semi-stmt.
This will prevent users from accidentally making semicolon errors in
the future.
Bug: chromium:926235
Change-Id: I79a6fa376fb1ad8f0fcf1b65b1f572a035d1f4e9
Reviewed-on: https://chromium-review.googlesource.com/c/1446493
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b980c563
|
2018-11-27T11:34:27
|
|
Reformat all cpp and h files.
This applies git cl format --full to all ANGLE sources.
Bug: angleproject:2986
Change-Id: Ib504e618c1589332a37e97696cdc3515d739308f
Reviewed-on: https://chromium-review.googlesource.com/c/1351367
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
abf38572
|
2017-02-14T16:47:59
|
|
Remove old C++ ANGLE platform.
Now that the new platform is in place, we can remove the old methods.
Must be landed after https://codereview.chromium.org/2697463003/
BUG=angleproject:1892
BUG=chromium:678870
Change-Id: Ia29a3b120cf3521fc0409019c2e64e4dbc6f460d
Reviewed-on: https://chromium-review.googlesource.com/441274
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
d8b36d45
|
2015-04-09T11:12:43
|
|
Remove SetTraceFunctionPointers and update APIs.
Now that Chromium is switched to ANGLE's new Platform tracing
methods, we can junk the old APIs.
BUG=angleproject:966
BUG=436191
Change-Id: Ie2564eed9e5ce4604e0dcd4582618e7467b2d590
Reviewed-on: https://chromium-review.googlesource.com/264934
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
|
|
a5521de2
|
2014-10-01T17:23:46
|
|
Fixed mingw compilation.
Change-Id: I8ae33c752feb19e291e4a3b128d21a0ced883c90
Reviewed-on: https://chromium-review.googlesource.com/220761
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Shannon Woods <shannonwoods@chromium.org>
|
|
3c6344e7
|
2013-09-23T14:57:00
|
|
add TRACE_EVENT to ANGLE (reland)
Tracing code the same as previous CL:
https://codereview.appspot.com/12699047/
Setup code simplified, and follows the GetProcAddress model of other
gl functions.
R=shannonwoods@google.com
|