Log

Author Commit Date CI Message
Olli Etuaho 21203702 2014-11-13T16:16:21 Fix precision tracking of constructor return values Precision should be set for constructor return values if they are of a built-in type. Structs should not be precision qualified. BUG=angle:787 Change-Id: Ie5efd5be25a788ff6f01c5b989254572c00231eb Reviewed-on: https://chromium-review.googlesource.com/229560 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Jamie Madill 30d6c255 2014-11-13T10:03:33 Remove redundant rx:: scoping prefixes. In many places we can get rid of this scoping operator. BUG=angle:789 Change-Id: If6c40c435a97473d2fd9d6f1fb5a2c709393eb00 Reviewed-on: https://chromium-review.googlesource.com/225566 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill b38f2e5d 2014-11-13T10:03:31 Remove the unused Renderer client version methods. Previous patches enable us to get rid of this workaround. We should in subsequent patches also try to clean up code that uses the internal Renderer-only version of the context caps. BUG=angle:789 Change-Id: Ic054090303cdc3f7ee8e45e4577c157559955472 Reviewed-on: https://chromium-review.googlesource.com/227714 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 245d3602 2014-11-13T10:03:30 Pass GL context data into shader creation. This allows us to remove the hack where we store the current GL client version in the Renderer. BUG=angle:789 Change-Id: I6526f11eaa922325a9a41df0df48b2152e022e26 Reviewed-on: https://chromium-review.googlesource.com/227713 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Corentin Wallez 80bacde5 2014-11-10T12:07:37 Use the [[flatten]] attribute only when a loop is present. Flattening branch-heavy shaders that contained no loops caused regressions. As a temporary workaround we only flatten ifs when there exists a loop. BUG=395048 Change-Id: I95c40f0249643b98c62304a0f2a4563561d1fbbc Reviewed-on: https://chromium-review.googlesource.com/228722 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang 560eef16 2014-11-11T15:06:39 Fix ProgramBinary being disabled when it should be enabled. Change-Id: I6a21bca32ae5bf1e0e638c0cf46102bd964cd066 Reviewed-on: https://chromium-review.googlesource.com/229064 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang ab75a056 2014-10-15T12:56:37 Refactor Framebuffer attachment application. Instead of passing texture and renderbufer IDs which requires a call to gl::getNonLostContext to resolve the objects, pass the Texture and Renderbuffer objects directly. BUG=angleproject:733 Change-Id: Ia500a781643e43a17c8e9cea9f95847a7ff7b25d Reviewed-on: https://chromium-review.googlesource.com/228280 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill de8892b4 2014-11-11T13:00:22 Pass GL caps and version to compiler. This allows us to get rid of some of the reliance on storing the current context client version in the Renderer. A subsequent patch will allow us to remove the client version ugly hack. BUG=angle:789 Change-Id: I139e0f66e1d39e5cd41a484c841a7101b1f29540 Reviewed-on: https://chromium-review.googlesource.com/227712 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 87f6da1f 2014-11-11T13:00:20 Move the Context ReadPixels logic into RendererD3D. BUG=angle:789 Change-Id: I0a678f8fe31a3e7ddd9a675a0e3cb0342299b0e3 Reviewed-on: https://chromium-review.googlesource.com/226064 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill a93bef2e 2014-11-11T13:00:19 Move BlitFramebuffer logic into RendererD3D. BUG=angle:789 Change-Id: Ib3f830ba2f915a5fa4fa552dccc13c24575aa843 Reviewed-on: https://chromium-review.googlesource.com/226063 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 1bd642c5 2014-11-04T17:05:00 Split the RenderTarget classes based on if they are backing a SwapChain. bug=angle:824 Change-Id: I89e475d4065102dbaa7fa1f1bfd02c7207def75c Reviewed-on: https://chromium-review.googlesource.com/227600 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang df8fafef 2014-11-11T11:11:33 Fix compilation failure with Visual Studio 14. Change-Id: If009cec928318c90a2f6d445ea8b4b06c4e45209 Reviewed-on: https://chromium-review.googlesource.com/228919 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 23419d56 2014-11-07T15:21:14 Pass 0 for the sample count to RenderTarget when there is no multisampling. BUG=angle:520 Change-Id: Idc9a19ece620d107b87110dac8e1ef7a24f565cc Reviewed-on: https://chromium-review.googlesource.com/228551 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill a153d4b0 2014-11-06T15:27:28 Move Clear logic into RendererD3D. BUG=angle:789 Change-Id: I56d4398e4c49fe980f649327b105cdba9d944a00 Reviewed-on: https://chromium-review.googlesource.com/226062 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Jamie Madill d9e58303 2014-11-06T15:27:26 Move Context draw call logic into RendererD3D. Also move a lot of supporting code. BUG=angle:789 Change-Id: I098bf7d072ece1f414605783c32ec5354ba63e19 Reviewed-on: https://chromium-review.googlesource.com/226061 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Shannon Woods 4de4fd6e 2014-11-07T16:22:02 Fixes a bug in program ID validation for GetUniform* calls. BUG=angle:571 Change-Id: I7080f0f7ea0def29d1b67c9d954ee5d9d41fb348 Reviewed-on: https://chromium-review.googlesource.com/228560 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill 93e13fbf 2014-11-06T15:27:25 MANGLE the ANGLE Renderer class. BUG=angle:789 Change-Id: Ib6d9d47a9353ea3c1a931b793baba85a2698b659 Reviewed-on: https://chromium-review.googlesource.com/225472 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill e6382c3b 2014-11-07T15:05:26 Fix zero texture application. Patch https://chromium-review.googlesource.com/#/c/227711/ would allow NULL Textures sometimes from State::getSamplerTexture. Fix this by always setting the zero "Default" textures instead of NULL in the State. This was breaking the ES2-CTS test 'framebuffer_objects' on Windows. BUG=angle:826 Change-Id: Ie08a89cff0555f21c769759e0c0ed73456a2f91c Reviewed-on: https://chromium-review.googlesource.com/228275 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang b28126ef 2014-10-03T15:51:38 Remove the gl::error function. BUG=angle:520 Change-Id: Iefd4345aa347041143d5452cc2fcf48c071d494b Reviewed-on: https://chromium-review.googlesource.com/222839 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang bafefdf3 2014-10-10T14:26:35 Add error handling to RenderTarget creation. * RenderTarget9/11 don't create any resources themselves anymore. * Pass the real internal format to RenderTarget creation so that it is not lost by converting to D3D formats and back. BUG=angle:520 Change-Id: If420970d42f0bf6ce392d64f9cb7efa4df0b8f8e Reviewed-on: https://chromium-review.googlesource.com/222838 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 468d7a1e 2014-11-07T11:19:11 Regenerate projects. Disabled warnings were reordered. Change-Id: I29772c1522e7428c3e66607fda82d14d2b182702 Reviewed-on: https://chromium-review.googlesource.com/228273 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 981afd7f 2014-11-05T16:30:36 Fix possible crash when the info log length is zero. BUG=angle:822 Change-Id: I01cb590cc9c1ba05f4d63dd088eef7e176a09d2f Reviewed-on: https://chromium-review.googlesource.com/227264 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill ad65a13c 2014-11-06T15:27:23 Add RendererD3D as a layer between GL and Renderer9/11. BUG=angle:789 Change-Id: I6107e6cbdeb5e3466f96a4bdf98181b8e5a25467 Reviewed-on: https://chromium-review.googlesource.com/225471 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 48faf80a 2014-11-06T15:27:22 Use Context caps in Framebuffer completeness check. This frees the Framebuffer from any dependency on the Renderer. BUG=angle:789 Change-Id: I0e9ae0edf93674e32ae4f6538a934cddbdc804d5 Reviewed-on: https://chromium-review.googlesource.com/225470 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 1e9ae079 2014-11-06T15:27:21 Add a base for GL essential data. The data holds the GL state, caps, extensions, texture caps, and current client version. BUG=angle:789 Change-Id: Icd15d806e14490f39041dea663ab2461a6a76090 Reviewed-on: https://chromium-review.googlesource.com/226060 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Jamie Madill dedd7b95 2014-11-05T16:30:36 Merge zero textures into the state texture map. We can treat these textures the same as the rest, saving a bit of code and complexity cost. BUG=angle:789 Change-Id: I14b426c817cbe3c5bb737410378b6a80e274689b Reviewed-on: https://chromium-review.googlesource.com/227711 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Jamie Madill d46275f9 2014-11-06T13:54:53 Fix platform if defined build error on Linux. Using #if instead of #if defined() was giving an error when ANGLE_PLATFORM_WINDOWS was undefined. Instead of defining it as zero for all platforms, use #if defined() to ensure our legacy usage of #ifdef doesn't get messed up by #define <value> 0. BUG=angle:825 Change-Id: Ibad51c45c4337a30feb68561b6cf54ed5dc05d9d Reviewed-on: https://chromium-review.googlesource.com/228270 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Zhenyao Mo 0bdc0f3e 2014-11-04T15:26:10 Switch to new APIs in samples/translator/translator.cpp Also, fix a few issuse for ninja build "all" to finish. BUG=angle:775 TEST=translator.cc compiles OK Change-Id: I6507e9143882a628a7737dd139efb6d8d358b0db Reviewed-on: https://chromium-review.googlesource.com/227490 Tested-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
John Abd-El-Malek 657cd684 2014-11-05T14:04:19 Fixes for Angle to build with Windows GN. Change-Id: Id38c4b11dba31b2779efa7beade481cd50f3d935 Reviewed-on: https://chromium-review.googlesource.com/227692 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill 9abdc2d8 2014-11-05T16:13:22 Fix fuzzy color check in ClearTest. This test was failing on some systems because of overly stringent color expectations. BUG=angle:809 Change-Id: I817de315ff6de46fb87f8ed1c21e3bb62c133176 Reviewed-on: https://chromium-review.googlesource.com/225262 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
John Abd-El-Malek 330f0ade 2014-11-05T13:14:01 Fixes for Angle to build with Windows GN. Change-Id: I5af7a1305e5a190de5367ad940186edd6baee5bc Reviewed-on: https://chromium-review.googlesource.com/227665 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 0af0b38e 2014-11-05T14:09:18 Use an ES3 shader spec for ES3 contexts. BUG=angle:823 Change-Id: I377b4483b3835660e7fd45d923bf7f560cf2e5f6 Reviewed-on: https://chromium-review.googlesource.com/227593 Tested-by: Geoff Lang <geofflang@chromium.org> Tested-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jacek Caban a22cd47e 2014-11-05T11:20:45 Fixed a typo in generatePointSpriteHLSL. Change-Id: I104bbca6442835ab5e8e78580c6cbbb58d32a9b2 Reviewed-on: https://chromium-review.googlesource.com/227570 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Olli Etuaho 76acee83 2014-11-04T13:44:03 Name mangle function prototypes and print them in interm output This patch changes function prototype handling so that they get assigned the same kind of a mangled name as function definitions and function calls. This name is now also printed in interm output so that function prototypes can be accurately identified in the interm output. BUG=angle:821 TEST=compiler_tests Change-Id: Ia150b8ac5b816b8096c964767cd8666bdee28539 Reviewed-on: https://chromium-review.googlesource.com/227390 Reviewed-by: Nicolas Capens <capn@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Shannon Woods e2632d24 2014-10-17T13:08:51 Changes gl::RenderbufferStorage to rx::RenderbufferImpl BUG=angle:782 Also eliminates Colorbuffer/DepthStencilBuffer and related friends and adds the RenderbufferD3D implementation of RenderbufferImpl. This version fixes problems with the prior CL's handling of render target serial issuance. Change-Id: I7ddfbec1097723d7ea6ce93a9c034f941349108a Reviewed-on: https://chromium-review.googlesource.com/227195 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang bd7fd7f9 2014-11-04T10:06:55 Fix an incorrect iteration over EGL attributes. BUG=angle:490 Change-Id: If7a86ee0a5226f2b45e26bbadf4a84f8f605d1c2 Reviewed-on: https://chromium-review.googlesource.com/227231 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Cooper Partin 980eb8f3 2014-10-22T07:42:59 Added ISwapChainPanel support Change-Id: I26faa32804ee47cb6ad8458c90abeb93a01dfbdf Reviewed-on: https://chromium-review.googlesource.com/224991 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 45b474d8 2014-11-03T17:07:58 Regenerate projects. BUG=angle:820 Change-Id: Ifb392fbfc7399ee504fc20abbe63218668a0574b Reviewed-on: https://chromium-review.googlesource.com/227165 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 0d3683c4 2014-10-23T11:08:16 Update ANGLE_platform_angle to allow requesting of Renderer versions. Added enums to allow users to request major and minor versions of the underlying API and if a WARP device is used. BUG=angle:490 Change-Id: I0bfb2ac8d327da28a47cc8e6346300e47ab9538c Reviewed-on: https://chromium-review.googlesource.com/225081 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 6b0cf996 2014-10-06T10:28:07 Added an egl::Error class and updated libEGL to use it. BUG=angle:520 Change-Id: I792c8ddd8e8b76184f566294196d089bc9d1902a Reviewed-on: https://chromium-review.googlesource.com/223270 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Zhenyao Mo 4de44cb6 2014-10-29T18:03:46 Change ShaderLang APIs from c style to c++ style. BUG=angle:816 TEST=gpu_unittests,angle_unittests,webgl_conformance Change-Id: I0b46c11f6055a82511bb946a6dc491360835526e Reviewed-on: https://chromium-review.googlesource.com/226410 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Zhenyao Mo <zmo@chromium.org>
Shannon Woods f108df24 2014-10-30T18:53:29 Revert "Changes gl::RenderbufferStorage to rx::RenderbufferImpl" This reverts commit 9fc51d90176dcf4273cd6689968e1ca5d1c9fe16. Change-Id: I4134ebe5ef6b8f509f4cc5cc22a2d526ec43ef6d Reviewed-on: https://chromium-review.googlesource.com/226374 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Kenneth Russell 2111670b 2014-10-30T14:39:13 Fixed comments around choice of C runtime. BUG=angle:733 Change-Id: Ia1add30d54c3a7d08effca6660f98c99cb3981c2 Reviewed-on: https://chromium-review.googlesource.com/226377 Tested-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Zhenyao Mo 9ad55845 2014-10-30T11:38:55 Fix angle_unittests failures. BUG=angle:815 TEST=angle_unittests Change-Id: I4d59f227b7c72f4f456d0a60d8507d097ef05dec Reviewed-on: https://chromium-review.googlesource.com/226463 Tested-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Brandon Jones 091540d3 2014-10-29T11:32:04 Changed feature macros to reduce accidental enabling/disabling Change-Id: Ieb1a0c55f412f2a1bb858522b2dfaa7a60aa7ddb Reviewed-on: https://chromium-review.googlesource.com/226304 Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org>
Zhenyao Mo db9b40b0 2014-10-29T15:00:04 Reject shaders of a version that the compiler doesn't support. For example, WebGL 1.0 compiler should not compile WebGL 2.0 shaders. BUG=angle: TEST=815 Change-Id: Iaec66fa5127426778aff6e3891e2c214048d7457 Reviewed-on: https://chromium-review.googlesource.com/226380 Tested-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shannon Woods 9fc51d90 2014-10-17T13:08:51 Changes gl::RenderbufferStorage to rx::RenderbufferImpl BUG=angle:782 Also eliminates Colorbuffer/DepthStencilBuffer and related friends and adds the RenderbufferD3D implementation of RenderbufferImpl. Change-Id: Ibe72c9589b3c238b952744e7cfd70d97ec898eb9 Reviewed-on: https://chromium-review.googlesource.com/222925 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang ede18442 2014-09-29T14:05:22 Updated Image9 to use gl::Errors for staging texture manipulation. BUG=angle:520 Change-Id: I527a2bcadbf1abb05bd461d35ddbd7e28d487639 Reviewed-on: https://chromium-review.googlesource.com/221396 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Austin Kinross 922a9fb3 2014-10-21T14:26:33 Use D3D11 Debug Annotations when D3D9 is unavailable Change-Id: I37ac5fe7f0b2fe5e71bd7f0afca55e9894f3463c Reviewed-on: https://chromium-review.googlesource.com/224512 Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Zhenyao Mo 409078f1 2014-10-28T13:23:18 Remove ShGetVariableInfo() and related code. BUG=angle:775 TEST=chromium builds and runs fine Change-Id: Ic62d3a3c9a8f034880b77a96f7f1c6be2691985e Reviewed-on: https://chromium-review.googlesource.com/226004 Tested-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Brandon Jones 1a8a7e3b 2014-10-01T12:49:30 Moving Uniform handling into ProgramD3D. Moves the last references to HLSLBlockEncoder out of ProgramBinary. Only one reference to ShaderD3D remains. BUG=angle:731 Change-Id: Ie23e24e09fbed4c8c5fab3bab814b7092a383c7f Reviewed-on: https://chromium-review.googlesource.com/220940 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org>
Geoff Lang 8becd0cb 2014-09-26T14:21:54 Updated Image11 to use gl::Errors for staging texture manipulation. BUG=angle:520 Change-Id: I5792b139ddd69c2cabc3b901a7067438c1ee363b Reviewed-on: https://chromium-review.googlesource.com/221395 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 06ecf3dd 2014-09-23T16:39:50 Updated mipmap generation to return Error objects. BUG=angle:520 Change-Id: Ic4e57148d031d6c452b3054efad98f6e730c7691 Reviewed-on: https://chromium-review.googlesource.com/221394 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Zhenyao Mo 2a517272 2014-10-27T16:09:57 Fix an issue with separate invariant statement. Basically we end up with an extra "invariant xxx ;;" on GL backend. This is not handled correctly by Mac drivers and also out shader translator. BUG=angle:776 TEST=webgl conformance on mac/windows Change-Id: If32867efba64ab0d3e6e690155790b90d736439f Reviewed-on: https://chromium-review.googlesource.com/225780 Tested-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Austin Kinross fe14d455 2014-10-20T14:36:18 Add ANGLE_ENABLE_DEBUG_TRACE_TO_DEBUGGER, to output trace to debugger window Change-Id: I7be71c41b0ec3a77f508c90c2de3331c9522a11b Reviewed-on: https://chromium-review.googlesource.com/223592 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Austin Kinross f0360c60 2014-10-20T14:26:13 Rename ANGLE_ENABLE_TRACE -> ANGLE_ENABLE_DEBUG_TRACE Change-Id: Ib70c456c8d01161e370b9165ff4daa2f0f90c840 Reviewed-on: https://chromium-review.googlesource.com/223591 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Austin Kinross 570e83cf 2014-10-20T14:13:58 Rename ANGLE_ENABLE_PERF -> ANGLE_ENABLE_DEBUG_ANNOTATIONS Change-Id: I701cd5ee749797428171e9c58a46fce626b9a969 Reviewed-on: https://chromium-review.googlesource.com/223590 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Cooper Partin 73b8de78 2014-10-28T08:34:30 Fixed D3DDisassemble function dynamic GetProcAddress failure on WinRT Change-Id: I32a345803c9183e0b9b77d529027711f8c8e1ad8 Reviewed-on: https://chromium-review.googlesource.com/225847 Tested-by: Cooper Partin <coopp@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 84bcabe3 2014-10-28T10:52:24 Fix build failure on WinRT due to missing Sleep definition. Change-Id: I9032484dde6e690fcd175d6d76192724e5bc0357 Reviewed-on: https://chromium-review.googlesource.com/225893 Reviewed-by: Cooper Partin <coopp@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang fc143915 2014-10-27T11:16:31 Only use the Windows 8.1 SDK for WinRT configurations. BUG=angle:772 BUG=395405 Change-Id: If26a0ec34e6bfd0e22d20803a0bb3ac2000a8e34 Reviewed-on: https://chromium-review.googlesource.com/225531 Reviewed-by: Cooper Partin <coopp@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Olli Etuaho d2a67b96 2014-10-21T16:42:57 Fix precision tracking for built-in function return values Previously, the type of the return value of all function calls was set to the type of the return value in the function signature. This did not carry precision information. This patch changes this so that the return value precision is set correctly for built-in functions. For single-argument math functions, it mostly depends on that addUnaryMath sets the type of the return value to be the same as the type of the operand. The type is replaced but the precision information from the operand type is retained when needed. For multi-argument math functions, precision is determined based on all the nodes in the aggregate after the type has been set. For texture functions, the precision is set according the sampler type as per ESSL 1.0 spec. For textureSize, the precision is always highp as per ESSL 3.0 spec. BUG=angle:787 Change-Id: I48448e3ffe38656b91177dee9b60dd07a03cd095 Reviewed-on: https://chromium-review.googlesource.com/224951 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Geoff Lang e2fecdd3 2014-10-22T11:58:37 Fixed some configuration data not being added to 64-bit builds. The Debug and Release configurations are 32-bit only. The Debug_Base and Release_Base configurations should be used in these cases. In the future we should not rely on defines being placed in these configurations because if ANGLE is included in another project, they may not have the same configuration names and the defines will not be added. To combat this, always make sure that there are appropriate #ifdef's in the headers and don't add defines that would result in poor performance if they do not exist. BUG=angle:772 Change-Id: I2b26ffb934f8b3d5e6e556a1e87c1c5ee209c430 Reviewed-on: https://chromium-review.googlesource.com/225051 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 9ae396bb 2014-10-21T17:46:30 Remove getData from BufferImpl. We only ever call this method inside the D3D Renderer, so we can downcast to BufferD3D and call getData on the D3D-specific type. Leave a FIXME for handling index range validation, which will need a CPU-side data cache. Change-Id: Iaf71bc8055869a8561777b6b36f67e376a1d0b81 Reviewed-on: https://chromium-review.googlesource.com/224654 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill c751d1e5 2014-10-21T17:46:29 Support compressed textures with unpack buffers. BUG=angle:792 Change-Id: I32f32422232bd4cb04c8a70005cb51482224bf3e Reviewed-on: https://chromium-review.googlesource.com/224655 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 55d611e7 2014-10-24T16:28:14 Fix ASSERT failure in XFB test. With the invariant handling changes, we're also exporting gl_Position and other builtin variables from the translator where we were not previously. This was causing an assert in the XFB code, where we would inadvertently assign a register to gl_Position, and trip up logic further in the varying handling logic. BUG=angle:808 Change-Id: I674902da75c572e969f9516033a85c7a7170d7d1 Reviewed-on: https://chromium-review.googlesource.com/225261 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 39eab03f 2014-10-22T16:57:15 Add robust D3D11 SRV state tracking. This will ensure our currently set pixel and vertex SRVs match with the underlying D3D state, and reduce the need for resetting them as often. BUG=angle:756 BUG=417424 Change-Id: I42e9e25182b279871ac4cdf8da5e2ab62c8cf71f Reviewed-on: https://chromium-review.googlesource.com/225052 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 2f1cd4a3 2014-09-23T10:40:29 Defer the creation of textures in TextureStorage9 and use Error objects. BUG=angle:520 Change-Id: I5db70189d95babef14d48548054af4c7ff2bfc47 Reviewed-on: https://chromium-review.googlesource.com/219334 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 553c6bee 2014-09-22T15:21:39 Defer the creation of textures in TextureStorage11. BUG=angle:520 Change-Id: If1c1f7519a84900f594701b6298b64ebf8798073 Reviewed-on: https://chromium-review.googlesource.com/219333 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 5ca41055 2014-10-23T13:02:55 Remove build_angle.gyp. This file is a duplicate of angle.gyp, and we can remove it now that Chrome and Blink are finished with it. BUG=angle:460 Change-Id: Ida68c8343921ebe9a37b5bcd982e114c91febc3d Reviewed-on: https://chromium-review.googlesource.com/225053 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tibor den Ouden 2221f47b 2014-10-22T15:07:05 Compiler flags and macros added to shader debug report The list of D3D compiler flags and macros used if compilation of a shader succeeds is added to the shader debug output. BUG=angle:751 Change-Id: Ie84a586010787fe8d9c0dedfe9208f881058a588 Reviewed-on: https://chromium-review.googlesource.com/224970 Tested-by: Tibor Ouden, den <tibordenouden@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 7fa245c0 2014-10-21T13:41:08 Use a new class name for each window. If a previous window was not cleaned up properly due to a crash in a test, the subsequent windows can fail to be created because the class is not destroyed. Work around this by always creating a unique class before creating the window. Change-Id: Ied6b2818ef03fa12b07111d8204c3c1a6a5bd5ac Reviewed-on: https://chromium-review.googlesource.com/225080 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Zhenyao Mo b5e17750 2014-10-22T10:57:10 Get rid of use of "static const std::string". BUG=angle:807 TEST=angle_unittests Change-Id: Ifa4d713deeb25d52a7aafc362a7e4630024fd511 Reviewed-on: https://chromium-review.googlesource.com/225004 Tested-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 30bc2ecd 2014-10-22T12:06:32 Regenerate public projects. Change-Id: Ifcff7cba0c16775fdc99812539416ad07d88bf5a Reviewed-on: https://chromium-review.googlesource.com/225050 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Zhenyao Mo 0783efd8 2014-10-21T15:51:59 Fix initialization sequence translation bug. BUG=angle:805 TEST=https://www.khronos.org/registry/webgl/sdk/tests/conformance/glsl/misc/expression-list-in-declarator-initializer.html Change-Id: I94fbdd0824dbe73034f8bf022aa53627582ad48b Reviewed-on: https://chromium-review.googlesource.com/224813 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Zhenyao Mo <zmo@chromium.org>
Jamie Madill 70a0b2a1 2014-10-21T11:48:39 Fix varying interpolation parsing. This was broken sometime in the CollectVariables refactor. BUG=angle:803 Change-Id: Iaa09449f02290c4547f87c1560465dc8998d957c Reviewed-on: https://chromium-review.googlesource.com/224104 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang fc532b9a 2014-10-21T10:24:16 Delete the ShaderImpl on gl::Shader object destruction. BUG=angleproject:804 Change-Id: I4d68f9283299e9fb6b907a6406c37f92f8b08dbe Reviewed-on: https://chromium-review.googlesource.com/224106 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 95fe0d1c 2014-10-21T16:04:57 Change the C runtime from static to dynamic. BUG=angle:733 Change-Id: Iab9a3fbc8aa1e05f4d969016ab28bac868089487 Reviewed-on: https://chromium-review.googlesource.com/224482 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang c8d297a4 2014-09-19T11:09:08 Remove last uses of gl::error in the Buffer classes. BUG=angle:520 Change-Id: Id18e93b440da64360a6845a42a2664ae531b06f9 Reviewed-on: https://chromium-review.googlesource.com/218769 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Olli Etuaho f9004131 2014-10-20T18:26:48 Always include precision in interm output if it's available This helps with debugging precision propagation issues. BUG=angle:787 Change-Id: Ia969481c8d933455cdafef4ae25c6ab3946bc1c2 Reviewed-on: https://chromium-review.googlesource.com/224281 Reviewed-by: Nicolas Capens <capn@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang d2f756be 2014-10-21T17:24:11 Use windows_sdk_path for the 8.0 SDK path and windows_8_1_sdk_path for 8.1. Change-Id: I0cb4262552852ccbc772ca828a0faa7d3e63784b Reviewed-on: https://chromium-review.googlesource.com/224483 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Kimmo Kinnunen 7c1cfd61 2014-10-15T14:59:57 Make ShBuiltInResources comparable with memcmp Chromium builds a std::map with ShBuiltInResources as part of the key. Comparator for == and < are needed for the map implementation. Currently Chromium uses memcmp as the comparator. Padding in ShBuiltInResources causes uninitialized reads. Fix this by clearing the padding with memset during ShBuiltInResources initialization. Change-Id: I78aa3c59ce165503831aa2a67c96cf8af316c152 Reviewed-on: https://chromium-review.googlesource.com/223431 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill 710e5775 2014-10-20T17:13:53 Make commitRegion a base method of TextureD3D. Use a helper method isValidIndex to preserve ASSERT checks. Refactoring patch only. BUG=angle:741 Change-Id: Ie19fa21db51cd0239a3b391de362584a9fbab2df Reviewed-on: https://chromium-review.googlesource.com/222268 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill e76bdda2 2014-10-20T17:13:52 Restrict use of TexStorage more in CopyImage. We were being too permissive in some copyImage methods when checking if we can create a render target or not. This would lead us to trying to use an inconsistent TexStorage in some cases. Note that we do need to create inconsistent TexStorage in cases where we are doing a FBO copy *from* a mipmap-incomplete texture attachment. BUG=angle:780 Change-Id: I5a849b5d8c53713e38cb5f5052a8bb88b3f56260 Reviewed-on: https://chromium-review.googlesource.com/224480 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang 4a20480e 2014-10-21T15:10:29 Fix missing include of common_defines.gypi. Change-Id: I308956a700df4d440573fbae89e67cab0f2cf482 Reviewed-on: https://chromium-review.googlesource.com/224653 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Zhenyao Mo 94ac7b78 2014-10-15T18:22:08 Invariant related processing. * Fix a bug in PreProcessor for STDGL pragma. * Record all invariant settings and set them in ShaderVariable. * Write #pragma STDGL invariant(all) in GL BUG=angle:776 TEST=https://www.khronos.org/registry/webgl/sdk/tests/conformance/glsl/misc/shaders-with-invariance.html Change-Id: Ie28b75480deed79f0c9f26e3b98f1778d1290182 Reviewed-on: https://chromium-review.googlesource.com/223610 Tested-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill f99b0cff 2014-10-20T17:04:36 Remove getNativeTexture from TextureImpl. We can stop exposing this method on the GL-side, now that we only use it on the D3D back-end. BUG=angle:781 Change-Id: I3a9ecc277dcd21147881b8780849782f68b3e62e Reviewed-on: https://chromium-review.googlesource.com/222924 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Jamie Madill dd3bf52e 2014-10-20T17:04:35 Remove getSamplerStateWithNativeOffset. This method returned a sampler state as normal, with the base level automatically offset by the one or two levels we use in the D3D workaround for small compressed textures. Since this is D3D-only, we can move all of the logic into the D3D classes themselves. BUG=angle:781 Change-Id: Ie0a60877efebb41f02f4e57625a44e5fb5cce074 Reviewed-on: https://chromium-review.googlesource.com/222923 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Jamie Madill 10ef2156 2014-10-20T17:04:34 Move Texture Serials to the base class. It's reasonable to use the serial logic on both the GL and all other translated Renderers, since we check the logic on the GL-side. Serials give us a way to identify Textures that aren't raw pointers and aren't "id". "id" has issues when Textures are deleted, then re-allocated with the same value. BUG=angle:781 Change-Id: I1a2a8b6f4ea3db915574c957c143a81e0210ec7d Reviewed-on: https://chromium-review.googlesource.com/222922 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Jamie Madill 6948e301 2014-10-20T17:04:33 Use immutable level count in gl::Texture. Instead of storing a binary flag indicating if we've created immutable storage, store a level count. This indicates if or if not we've created immutable storage, as well as avoiding the call to the native storage to return the level count. BUG=angle:781 Change-Id: I08a6bd086d00ddf3255262a7711628be5212b4b7 Reviewed-on: https://chromium-review.googlesource.com/222921 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Cooper Partin 88d3b8cb 2014-10-08T10:41:56 Added IInspectable EGLNativeWindowType and ICoreWindow support Change-Id: I6dd7fef72a73572d4a3deda7ce36a11da3a75c81 Reviewed-on: https://chromium-review.googlesource.com/224366 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 63837d51 2014-09-18T13:23:18 Defer the creation of Blit9's geometry and return Errors if it fails. BUG=angle:520 Change-Id: I5e51fec38c513419beea5ff612a6ec2fb0e81a26 Reviewed-on: https://chromium-review.googlesource.com/218768 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang cbc7f050 2014-10-15T13:17:00 Use a constant for the number of faces in a cube map. BUG=angle:520 Change-Id: Ia35103059526aff2fc1b29a160d8471f4b5cbd42 Reviewed-on: https://chromium-review.googlesource.com/223107 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Tibor den Ouden 739f8ec3 2014-10-17T21:04:53 Removed declaration of getAttachedShaders() without implementation. Found while working on BUG=angle:751 BUG=angle:751 Change-Id: I8a5c5383f88ecb379395d1a23e36148145ebe34d Reviewed-on: https://chromium-review.googlesource.com/224090 Tested-by: Tibor Ouden, den <tibordenouden@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 64f23f65 2014-09-10T14:40:12 Update the getRenderTarget functions to return gl::Error objects. BUG=angle:520 Change-Id: If1f4f71972b669704eff70b5f60927d8e6ac07b3 Reviewed-on: https://chromium-review.googlesource.com/218767 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 433bfd38 2014-10-20T12:07:36 Merge the copyToStorage methods. BUG=angle:741 Change-Id: I67380748ee875cc2dea61eb82a9b0d600144dc85 Reviewed-on: https://chromium-review.googlesource.com/222267 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill e020bed5 2014-10-20T16:16:46 Revert "Added IInspectable EGLNativeWindowType and ICoreWindow support" Causing regressions in the build: http://build.chromium.org/p/chromium.gpu.fyi/builders/GPU%20Mac%20Builder/builds/20182 This reverts commit 756aebfc7afa6d0de14e96637ef396dd7b290c2d. Change-Id: I2f4bdb5aeb429c9bbc5e655a1761704f33737841 Reviewed-on: https://chromium-review.googlesource.com/224221 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Cooper Partin 756aebfc 2014-10-08T10:41:56 Added IInspectable EGLNativeWindowType and ICoreWindow support Change-Id: I34e443b1e194800460e441ac6cee42cf68430564 Reviewed-on: https://chromium-review.googlesource.com/224302 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill ec6de4ec 2014-10-20T10:59:56 Fix TextureD3D::setData for depth-stencil textures. D3D11 requires us to NULL the update region parameter when updating depth stencil textures. For these textures, we can't always use the subdata workaround, so disable it entirely for these textures. BUG=angle:729 BUG=365078 Change-Id: I44258dd1b8937b1aebcb3a73de835698805537e0 Reviewed-on: https://chromium-review.googlesource.com/222911 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 24e83192 2014-10-20T11:00:53 Fix CopyBufferSubData validation. We were checking readTarget twice, instead of both read and write. BUG=angle:800 Change-Id: I4096a9c4e0fdec9c77bfc25250923c188d2b43db Reviewed-on: https://chromium-review.googlesource.com/224102 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 0661fce4 2014-10-03T09:47:14 Add c++0x flag to cflags on non-win platforms. Our previous change to use static_assert leads the new wave of c++11 features. BUG= Change-Id: Id6d382475daa7029109dab1017a59b5ef07c18df Reviewed-on: https://chromium-review.googlesource.com/221267 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>