Cache bound FBO and VAO objects themselves in State

BUG=angle:685

Change-Id: I19ae6752d1a7490122dd9ca076efb08564e1901d
Reviewed-on: https://chromium-review.googlesource.com/205835
Tested-by: Shannon Woods <shannonwoods@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Removes sub-entry-point Framebuffer validations

BUG=angle:685

Change-Id: I2d630396a5971972f858cca9c39ceb6509492aa4
Reviewed-on: https://chromium-review.googlesource.com/205836
Tested-by: Shannon Woods <shannonwoods@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Refactors State to be a fully-qualified class

BUG=angle:685

Change-Id: I36cff2da985a12c7180fe2850ccd471f4cebbaad
Reviewed-on: https://chromium-review.googlesource.com/206634
Tested-by: Shannon Woods <shannonwoods@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Refactored Texture2D, separated out D3D logic

BUG=angle:688
Change-Id: I93c2ff0b125278234d61324844b79cc58135d4d8
Reviewed-on: https://chromium-review.googlesource.com/207675
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Brandon Jones <bajones@chromium.org>
Remove sh::InterfaceBlock::registerIndex.

This value is HLSL-only and we can use the new query API to hide it
from GLSL programs.

BUG=angle:466

Change-Id: I75dc2fbbf1b29b1f6d561568174a15dea1f5b130
Reviewed-on: https://chromium-review.googlesource.com/207250
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Remove the sh::InterfaceBlock::dataSize member.

We can replace this by doing the same calculation in the HLSL-side
code.

BUG=angle:466

Change-Id: Iecae4a92e9037e851419ce73e6267094ee8071a2
Reviewed-on: https://chromium-review.googlesource.com/207251
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Add a compiler option to rewrite vec/mat constructors

If one of the parameters is a vec/mat, expand it into scalars.

This is to work around Linux NVIDIA/AMD and Mac NVIDIA driver bugs.

BUG=angle:695
TEST=webgl conformance test

Change-Id: I35e1e25167d99f873dcb03bfb57a30e84b1aeed5
Reviewed-on: https://chromium-review.googlesource.com/207479
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Zhenyao Mo <zmo@chromium.org>
Refactor ProgramBinary uniform linking code.

This prepares us for moving most of the register assignment to the
ProgramBinary class itself, and cleans up the various methods.

BUG=angle:466

Change-Id: Ie2965ed41ac50617584fd7a6d7b0ec2784e7dfaf
Reviewed-on: https://chromium-review.googlesource.com/207252
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Nicolas Capens <capn@chromium.org>
Do not create dummy variables when linking uniforms.

This cleanup prepares us for removing the uniform register info
from the shader translator types.

BUG=angle:466

Change-Id: I86f47970b793135f410a5ef698fc96d44219ee96
Reviewed-on: https://chromium-review.googlesource.com/207253
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Fix "error: extra qualification 'rx::ImageD3D::' on member 'makeImageD3D'"

As reported by GCC 4.8.1/MinGW.

Change-Id: If62d234074a0a9180f1f3c3619dbb2dd8047d0f3
Reviewed-on: https://chromium-review.googlesource.com/208670
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Andrew Knight <andrew.knight@digia.com>
Fix test class names to reflect their class-ness.

Style guide dictates a camel case scheme for classes. Since the tests
are actually classes, update their names to reflect that.

Change-Id: Ib7422b6d8c5de8414765439704fc103eae8b2d63
Reviewed-on: https://chromium-review.googlesource.com/208680
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Fix style violations.

BUG=angle:650
TEST=no behavior change

Change-Id: I3096615a181b1ec2c18ce60566c3d6249975b84e
Reviewed-on: https://chromium-review.googlesource.com/208569
Tested-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Explicitly list files for the build.

Removes shelling out to enumerate_files for the main targets (tests
and examples are currently unchanged) in favor of explicitly listing
out the files in the build.

There are a number of reasons. My immediate reason is that doing this
allows the file lists to be shared with the GN build so the GYP and GN
builds of angle should mostly automatically stay in sync now. In
addition, I don't think we should be enumerating files in GYP. No
other Chrome sub-projects do this, and Chrome engineers expect files
to be listed in .gyp* files. It's also slower to shell out a bunch of
times to get the file lists (this matters more in the GN build which
runs very quickly).

Updates the GN build to share these file lists. This unbreaks the
Windows GN Angle build.

BUG=angle:698

Change-Id: Iab8829628aeb7232bb64f4c247c35c6485bba3ee
Reviewed-on: https://chromium-review.googlesource.com/208461
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Brett Wilson <brettw@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Refresh generated projects.

Change-Id: I46845edcd6e8334ca56b411ecb8677dfaebf8a07
Reviewed-on: https://chromium-review.googlesource.com/208861
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Merge third_party/angle from https://chromium.googlesource.com/angle/angle.git at 11c26b9c1182c9872693bab0b1fbf0fac148ab73

This commit was generated by merge_from_chromium.py.

Change-Id: I8e7b48518b7fc49aacbd9b6045be0e1c8bef340f
Update makefiles after merge of Chromium at 284390

This commit was generated by merge_from_chromium.py.

Change-Id: Ib89d07c449c5efa693351f9adef1aa7db9525a3e
Refactored TextureCubeMap, separated out D3D logic

BUG=angle:688
Change-Id: I2300aaad4fab25df484e0bc3613ac3b176addc93
Reviewed-on: https://chromium-review.googlesource.com/208191
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Brandon Jones <bajones@chromium.org>
Refactored Texture3D, separated out D3D logic

BUG=angle:688
Change-Id: I6cda73c2e4c8a026b8c5222bc40cea93ad4e0ba3
Reviewed-on: https://chromium-review.googlesource.com/208102
Tested-by: Brandon Jones <bajones@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Add support for ANGLE_platform_angle.

BUG=angle:490

Change-Id: If3c897a9ae3d27b96e4b9bf9475a9ac23a1090ba
Reviewed-on: https://chromium-review.googlesource.com/185396
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
Update the samples and tests to use eglGetPlatformDisplayEXT.

BUG=angle:490

Change-Id: I5a685e42089377b5c600cd1f7ca8bd9a6654b3ba
Reviewed-on: https://chromium-review.googlesource.com/204939
Reviewed-by: Brandon Jones <bajones@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>