|
0ea0caeb
|
2016-08-10T12:39:29
|
|
Move load functions table to renderer layer.
We will be able to use it for the Vulkan formats table.
BUG=angleproject:1455
Change-Id: Iddc09fe560b06880af72a6fa8eb03fa2792e2f8c
Reviewed-on: https://chromium-review.googlesource.com/367454
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
91e71ed9
|
2016-08-23T09:29:22
|
|
Misc minor WinRT fixes and cleanups
Change-Id: Ibf041e74d81ef266791e6b6a3bb43bf504b035b3
Reviewed-on: https://chromium-review.googlesource.com/374040
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
39b11018
|
2016-08-22T13:42:30
|
|
Remove Windows 8.1 (Store apps) and Windows Phone 8.1 support
ANGLE has moved onto the Windows 10 SDK, and is using new compiler
features that aren't supported by the old Windows 8.1 toolchain. Support
for the 8.1 projects has been broken in master for some time now.
Since more and more developers are moving towards Windows 10, we
are going to take a snapshot of ANGLE that includes 8.1 support and
freeze it in a branch on github.com/microsoft/angle. If developers
wish to compile for use ANGLE in 8.1 apps then they should use that
branch going forward.
Change-Id: Ifee2d8a8cc0332500e0bd338911d831e7624fa82
Reviewed-on: https://chromium-review.googlesource.com/374039
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
30712068
|
2016-08-09T11:10:36
|
|
Move fast copy functions into angle::Format.
These tables were duplicated in D3D11 and D3D9, and would have to be
further duplicated into Vulkan.
BUG=angleproject:1455
Change-Id: Ice1b81417d7b14f933b61861c4a9997c260ef72e
Reviewed-on: https://chromium-review.googlesource.com/367690
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a5b1561e
|
2016-08-09T11:10:27
|
|
Place format info in angle::Format.
Some bits of information, like the copy functions and mipmap gen
functions, can be shared across back-ends in the angle::Format
class.
Also name the info struct angle::Format, and use an enum class
angle::Format::ID to identify the particular format.
This patch introduces a new table generator for angle formats
and updates the D3D11 generator accordingly.
BUG=angleproject:1455
Change-Id: I13b8b98822b1186c6a9e436dc232c18fef50980c
Reviewed-on: https://chromium-review.googlesource.com/365824
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
20f69ce5
|
2016-08-09T11:10:26
|
|
Introduce angle::Format enum.
This general enum can encapsulate different formats between
GL/Vulkan/D3D9/D3D11/etc so we can use them in common routines like
PackPixels. It also can help us get rid of the ANGLEX enums which
we use to represent internal formats not present in GL.
It is currently used for Textures/Renderbuffers/Surfaces, but can
also be extended in the future to cover things like vertex formats.
It mirrors something like a DXGI_FORMAT in D3D11 or VkFormat.
BUG=angleproject:1455
Change-Id: I467d7b36d8fc92bb45239d56b9243d06f4e29378
Reviewed-on: https://chromium-review.googlesource.com/365413
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f7ccaf73
|
2016-08-03T14:10:04
|
|
D3D11: Move texture format code out of the python script.
It's better to maintain the code outside of a generator script. It
gives easier formatting and updating.
BUG=angleproject:1455
Change-Id: I2b4383f1ed01545004de10024d03879201e2bf41
Reviewed-on: https://chromium-review.googlesource.com/365410
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
66fb8206
|
2016-07-28T11:45:20
|
|
Add ES3.1 API constants
The newly added capability constants are handled in the corresponding
glGet functions. Also, getBooleani_v has been added.
BUG=angleproject:1442
TEST=angle_deqp_gtest_gles31_tests
--gtest_filter=*functional_state_query_integer_max_*
TEST=angle_deqp_gtest_gles31_tests
--gtest_filter=*state_query_indexed_max_compute_work_group_size*
TEST=angle_unittests
TEST=angle_end2end_tests
Change-Id: I846e006307563ae81d8b6c62cf261417e15186c7
Reviewed-on: https://chromium-review.googlesource.com/362270
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
f54b14fc
|
2016-08-02T11:28:13
|
|
Remove angle_standalone from GYP files
BUG=angleproject:1462
Change-Id: Ifdd714e2bc1f0a184f63f8ef162facce5286e935
Reviewed-on: https://chromium-review.googlesource.com/365233
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
97073d12
|
2016-04-20T10:42:34
|
|
Implement CHROMIUM_copy_texture for D3D11.
BUG=angleproject:1356
Change-Id: I70246762411dbeeb3e291e317854139a68d80070
Reviewed-on: https://chromium-review.googlesource.com/339434
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
ee7e1e21
|
2016-07-18T15:39:47
|
|
Add ES31 entry points as function stubs
Entry points were generated using scripts which take the
new function declarations from gl31.h, find the newly added functions
and output the new function declarations and defitions.
BUG=angleproject:1442
TEST=angle_unittests
Change-Id: I2d77eb4cc24873a31cb2745b7b82bf611d5058c6
Reviewed-on: https://chromium-review.googlesource.com/361291
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
ce1ed238
|
2016-07-24T12:45:17
|
|
D3D11: Detect driver version for blit workaround.
Since the newer driver versions are required for WebGL 2 conformance,
we need a solution that can detect a driver version to know if we
should apply the workaround.
Use a modified copy of Chrome's Windows GPU driver detection code.
In the future we should extend this to a full module when we port
the command buffer workarounds.
BUG=angleproject:1452
Change-Id: I783d5726454671cc22585a2bf990c071d539aa9f
Reviewed-on: https://chromium-review.googlesource.com/361962
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
73bd218e
|
2016-07-15T13:01:24
|
|
Support virtualized contexts and transform feedback in Renderer11.
Track buffer offets in the transform feedback object and dirty them when a
buffer is bound. This fixes problems when a buffer is rebound at the same
offset and maintains tracking between context switches.
BUG=angleproject:1447
BUG=angleproject:1298
Change-Id: I2f890e3ad5edacab47f624a95a502615c86cc0c8
Reviewed-on: https://chromium-review.googlesource.com/360910
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
5695fc99
|
2016-07-05T14:47:30
|
|
Clean up the SSE detection logic.
* Include the correct header right in the SSE check in platform.h.
* Don't use separate SSE versions of the load functions, have them use
SSE automatically.
BUG=612205
Change-Id: I70f9a5513e144db4d16c1f3ad922debeb6c50268
Reviewed-on: https://chromium-review.googlesource.com/358108
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
6e4cfceb
|
2016-06-13T15:06:31
|
|
Refactor ANGLE's image manipulation code into a static library.
Allows for chromium to make use of some of the functionality.
BUG=612205
Change-Id: Ib4435ca44775a3a554b0fb3bd384bd4d31d7952d
Reviewed-on: https://chromium-review.googlesource.com/351753
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
e45e53bd
|
2016-05-25T10:36:04
|
|
Support CHROMIUM_path_rendering
This is partial support for CHROMIUM_path_rendering
and implements basic path management and non-instanced
rendering.
BUG=angleproject:1382
Change-Id: I9c0e88183e0a915d522889323933439d25b45b5f
Reviewed-on: https://chromium-review.googlesource.com/348630
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e02a6834
|
2016-06-09T06:52:41
|
|
Refactor how we signal dependent state changes.
Dependent state changes happen when the user calls TexImage
on a Texture attached to a Framebuffer. The Framebuffer should be
told 'hey, you should know about this'. Other objects also have
dependent relationships, like VertexArrays and Buffers.
This refactoring uses a binding pointer design, similar to the type
'RefCountObject'. This design fixes the need for manual decoupling
when one or the other is destroyed. The pointers are cleaned up in
destructors, and do no-ops when either the source or dest is missing.
Also move these new classes to a location where they are accessible to
the GL layer; they will be important for framebuffer completeness.
BUG=angleproject:1388
Change-Id: I92610acb85dae6f9c009b8f071e121fde53782ae
Reviewed-on: https://chromium-review.googlesource.com/348953
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d2b50a0b
|
2016-06-09T00:13:35
|
|
Move ReadPixels logic to helper methods.
These routines were pretty much duplicated between D3D9 and D3D11.
Since I was going to have to rewrite them again for Vulkan, I
figured it would be best to move them into a common location and
clean them up a bit.
BUG=angleproject:1319
Change-Id: I15d39b052daf3e1020dbd0880f01ae84f3686a0a
Reviewed-on: https://chromium-review.googlesource.com/349630
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a6426d67
|
2016-06-03T00:18:38
|
|
Android GL backend and end2end tests
Just the bare minimum implementation for end2end tests to run.
BUG=angleproject:1362
TEST=angle_end2end_tests on Nexus 5X
Change-Id: I92293e0f8bdc2ffaa5d4661927750d7cb3d931e6
Reviewed-on: https://chromium-review.googlesource.com/349353
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
e2e406c3
|
2016-06-02T13:04:10
|
|
Add base::numerics for safe math and conversions.
This replaces are "IsUnsignedXXXSafe" family of methods.
Also add overflow checks to unpack block sizes.
BUG=angleproject:1397
Change-Id: Ib47be149b0486c70f795b0d0f8899441faac9340
Reviewed-on: https://chromium-review.googlesource.com/348062
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9e54b5af
|
2016-05-25T12:57:39
|
|
Add Vulkan stubs.
Currently enabled for Windows by default.
BUG=angleproject:1319
Change-Id: I87921c579bee466465fb1e3f629bb3a40fdff659
Reviewed-on: https://chromium-review.googlesource.com/328730
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
35170f5c
|
2016-05-25T12:57:38
|
|
Fix Renderer generator script.
This script breaks peridocially because we don't have automated tests
for it. Split the FBO attachment object class into its own file, and
also fix a couple other small snags that prevented the script from
running.
This will facilitate generating Vulkan renderer stubs.
BUG=angleproject:1319
Change-Id: I30a6ce4ab0adad962cea76731dbe82837c5c9a1b
Reviewed-on: https://chromium-review.googlesource.com/347064
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
53ea9cc6
|
2016-05-17T10:12:52
|
|
Replace rx::Renderer with rx::ContextImpl.
Previously Context had no Impl class, but had a special relationship
with the instanced Renderer class. Having a ContextImpl backing every
Context will allow new designs to enable things like multithreading
(where each ContextImpl stores a Context-specific device) or non-
virtual Contexts on Android or other platforms where it is more
efficient.
A large refactoring patch that touches every back-end.
BUG=angleproject:1363
Change-Id: Icb73a7d37447f08a664eeb499a310ba05d71a57e
Reviewed-on: https://chromium-review.googlesource.com/342052
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
de44d3a4
|
2016-05-13T17:27:57
|
|
gn/mac: Build GL code, and include CGL code.
BUG=chromium:431177
Change-Id: Id9c8ad68a9703591d6f576bfae3d7061526ed27f
Reviewed-on: https://chromium-review.googlesource.com/344740
Tryjob-Request: Nico Weber <thakis@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
|
|
538281f6
|
2016-04-13T23:36:55
|
|
Initial Chrome OS support.
Samples and end2end tests mostly work. Only one config, and no input.
BUG=angleproject:1297
Change-Id: I5b69babccc5b97e486d86e1721a0a1740ad80941
Reviewed-on: https://chromium-review.googlesource.com/319460
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
7aea7e05
|
2016-05-10T10:39:45
|
|
Add EGLImplFactory.
Also rename ImplFactory to GLImplFactory.
This will allow us to use the same factory design pattern for EGL
objects, and to use State helper classes to share data with Impls.
BUG=angleproject:1363
BUG=angleproject:1369
Change-Id: I07a8fe40838d5d4ca32b04910c306edeab4d25a7
Reviewed-on: https://chromium-review.googlesource.com/342051
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
437fa654
|
2016-05-03T15:13:24
|
|
Add a ContextImpl class.
This class can contain impl-specific functionality for a Context.
This will eventually replace the Renderer class, and we can then
start passing around a gl::Context instead of gl::ContextState.
In D3D11, the ContextImpl could hold a DeferredContext, which would
enable multi-thread rendering. In GL, we can implement non-virtual
(native) Contexts. In Vulkan it might store the logical device.
BUG=angleproject:1363
Change-Id: I39617e6d1a605d1a9574832e4d322400b09867ec
Reviewed-on: https://chromium-review.googlesource.com/340745
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
bda75597
|
2016-04-18T17:25:54
|
|
Finish NV12 support via streams.
The main functionality for NV12 texture support through EGL streams has
been added. Updates to the compiler, texture code, and stream code were
added to support binding to external D3D11 NV12 textures. An end2end test
was also added to test sampling of YUV textures and converting to RGB.
There is also a new script to convert BMP files to an NV12 texture ready
to load into D3D11 for testing purposes.
BUG=angleproject:1332
Change-Id: I39b6ec393ea338e2c843fb911acc1b36cd1158a0
Reviewed-on: https://chromium-review.googlesource.com/339454
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Ian Ewell <ewell@google.com>
Reviewed-on: https://chromium-review.googlesource.com/341254
Reviewed-by: Ian Ewell <ewell@google.com>
|
|
9670b03e
|
2016-04-29T09:47:47
|
|
Revert "Finish NV12 support via streams."
Broke Windows Clang compilation, see https://build.chromium.org/p/chromium.gpu.fyi/builders/GPU%20Win%20Clang%20Builder%20%28dbg%29/builds/3583/steps/compile/logs/stdio and search for TextureStorage11.h
This reverts commit 9b8b359fa3615be7c7492239a48f61103b2e4fcc.
Change-Id: I6e54305eba02b40927a35577594df39e951adb32
Reviewed-on: https://chromium-review.googlesource.com/341430
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
9082b982
|
2016-04-27T15:21:51
|
|
Rename gl::Data to gl::ContextState.
Part of the new world order of renaming the Obj::Data classes to ObjState.
BUG=angleproject:1363
Change-Id: I15cf002b8b093d687f540b9e86f045874af24a7e
Reviewed-on: https://chromium-review.googlesource.com/340740
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9b8b359f
|
2016-04-18T17:25:54
|
|
Finish NV12 support via streams.
The main functionality for NV12 texture support through EGL streams has
been added. Updates to the compiler, texture code, and stream code were
added to support binding to external D3D11 NV12 textures. An end2end test
was also added to test sampling of YUV textures and converting to RGB.
There is also a new script to convert BMP files to an NV12 texture ready
to load into D3D11 for testing purposes.
BUG=angleproject:1332
Change-Id: I098940e6f25e113dcc4fc8d22ffed4b5a16fd860
Reviewed-on: https://chromium-review.googlesource.com/339454
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Ian Ewell <ewell@google.com>
|
|
e7419b9f
|
2016-04-13T23:29:27
|
|
Add FunctionsEGL, FunctionsEGLDL - EGL wrappers.
FunctionsEGL is an abstract class.
FunctionsEGLDL is an libdl-based implementation.
BUG=angleproject:1297
Change-Id: I0fe5a337e34518cc6248494dbc4ee5c2938d4b77
Reviewed-on: https://chromium-review.googlesource.com/338884
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
b0a53105
|
2016-04-01T11:43:54
|
|
Add a NativeWindowD3D abstract class to handle native window interactions.
The previous NativeWindow class included D3D11 headers while being included in
all D3D backds and had platform-dependent includes and members. This
turns it into an abstract class that only implements the minimal
functionality for each renderer.
BUG=angleproject:1345
Change-Id: I8f20339dd6bba719e574a1dcb3ec859897c9228f
Reviewed-on: https://chromium-review.googlesource.com/336780
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
52b09c2f
|
2016-04-11T14:12:31
|
|
Re-re-land "D3D11: Implement dirty bits for VertexArray11.""
Translated attributes are now stored in the VertexArray11 in a cache,
and only updated when dirty bits change. Currently dynamic attributes
must be re-translated every call, so these are stored in a list and
processed repeatedly.
This skips doing a lot of the VertexDataManager work for vertex
attributes that don't change between draw calls.
Current value attributes, which correspond to disabled attributes that
the program will pulls vertex data from, are owned by the Context, so
these need to be handled outside of the VertexArray11.
Further changes will be necessary to reduce the redundant work we do in
the InputLayoutCache. We shouldn't need to re-check the cache if
nothing relevant changed.
This give about a 23% performance improvement on the draw call
benchmark on my machine.
Re-land with a fix for the start vertex offset.
Re-re-land with a fix for using XFB with deleted buffers.
BUG=angleproject:1327
Change-Id: I0fba49515375c149bbf54d933f8d1f747fbb8158
Reviewed-on: https://chromium-review.googlesource.com/338003
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
53a36004
|
2016-04-08T19:03:18
|
|
Revert "Re-land "D3D11: Implement dirty bits for VertexArray11."""
Seems to make the following dEQP test flaky:
dEQP-GLES3.functional.lifetime.attach.deleted_output.buffer_transform_feedback
doesn't show up on every bot test, but run it a few times and it'll flake. Reverting while I investigate.
BUG=angleproject:1327
This reverts commit 3477f3a62dc139a253a0b361ee138116e9fa881f.
Change-Id: Ic23a392526f5f6e107cf0aa06448389804d6b208
Reviewed-on: https://chromium-review.googlesource.com/337961
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3477f3a6
|
2016-03-29T17:15:29
|
|
Re-land "D3D11: Implement dirty bits for VertexArray11.""
Translated attributes are now stored in the VertexArray11 in a cache,
and only updated when dirty bits change. Currently dynamic attributes
must be re-translated every call, so these are stored in a list and
processed repeatedly.
This skips doing a lot of the VertexDataManager work for vertex
attributes that don't change between draw calls.
Current value attributes, which correspond to disabled attributes that
the program will pulls vertex data from, are owned by the Context, so
these need to be handled outside of the VertexArray11.
Further changes will be necessary to reduce the redundant work we do in
the InputLayoutCache. We shouldn't need to re-check the cache if
nothing relevant changed.
This give about a 23% performance improvement on the draw call
benchmark on my machine.
Re-land with a fix for the start vertex offset.
BUG=angleproject:1327
Change-Id: Ic23e48fb18ed7f29c1999914a2f799ac04aa03e9
Reviewed-on: https://chromium-review.googlesource.com/334225
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
701b74b0
|
2016-03-02T15:26:39
|
|
Add support for EGL_KHR_stream.
EGL_KHR_stream is now implemented. Since the extension does not come with
any producers or consumers, it does not have much functionality and the
implementation is therefore very simple (validation layers and a new
object to store some attributes). This however add the groundwork to add
the appropriate consumer and producer extensions to stream D3D NV12
textures directly into ANGLE which will significantly improve video
performance on Chromium on D3D-based platforms.
BUG=angleproject:1332
Change-Id: Ie240c73869f5098d1215cc5e27aa5decd06c3ed1
Reviewed-on: https://chromium-review.googlesource.com/330003
Commit-Queue: Ian Ewell <ewell@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
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>
|
|
00f394ec
|
2016-03-16T12:09:11
|
|
Revert Dirty bits for VertexArray11
This is a combination of two reverts:
Revert "D3D11: Remove unused mRenderer from VertexArray11."
Revert "D3D11: Implement dirty bits for VertexArray11."
Reverting only the first commit would trigger warnings on the Windows
clang bot.
BUG=594509
BUG=angleproject:1327
This reverts commit fc4712b5ed270436f2993bfda9e916d4f92684a4.
This reverts commit 7d8585b802b7eb741b380bd0d05769281d9507c9.
Change-Id: I612dbba0816d6144f71ce815701c13a798585bc7
Reviewed-on: https://chromium-review.googlesource.com/332989
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7d8585b8
|
2016-03-09T15:53:12
|
|
D3D11: Implement dirty bits for VertexArray11.
Translated attributes are now stored in the VertexArray11 in a cache,
and only updated when dirty bits change. Currently dynamic attributes
must be re-translated every call, so these are stored in a list and
processed repeatedly.
This skips doing a lot of the VertexDataManager work for vertex
attributes that don't change between draw calls.
Current value attributes, which correspond to disabled attributes that
the program will pulls vertex data from, are owned by the Context, so
these need to be handled outside of the VertexArray11.
Further changes will be necessary to reduce the redundant work we do in
the InputLayoutCache. We shouldn't need to re-check the cache if
nothing relevant changed.
This give about a 23% performance improvement on the draw call
benchmark on my machine.
BUG=angleproject:1327
Change-Id: I7fb944d32ea7e6c78b9e478406bdb7e10a7fc05b
Reviewed-on: https://chromium-review.googlesource.com/330173
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
bc49758c
|
2016-02-23T14:43:19
|
|
Choose D3D11 swizzle formats in gen_texture_format_table.py
Making swizzle format data come from the ANGLE format table will make
it easier to make changes that affect both swizzle formats and regular
texture formats. Swizzle format is now specified manually for some
tricky formats, but for most it can be determined automatically from
the ANGLE texture format info.
The ANGLE texture format info in texture_format_table.json is changed
to facilitate this. The componentType field now captures only whether
the data is normalized, int or float and its signedness, but not the
width of the data type. Bit widths of the individual channels are
recorded in a separate "bits" object for each ANGLE format entry.
Also, a new 16-bit RGBA UNORM ANGLE format is added to support
swizzling 16-bit normalized depth formats.
This change is mostly just refactoring, but it fixes swizzling for
formats which have less bits for alpha than other channels:
- RGB10_A2
- RGB10_A2UI
- RGB5_A1
BUG=angleproject:1322
BUG=angleproject:1244
TEST=angle_end2end_tests,
dEQP-GLES3.functional.texture.swizzle.* (all pass)
Change-Id: I87d8a9cc0b6569191f50c41754d77b20ca6afef9
Reviewed-on: https://chromium-review.googlesource.com/329074
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
11505601
|
2016-02-17T16:41:50
|
|
D3D11 Texture refactoring: Add ANGLEFormat enumeration to C++ code
Texture formats that are internal to ANGLE can now be uniquely identified
using the ANGLEFormat enum.
GetANGLEFormatInfo returns a structure with the DXGI texture formats
associated with the ANGLE format.
For starters, the ANGLEFormat enum is used when building texture info
structures queried from GetTextureFormatInfo.
BUG=angleproject:1244
TEST=angle_end2end_tests
Change-Id: I58a2027a1d9b7a5621f943cc5ceeb88a858009e3
Reviewed-on: https://chromium-review.googlesource.com/328254
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
6ee394a1
|
2016-02-18T13:30:09
|
|
Add initializer function to more texture formats
All GL RGB formats that ANGLE stores as RGBA formats under the covers
need to have their alpha channel set to 1. See GLES 3.0.4 table 3.24
for the relevant spec. In some cases, this is handled by the
dataInitializerFunction associated with the format. Previously, some
texture formats had the function set correctly, but not all.
Associating formats with the datainitializerFormat is now a
responsibility of the gen_texture_format_table.py script. The new
automation there makes sure that all GL RGB formats emulated with
RGBA formats get a data initializer function.
Tests are added in end2end_tests for most of the RGB formats.
BUG=angleproject:1318
TEST=angle_end2end_tests
Change-Id: Iad860357f33d87c625445ea6c58a53af47e0b547
Reviewed-on: https://chromium-review.googlesource.com/328253
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
b3844843
|
2016-01-27T15:03:06
|
|
Remove the now unused _ANGLE targets.
BUG=522967
Change-Id: I9a5c1793b089920273c74ab43fd5464d0aea7adb
Reviewed-on: https://chromium-review.googlesource.com/324022
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@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>
|
|
986d09df
|
2016-01-07T11:23:21
|
|
Improved performance of RefCountObject
Drop virtual specifier on addRef() and release(). There are no derived
classes which re-implement these functions.
Inlined implementation of constructor and destructor. Destructor is
still virtual, but empty implementation is now visible for derived
classes. Destructor is now protected to make sure that object is
destructed through release().
BUG=angleproject:1263
Change-Id: I744430c1d99b917f3d7b63d47305d937be323ee7
Reviewed-on: https://chromium-review.googlesource.com/320861
Tryjob-Request: Tibor Ouden, den <tibordenouden@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
c89df2ba
|
2015-12-07T13:05:17
|
|
Add loadable_module versions of libEGL and libGLESv2.
Reland with a link fix for Clang on Windows
In order to implement the --use-gl=angle Chrome flag on Linux, we need
to have the ANGLE .so directly in the build directory however GYP
places shared_libraries under lib/ on Linux. On the contrary loadable_modules
cannot be linked against so we need to keep the shared_library targets.
This commit adds _ANGLE versions of the libEGL and libGLESv2 targets as
loadable module that depend on their respective shared library.
BUG=522967
Change-Id: Iad968ab786b94b6041c279921de99633d23b48a7
Reviewed-on: https://chromium-review.googlesource.com/318470
Tryjob-Request: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
70d0f499
|
2015-12-10T17:45:46
|
|
Implement GL_KHR_debug.
BUG=angleproject:520
Change-Id: I9ced3e7ab1515feddf2ec103c26b2610a45b1784
Reviewed-on: https://chromium-review.googlesource.com/319830
Tryjob-Request: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
66988745
|
2015-12-22T19:39:19
|
|
Revert "Implement GL_KHR_debug."
This reverts commit 6c521b7a70a53b1c9f7762e53e34b5a8146b0f7b.
Change-Id: I6ff981198e31f34d3e405edea6277ee75516d6ee
Reviewed-on: https://chromium-review.googlesource.com/319820
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
6c521b7a
|
2015-12-10T17:45:46
|
|
Implement GL_KHR_debug.
BUG=angleproject:520
Change-Id: I78d14cc8c94f5cef58604220f0ca847473b25bf8
Reviewed-on: https://chromium-review.googlesource.com/317820
Tryjob-Request: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
31aabdfb
|
2015-12-16T10:53:46
|
|
gyp: Always use pkg-config wrapper
Calling pkg-config directly doesn't work when building
with a sysroot image as it will looks for host libraries
rather than those within the sysroot.
BUG=chromium:569947
Change-Id: I6f3e63c1816cd9393110cb3060744a69a93c9a2e
Reviewed-on: https://chromium-review.googlesource.com/318771
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tryjob-Request: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Sam Clegg <sbc@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
3e03ebd6
|
2015-12-07T13:15:10
|
|
Using dirty bits notification for D3D9 blend state
BUG=angleproject:1249
Dirty bit notifications are used in GL and D3D11 for state tracking. This
is a continuation of D3D dirty bit refactor for D3D9
Change-Id: Ifaa1826a93cf36c83d68150107b164d1d269c2b0
Reviewed-on: https://chromium-review.googlesource.com/316475
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tryjob-Request: Dian Xiang <dianx@google.com>
Tested-by: Dian Xiang <dianx@google.com>
|
|
4bc76d07
|
2015-12-15T20:07:23
|
|
Revert "Add loadable_module versions of libEGL and libGLESv2."
This reverts commit 6beb0bfdd0e57d7cb5797355d10e971c7c97cc29.
It caused compile failures on win_clang_dbg because when building libEGL_ANGLE.dll DllMainCRTStartup wasn't defined.
Change-Id: I8080f8db373f5988d86560da1b8b2a1bae30d3ea
Reviewed-on: https://chromium-review.googlesource.com/318460
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
6beb0bfd
|
2015-12-07T13:05:17
|
|
Add loadable_module versions of libEGL and libGLESv2.
In order to implement the --use-gl=angle Chrome flag on Linux, we need
to have the ANGLE .so directly in the build directory however GYP
places shared_libraries under lib/ on Linux. On the contrary loadable_modules
cannot be linked against so we need to keep the shared_library targets.
This commit adds _ANGLE versions of the libEGL and libGLESv2 targets as
loadable module that depend on their respective shared library.
BUG=522967
Change-Id: I08f2ce0ee0430eff5bee852f09cd7d30b94d6266
Reviewed-on: https://chromium-review.googlesource.com/316421
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
Tryjob-Request: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
febe45fc
|
2015-12-08T10:18:13
|
|
Don't disable COMDAT folding or OptimizeReferences in WinRT
This is bloating the WinRT binaries unnecessarily.
BUG=angleproject:1250
Change-Id: I87fa2422e7d58374329956540d03933b0177234b
Reviewed-on: https://chromium-review.googlesource.com/316820
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
451cb838
|
2015-11-11T10:45:57
|
|
Using dirty bit notification for d3d11 blend state
BUG=angleproject:1161
This is a re-land for commit ff2ab57. Dirty bits didn't check for
sampleMask, hence when sampleMask changed and nothing else, d3D
states didn't update. This commit also focuses on blend state for d3d11 to
make the cl change smaller and more manageable.
This commit also some performance regression issues that were occuring in
commit ff2ab57
Change-Id: I866066689911870a84125fa2150f9efbf1405ad0
Reviewed-on: https://chromium-review.googlesource.com/312468
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tryjob-Request: Dian Xiang <dianx@google.com>
Tested-by: Dian Xiang <dianx@google.com>
|
|
65345da4
|
2015-11-13T11:25:23
|
|
Re-land "D3D: Move some varying packing code into a new file."
Re-land with fix for compile errors.
Refactoring patch which moves code only. Work and full description
will follow in a subsequent CL.
BUG=angleproject:1202
Change-Id: Ib7c7dbd32491cdd9512dbecdc0e1e90303d8f28d
Reviewed-on: https://chromium-review.googlesource.com/312481
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
bbdeeb18
|
2015-11-12T15:42:16
|
|
Revert "D3D: Move some varying packing code into a new file."
Compile error:
c:\b\build\slave\gpu_win_builder\build\src\third_party\angle\src\libangle\renderer\d3d\dynamichlsl.cpp(508) : error C3861: 'getSemanticInfo': identifier not found
c:\b\build\slave\gpu_win_builder\build\src\third_party\angle\src\libangle\renderer\d3d\dynamichlsl.cpp(642) : error C3861: 'getSemanticInfo': identifier not found
BUG=angleproject:1202
This reverts commit d992cde27ea6ffd71205399c3ddb88c7085c99b4.
Change-Id: I11f34d2ac4cc047c397e45348cb9502676380be0
Reviewed-on: https://chromium-review.googlesource.com/312480
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
d992cde2
|
2015-11-10T14:42:08
|
|
D3D: Move some varying packing code into a new file.
Refactoring patch which moves code only. Work and full description
will follow in a subsequent CL.
BUG=angleproject:1202
Change-Id: I60346c516209a0517fc2bac38e0d04ff56bcbc3c
Reviewed-on: https://chromium-review.googlesource.com/311260
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
63e4e724
|
2015-11-06T19:15:11
|
|
Revert "Using dirty bits notification for blend state"
Failing the dEQP-GLES3 tests:
http://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20Release%20dEQP%20%28NVIDIA%29/builds/4036/
3 tests failed:
dEQP_GLES3.Default/functional_multisample_fbo_4_samples_sample_coverage_invert (c:\b\build\slave\gpu_win_builder\build\src\third_party\angle\src\tests\deqp_support\angle_deqp_gtest.cpp:234)
dEQP_GLES3.Default/functional_multisample_fbo_8_samples_sample_coverage_invert (c:\b\build\slave\gpu_win_builder\build\src\third_party\angle\src\tests\deqp_support\angle_deqp_gtest.cpp:234)
dEQP_GLES3.Default/functional_multisample_fbo_max_samples_sample_coverage_invert (c:\b\build\slave\gpu_win_builder\build\src\third_party\angle\src\tests\deqp_support\angle_deqp_gtest.cpp:234)
BUG=angleproject:1161
This reverts commit ff2ab571b00023926ce39a91bfe20e13578d1281.
Change-Id: Ibf61fc2c64ffc31778645bfe0292516b1f107397
Reviewed-on: https://chromium-review.googlesource.com/311243
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
ff2ab571
|
2015-10-05T16:48:06
|
|
Using dirty bits notification for blend state
BUG=angleproject:1161
Dirty bit notifications are used in GL for state tracking, but not D3D.
Before, D3D would use memcmp to check a change in state for every call.
This showed up as a hot spot in the perf test runs. Hence, switching D3D
over to the dirty bit system similar to GL backend will help.
Change-Id: I482edc852f1dcc888af3038ff3a61916496a02bc
Reviewed-on: https://chromium-review.googlesource.com/305295
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tryjob-Request: Dian Xiang <dianx@google.com>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
0450dfcc
|
2015-09-17T11:25:27
|
|
Changed GetTextureFormatInfo to use static switch
BUG=angleproject:1160
The find of the map table in GetTextureFormatInfo is showing up as a
hotspot in draw call perf benchmark. Switching the map into a static
switch should make it more efficient.
Other tables that only GetTextureFormatInfo uses is also converted into
static switching instead of maps for performance. Other tables include
swizzle_format_table and load_functions_table which are both only used by
GetTextureFormatInfo to generate the TextureFormat for a given
internalFormat and d3d device caps.
The static switches for each table is generated using a python script
named gen_*.py. The data for each table is stored in JSON files. This
makes it more flexible for additions and deletions.
Change-Id: I0f40fcc2a215c85661863ea225891071cb2f2c71
Reviewed-on: https://chromium-review.googlesource.com/301770
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Tryjob-Request: Dian Xiang <dianx@google.com>
Tested-by: Dian Xiang <dianx@google.com>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
de6144f1
|
2015-10-20T10:55:44
|
|
Add support for EAC and ETC2 texture formats with D3D11.
Passes:
* dEQP-GLES3.functional.implementation_limits.num_compressed_texture_formats
* dEQP-GLES3.functional.implementation_limits.compressed_texture_formats
* dEQP-GLES3.functional.texture.*eac*
* dEQP-GLES3.functional.texture.*etc2*
BUG=angleproject:598
Change-Id: Iaec1756b540f8f44c821fd8b9ba63f115ebe6de0
Reviewed-on: https://chromium-review.googlesource.com/305520
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
fe7e9ed4
|
2015-10-13T14:36:00
|
|
Make DebugAnnotator::getStatus work on Windows 10 (WinRT)
Change-Id: I860a814490ac643eb3d7d1b770c956f0dce3e39e
Reviewed-on: https://chromium-review.googlesource.com/305309
Tested-by: Austin Kinross <aukinros@microsoft.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
db3dd083
|
2015-09-16T20:16:01
|
|
Refactoring TextureFormat and its helper functions to individual classes
BUG=angleproject:1160
This is the first step to BUG=angleproject:1160, optimizing
GetTextureFormatInfo to use static switching rather than building maps and
using the find function. Also reordered the includes in alphabetical,
src files first format
The next step is to modify the GetTextureFormatInfo not to build a map but
to use static switching. The step after that is to use a JSON generator to
generate the switching, hence refactoring TextureFormat to be in its own
class so we only need to generate what's necesary. The helper functions
such as swizzle texture format can also be done using the same approach.
Hence, they're also refactored into their own files.
Change-Id: I753f437ca0df69ee5584d254fe0d2ea8b09a857e
Reviewed-on: https://chromium-review.googlesource.com/300288
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Tested-by: Dian Xiang <dianx@google.com>
|
|
0af0b81d
|
2015-09-23T13:56:25
|
|
Add a SamplerImpl object and implement it for the GL backend.
Passes all tests in dEQP-GLES3.functional.samplers
BUG=angleproject:1162
Change-Id: I7713031a677aac2b41889a6b4297ab512e184863
Reviewed-on: https://chromium-review.googlesource.com/301582
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
006cbc5b
|
2015-09-23T16:47:54
|
|
Remove rx::ShaderSh and move the shared code to the GL.
The GL layer can interact with the translator directly, to query all
the active shader variables and call ShCompile.
BUG=angleproject:1159
Change-Id: I334a9bef28f93cf85dd8cac0fb8542ac567cc3ec
Reviewed-on: https://chromium-review.googlesource.com/299877
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
046e53e3
|
2015-09-23T16:47:52
|
|
Add an interm ShaderSh class.
This class logic will eventually move to the GL layer. Keep it
in the Renderer layer for now for refactoring purposes.
BUG=angleproject:1159
Change-Id: I91843099367f9a0293cc43ab98626bf79eb75ebf
Reviewed-on: https://chromium-review.googlesource.com/299875
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
ee48376c
|
2015-09-15T13:12:07
|
|
Update to the latest versions of the GL and EGL headers.
Add GLES 3.1 and 3.2 headers.
Remove GLES 3.0 extension headers and entry point files.
Re-land fixes double define from different style defines in libGLESv2.gypi
and other projects.
Re-land fixes missing defines in angle_util project in gn.
Change-Id: I1952413cd4390e6f5450df809f8f5867bf6f49e2
Reviewed-on: https://chromium-review.googlesource.com/299771
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
0393310f
|
2015-09-15T16:59:59
|
|
Revert "Update to the latest versions of the GL and EGL headers."
Issues with GN build.
This reverts commit 8284436798dd184afe61cbb586185cb68e503d6f.
Change-Id: I99d186019135bbbe250e95c9567854108d31c556
Reviewed-on: https://chromium-review.googlesource.com/299870
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
2f29d78b
|
2015-09-14T12:15:53
|
|
Use SDKROOT in the paths to OSX framework to match Chromium
BUG=angleproject:891
Change-Id: I458a12bd6b4be3b262d76184c51bde1f2b803c67
Reviewed-on: https://chromium-review.googlesource.com/299730
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tryjob-Request: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
e7ed96c3
|
2015-09-14T09:33:38
|
|
Implement Pbuffers for the CGL backend, using renderbuffers
The CGL pbuffers have been deprecated since OSX 10.7 but our testing
requires that an EGL implementation supports pbuffers. This commit
implement pbuffers on top of renderbuffer using only OpenGL.
BUG=angleproject:891
Change-Id: Ie8e09c9300a00800600c3a77044ba05205f805da
Reviewed-on: https://chromium-review.googlesource.com/299442
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
82844367
|
2015-09-11T13:52:12
|
|
Update to the latest versions of the GL and EGL headers.
Add GLES 3.1 and 3.2 headers.
Remove GLES 3.0 extension headers and entry point files.
Re-land fixes double define from different style defines in libGLESv2.gypi and
other projects.
Change-Id: I6204dc767bd83b7aa7e4d6e2fa338b2ce7f304d8
Reviewed-on: https://chromium-review.googlesource.com/299401
Tested-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e12150fe
|
2015-09-11T20:06:27
|
|
Revert "Update to the latest versions of the GL and EGL headers."
Linux compile failures to do gyp defines.
This reverts commit 8bbeabc1795473f7b3141219be3970fea3b95a71.
Change-Id: Icb31dd817414b3a9ab36e88cedab9c725af26b6b
Reviewed-on: https://chromium-review.googlesource.com/299173
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
8bbeabc1
|
2015-09-11T13:52:12
|
|
Update to the latest versions of the GL and EGL headers.
Add GLES 3.1 and 3.2 headers.
Remove GLES 3.0 extension headers and entry point files.
Change-Id: Icaa444efa52f3b9d1497189da92bc364545a6e3a
Reviewed-on: https://chromium-review.googlesource.com/299172
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
7aef6020
|
2015-09-11T19:04:00
|
|
Revert "Update to the latest versions of the GL and EGL headers."
Broke the Clang compile.
In file included from ../../third_party/angle/include/GLSLANG/ShaderLang.h:28:
../../third_party/angle/include/KHR/khrplatform.h:282:30: error: no newline at end of file [-Werror,-Wnewline-eof]
#endif /* __khrplatform_h_ */
Several other similar errors.
BUG=None
This reverts commit aac2035d851fc92b159dc8e01cfd2ebb86e99e4a.
Change-Id: I407e7e65bb6a46d1d941c54cdf14a14758e22d96
Reviewed-on: https://chromium-review.googlesource.com/298834
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
aac2035d
|
2015-09-11T13:52:12
|
|
Update to the latest versions of the GL and EGL headers.
Add GLES 3.1 and 3.2 headers.
Remove GLES 3.0 extension headers and entry point files.
Change-Id: I8e9df6262dc1b2536a409c5791734e4a4d63b115
Reviewed-on: https://chromium-review.googlesource.com/299341
Tryjob-Request: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
62d31cb6
|
2015-09-11T13:25:51
|
|
Re^6-land "Move Uniform and UBO info to the gl::Program layer."
This data was previously stored entirely in the Impl level. Move
as much as possible to the GL level, using a read-only view in the
Impl level. Some information in D3D-specific, and should be stored
separately in the Impl.
This patch has a lot of refactoring that splits the D3D and GL info,
and moves as much validation as possible to the GL layer, where it
is shared between the back-ends.
Re-land with fix for dEQP unused uniforms. The fix involves storing
a local copy of all uniform data in the GL layer. This will also
let us validate sampler indexes during draw calls at the GL layer.
Re-re-land with a fix for multiply defined symbols on Clang.
Re-re-re-land with a fix for boolean uniforms and Uniform{1234}f.
Re^4-land with a fix for boolean uniform arrays and UBO uniforms.
Re^5-land with a fix for a test warning on Linux.
Re^6-land with a fix for transposed matrix uniform arrays.
BUG=angleproject:1123
TEST=end2end_tests, bots, dEQP GLES3.ubo and GLES2.uniform_api
Change-Id: Ie6fcde1c16eb05d67191b629338b88302a2563f5
Reviewed-on: https://chromium-review.googlesource.com/298971
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
fb53603c
|
2015-09-11T13:19:49
|
|
Revert "Re^5-land "Move Uniform and UBO info to the gl::Program layer.""
Failing dEQP-GLES3.functional.uniform_api.random.22 and 23:
There's a bug with arrays of tranpsosed matrix uniforms.
BUG=angleproject:1123
This reverts commit 78d356929bd0441d81e2dd8a63130cd6788e2fde.
Change-Id: If39b5908af39671dfe98965e6a1ba77fd18ea8fc
Reviewed-on: https://chromium-review.googlesource.com/299320
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
362c0a79
|
2015-08-12T14:44:38
|
|
Implement EGL image classes for the D3D renderers.
BUG=angleproject:970
Change-Id: I24d393fcd75dd4ee510785e8475b093868701c77
Reviewed-on: https://chromium-review.googlesource.com/295152
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tryjob-Request: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
78d35692
|
2015-09-11T08:32:51
|
|
Re^5-land "Move Uniform and UBO info to the gl::Program layer."
This data was previously stored entirely in the Impl level. Move
as much as possible to the GL level, using a read-only view in the
Impl level. Some information in D3D-specific, and should be stored
separately in the Impl.
This patch has a lot of refactoring that splits the D3D and GL info,
and moves as much validation as possible to the GL layer, where it
is shared between the back-ends.
Re-land with fix for dEQP unused uniforms. The fix involves storing
a local copy of all uniform data in the GL layer. This will also
let us validate sampler indexes during draw calls at the GL layer.
Re-re-land with a fix for multiply defined symbols on Clang.
Re-re-re-land with a fix for boolean uniforms and Uniform{1234}f.
Re^4-land with a fix for boolean uniform arrays and UBO uniforms.
Re^5-land with a fix for a test warning on Linux.
BUG=angleproject:1123
TEST=end2end_tests, bots, dEQP GLES3.ubo and GLES2.uniform_api
Change-Id: I03afcd446d9e74573c4d4c712ed7407b91d8001c
Reviewed-on: https://chromium-review.googlesource.com/299180
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
a2eb02c9
|
2015-09-11T12:31:41
|
|
Revert "Re^4-land "Move Uniform and UBO info to the gl::Program layer.""
Test has a warning on Linux:
In file included from ../../third_party/angle/src/tests/test_utils/ANGLETest.h:13:
../../testing/gtest/include/gtest/gtest.h:1392:16: error: comparison of integers of different signs: 'const int' and 'const unsigned int' [-Werror,-Wsign-compare]
if (expected == actual) {
~~~~~~~~ ^ ~~~~~~
../../testing/gtest/include/gtest/gtest.h:1422:12: note: in instantiation of function template specialization 'testing::internal::CmpHelperEQ<int, unsigned int>' requested here
return CmpHelperEQ(expected_expression, actual_expression, expected,
^
../../third_party/angle/src/tests/gl_tests/UniformBufferTest.cpp:357:5: note: in instantiation of function template specialization 'testing::internal::EqHelper<false>::Compare<int, unsigned int>' requested here
EXPECT_EQ(GL_FLOAT, type);
^
BUG=angleproject:1123
This reverts commit 2ae1ee6161c24aab065190b1528f6195e80e34d0.
Change-Id: Ic3dabea54068377d1f2c5f722ba52966cf1a0491
Reviewed-on: https://chromium-review.googlesource.com/299170
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
2ae1ee61
|
2015-09-10T10:04:24
|
|
Re^4-land "Move Uniform and UBO info to the gl::Program layer."
This data was previously stored entirely in the Impl level. Move
as much as possible to the GL level, using a read-only view in the
Impl level. Some information in D3D-specific, and should be stored
separately in the Impl.
This patch has a lot of refactoring that splits the D3D and GL info,
and moves as much validation as possible to the GL layer, where it
is shared between the back-ends.
Re-land with fix for dEQP unused uniforms. The fix involves storing
a local copy of all uniform data in the GL layer. This will also
let us validate sampler indexes during draw calls at the GL layer.
Re-re-land with a fix for multiply defined symbols on Clang.
Re-re-re-land with a fix for boolean uniforms and Uniform{1234}f.
Re^4-land with a fix for boolean uniform arrays and UBO uniforms.
BUG=angleproject:1123
TEST=end2end_tests, bots, dEQP GLES3.ubo and GLES2.uniform_api
Change-Id: I4c9f5ed31b81380507bef7981f97086d642801ae
Reviewed-on: https://chromium-review.googlesource.com/298451
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
86f8dd7c
|
2015-08-12T12:37:48
|
|
Implement a minimal EGL -> CGL backend
This succesfully renders HelloTriangle and some samples but fails on a
lot of tests. In particular it doesn't handle resizing the window and
doesn't have depth or stencil buffers.
BUG=angleproject:891
Change-Id: I16356471b470f764acb38e8dd3589e9c0129829d
Reviewed-on: https://chromium-review.googlesource.com/290770
Tested-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
61b8dd97
|
2015-09-09T19:04:04
|
|
Revert "Re-re-re-land "Move Uniform and UBO info to the gl::Program layer.""
Seems to be failing the dEQP-GLES2.functional.uniform_api tests relating to boolean arrays.
BUG=angleproject:1123
This reverts commit 892a6a4b17b35e89898be8b4605c1ee595d3ae13.
Change-Id: Ifc4ce3ca806ef88a02ac6f693334ac37ce098a88
Reviewed-on: https://chromium-review.googlesource.com/298520
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
892a6a4b
|
2015-09-09T10:17:15
|
|
Re-re-re-land "Move Uniform and UBO info to the gl::Program layer."
This data was previously stored entirely in the Impl level. Move
as much as possible to the GL level, using a read-only view in the
Impl level. Some information in D3D-specific, and should be stored
separately in the Impl.
This patch has a lot of refactoring that splits the D3D and GL info,
and moves as much validation as possible to the GL layer, where it
is shared between the back-ends.
Re-land with fix for dEQP unused uniforms. The fix involves storing
a local copy of all uniform data in the GL layer. This will also
let us validate sampler indexes during draw calls at the GL layer.
Re-re-land with a fix for multiply defined symbols on Clang.
Re-re-re-land with a fix for boolean uniforms and Uniform{1234}f.
BUG=angleproject:1123
TEST=end2end_tests,Canary WebGL (D3D11/GL), dEQP-GLES2+3.functional.uniform_api
Change-Id: Ia40820a5ce2f34ec2d27648b1dc940a8955e9999
Reviewed-on: https://chromium-review.googlesource.com/298440
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
b654f659
|
2015-09-08T20:40:00
|
|
Revert "Re-re-land "Move Uniform and UBO info to the gl::Program layer.""
Failes the gles2_conform_test:
GLES2ConformTest.GL2Tests_glGetUniform_input_run
Possibly also WebGL failures, will investigate.
BUG=angleproject:1123
This reverts commit 10750cb936288d8dd09d49fadd592904c06c56f9.
Change-Id: I1ae59325e1831589019bc5a27ffc2091d3994a65
Reviewed-on: https://chromium-review.googlesource.com/298200
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
10750cb9
|
2015-09-04T14:23:52
|
|
Re-re-land "Move Uniform and UBO info to the gl::Program layer."
This data was previously stored entirely in the Impl level. Move
as much as possible to the GL level, using a read-only view in the
Impl level. Some information in D3D-specific, and should be stored
separately in the Impl.
This patch has a lot of refactoring that splits the D3D and GL info,
and moves as much validation as possible to the GL layer, where it
is shared between the back-ends.
Re-land with fix for dEQP unused uniforms. The fix involves storing
a local copy of all uniform data in the GL layer. This will also
let us validate sampler indexes during draw calls at the GL layer.
Re-re-land with a fix for multiply defined symbols on Clang.
BUG=angleproject:1123
TEST=end2end_tests,Canary WebGL (D3D11/GL), dEQP-GLES2+3.functional.uniform_api
Change-Id: I7b55e4964fbe64e0106c37928c894146937a2476
Reviewed-on: https://chromium-review.googlesource.com/298110
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
2119dd05
|
2015-09-08T19:30:37
|
|
Revert "Re-land "Move Uniform and UBO info to the gl::Program layer.""
Problems with multiply defined symbols in the Linux builder.
BUG=angleproject:1123
This reverts commit ff1abe63c3d8af28e9755c8d0c95b2aeca27a0d9.
Change-Id: Ifcb2ad885d0841c128ffd69afb6594e37eba17fc
Reviewed-on: https://chromium-review.googlesource.com/298100
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
ff1abe63
|
2015-09-04T14:23:52
|
|
Re-land "Move Uniform and UBO info to the gl::Program layer."
This data was previously stored entirely in the Impl level. Move
as much as possible to the GL level, using a read-only view in the
Impl level. Some information in D3D-specific, and should be stored
separately in the Impl.
This patch has a lot of refactoring that splits the D3D and GL info,
and moves as much validation as possible to the GL layer, where it
is shared between the back-ends.
Re-land with fix for dEQP unused uniforms. The fix involves storing
a local copy of all uniform data in the GL layer. This will also
let us validate sampler indexes during draw calls at the GL layer.
BUG=angleproject:1123
TEST=end2end_tests,Canary WebGL (D3D11/GL), dEQP-GLES2+3.functional.uniform_api
Change-Id: I9074c057c2c67d4d3221ec11c5556a26e07c7ceb
Reviewed-on: https://chromium-review.googlesource.com/297070
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
48705cad
|
2015-09-02T20:40:51
|
|
Revert "Move Uniform and UBO info to the gl::Program layer."
Seems to be failing dEQP-GLES2.functional.uniform_api.value.unused_uniforms.* on Linux (possibly Win as well)
BUG=angleproject:1123
This reverts commit 54f882c9167b1aff5b3700187a2048bd886e8b17.
Change-Id: I7dbbf40aae8dd9ebd35895df0dd338a3b6b9cc96
Reviewed-on: https://chromium-review.googlesource.com/297051
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
54f882c9
|
2015-09-02T14:33:48
|
|
Move Uniform and UBO info to the gl::Program layer.
This data was previously stored entirely in the Impl level. Move
as much as possible to the GL level, using a read-only view in the
Impl level. Some information in D3D-specific, and should be stored
separately in the Impl.
This patch has a lot of refactoring that splits the D3D and GL info,
and moves as much validation as possible to the GL layer, where it
is shared between the back-ends.
BUG=angleproject:1123
TEST=end2end_tests,Canary WebGL (D3D11/GL), dEQP-GLES2+3.functional.uniform_api
Change-Id: I8b7e1380a61590a46ccee646a47ffe9bda287f6b
Reviewed-on: https://chromium-review.googlesource.com/295124
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
53b8aec0
|
2015-08-24T10:33:25
|
|
Work around deprecated LUMA formats in the core profile.
Use R and RG textures with swizzle states to emulate them. A manual blit is
required when calling CopyTex[Sub]Image from a RGB[A] framebuffer to an
emulated L[A] texture so that the alpha channel ends up in the correct channel
of the destination texture.
Fixes the following tests when using the core profile:
* conformance/extensions/oes-texture-float.html
* conformance/extensions/oes-texture-half-float.html
* conformance/textures/misc/tex-sub-image-2d.html
* conformance/textures/misc/texture-formats-test.html
* conformance/textures/misc/texture-npot.html
BUG=angleproject:1113
Change-Id: If5540e66d9017596bd83d95ec3ede043cbcfe0d2
Reviewed-on: https://chromium-review.googlesource.com/293905
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
66d6313e
|
2015-08-13T10:22:42
|
|
Add target platform version for generating Windows 10 WinRT projects
BUG=angleproject:1122
Change-Id: Ia6a79ef1b4e94e15830981f0cee6269c9f0c71ca
Reviewed-on: https://chromium-review.googlesource.com/293401
Tested-by: Cooper Partin <coopp@microsoft.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
14ecb13f
|
2015-08-10T11:06:04
|
|
libGLESv2.gypi move the link to X11 to libANGLE (vs. libGLESv2)
This fixes a bot compilation failure that started happening after
unittest started using Display stuff that use X11. Because
angle_unittests was linking against libANGLE and not libGLESv2, it
didn't get linked to X11, which produced a link error.
BUG=
Change-Id: I8f1f0dbcb13bb7c9897f235b72c4d4896a7b8a6c
Reviewed-on: https://chromium-review.googlesource.com/292380
Tested-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
a840617a
|
2015-07-21T16:53:39
|
|
Implement the egl and gl layers of EGL Image.
Add end2end tests and unittests.
BUG=angleproject:970
Change-Id: Ie8306971730a793f08dfd09ead1bfd6ff3e4623d
Reviewed-on: https://chromium-review.googlesource.com/291260
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
4274f7d2
|
2015-08-05T23:07:38
|
|
Revert "Implement the egl and gl layers of EGL Image."
This reverts commit 22a4f38c2ca9ca430b5f976fc7fc816d88918eba.
Change-Id: I07acbfe28d11675236de2ea7f6b050c25f80579a
Reviewed-on: https://chromium-review.googlesource.com/290960
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
22a4f38c
|
2015-07-21T16:53:39
|
|
Implement the egl and gl layers of EGL Image.
Add end2end tests and unittests.
BUG=angleproject:970
Change-Id: I13fc501b24c3f11bfedc810c1ff80fcf1318877c
Reviewed-on: https://chromium-review.googlesource.com/287343
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
6b2a0b0c
|
2015-08-03T14:15:08
|
|
Reland of "Add Iterable bitset class."
This helper allows us to quickly iterate state bits from the
Impl/Renderer layers.
Re-land with no C++11 usage.
BUG=angleproject:1040
TEST=angle_unittests (Mac/Win/Linux)
Change-Id: I3b6d5beb2bcff7fa3d45c9220d7c026c64c45d2e
Reviewed-on: https://chromium-review.googlesource.com/290153
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|