|
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>
|
|
a390ebd9
|
2018-10-18T13:04:40
|
|
Add compiler printf attribute to relevant functions
Relands 27a472c60 with reinterpret_cast changed to C-style cast to
support types that are pointers on some platforms and integers on
others.
This commit includes fixes to undefined behavior caught by this
attribute. The following changes have been made:
- 0x%0.8p is changed to %016 PRIxPTR. Both 0 and . have undefined
behavior with p. Additionally, %p already prints 0x with both gcc and
clang. This results in a small output change:
void *x = (void *)0x1234;
void *y = (void *)0x1234567890abcdef;
printf("|%0.8p|\n", x);
printf("|%0.8p|\n", y);
printf("|%016" PRIxPTR "|\n", (uintptr_t)x);
printf("|%016" PRIxPTR "|\n", (uintptr_t)y);
prints:
|0x00001234|
|0x1234567890abcdef|
|0x0000000000001234|
|0x1234567890abcdef|
- %d used for GLintptr, GLsizeiptr, EGLTime and EGLnsecsANDROID is
changed to %llu and the relevant argument is cast to unsigned long
long. This is due to these types being typedefs to unknown types (on
Linux for example, these are unsigned long, and my guess would be
unsigned long long on Windows where long is 32 bits).
- %llu is used for GLuint64, which could be unsigned long (as is on
Linux). Those arguments are cast to unsigned long long.
- %p is used for some EGLNative types, but those types may not be a
pointer. Those arguments are cast to uintptr_t and printed as above.
Bug: angleproject:2928
Change-Id: Idf9f705c3d00f69e41e7603453016276a2e13a64
Reviewed-on: https://chromium-review.googlesource.com/c/1300913
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e9503ae9
|
2018-10-25T17:55:04
|
|
Revert "Add compiler printf attribute to relevant functions"
This reverts commit 27a472c601aa542f48ca5944fb769e2971a0594f.
Reason for revert: Causing failures on 32-bit Linux configs:
https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8931673733828416640/+/steps/compile/0/stdout
../../third_party/angle/src/libGLESv2/entry_points_egl.cpp:257:11: error: reinterpret_cast from 'EGLNativeWindowType' (aka 'unsigned long') to 'uintptr_t' (aka 'unsigned int') is not allowed
reinterpret_cast<uintptr_t>(win), reinterpret_cast<uintptr_t>(attrib_list));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../third_party/angle/src/common/debug.h:230:112: note: expanded from macro 'EVENT'
#define EVENT(message, ...) gl::ScopedPerfEventHelper scopedPerfEventHelper("%s" message "\n", __FUNCTION__, ##__VA_ARGS__);
^~~~~~~~~~~
../../third_party/angle/src/libGLESv2/entry_points_egl.cpp:314:11: error: reinterpret_cast from 'EGLNativePixmapType' (aka 'unsigned long') to 'uintptr_t' (aka 'unsigned int') is not allowed
reinterpret_cast<uintptr_t>(pixmap), reinterpret_cast<uintptr_t>(attrib_list));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Original change's description:
> Add compiler printf attribute to relevant functions
>
> This commit includes fixes to undefined behavior caught by this
> attribute. The following changes have been made:
>
> - 0x%0.8p is changed to %016 PRIxPTR. Both 0 and . have undefined behavior with
> p. Additionally, %p already prints 0x with both gcc and clang. This
> results in a small output change:
>
> void *x = (void *)0x1234;
> void *y = (void *)0x1234567890abcdef;
>
> printf("|%0.8p|\n", x);
> printf("|%0.8p|\n", y);
>
> printf("|%016" PRIxPTR "|\n", reinterpret_cast<uintptr_t>(x));
> printf("|%016" PRIxPTR "|\n", reinterpret_cast<uintptr_t>(y));
>
> prints:
>
> |0x00001234|
> |0x1234567890abcdef|
> |0x0000000000001234|
> |0x1234567890abcdef|
>
> - %d used for GLintptr, GLsizeiptr, EGLTime and EGLnsecsANDROID is
> changed to %llu and the relevant argument is cast to unsigned long
> long. This is due to these types being typedefs to unknown types (on
> Linux for example, these are unsigned long, and my guess would be
> unsigned long long on Windows where long is 32 bits).
> - %llu is used for GLuint64, which could be unsigned long (as is on
> Linux). Those arguments are cast to unsigned long long.
> - %p is used for some EGLNative types, but those types may not be a
> pointer. Those arguments are cast to uintptr_t and printed as above.
>
> Bug: angleproject:2928
> Change-Id: I63e9e998c72701ce8582f1ebf25d6374be9090e4
> Reviewed-on: https://chromium-review.googlesource.com/c/1289232
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
TBR=ynovikov@chromium.org,jmadill@chromium.org,syoussefi@chromium.org
Change-Id: I4f3cea64977bee9f889db6c995371bd2bbc6d81b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2928
Reviewed-on: https://chromium-review.googlesource.com/c/1299480
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
27a472c6
|
2018-10-18T13:04:40
|
|
Add compiler printf attribute to relevant functions
This commit includes fixes to undefined behavior caught by this
attribute. The following changes have been made:
- 0x%0.8p is changed to %016 PRIxPTR. Both 0 and . have undefined behavior with
p. Additionally, %p already prints 0x with both gcc and clang. This
results in a small output change:
void *x = (void *)0x1234;
void *y = (void *)0x1234567890abcdef;
printf("|%0.8p|\n", x);
printf("|%0.8p|\n", y);
printf("|%016" PRIxPTR "|\n", reinterpret_cast<uintptr_t>(x));
printf("|%016" PRIxPTR "|\n", reinterpret_cast<uintptr_t>(y));
prints:
|0x00001234|
|0x1234567890abcdef|
|0x0000000000001234|
|0x1234567890abcdef|
- %d used for GLintptr, GLsizeiptr, EGLTime and EGLnsecsANDROID is
changed to %llu and the relevant argument is cast to unsigned long
long. This is due to these types being typedefs to unknown types (on
Linux for example, these are unsigned long, and my guess would be
unsigned long long on Windows where long is 32 bits).
- %llu is used for GLuint64, which could be unsigned long (as is on
Linux). Those arguments are cast to unsigned long long.
- %p is used for some EGLNative types, but those types may not be a
pointer. Those arguments are cast to uintptr_t and printed as above.
Bug: angleproject:2928
Change-Id: I63e9e998c72701ce8582f1ebf25d6374be9090e4
Reviewed-on: https://chromium-review.googlesource.com/c/1289232
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
ae6c2b88
|
2018-08-29T13:05:23
|
|
Fixes found while turning on A4A opt-in/out code.
Bug: angleproject:2789
Change-Id: If9d83dd94d392103ed5200ba471d47dc907cf3ca
Reviewed-on: https://chromium-review.googlesource.com/1194612
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
97f45b7b
|
2018-07-27T21:03:10
|
|
Add Android-specific version struct to GetSystemInfo results.
Bug: angleproject:2749
Change-Id: Ie8fdb67918ea1c1054527fe1e0c1be4054fe9cb3
Reviewed-on: https://chromium-review.googlesource.com/1154189
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
d07c52e2
|
2018-06-22T15:42:09
|
|
Initial Android implementation of GetSystemInfo
Change-Id: Ia44413aa94906b89d4981063600cd3de0edacee8
Reviewed-on: https://chromium-review.googlesource.com/1108454
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d8ffd756
|
2018-05-01T13:17:17
|
|
SystemInfo.h: add some documentation
BUG=angleproject:1874
Change-Id: I8898c1a467c1fec25963f45a31376a6b02e1b6c4
Reviewed-on: https://chromium-review.googlesource.com/1037584
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
acf2f3ad
|
2017-11-21T19:22:44
|
|
Apply Chromium style fixes.
This addresses several minor code quality issues that are validated
in Chromium, but not yet applied to ANGLE:
* constructors and destructors must be defined out-of-line
* auto is not allowed for simple pointer types
* use override everywhere instead of virtual
* virtual functions must also be defined out-of-line
Slightly reduces binary size for me (~2k on Win, 150k on Linux).
Bug: angleproject:1569
Change-Id: I073ca3365188caf5f29fb28d9eb207903c1843e6
Reviewed-on: https://chromium-review.googlesource.com/779959
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
1a1ae0f8
|
2017-09-05T15:11:06
|
|
SystemInfo: Find primary with EnumDisplayDevices
Without DXGI, EnumDisplayDevices is the only way to get the
primary device. Previously the code would work on most configs
with a combination of AMD, Intel and NVIDIA GPUs but would fail
on more esoteric system. Like our try bots that have Matrox GPUs.
BUG=angleproject:1874
BUG=angleproject:2137
Change-Id: Ie2dfbb559001ccad2fd5b8a8fd6436e0fba9d003
Reviewed-on: https://chromium-review.googlesource.com/651629
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
aa7203ef
|
2017-05-03T23:32:29
|
|
Inherit privately from angle::NonCopyable.
Make all inheritance from angle::NonCopyable private so the compiler
complains about this (admittedly unlikely) code:
class Foo: angle::NonCopyable {
virtual ~Foo() { ... }
};
angle::NonCopyable *p = new Foo;
delete p;
In the above code ~Foo() is not called, only ~NonCopyable(), because the
latter is not virtual. Making it virtual would add overhead to all derived
classes which don't already have a virtual method.
Also tighten access in NonCopyable, because we can.
BUG=angleproject:2026
Change-Id: Id0dc4d959cfb7bb82cf49382118129abb1d3a4f0
Reviewed-on: https://chromium-review.googlesource.com/495352
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
f81ce4a3
|
2017-04-24T10:49:17
|
|
Refactoring: replace NULL by nullptr for pointers (3rd CL).
This CL mainly handles passing/returning NULL to/from a function.
BUG=angleproject:2001
Change-Id: I34802f792e710e3d7ff697cbe4701dc1bf5ab009
Reviewed-on: https://chromium-review.googlesource.com/485060
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6f1c3de9
|
2017-04-05T16:40:15
|
|
gpu_info_util: fix a DeviceInfo leak on Windows
BUG=angleproject:1874
Change-Id: I382e306ce0c27a81e0d746fb9922fa12988927d4
Reviewed-on: https://chromium-review.googlesource.com/469230
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
8f77e5d3
|
2017-03-24T11:58:59
|
|
gpu_info_util: Implement GetSystemInfo on Windows
BUG=angleproject:1874
Change-Id: I97a02d2c8b1f7ecb530684464fc02f528d34de7c
Reviewed-on: https://chromium-review.googlesource.com/458965
Reviewed-by: Austin Kinross <aukinros@microsoft.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
d83f64f5
|
2017-02-16T10:58:46
|
|
gpu_info_util: Implement GetSystemInfo on OSX
Also adds a test that prints the gathered information for manual
checking and to help know what the system is when looking at the logs.
BUG=angleproject:1874
Change-Id: Icb0cc390c9808fd8db0f966d667b94dde4b94e62
Reviewed-on: https://chromium-review.googlesource.com/443845
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
|
|
878baf90
|
2017-02-15T13:57:16
|
|
gpu_info_util: address comments for CL 438940
BUG=angleproject:1874
Change-Id: I6397d9141a7c25f818ce970212a4a8e8afbd5a27
Reviewed-on: https://chromium-review.googlesource.com/442676
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
7b4e00d2
|
2017-02-08T10:43:47
|
|
gpu_info_util: Implement GetSystemInfo on Linux
BUG=angleproject:1874
Change-Id: Id39c26b806e6a7937517235afe0ca60f5087df5b
Reviewed-on: https://chromium-review.googlesource.com/438940
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|