|
e174c358
|
2021-02-04T15:14:10
|
|
GL: Consolidate glGetString calls
First step for cacheing the result of glGetString calls is mostly
cleanup.
Bug: chromium:1173672
Change-Id: I47281a09b9bd5859655d16376977a6eabcfbb3c4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2676203
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0be050a4
|
2020-09-23T15:12:56
|
|
Pass GL_VERSION info through ANGLE's GL_RENDERER string
Chrome needs ANGLE to pass through the underlying driver vendor and
version, which cannot always be determined by the SystemInfo library.
This is done by construction GL_RENDERER in the frontend through
combining GL_VENDOR, GL_RENDERER, and GL_VERSION from the backends.
Example changes are in the doc:
https://docs.google.com/document/d/1p0dvrLlu8NKhO-RCU5gqlQ_LvcQj-ZqhvfwSk1n3Sz8/edit?usp=sharing
Bug: chromium:1126526
Bug: chromium:1131248
Bug: chromium:1134669
Bug: chromium:1169861
Change-Id: Ia618ebcd7f3caaeb376b4b6a03446732efdaeecb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2427383
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
6e9018bd
|
2020-06-25T12:58:14
|
|
GL: Clean up Display code related to multithreading
Rename mCurrentData to mCurrentNativeContexts, and clean up some logic
to be easier to read.
Bug: angleproject:4724
Change-Id: I6fd6d99d4f9a3af808d0baa665edfbdde7fb0500
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2267424
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
c859c0ac
|
2020-11-24T17:21:38
|
|
Batch replace std::unordered_map with angle::HashMap in src/
There are a few places that will remain std::unordered_map due to build
or run-time errors, which will need to be evaluated more closely to
determine if they should remain std::unordered_map or if there is
another Abseil data structure that would be more efficient while still
working correctly.
Bug: angleproject:4873
Change-Id: Ib04253e3ad6398e63f4cc2bfe12c0f9e57cb112b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2558873
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
56663dbf
|
2020-11-19T21:21:19
|
|
EGL: Expose device query as a client extension.
This matches the extension spec. Previously we were exposing the ext
as a normal display extension. The extension should work without
needing a display.
Because the extension requires a non-null device for every display we
also add a MockDevice class to handle back-ends which don't implement
any attribute query extensions. By default the device query ext does
not expose any way to use devices so this works fine.
Bug: angleproject:5372
Change-Id: I474310a86aff6a83bd6f9a6b21c8a07c649f306d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2551543
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
96a49a48
|
2020-10-06T13:34:09
|
|
GLX, EGL: Support NV_robustness_video_memory_purge
Chrome is showing rendering issues on Linux/Nvidia after returning from
the lock screen. This could be related to the fact that Nvidia drivers
are not able to guarantee conformance after certain events.
By exposing this extension, we can instruct Chrome to reinitialize
contexts after they are purged by the driver. If this is not explicitly
requested, we can still generate an UnknownContextReset to tell apps
to discard the invalid context anyway.
Bug: chromium:1113040
Change-Id: Ie99b6356cc27fea33643d61b1d74f4f68a271d70
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2453689
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
08142700
|
2020-10-01T19:30:03
|
|
Work-around test runner & DebugAnnotator
Note: This precedes another CL that needs this change.
DebugAnnotator uses a global variable. The test runner doesn't change
state between testing different back-ends. This works-around the
problem by setting the global variable when the context is switched.
Because the GL back-end doesn't have its own DebugAnnotator sub-class,
add a Display* to DisplayImpl::makeCurrent(), so that
DisplayGL::makeCurrent() can install the front-end-Display's
DebugAnnotator.
Note: the Vulkan back-end gets this fix even though the new
DebugAnnotatorVk class will be added in a follow-on CL.
Bug: b/162068318
Bug: b/169243237
Bug: angleproject:5121
Change-Id: If08626a5310f9b4e3210e1a897a6886248e4d8ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2451423
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
da61c40e
|
2020-10-06T01:57:55
|
|
Revert "Work-around test runner & DebugAnnotator"
This reverts commit e44c94d96a9b65615fe8f5038e124763ac8c45e5.
Reason for revert: Breaks build of DisplayGbm on ChromeOS:
src/libANGLE/renderer/gl/egl/gbm/DisplayGbm.{h,cpp}
First failing builds:
https://ci.chromium.org/p/chromium/builders/ci/ChromeOS%20FYI%20Release%20%28amd64-generic%29/1608
https://ci.chromium.org/p/chromium/builders/ci/ChromeOS%20FYI%20Release%20%28kevin%29/2212
Original change's description:
> Work-around test runner & DebugAnnotator
>
> Note: This precedes another CL that needs this change.
>
> DebugAnnotator uses a global variable. The test runner doesn't change
> state between testing different back-ends. This works-around the
> problem by setting the global variable when the context is switched.
>
> Because the GL back-end doesn't have its own DebugAnnotator sub-class,
> add a Display* to DisplayImpl::makeCurrent(), so that
> DisplayGL::makeCurrent() can install the front-end-Display's
> DebugAnnotator.
>
> Note: the Vulkan back-end gets this fix even though the new
> DebugAnnotatorVk class will be added in a follow-on CL.
>
> Bug: b/162068318
> Bug: b/169243237
> Bug: angleproject:5121
> Change-Id: I748e8a1fd09b72e07242ac7fb39154537dcce534
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2444095
> Reviewed-by: Ian Elliott <ianelliott@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
> Commit-Queue: Ian Elliott <ianelliott@google.com>
TBR=courtneygo@google.com,ianelliott@google.com,jmadill@chromium.org
Change-Id: I99df2716951726ead24961dc3d27a7ec63aeda80
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: b/162068318
Bug: b/169243237
Bug: angleproject:5121
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2451420
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
|
|
e44c94d9
|
2020-10-01T19:30:03
|
|
Work-around test runner & DebugAnnotator
Note: This precedes another CL that needs this change.
DebugAnnotator uses a global variable. The test runner doesn't change
state between testing different back-ends. This works-around the
problem by setting the global variable when the context is switched.
Because the GL back-end doesn't have its own DebugAnnotator sub-class,
add a Display* to DisplayImpl::makeCurrent(), so that
DisplayGL::makeCurrent() can install the front-end-Display's
DebugAnnotator.
Note: the Vulkan back-end gets this fix even though the new
DebugAnnotatorVk class will be added in a follow-on CL.
Bug: b/162068318
Bug: b/169243237
Bug: angleproject:5121
Change-Id: I748e8a1fd09b72e07242ac7fb39154537dcce534
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2444095
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
e815afbf
|
2020-09-07T22:09:22
|
|
First pass at increasing inclusivity
Link to the inclusivity rules
https://source.android.com/setup/contribute/respectful-code
Bug: b/162834212
Bug: chromium:1097198
Change-Id: Ied5a9e3879d72bff3f77ea6fcda9b82f30c32c2f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2396737
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Trevor Black <vantablack@google.com>
|
|
4d3a0f60
|
2020-09-11T12:36:05
|
|
GN: Componentize D3D format tables.
These tables are used by both the GL and D3D11 back-ends. Also moves
them to renderer_utils to be in a shared place.
Bug: angleproject:3943
Change-Id: I1f5d79842396a87e795547fa03c6855d6f9c5e9a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2405805
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
4cf2501c
|
2020-07-27T13:19:27
|
|
Add extension EGL_ANGLE_display_semaphore_share_group
For sharing semaphores globally.
Bug: angleproject:4877
Change-Id: I472e0902fd04ca8350d74e6c0ae6925ee930ccf9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2319370
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4eb2f6dc
|
2020-06-11T11:30:14
|
|
Add basic multithreading support to GLX
The first step for true multithreading support is allowing multiple
threads to use ANGLE as long as only one thread has a current context
at a time.
Added a test to MultithreadingTests to reproduce this behavior and
implemented it in GLX.
Bug: angleproject:4724
Bug: angleproject:4725
Bug: chromium:1087084
Change-Id: I908d3f02f34a681f1c9d0919dd17aee1a489173c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2241616
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0df92012
|
2020-06-03T17:08:43
|
|
Rename Platform.h to PlatformMethods.h.
"platform.h" is too common a name and causes headers to be
included incorrectly. Disambiguate the header using a more
specific name.
Solves a problem that came up with the GLES 1 tests and the
standalone test harness.
Bug: angleproject:3162
Change-Id: I88229a2c9407e0db57f5beee44daa11a4075f700
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2229065
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
7c95d081
|
2019-11-12T15:42:43
|
|
Fix crash during resizes when using the OpenGL renderer on Windows
Partial revert of f06076396afa8585e19e140f4a8b02720ede77e5
Address test failures
Guard context reset in DisplayWGL::makeCurrent with !mUseDXGISwapChains
BUG=chromium:1004117
Change-Id: I9b6eb7bc83a6e4b1a21fa0703404e41c6090730d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1913314
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
a6206854
|
2019-10-24T12:55:09
|
|
Enable "-Wmissing-field-initializers".
This is another warning required by Skia. This one didn't find
anything that surprising. Enabling the warning does help enforce
code consistency and avoids a bit of possible undefined behaviour.
Bug: angleproject:4046
Change-Id: Ifec7f4afad49cd820bf3c0a79df3f46559473ee2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877477
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
859ca039
|
2019-10-24T12:55:08
|
|
Enable "-Wshadow-field".
This warning verifies we don't give variables names that shadow
fields. This is another good warning to enable that Skia requires.
This CL also fixes a small number of points in code that used this
bad pattern. We have to disable the warning for Glslang for now.
Bug: angleproject:4046
Change-Id: I072a686e3023b60cfafa778525fe712ce1fb5a50
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877476
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9d737966
|
2019-08-14T12:25:12
|
|
Standardize copyright notices to project style
For all "ANGLE Project" copyrights, standardize to the format specified
by the style guide. Changes:
- "Copyright (c)" and "Copyright(c)" changed to just "Copyright".
- Removed the second half of date ranges ("Y1Y1-Y2Y2"->"Y1Y1").
- Fixed a small number of files that had no copyright date using the
initial commit year from the version control history.
- Fixed one instance of copyright being "The ANGLE Project" rather than
"The ANGLE Project Authors"
These changes are applied both to the copyright of source file, and
where applicable to copyright statements that are generated by
templates.
BUG=angleproject:3811
Change-Id: I973dd65e4ef9deeba232d5be74c768256a0eb2e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1754397
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b3eeb2a4
|
2019-08-05T17:02:43
|
|
Emulate RGB textures using BGRX IOSurfaces.
When the user requests an IOSurface Pbuffer with an RGB format, emulate the
missing alpha channel by clearing it to 1.0 and masking reads and writes in
shaders.
BUG=angleproject:3766
Change-Id: I58c992bf641d9ece0f923603f32640615150e4f3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1737437
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
a87ce835
|
2019-07-03T13:38:38
|
|
Load the correct opengl32.dll
DisplayWGL.cpp is loading the opengl32.dll in out/debug, as opposed to the system's opengl32.dll.
Want system's dll.
Bug: angleproject:3641
Change-Id: I764ef44a942a0a6c4dac7082f82ae0fd4d95a139
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1687117
Commit-Queue: Clemen Deng <clemendeng@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
beb0eb2d
|
2019-06-14T15:10:33
|
|
Clean up workarounds/features to single location.
Rename all workarounds structs to features, and move the lists to a
shared location in include/platform (to help with documentation,
see:
https://cs.chromium.org/chromium/src/ui/gl/gl_switches.cc?sq=package:chromium&g=0&l=69)
Bug: angleproject:1621
Change-Id: I4069f08131db5e886047a007efb5d7764dfee5f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1660952
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
78a51911
|
2019-06-12T14:28:14
|
|
Clean up and expose frontend features to egl.
gl::Workarounds was used to hold frontend features. Change ownership of
this struct from Context to Display, so it can be exposed to egl. Also
rename to features and clean up for consistency.
Bug: angleproject:1621
Change-Id: I82e98e53873abb7a402c93e60f8a662a7263e0d5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1655772
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
fce1e2d1
|
2019-06-04T15:02:08
|
|
Extend eglGetPlatformDisplay to allow feature overrides.
Add EGL_FEATURE_OVERRIDES_ENABLED_ANGLE and
EGL_FEATURE_OVERRIDES_DISABLED_ANGLE to submit lists of strings naming
the features that should be overridden (either enabled or disabled) on
display creation.
Bug: angleproject:1621
Change-Id: I4bb75c5dbab0e3b701a72069c38f8c60ecfffad2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1646595
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f52f2637
|
2019-05-23T13:52:52
|
|
Add EGL_ANGLE_workaround_control extension.
This extension is used to query strings from an array based on index,
which will be used to query all the information about workarounds in
ANGLE.
Bug: angleproject:1621
Change-Id: I27157f278f7f17c92c8b4fd7753e2a5ecd0528f6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1627723
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0f4d72e6
|
2019-05-06T10:27:34
|
|
Add makeCurrent and unMakeCurrent to SurfaceImpl.
SurfaceGL had these methods already so they are just moving up the inheritance
hierarchy. This ends up simplifying some state tracking we had in our surface
implementations.
BUG=angleproject:2464
Change-Id: I480588ca8470d9ef507f95e0c0297fe126b3abfb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1595434
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
057b76e1
|
2019-04-12T14:48:59
|
|
Implement GL_CHROMIUM_lose_context.
This is useful for testing context lost behaviour.
BUG=angleproject:3379
Change-Id: If0e1538553b1761e313fc36ccde5138cd495200f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1566141
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
2889dff6
|
2019-03-27T16:25:11
|
|
Mac: Support using an IOSurface as the default framebuffer
Bug: angleproject:2764
Change-Id: I3fdab330b59ed996f68e3063debca29323a66cf0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1542599
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
705f480f
|
2019-01-29T15:49:35
|
|
ParallelCompile: Enable worker on GL backend
Except WGL AMD, WGL Intel, and GLX Nvidia.
BUG=922936
Change-Id: I1bdbddd1485578465bcf6ece4b4b7173ae6f9f05
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1442312
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
|
|
f0607639
|
2019-03-15T16:00:21
|
|
DisplayWGL: Allow MakeCurrent(null).
Previously we would ignore unsetting calls to MakeCurrent. But this
would prevent ANGLE from unsetting driver state on the current thread.
Fix this by checking for 0/null explicitly in DisplayWGL::makeCurrent.
This turned up when running test configs without recreating the
Display.
Bug: angleproject:3261
Change-Id: I7f747dc7649a06f019f1b89655cb71dd3b151aa0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1520992
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
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>
|
|
d51fbe34
|
2019-01-25T15:03:39
|
|
Fold buffer access validation into extensions.
We only need to perform vertex array buffer validation if the WebGL
compatiblity extension is enabled and robust access is not available.
Although sometimes the range checks are useful for determining
undefined behaviour they are not required by the OpenGL spec. They also
slow down state updates significantly.
This migrates the OOR tests into specific WebGL tests. It also requires
a change to a Chromium test on the passthrough decoder.
Improves perf by about 10% in the Vulkan VBO state change test.
Also fixes some robust resource access cases for D3D11.
Bug: angleproject:3000
Change-Id: Ice37f38f01c2f27bf32ed55657a30e69d8508335
Reviewed-on: https://chromium-review.googlesource.com/c/1390362
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a100d8f4
|
2018-12-29T16:39:55
|
|
ParallelCompile: add GL backend support
For GL backend, at first each worker thread must have a naitve context
for its own to work in. These worker contexts have to be shared from
the main context, so that all shader and program objects are seen in
any context. This extends backend displays to create and destroy the
worker contexts. RendererGL manages and allocates them to the worker
threads. ShaderImpl has a new compile method added to do the actual
glCompile work in worker thread. The ProgramGL's link method is broken
down by introducing the LinkEventGL class.
Bug: chromium:849576
Change-Id: Idc2c51b4b6c978781ae77810e62c480acc67ebb5
Reviewed-on: https://chromium-review.googlesource.com/c/1373015
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0c667215
|
2019-01-01T14:40:36
|
|
Pass ErrorSet to ContextImpl constructor.
This removes the need for the setErrorSet method.
Also update some egl::Error TODO bugs.
Bug: angleproject:2491
Change-Id: I0aba07c4a53b579835a88c3dacae294f752e6b17
Reviewed-on: https://chromium-review.googlesource.com/c/1392393
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c3dc5d48
|
2018-12-30T12:12:04
|
|
Merge gl::Context and gl::ContextState.
This reduces the number of indrections when accessing the Extensions
or Caps structures. It will provide a small speed-up to some methods.
It also cleans up the code.
Bug: angleproject:2966
Change-Id: Idddac70758c42c1c2b75c885d0cacc8a5c458685
Reviewed-on: https://chromium-review.googlesource.com/c/1392391
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Markus Tavenrath <matavenrath@nvidia.com>
|
|
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>
|
|
ba365939
|
2018-07-18T17:23:46
|
|
Rename angle::Format::ID to angle::FormatID.
This allow for predeclaring the enum. It solves some include dependency
issues.
Bug: angleproject:2729
Change-Id: Ibbbab0796e466c62848404ba277c5f454fd9ac62
Reviewed-on: https://chromium-review.googlesource.com/1142299
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
853f8255
|
2018-07-09T09:18:50
|
|
DisplayImpl: Make waitClient/waitNative non-const.
These methods can mutate the display resources. Necessary for getting
rid of ProxyContext and for the Vulkan error refactor.
Bug: angleproject:2714
Bug: angleproject:2713
Change-Id: Ibffb1a382ecb064daaa7c664f9fc65cbcf927b37
Reviewed-on: https://chromium-review.googlesource.com/1128927
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9c1b3e2b
|
2018-06-26T12:59:16
|
|
Partially revert "WGL: Support unvirtualized contexts and unsafe multithreading."
Caused timeouts on the Skia bots when rolling ANGLE.
BUG=angleproject:2686
BUG=angleproject:2464
Change-Id: I311b075522b86410d055e0b742342423eaa7eeb5
Reviewed-on: https://chromium-review.googlesource.com/1115216
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
3cacf69b
|
2018-06-20T16:49:57
|
|
Pass all context creation parameters to DisplayImpl::createContext.
Knowing the share context at native context creation time is required if
we want to honor the requested share group instead of virtualizing
contexts or using global share groups.
BUG=angleproject:2464
Change-Id: I1fb4d71de266b3191986b1754e73d474e49445bb
Reviewed-on: https://chromium-review.googlesource.com/1108743
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
24ddc7a8
|
2018-06-11T14:56:34
|
|
WGL: Support unvirtualized contexts and unsafe multithreading.
When using unvirtualized contexts, DisplayWGL still creates a Renderer for
managing any internal GL resources such as emulated back buffers for
DXGISwapChainWindowSurfaceWGL or D3DTextureSurfaceWGL but also creates a new
Renderer for each GL context. All created contexts share resources.
BUG=angleproject:2464
Change-Id: I945502514079368e062beef70bed49c61ed44403
Reviewed-on: https://chromium-review.googlesource.com/1097459
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
41b453a4
|
2018-06-11T14:46:00
|
|
WGL: Track current context per thread.
BUG=angleproject:2464
Change-Id: I5cce1f52dc3636478e3e2893f5323345b7f83501
Reviewed-on: https://chromium-review.googlesource.com/1097458
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
1c3a94aa
|
2018-05-07T15:23:42
|
|
WGL: Update the Renderer to own the native GL context.
Adds a RendererWGL which owns the native WGL GL context.
Adds a ContextWGL which owns the RendererWGL and communicates the native WGL
context back to DisplayWGL for making current.
BUG=angleproject:2464
Change-Id: Ideb11c164da2c304f860c544a56450d0ad8fafac
Reviewed-on: https://chromium-review.googlesource.com/1038131
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
9491e5eb
|
2018-06-14T12:48:06
|
|
Generate framebuffer IDs used in DXGISwapChainWindowSurfaceWGL.
The DXGI surface was attempting to bind renderbuffers to the default
framebuffer instead of a generated one.
BUG=852399
Change-Id: Ibca6699e73e84735c64f2e3ee6b7684bfcbe1bfc
Reviewed-on: https://chromium-review.googlesource.com/1101240
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
5da6690f
|
2018-06-05T12:24:06
|
|
Hold RendererGL objects with a shared_ptr.
To support both virtualized and unvirtualized contexts, the RendererGL object
represents the native context. Update ContexGL and the various DisplayGLs to
hold RendererGL with a shared_ptr so that deletion of the renderer happens at
the correct time.
Update RendererGL to take ownership of FunctionsGL.
BUG=angleproject:2464
Change-Id: Id040a8053973d73936c0a7ff0ab5edb1a3f16dc6
Reviewed-on: https://chromium-review.googlesource.com/1085851
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
bf7b95db
|
2018-05-01T16:48:21
|
|
Create a default framebuffer per surface/context pair on MakeCurrent.
Sharing a gl::Framebuffer object between multiple contexts causes problems if
contexts are not virtualized because the native framebuffer objects are not
shared between these contexts. The FramebufferImpl created should be the glue
that binds a specific context to a specific surface.
Update the SurfaceImpl implementations to re-create the framebuffer
object before passing it to FramebufferGL. No backing resources will be
re-created.
BUG=angleproject:2464
Change-Id: Id0b13a221c22b71517b25cb5b1ef2392ad2ecdd6
Reviewed-on: https://chromium-review.googlesource.com/1039985
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
22a5f5f0
|
2018-05-23T11:33:01
|
|
Make sure to destroy all resources in DisplayWGL if initialization fails.
It was possible to leak some resources if initialization fails half way
through.
BUG=angleproject:2546
Change-Id: I0ea75a274fed27b118e788785bb72aff5fe8381e
Reviewed-on: https://chromium-review.googlesource.com/1070221
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
b0e9ddb5
|
2018-05-23T11:30:04
|
|
Refactor a hex streaming into a generic FmtHex function.
The length of the printed value can be determined from size of the type.
BUG=angleproject:2546
Change-Id: I39a4f9550f381dd82183f50019b3f7d117c52472
Reviewed-on: https://chromium-review.googlesource.com/1070220
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
0e1c158e
|
2018-05-16T14:47:30
|
|
Log error of RegisterClassA in DisplayWGL::initialize
Bug: angleproject:2561
Change-Id: I45de82466401e88bfacc2342e401adef69d07472
Reviewed-on: https://chromium-review.googlesource.com/1062192
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
5d2ccc53
|
2018-05-14T15:04:27
|
|
Use DefWindowProcA for window created with CreateWindowExA
Bug: chromium:842408
Change-Id: I8793e3bb9ed4661e49eceb55c7253d7ada06488a
Reviewed-on: https://chromium-review.googlesource.com/1057231
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6110763f
|
2018-05-09T11:32:46
|
|
Refactor the GL surfaces and framebuffers to not hold renderer objects.
BUG=angleproject:2464
Change-Id: I20aabeef3de6cf1fc13a29b6220e040aa83184d7
Reviewed-on: https://chromium-review.googlesource.com/1039986
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
ccafa62c
|
2018-05-02T13:07:53
|
|
Pass a context pointer to SurfaceImpl::[bind|release]TexImage.
BUG=angleproject:2464
Change-Id: I59fd38c626f7076b4065f25601de3e53c1a446ad
Reviewed-on: https://chromium-review.googlesource.com/1040051
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
61773640
|
2018-02-09T10:12:21
|
|
Skip PostSubBuffer calls that have zero size.
BUG=810411
Change-Id: I8770b69fe4ab8a8f9bacd141c89e7f83f67f15fb
Reviewed-on: https://chromium-review.googlesource.com/911589
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
d66e1939
|
2018-01-17T11:36:24
|
|
Allow creating EGL pbuffers from typeless D3D textures
A new extension EGL_ANGLE_d3d_typeless_texture_client_buffer is added
that allows creating EGL pbuffers from typeless D3D textures.
The extension increases the flexibility of the API compared to plain
EGL_ANGLE_D3D_texture_client_buffer. The colorspace for the created
EGL pbuffer can be set by using the EGL_GL_COLORSPACE attribute.
Internally this sets the ANGLE format of the buffer. There are new
ANGLE formats that are used specifically for typeless textures,
separate ones for SRGB and linear views into the D3D textures.
The extension is only supported on the D3D11 backend of ANGLE.
BUG=angleproject:2300
TEST=angle_white_box_tests
Change-Id: I6a6cb873d2cc0dca0b7f18a0f2cd35e7bafcb7d8
Reviewed-on: https://chromium-review.googlesource.com/873917
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
ceffd20c
|
2018-01-08T16:39:45
|
|
Set colorspace of D3D pbuffers according to DXGI format
When a EGL pbuffer is created based on a D3D SRGB texture using
EGL_ANGLE_d3d_texture_client_buffer, SRGB conversions are performed as
if it was an SRGB surface. The value of EGL_GL_COLORSPACE now
reflects that correctly. If the pbuffer is bound to a texture and used
as a framebuffer attachment, querying GL_FRAMEBUFFER_COLOR_ATTACHMENT
also reflects that correctly.
The behavior is the same on both the D3D backend, where there is no
native interop involved, and on the GL backend using
WGL_NV_DX_interop(2).
There are a few limitations on the GL backend that relies on native
interop:
1. SRGB conversion for textures created this way can't be disabled
using the GL_FRAMEBUFFER_SRGB_EXT toggle that's exposed in ANGLE
through EXT_sRGB_write_control. This is now documented in the
EGL_ANGLE_d3d_texture_client_buffer spec. On the D3D backend this is
not a problem since EXT_sRGB_write_control is not supported either
way.
2. Creating a pbuffer out of a D3D11 texture with the format
DXGI_FORMAT_B8G8R8A8_UNORM_SRGB does not work, even though it was
listed as one of the supported formats in the
EGL_ANGLE_d3d_texture_client_buffer spec. It's now mentioned that
support for this format is optional.
BUG=angleproject:2300
TEST=angle_white_box_tests
Change-Id: I70ee0646680805e4469291a5b2ce59e92fda009e
Reviewed-on: https://chromium-review.googlesource.com/866743
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
e1aa9219
|
2018-01-08T17:53:05
|
|
Create a new DeviceImpl each time one is requested from a DisplayImpl.
This makes sure that the Device to DeviceImpl ratio is always 1:1 and
avoids any potential double-deletion or unexpected deletion of
DeviceImpl objects.
BUG=742034
Change-Id: I778068ccd09b7478d3683123456062b94be242a1
Reviewed-on: https://chromium-review.googlesource.com/854627
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@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>
|
|
6d94f064
|
2017-10-21T22:19:40
|
|
Add more complete NULL driver for the GL back-end.
This implements a NULL driver in OpenGL by stubbing out most of the
GL functions in FunctionsGL except a few static "Gets" that are needed
for initialization with Chromium and the tests. It is intended to be
used for performance testing ONLY and will not have correct behaviour.
It also adds a define to enable conditionally excluding the null entry
points for implementations that wish to save on a bit of binary size.
Also fixes some of the typedefs in functionsgl_typesdefs.h that were
turned up after implementing the direct assignment from NULL stub
entry point, generated from gl.xml, to the function pointer with type
defined from functionsgl_typedefs.h.
BUG=angleproject:2188
Change-Id: Ifa1e4739cb471ab6b52a4bf24c16d9eb4b334ac5
Reviewed-on: https://chromium-review.googlesource.com/727530
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
29ddcc99
|
2017-10-21T16:10:02
|
|
Add an auto-generated dispatch table for GL bindings.
This will more easily allow us to extend our implementation to make a
NULL or "stub" set of bindings. It also exposes a lot more function
permutations via extension variations.
It might improve the loading speed for bindings obtained via
extensions. Instead of generating a list every time an extension is
checked, we use a single std::set for a fast query. However because
more extensions are checked for more entry points, it might not make
a huge difference.
This also fixes an issue where the "real" ANGLE GL headers were being
propagated to the entry point dispatch table definitions, instead of
being in a totally isolated file. This patch adds the missing typedefs
to our proxy headers.
It also fixes the naming of a few entry points which was inconsistent
with the spec. It also makes an XML adjustment to GL_NV_path_rendering
to accomodate a hole in the spec where glLoadMatrixfEXT was not ever
defined in OpenGL ES. A spec oddity with the TexStorage extension is
not resolved - in this case, some methods are only exposed if other
extensions are present, but this information is missing from gl.xml.
BUG=angleproject:2188
Change-Id: I0fd61dd32de6fadd55fa6bd79295833392d51104
Reviewed-on: https://chromium-review.googlesource.com/726949
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
b433e872
|
2017-10-05T14:01:47
|
|
Change robust resource init into a context creation attribute.
Enabled support on OpenGL even through the extension is not fully
implemented so that testing with Chromium/Passthrough commmand decoder
is still possible.
BUG=angleproject:1635
Change-Id: Ia417b1779aace1eae19514325701a79cd33f4ef3
Reviewed-on: https://chromium-review.googlesource.com/678479
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
8a7b3a0c
|
2017-08-25T16:05:48
|
|
Reland 'Remove IndexRange retrieving in validation'
This change adds GL_KHR_robust_buffer_access_behavior support.
The old change is in https://chromium-review.googlesource.com/c/angle/angle/+/607413
BUG=755897, angleproject:1393, angleproject:1463
Change-Id: I04a1132c3ae8d3a766194df61c4ff7bf0b084f03
Reviewed-on: https://chromium-review.googlesource.com/640750
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
5e424fae
|
2017-08-09T16:25:36
|
|
Handle Clear* commands for layered framebuffers
The patch adds support for clearing the layers of 2D array textures
attached to a multi-view framebuffer. According to the ANGLE_multiview
spec, the layers which are outside of the range
[baseViewIndex; baseViewIndex + numViews) should remain unmodified.
Because the native Clear* commands clear all of the layers, a workaround
is implemented which creates a FBO, attaches a single layer from all
multi-view attachments and clears the contents.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: Ibf711d02046233eed16bdd3f9c96fc38f82ed0a8
Reviewed-on: https://chromium-review.googlesource.com/615242
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b9c53d8d
|
2017-07-19T18:55:16
|
|
Remove FormatString
And the global static it uses.
BUG=angleproject:1644
Change-Id: I6c8b186ef0dce83fe64620729af4d87ea81c77f5
Reviewed-on: https://chromium-review.googlesource.com/577922
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
665e4d97
|
2017-06-21T15:04:48
|
|
Perform all wglMakeCurrent calls from DisplayWGL.
Display WGL is the best place to track the currently bound surfaces and
contexts and cache them appropriately. This results in a ~40% speed
increase in the WebGL Aqarium demo because wglMakeCurrent is now only
called once at initialization.
BUG=angleproject:1651
Change-Id: I61132bb4a0db8de592600173c20787c67d18e067
Reviewed-on: https://chromium-review.googlesource.com/543583
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
fe54834f
|
2017-06-19T11:13:24
|
|
Proliferate gl::Context.
This enables a few small things: it will enable making the platform
a property of the Display rather than a global. The same goes for the
global logging annotator. Also it ensures all back-end implementations
have access to the GL / EGL state when available.
Also introduces a smart pointer helper class to angleutils for objects
that prefer to be destroyed with a context (gl::Context/egl::Display)
parameter. We were using std::unique_ptr in a few places that would
not work well with these objects.
BUG=angleproject:1156
Change-Id: I59e288a3d6f766ff8a0f4b48ff3a1fbf7489daba
Reviewed-on: https://chromium-review.googlesource.com/529706
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
638c7277
|
2017-06-13T15:50:26
|
|
Implement EGL_KHR_surfaceless_context for D3D, GL and NULL backends.
Skip all config attributes that have the value of EGL_DONT_CARE. From the
EGL 1.5 spec: "If EGL_DONT_CARE is specified as an attribute value, then
the attribute will not be checked.".
BUG=angleproject:1651
Change-Id: I30c95a1970543fb6f1d4b02d2babf3df61cad543
Reviewed-on: https://chromium-review.googlesource.com/533937
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
c4d18aac
|
2017-03-09T18:45:02
|
|
Use ErrorStream everywhere
Eliminates one more usage of FormatString and its static initializer.
Add more ErrorStream types
and replace gl::Error and egl::Error with them.
BUG=angleproject:1644
Change-Id: Ib498d0ae4b81a332ec71aed7cf709993b154e6bb
Reviewed-on: https://chromium-review.googlesource.com/505429
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
80cdc376
|
2017-04-18T13:27:30
|
|
DisplayWGL: try all GL context version from the highest
The only way to get a core profile context of the highest version using
CreateContextAttrib is to try creationg contexts in decreasing version
numbers. It might look that asking for a core context of version (0, 0)
works on some driver but it create a _compatibility_ context of the highest
version instead which might not be supported on some drivers.
BUG=angleproject:1994
Change-Id: Ic8a33243909c54ea5940ee81c9c866b141bea420
Reviewed-on: https://chromium-review.googlesource.com/480739
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c564c070
|
2017-06-01T12:45:42
|
|
Pass gl::Context to impl methods instead of ContextImpl.
In some cases we might have to call back into the GL layer, passing
the Context, and if we just have a ContextImpl pointer this isn't
possible. It also removes the need for SafeGetImpl.
BUG=angleproject:2044
Change-Id: I6363e84b25648c992c25779d4c43f795aa2866d6
Reviewed-on: https://chromium-review.googlesource.com/516835
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@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>
|
|
d7297bfb
|
2017-04-19T15:27:10
|
|
Code refactoring: replace NULL by nullptr for pointers.
This is the frist change to replace NULL by nullptr.
It handles the initialization and assignment for pointers.
BUG=angleproject:2001
Change-Id: I6d4bb198a72e38b867cd2f65a6e6f2f61339a0b5
Reviewed-on: https://chromium-review.googlesource.com/481600
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
ca27139e
|
2017-04-05T12:30:00
|
|
Key the format tables on internal format and type.
Keying the format tables on internal format alone is not enough to fully
validate the unsized formats which require additional type information.
This CL has no functional changes, it just splits the tables and updates
the calls to GetInternalFormat info to provide type information when the
format is not sized.
BUG=angleproject:1523
BUG=angleproject:1958
BUG=angleproject:1228
Change-Id: I37e5201e7f54fa8eca01b8a6e64b11a6b94484e7
Reviewed-on: https://chromium-review.googlesource.com/468449
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
43915883
|
2017-04-13T10:07:14
|
|
Lazily initialize the D3D device in DisplayWGL.
Change-Id: I3afe4c0619128d7063f49ed8c295d4b814193f84
Reviewed-on: https://chromium-review.googlesource.com/476930
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
067cdb4a
|
2017-04-05T13:42:49
|
|
Create depth stencils for D3D texture EGL surfaces.
BUG=angleproject:1144
Change-Id: I42d80293c06e40197fe100bcac31a5c6bd414edf
Reviewed-on: https://chromium-review.googlesource.com/469106
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
6b2ea3fe
|
2017-03-28T11:49:17
|
|
Support D3D texture share handles in the OpenGL backend on Windows.
BUG=angleproject:1144
Change-Id: Ideb0ed306ae8417f53b813745ced43002d028126
Reviewed-on: https://chromium-review.googlesource.com/461271
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
21534776
|
2017-02-13T15:21:02
|
|
DisplayGL: remove getDriverVersion
It was unused and going forward angle_gpu_info_util will be used
instead.
BUG=angleproject:1874
Change-Id: I262cc36066aa28805d50f3fc4442b08477f9e24d
Reviewed-on: https://chromium-review.googlesource.com/442024
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
ce02f086
|
2017-02-06T16:46:21
|
|
Add an extension to share textures at the display level.
BUG=angleproject:1639
Change-Id: If9140142ebce89f33921c13d9d212c17d1894162
Reviewed-on: https://chromium-review.googlesource.com/437618
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
bcb3f9ba
|
2017-01-27T22:45:18
|
|
Direct logging to Platform when available
All logging should be done via ERR() and WARN(),
which call angle::Platform's logError and logWarning,
if there is current Platform which supports logging.
Otherwise, ERR() is directed to std::cerr.
Misc fixes to keep tests passing.
BUG=angleproject:1660, angleproject:1644
Change-Id: I2bca33a021537185d0c236a3083789af3236b5f3
Reviewed-on: https://chromium-review.googlesource.com/434188
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c5a2a172
|
2017-01-13T15:55:07
|
|
Add EGL_EXT_pixel_format_float support, enables float EGL surfaces.
Add floating point EGL configs for the D3D11 backend.
BUG=angleproject:1707
Change-Id: Ic84cd3a0d41e78cc39d0275d83e7695f55673ddf
Reviewed-on: https://chromium-review.googlesource.com/428294
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
3311d474
|
2017-01-02T17:55:02
|
|
Display: Add a shared state object.
This will allow us to manage the SurfaceSet in the GL layer.
BUG=angleproject:1684
Change-Id: Iab8243157710beab2667ef10275571078ce9ae8e
Reviewed-on: https://chromium-review.googlesource.com/424228
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a26c6b7c
|
2016-12-15T11:27:50
|
|
Surface: Make the egl::Config part of SurfaceState.
This will be accessible to the Impl, so they won't have to store a
copy of the pointer.
BUG=angleproject:1319
Change-Id: I298a11a243d3d32f4c885273e55162e6862f3e16
Reviewed-on: https://chromium-review.googlesource.com/419697
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
95401dbb
|
2016-12-15T11:27:48
|
|
Surface: Pass DisplayImpl to initialize and swap.
In new back-ends (Vulkan) this will allow us to avoid storing a ref
to the Renderer in the Surface class.
BUG=angleproject:1319
Change-Id: I3b3f50893070d2993e4e91dd82ee539a083b3727
Reviewed-on: https://chromium-review.googlesource.com/419837
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2018c0ba
|
2015-12-08T11:48:51
|
|
Add a EGL_ANGLE_d3d_texture_client_buffer extension.
Allows creation of pbuffers from D3D texture objects.
BUG=540829
BUG=angleproject:1144
Change-Id: If8ea717ef011608cd01357c217837133d726d3ea
Reviewed-on: https://chromium-review.googlesource.com/316804
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9f4583dd
|
2016-10-19T11:19:51
|
|
Add Platform Detection and Tighten the workarounds on Intel GPU
This patch intends to add platform detection to ANGLE and tighten
the driver bug workarounds on Intel GPU.
BUG=angleproject:1548
Change-Id: I1ea57e174f688a175da8b658de4337295037fcab
Reviewed-on: https://chromium-review.googlesource.com/399914
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
26a717b0
|
2016-09-27T08:45:42
|
|
GL: Emulate SRGB blits where needed.
Desktop OpenGL before 4.4 doesn't handle SRGB blits the same way OpenGL
ES does. Emulate them by drawing a quad.
BUG=angleproject:1492
BUG=chromium:634525
Change-Id: I9f2992d9b373941b10f19f8a51564f0f756cc4df
Reviewed-on: https://chromium-review.googlesource.com/389853
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
2549e74e
|
2016-10-03T10:59:21
|
|
Only expose the EGL robutness extensions when the native GL context has them.
On some drivers, the WGL_ARB_create_context_robustness extension is present but
the created context does not expose the extensions. Be more defensive and only
expose robustness if we're able to create contexts that have it.
BUG=angleproject:1538
Change-Id: I3d02b2071c7b2c576abe66cc283cee467e400fd3
Reviewed-on: https://chromium-review.googlesource.com/391833
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: John Bauman <jbauman@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
b920e360
|
2016-08-03T18:19:41
|
|
Implement GL_ARB_create_context_robustness on GLX and WGL
BUG=angleproject:1463
Change-Id: I5bdcfd757d6f7d6411558c368fa7a26c8a38c9ba
Reviewed-on: https://chromium-review.googlesource.com/365971
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
9c721c64
|
2016-08-02T14:56:23
|
|
Check for device loss on all applicable EGL entry-points
This will make applications aware of device loss on all EGL calls that
need to have an initialized display. For that purpose, we track the
device loss state at the egl::Display level instead of always querying
the implementation. This is correct because at device-loss at the
display level is non-recoverable. It also deduplicates the tracking
that would have to be done in all the EGL backends.
Changes made in this commit:
- Cached device loss in egl::Display
- Check isDeviceLost in ValidateDisplay
- Changed EGL entry-points testing isDeviceLost to explicitely request
a testDeviceLost
- Add calls to ValidateDisplay to entry-points missing it
- Removed unused virtual qualifiers for some robustness methods
BUG=angleproject:1463
Change-Id: I92bea81f2ecd5423c445cff31557a4d9783557d5
Reviewed-on: https://chromium-review.googlesource.com/365450
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
07529ff8
|
2016-06-04T02:19:03
|
|
Remove const qualifier from generateConfigs
Requested in https://chromium-review.googlesource.com/349353
BUG=angleproject:1362
Change-Id: I989757c2fb8f65d5afcfb177b7f8da1414871e6f
Reviewed-on: https://chromium-review.googlesource.com/349694
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
00ed7a1f
|
2016-05-19T13:13:38
|
|
Enable always-available extensions in gl::Context.
We can consolidate exposing these extensions in initCaps. Otherwise
we have to maintain the lists in every Renderer back-end.
Also do the same treatment for select egl::Display extensions.
BUG=angleproject:1319
Change-Id: I529dd120c6d2cdbb789bd9dd20491e796e97f3f6
Reviewed-on: https://chromium-review.googlesource.com/345914
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
62baf0cf
|
2016-05-19T13:13:36
|
|
Add a shared egl::SurfaceState struct.
This structure can share GL-level properties (immutably) with the
implementation.
BUG=angleproject:1369
Change-Id: I1e9406f18b6b88bb7db2a8f87b5e6d547cc7ecb1
Reviewed-on: https://chromium-review.googlesource.com/342061
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
43d0e609
|
2016-05-11T10:35:49
|
|
Disable the DXGI WGL swap chain surface on AMD drivers.
BUG=540829
Change-Id: Ib15658c3fd7132068e9eb1e69a7a04720b3e3d6b
Reviewed-on: https://chromium-review.googlesource.com/344250
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
48ef11b2
|
2016-04-27T15:21:52
|
|
Rename gl::Framebuffer::Data to gl::FramebufferState.
Moving this out of the Framebuffer class allows us to forward-
declare it.
BUG=angleproject:1363
Change-Id: I91971c37a92151df508cdf7f0eb8c3e93506d112
Reviewed-on: https://chromium-review.googlesource.com/340741
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ec2c0c5e
|
2016-04-05T13:46:26
|
|
Update internal AttributeMap type to EGLAttrib.
Newer EGL functions use EGLAttrib to pass in attributes, which can be
either 32-bit or 64-bit depending on the system while the old attributes
are passed in as EGLints, which are usually 32-bits. To support these
newer functions, AttributeMap now uses EGLAttrib internally instead of
EGLint, and all the code using AttributeMap has been updated to cast
properly.
BUG=angleproject:1348
Change-Id: I7c4dd9ef23ea1b1741f3a565502fb5e26bf962d7
Reviewed-on: https://chromium-review.googlesource.com/337162
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Ian Ewell <ewell@google.com>
|
|
cc068e93
|
2016-02-29T16:37:04
|
|
Add DisplayGL::getDriverVersion and implementation on Linux NVIDIA
Some GPU driver bug workarounds should be active only for specific
driver version ranges. This adds NVIDIA Linux driver detection using
the XNVCtrl X11 extension.
BUG=590870
Change-Id: I8cbf692a0c8a6da7473169f29d720bdc2d07663d
Reviewed-on: https://chromium-review.googlesource.com/329637
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
541591d5
|
2016-01-28T14:27:50
|
|
Fix some override related warnings.
BUG=
Change-Id: I9e67ba2165ac87959f319fd2485fe385c60a8ea0
Reviewed-on: https://chromium-review.googlesource.com/324461
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
eaaeb7fb
|
2016-01-27T16:07:07
|
|
Disable support for OpenGL ES targets with WGL on Intel drivers.
BUG=angleproject:1145
Change-Id: I9f3a8926eaad88076026f58922289487f90518c7
Reviewed-on: https://chromium-review.googlesource.com/324270
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
2e5dd41c
|
2016-01-27T13:16:35
|
|
Fix warnings from shadowed variables in DXGISwapChainWindowSurfaceWGL.
BUG=540829
Change-Id: I3595f316afa1897224ad95d6f9a3da3685aa0831
Reviewed-on: https://chromium-review.googlesource.com/324032
Tryjob-Request: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
722b0d31
|
2015-12-08T11:46:28
|
|
Add a WGL Surface implementation that renders to a DXGI swap chain.
This avoids sandbox issues when calling SetPixelFormat on windows from
other processes while in a sandboxed process.
BUG=540829
Change-Id: I012168531d8c2e5b189671533cea9f57ec713538
Reviewed-on: https://chromium-review.googlesource.com/296340
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tryjob-Request: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
436e32ae
|
2016-01-15T15:53:12
|
|
GLX backend: check for child window resizes on eglWaitNative
This is the standard way, if not often used, for application to notify
the driver of window size changes. Chromium uses it to resize when it
is done rendering and swapping so that drivers do not clobber the
backbuffer.
This fixes black flickering appearing when resizing the Chromium
windows with --use-gl=angle.
BUG=angleproject:1281
Change-Id: Ic76f3c3ef453eae07eb59122135290411f86764d
Reviewed-on: https://chromium-review.googlesource.com/322390
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tryjob-Request: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
33db61d1
|
2016-01-20T10:54:49
|
|
Add support for targetting GLES with DisplayWGL.
BUG=angleproject:1145
Change-Id: I5a0a667621aceedb4662cfb2356d7dbd0d9f7718
Reviewed-on: https://chromium-review.googlesource.com/285557
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|