Log

Author Commit Date CI Message
Geoff Lang 41a2b8ea 2015-12-07T21:44:26 Revert "Protect against overflow in BinaryInputStream." This reverts commit dfa2fe31ad66ede57af1c0244ee99b8918eb2d9b. Change-Id: If4a7eb1876876991c537d0a9077cede52ba40b95 Reviewed-on: https://chromium-review.googlesource.com/316621 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill a5ed56ee 2015-12-07T16:32:59 D3D11: Mask off alpha channel for RGBA->RGB blits. We emulate RGB8 in D3D11 with RGBA8 textures. Make sure when we blit that we don't copy the unused texture channel. BUG=angleproject:1245 TEST=dEQP-GLES3.functional.fbo.blit.* Change-Id: I805132fda984860a6d84ad4c1fc7169973938df9 Reviewed-on: https://chromium-review.googlesource.com/316010 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 7a6a1ffe 2015-12-07T16:32:58 D3D11: Use clamp wrap mode for Integer textures. Until we can support all wrap modes for int textures, use a correct clamping scheme. This fixes several dEQP GLES3 FBO tests. This shuffles some of the tests in functional.texture.units since it hard-codes a different behaviour for all wrap modes, ignoring the sampler setting. BUG=angleproject:1244 TEST=dEQP-GLES3.functional.texture.* Change-Id: Ic7e89a111728dfb18821534996bf5b9a5ad172b6 Reviewed-on: https://chromium-review.googlesource.com/313997 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>
Geoff Lang dfa2fe31 2015-12-07T14:20:02 Protect against overflow in BinaryInputStream. BUG=angleproject:1112 Change-Id: Iedd92ce7a56b20f42e51ef86278eb64fbae3c353 Reviewed-on: https://chromium-review.googlesource.com/316031 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 976489b2 2015-12-07T10:27:14 Don't allocate VertexArray or TransformFeedback objects until binding. Follow the spec more closely and only reserve IDs of vertex arrays and transform feedback objects before binding. This saves memory and allows the glIs* calls to succeed. BUG=angleproject:1218 BUG=angleproject:1101 Change-Id: I7bf99870a7c93f5545325785cbecd891c6b77f8a Reviewed-on: https://chromium-review.googlesource.com/316402 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill adf825b3 2015-12-07T09:20:05 Move TType::getCompleteString to Types.cpp. Probably left over from previous refactoring. BUG=angleproject:1247 Change-Id: Ieb4b60ae9f724248f92ae77d23e4bdd8c5d9265a Reviewed-on: https://chromium-review.googlesource.com/316400 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 5c079d24 2015-12-07T09:56:32 Don't print assertion expression as a format string. If the assert contained '%' symbols, it would be interpreted as a substituion. BUG=angleproject:1189 Change-Id: Ib347bc1a892397373e7318e032070c0337f110de Reviewed-on: https://chromium-review.googlesource.com/316410 Tryjob-Request: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Dian Xiang 4028159e 2015-11-19T18:24:44 Using dirty bit notification for D3D11 viewport state BUG=angleproject:1161 This is a continuation of the dirty bit refactor Change-Id: I101f415094dd406f6b0a40cb260f1cbbfec7b62c Reviewed-on: https://chromium-review.googlesource.com/313249 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tryjob-Request: Dian Xiang <dianx@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Dian Xiang <dianx@google.com>
Dian Xiang 29a65546 2015-11-17T17:15:50 Using dirty bit notification for D3D11 scissor rectangle state BUG=angleproject:1161 This is a continuation of the dirty bit refactor Change-Id: I1a9f297835943eee5f756e4e4721b2db543184ec Reviewed-on: https://chromium-review.googlesource.com/312987 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Dian Xiang <dianx@google.com>
Jamie Madill 2da819e1 2015-12-03T15:53:19 D3D11: Fix blit from out-of-bounds. Do not copy pixels in a negative read region. Also make sure we clamp the boundaries so the dEQP tests are mostly pixel-perfect. We can't yet fix some default framebuffer tests because of issues with blitting RGBA8 (default FBO) to floating point framebuffers. BUG=angleproject:1241 TEST=dEQP-GLES3.functional.fbo.blit.* Change-Id: I16ee264b0b1a7e6b9121dde5ae4f96cfd27ea53e Reviewed-on: https://chromium-review.googlesource.com/315670 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Austin Kinross 063d9e78 2015-11-19T17:24:47 Add support for EGL_EXT_platform_device This allows an application to use EGLDeviceEXT to initialize EGL. For example, if an application wants to initialize EGL using an existing D3D11 device (instead of ANGLE creating its D3D device), then the app may create an EGLDeviceEXT using EGL_ANGLE_device_creation_d3d11, and use this device to initialize EGL via EGL_EXT_platform_device. BUG=angleproject:1190 Change-Id: Ife91ce95a63e29eb2b3f05aedfb668e4cac8f5ce Reviewed-on: https://chromium-review.googlesource.com/313444 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Austin Kinross <aukinros@microsoft.com>
Austin Kinross fc1a44a1 2015-12-02T12:37:10 Revert "Revert "Add and implement EGL_ANGLE_device_creation[_d3d11]"" This reverts commit dd5c5b79333fdde7858a77d39e91cc3d30b74c9e. BUG=angleproject:1190 Change-Id: I1bc1b232b6a916da6d18b546baf20e0854a2768f Reviewed-on: https://chromium-review.googlesource.com/315169 Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Austin Kinross 502f3df6 2015-12-02T12:33:18 Define EGL_EGLEXT_PROTOTYPES in GN projects This makes sure that EGL_EGLEXT_PROTOTYPES is defined in the same places as GL_GLEXT_PROTOTYPES. BUG=angleproject:1190 Change-Id: I0e55aad5728df765bff495822570e7590b157d68 Reviewed-on: https://chromium-review.googlesource.com/315208 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 15ede106 2015-11-26T15:20:34 D3D11: Disable stencil buffer when not attached. Similarly to the D24S8 attachment getting confused when we use only the stencil portion, ANGLE could write to the stencil portion when we were only using the depth. Fix this by internally disabling stencil test and writes when using this type of configuration. BUG=angleproject:1237 Change-Id: Ib7868d5e9f8aea73304a132005541dab947aa619 Reviewed-on: https://chromium-review.googlesource.com/314032 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 0df8fe44 2015-11-24T16:10:24 D3D11: Don't read or write to the unused depth buffer. When using STENCIL8, we emulate it on D3D11 with D24S8, since there is no native stencil-only format. However in many places we would write to the depth part of this format, and confuse the D3D runtime when it would use the depth test. Fix this by never modifying the depth portion of the buffer, or reading from it. BUG=angleproject:1232 Change-Id: Ifd2e54eceae84e8deea85f439c132d07981b2286 Reviewed-on: https://chromium-review.googlesource.com/313996 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>
Corentin Wallez 40eefabd 2015-11-23T16:58:33 Rewrite WindowSurfaceCGL to use CAOpenGLLayer It used to render to IOSurfaces and use setContents to directly give them to the OSX compositor. This was worth the complexity only because Chrome going to use that code path. This is no longer the case. Instead we replace the implementation with one based on CAOpenGLLayer, that basically gets a "draw" callback every frame. The complexity comes from the fact that this callback is called from another thread, with another CGL context. BUG=angleproject:1233 Change-Id: I1878d0071d057e043e0bb9043d9849f50e00d023 Reviewed-on: https://chromium-review.googlesource.com/314031 Reviewed-by: ccameron chromium <ccameron@chromium.org> Tryjob-Request: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Jamie Madill dd5c5b79 2015-12-02T08:41:28 Revert "Add and implement EGL_ANGLE_device_creation[_d3d11]" Causes failures on Windows/GN: e:\b\build\slave\win_x64_gn\build\src\third_party\angle\src\tests\egl_tests\egldevicetest.cpp(108) : error C3861: 'eglCreateDeviceANGLE': identifier not found e:\b\build\slave\win_x64_gn\build\src\third_party\angle\src\tests\egl_tests\egldevicetest.cpp(113) : error C3861: 'eglQueryDeviceAttribEXT': identifier not found e:\b\build\slave\win_x64_gn\build\src\third_party\angle\src\tests\egl_tests\egldevicetest.cpp(119) : error C3861: 'eglReleaseDeviceANGLE': identifier not found e:\b\build\slave\win_x64_gn\build\src\third_party\angle\src\tests\egl_tests\egldevicetest.cpp(143) : error C3861: 'eglQueryDeviceAttribEXT': identifier not found e:\b\build\slave\win_x64_gn\build\src\third_party\angle\src\tests\egl_tests\egldevicetest.cpp(162) : error C3861: 'eglCreateDeviceANGLE': identifier not found e:\b\build\slave\win_x64_gn\build\src\third_party\angle\src\tests\egl_tests\egldevicetest.cpp(178) : error C3861: 'eglCreateDeviceANGLE': identifier not found This reverts commit 4029ad42d5ffe94a0a744532ab3577b982f847b8. BUG=angleproject:1190 Change-Id: Ibcdfd8cea7ba275cd67c0220f8d7a1069ec1cf97 Reviewed-on: https://chromium-review.googlesource.com/315480 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 5bbc9438 2015-12-01T19:49:54 Revert "Disable RTTI in VS release builds" Fails compile on the Windows Debug GPU bot: c:\b\build\slave\gpu_win_builder__dbg_\build\src\third_party\deqp\src\framework\opengl\simplereference\sglrreferencecontext.cpp(2342) : warning C4541: 'dynamic_cast' used on polymorphic type 'sglr::rc::Texture' with /GR-; unpredictable behavior may result c:\b\build\slave\gpu_win_builder__dbg_\build\src\third_party\deqp\src\framework\opengl\simplereference\sglrreferencecontext.cpp(2344) : warning C4541: 'dynamic_cast' used on polymorphic type 'sglr::rc::Texture' with /GR-; unpredictable behavior may result Many other similar errors. BUG=angleproject:1239 This reverts commit aca86045d9aae4d41939a3953103304b7ba9e3a2. Change-Id: I523e12b32665bcc74a6437582be82db8174e42ac Reviewed-on: https://chromium-review.googlesource.com/315170 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Corentin Wallez 3d677ea6 2015-11-16T13:38:47 Implement EGL_ANGLE_x11_visual Reland with a fixed tests on AMD. This extension will be used by Chrome to advertise the visual it will use for its windows. Having ANGLE use the same visual will bring several benefits: - A blit will be avoided, and the content of the window might be rendered on the system framebuffer directly. - There will be less latency when resizing windows which will make it much less likely to see a black border when resizing. BUG=522149 Change-Id: I66004b6ac45453330af7c4c810ddf2c26941be42 Reviewed-on: https://chromium-review.googlesource.com/314661 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Austin Kinross aca86045 2015-11-30T13:36:28 Disable RTTI in VS release builds Chrome forbids RTTI, but standalone ANGLE currently allows it. Disallowing RTTI in standalone release builds brings ANGLE and Chrome closer, and prevents accidental use of dynamic_cast in ANGLE. It also reduces binary size. Win10 libGLESv2 is 47KB smaller after this. BUG=angleproject:1239 Change-Id: Ib5fb50df66c3a94042e2d9bbb062c0d025cf3eef Reviewed-on: https://chromium-review.googlesource.com/314831 Tryjob-Request: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Austin Kinross <aukinros@microsoft.com>
Shannon Woods c73c9940 2015-12-01T11:41:46 Update link to ANGLE and Cross-Platform WebGL Support presentation Change-Id: Ib3322b10f8549ce743f7ce8ee1b46d6341af4062 Reviewed-on: https://chromium-review.googlesource.com/314912 Tested-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 81176780 2015-11-24T16:10:23 Return correct error in Framebuffer::checkStatus. UNSUPPORTED is a specific error meaning an implementation-specific incompatibility. For cases where the attachments are invalid according to the spec, we should be returning INCOMPLETE_ATTACHMENT. BUG=angleproject:1231 Change-Id: I4b4332ee5661738374e93c825a53d66d7ba1fad5 Reviewed-on: https://chromium-review.googlesource.com/313995 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>
Jamie Madill f06e607f 2015-12-01T10:44:16 Add support for GL_OES_depth32. This will allow ANGLE to be more conformant when it accepts 32-bit depth as a Renderbuffer format. BUG=angleproject:1230 Change-Id: I9336c6f951d280b2332fc3e6d2e640852473aa03 Reviewed-on: https://chromium-review.googlesource.com/313994 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 0b200680 2015-12-01T09:27:57 Suppress failing dEQP tests. With the suppression changes from 5111a06, a few were removed that seem to fail only on certain configurations. Reinstate the failure expectations for the dEQP bots. BUG=angleproject:1236 Change-Id: Ib642c60a7871f7994ae1f0082f22533e6650f082 Reviewed-on: https://chromium-review.googlesource.com/315090 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Austin Kinross f01ac9fb 2015-11-19T15:48:22 Fix D3D static buffer cache cleanup logic BUG=angleproject:197 Change-Id: Ia71f4063fa13c72a3a8bd41ec8fe01a762543796 Reviewed-on: https://chromium-review.googlesource.com/313468 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang ab831f04 2015-12-01T09:39:10 Add queries for GL_RASTERIZER_DISCARD. BUG=angleproject:1238 Change-Id: Id3b219dfcc758cf19d61b7dc7eeabd8c2159d212 Reviewed-on: https://chromium-review.googlesource.com/315100 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jacek Caban 2302e69a 2015-12-01T12:44:43 Fixed compilation with mingw. Change-Id: I8102ce4dd934ac247a29e31140d3a1eca691802f Reviewed-on: https://chromium-review.googlesource.com/315060 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Austin Kinross fa697210 2015-11-30T13:59:45 Add *.VC.opendb to the .gitignore These are new temporary files used by VS 2015 Update 1 Equivalent Chromium CR: https://codereview.chromium.org/1413153015 Change-Id: I7a73b3d45107cf2a81b604953482aed9f2c971f8 Reviewed-on: https://chromium-review.googlesource.com/314881 Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Dian Xiang 0e4c8e73 2015-11-16T19:19:34 Using dirty bit notification for D3D11 rasterizer state BUG=angleproject:1161 This is a continuation of the dirty bit refactor Change-Id: I78ab046aaeb7de6dd288433c86e6524dcb2d6a66 Reviewed-on: https://chromium-review.googlesource.com/312837 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tryjob-Request: Dian Xiang <dianx@google.com> Tested-by: Dian Xiang <dianx@google.com>
Shannon Woods 4ed53a5a 2015-11-30T15:53:52 Add link to browse source to README.md This makes it more clear to anyone landing directly at README.md instead of the root of the repo how to browse the source. Change-Id: I19b7e8e2f8e55385fa0825d4268623ef318bdaa0 Reviewed-on: https://chromium-review.googlesource.com/314441 Tested-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Dian Xiang 83af74f5 2015-11-13T16:39:53 Using dirty bit notification for D3D11 depth stencil state BUG=angleproject:1161 This is a continuation of the dirty bit refactor Change-Id: If7d523e6200fef631051cab0bde47fdec8385c17 Reviewed-on: https://chromium-review.googlesource.com/312722 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Dian Xiang <dianx@google.com>
Jamie Madill 5111a062 2015-11-30T10:31:36 Update dEQP integration. Intead of generating a case list from a build dEQP executable and packing it into a gzip file, we can use the Android CTS mustpass list. This has the benefit of allowing us to remove some failure expectations for broken tests. It also means we don't need to ever regenerate our case list files. Also remove the old dEQP test integration, since it is no longer supported or possibly even working. And update our test expectations to match the new Android CTS must-pass lists. This change will likely need to be landed simulatanously with a Chromium-side CL, due to the nature of the gyp/DEPS configuration. BUG=angleproject:1236 Change-Id: I352e4a651dfb88193a1c4991974502dee1edb67b Reviewed-on: https://chromium-review.googlesource.com/313792 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 984ef41a 2015-11-24T16:10:21 Ignore clear commands if rasterizer discard is enabled. From the 3.0 spec (Section 3.1): "When enabled, RASTERIZER_DISCARD also causes the Clear and ClearBuffer* commands to be ignored." BUG=angleproject:1227 Change-Id: I0316103827927e8af9732d7b4565d787b881ccb8 Reviewed-on: https://chromium-review.googlesource.com/313993 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>
Jamie Madill 8d9f35f1 2015-11-24T16:10:20 Re-land "D3D11: Fix Integer Texture Cube mip mapping." We were missing both the correct SRV parameter, as well as the full computation of the mip level in the HLSL. Re-land makes the mip computation only happen with implicit sampling. Before it would confuse the LOD0 computation. BUG=angleproject:1208 TEST=dEQP-GLES3.functional.texture.* Change-Id: I4b579033afe5cd1aca1f2d017e48a74c7fc324cc Reviewed-on: https://chromium-review.googlesource.com/314330 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>
Austin Kinross 4029ad42 2015-10-29T10:14:47 Add and implement EGL_ANGLE_device_creation[_d3d11] BUG=angleproject:1190 Change-Id: I248935ef81803062cf9ba5776512cda456331f51 Reviewed-on: https://chromium-review.googlesource.com/309634 Tryjob-Request: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 5ac60fc2 2015-11-27T13:42:02 Revert "Implement EGL_ANGLE_x11_visual" Fails on Linux AMD: http://build.chromium.org/p/chromium.gpu.fyi/builders/Linux%20Release%20%28ATI%29/builds/43819 EGLX11VisualHintTest.InvalidWindowVisualID: ../../third_party/angle/src/tests/egl_tests/EGLX11VisualTest.cpp:183: Failure Value of: EGL_TRUE == eglInitialize(display, nullptr, nullptr) Actual: false Expected: true BUG=522149 This reverts commit b28e010aa10b3e4aec3207e767be10ee5ffb25fd. Change-Id: I9a02f2aa3caadd787eb0099c0ddf9d781084fa1c Reviewed-on: https://chromium-review.googlesource.com/314660 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Corentin Wallez b28e010a 2015-11-16T13:38:47 Implement EGL_ANGLE_x11_visual This extension will be used by Chrome to advertise the visual it will use for its windows. Having ANGLE use the same visual will bring several benefits: - A blit will be avoided, and the content of the window might be rendered on the system framebuffer directly. - There will be less latency when resizing windows which will make it much less likely to see a black border when resizing. BUG=522149 Change-Id: Icd484c9a948ed5b5b9116247bb50560bffa30667 Reviewed-on: https://chromium-review.googlesource.com/312323 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tryjob-Request: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Cooper Partin e6605c6e 2015-11-12T12:35:22 Added information about generating Windows Store ANGLE projects. Change-Id: I49b229b7d4f3d6d305fed023f62626a9966f692d Reviewed-on: https://chromium-review.googlesource.com/312456 Tested-by: Cooper Partin <coopp@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
unknown aa16dd4a 2015-11-25T13:25:29 Hard-limit the number of uniform vectors in OpenGL. Using the real limits (usually 4096) can cause the uniforms/gl-uniform-arrays WebGL test to time out. This limit artificial limit can be lifted once the test is updated. BUG=407309 Change-Id: I17a0a963e606800ec4f6f1972c777b597976622f Reviewed-on: https://chromium-review.googlesource.com/314460 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
unknown b4a3af29 2015-11-25T15:02:51 Remove assertion that OpenGL program linking succeeds. This assertion is causing problems on the debug bots. While the assertion is nice for local debugging, causing the entire run of WebGL cts on the trybots to fail is too big of a drawback. BUG=angleproject:889 Change-Id: Ie86d2f0e84132bef8fb94a693440af7e9b7fc8e9 Reviewed-on: https://chromium-review.googlesource.com/314480 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Corentin Wallez 47ac69c1 2015-11-24T11:15:57 Update gpu_test_expectations to support OSX 10.11 On the Chromium side there was also a large refactor of SplitString. This patch includes a replication of that refactor in string_utils and adds the Chromium unittests to string_utils_unittests.cpp BUG=angleproject:1234 Change-Id: I4f71064fbf325c204e98a7b36ead118913d90f2c Reviewed-on: https://chromium-review.googlesource.com/314101 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Stephen McGruer faaa84ac 2015-11-24T13:29:23 Hide libpci pkg-config request behind use_libpci==1 This allows platforms that don't have libpci to configure the code without error. BUG=560948 Change-Id: I155f35108d9be193afed5304b443a6afdf33b077 Reviewed-on: https://chromium-review.googlesource.com/314300 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Stephen Mcgruer <smcgruer@google.com> Tested-by: Jamie Madill <jmadill@chromium.org>
Olli Etuaho 183d7e24 2015-11-20T15:59:09 Remove predefined precision qualifiers from ESSL3 samplers New sampler types in ESSL3 should not have default precision qualifiers. This is specified in ESSL 3.00.4 section 4.5.4. BUG=angleproject:1222 TEST=angle_unittests Change-Id: I9c8e7a5fbb4278db80de79bcaeebaf23e64242a0 Reviewed-on: https://chromium-review.googlesource.com/312048 Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Jamie Madill 6328667d 2015-11-24T13:00:08 Add gl_FragDepth support for D3D11/ES3. An incorrect check was blocking existing support we added for the extension. BUG=angleproject:1226 Change-Id: I335053b1bebb37fd9296b36702031bd34c1bb59e Reviewed-on: https://chromium-review.googlesource.com/313992 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 6b120b9f 2015-11-24T13:00:07 Add checks for FBO attachment layer. We would allow the app to attach layers that were out-of-bounds. Fix this by checking against the underlying resource dimensions. Also rework the code a bit to clean up the texture size query, which is available from the ImageDesc. BUG=angleproject:869 Change-Id: I984f1db16daea6ca650d795884d8ec2cb8f05ebb Reviewed-on: https://chromium-review.googlesource.com/313991 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill ee322723 2015-11-24T20:42:48 Revert "D3D11: Fix Integer Texture Cube mip mapping." 2 tests failed: dEQP_GLES3.Default/functional_shaders_texture_functions_texture_isamplercube_vertex (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_shaders_texture_functions_texture_usamplercube_vertex (c:\b\build\slave\gpu_win_builder\build\src\third_party\angle\src\tests\deqp_support\angle_deqp_gtest.cpp:234) BUG=angleproject:1208 This reverts commit 5778557fe99e300f245a7bfc2200f6b0179e3fbf. Change-Id: I6f7441bdbfbf937680b0d572645edee8ece649a1 Reviewed-on: https://chromium-review.googlesource.com/314301 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill cc86d64e 2015-11-24T13:00:07 Make Framebuffer size check ES2-only. This is an ES2-only incompleteness check. We also need to require matching dimensions in D3D11, but make this an implementation specific check. Also make all implementation specific errors 'UNSUPPORTED' since that catches all "non-ES" framebuffer restrictions. Note that we can't be conformant here in D3D11 currently, since the spec only makes an exception for mismatching formats for UNSUPPORTED, not for size checks. However, we don't have an easy solution. BUG=angleproject:1225 Change-Id: Ic80a04bce397fc12643b010c874f432033babc5d Reviewed-on: https://chromium-review.googlesource.com/313990 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 5778557f 2015-11-23T09:37:44 D3D11: Fix Integer Texture Cube mip mapping. We were missing both the correct SRV parameter, as well as the full computation of the mip level in the HLSL. BUG=angleproject:1208 Change-Id: I345b1e0895495654de3863c4ebcc395d9b7371b9 Reviewed-on: https://chromium-review.googlesource.com/312060 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Olli Etuaho 0980e29d 2015-11-20T14:57:34 Don't accept default precision for uint Default precision can only be specified for float, int and sampler types. Default precision for int also applies to uint and uvec declarations. BUG=angleproject:1221 TEST=angle_unittests Change-Id: I31fdcde80da16e2ea8771838f7c1a6ab4e478194 Reviewed-on: https://chromium-review.googlesource.com/313314 Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill ccb001b4 2015-11-18T13:14:05 Roll dEQP 92f7752da8..cc0ded6c. https://android.googlesource.com/platform/external/deqp/+log/92f7752da8..cc0ded6c BUG=angleproject:1092 Change-Id: Ie891d4d12eeaabb367e105e2e5e2f6823fb816f7 Reviewed-on: https://chromium-review.googlesource.com/313021 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>
Jamie Madill 847638a6 2015-11-20T13:01:41 Re-land "D3D: Generate more shader debug info by default." Re-land with fix for shader size query. The debug info can be very useful to WebGL developers. Instead of hiding the feature behind an unsupported and broken flag, always enable it so that WebGL devs can access the useful translated info. Change the debug info policy to build the full info (including generated assembly) in Debug, and all info excepth the assembly in Release. BUG=angleproject:1179 Change-Id: I812b2c9ba98cb8c9d5ec95721441c70e8990b626 Reviewed-on: https://chromium-review.googlesource.com/313600 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Dian Xiang 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>
Jamie Madill d6dfe67d 2015-11-20T12:18:12 Add python perftests test runner. This test runner can run the tests in an infinite loop, giving much lower variance. It also automatically parses the output from several runs and prints out the mean and standard deviation of the population. BUG=None Change-Id: Ic9f6f7d3158e93949a8e17c99ea1e3856eb34076 Reviewed-on: https://chromium-review.googlesource.com/312262 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 57d116a4 2015-11-20T17:59:18 Revert "D3D: Generate more shader debug info by default." Has a bug where we would return the wrong size for the query. BUG=angleproject:1179 This reverts commit 6de4d49477986339a92b542a18df22c49d10cf14. Change-Id: Ib58aaf0b58d8f20765f7267b29acd8c62d287525 Reviewed-on: https://chromium-review.googlesource.com/313552 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 04c66234 2015-11-20T12:10:36 Mark crashing dEQP-GLES3 TF Feedback test as SKIP. This test was previously passing, but adding the new enum support has somehow uncovered a crashing bug. Mark it as skipped. BUG=angleproject:1150 BUG=angleproject:1151 Change-Id: Ieb0254606eab716a1628168433069ff8016e47a3 Reviewed-on: https://chromium-review.googlesource.com/313570 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 6de4d494 2015-11-19T14:08:34 D3D: Generate more shader debug info by default. The debug info can be very useful to WebGL developers. Instead of hiding the feature behind an unsupported and broken flag, always enable it so that WebGL devs can access the useful translated info. Change the debug info policy to build the full info (including generated assembly) in Debug, and all info excepth the assembly in Release. BUG=angleproject:1179 Change-Id: I25656b76b8437cb2edc9d88cd33f2c4d19b6a3f0 Reviewed-on: https://chromium-review.googlesource.com/313160 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Jamie Madill c22fef94 2015-11-19T13:55:27 D3D11: Fix instancing draw with line loops. We were missing the implementation for the instanced draw for these. Implement them in the same way as for triangle fan. BUG=angleproject:1101 Change-Id: I444f3a23383c63b8df6f9ebe25b255c8890632a1 Reviewed-on: https://chromium-review.googlesource.com/313007 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>
Jamie Madill a0537333 2015-11-19T13:55:26 D3D: Fix incorrect instanced vertex offsets. The spec says that DrawElements is equivalent to the instanced call with an instance ID of zero. This patch fixes a bug in our VertexDataManager where we would sometimes ignore the attribute divisor for DrawElements, and stream the wrong amount of data/wrong start offset. BUG=angleproject:1213 TEST=dEQP-GLES3.functional.draw.draw_elements.* TEST=dEQP-GLES3.functional.draw.draw_range_elements.* TEST=dEQP-GLES3.functional.draw.random.* Change-Id: I1c430a14ab3be68a24e233e9cdd1e4fd88c920a0 Reviewed-on: https://chromium-review.googlesource.com/312062 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>
Olli Etuaho e1a94c67 2015-11-16T17:35:25 Check that texture offset is constant and valid Offset passed to textureOffset and similar functions must be constant. See ESSL 3.00 spec section 8.8. It must also be in the valid range between MIN_PROGRAM_TEXEL_OFFSET and MAX_PROGRAM_TEXEL_OFFSET. Using values outside the valid range makes the results of the texture lookup undefined, as specified in GLES 3.0.4 section 3.8.10. We generate a compiler error if an offset is outside the valid range. BUG=angleproject:1215 TEST=angle_unittests Change-Id: Ida28361444d2f4050d516160f1491674c31868a1 Reviewed-on: https://chromium-review.googlesource.com/312223 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Frank Henigman 8ca1351a 2015-11-19T20:01:50 Remove incorrect comment from expectations files. BUG=none TEST=none Change-Id: I80283b825d4c9fe8c672c1efc9d6bc016b81ecc9 Reviewed-on: https://chromium-review.googlesource.com/312482 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Frank Henigman <fjhenigman@chromium.org>
Frank Henigman 22581ff1 2015-11-06T14:25:54 Support glGet GL_TRANSFORM_FEEDBACK_BINDING. BUG=angleproject:1150 Change-Id: If11bb2df6407248812d6dfa415395bbe315fa58c Reviewed-on: https://chromium-review.googlesource.com/311152 Tryjob-Request: Shannon Woods <shannonwoods@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Frank Henigman <fjhenigman@chromium.org>
Austin Kinross 84b0c3b7 2015-11-05T15:15:28 Re-land "In D3D, cache static vertex buffers to prevent wasteful recreation" BUG=angleproject:197 Changes since first failed patch: - Optimized BufferD3D::getStaticVertexBuffer() - Removed loop to commit static buffers - Out-of-date static buffers (which are much rarer anyway after this patch) are marked for deletion at the *next* draw call, rather than searched for before each draw call. That search was expensive. The change should see a net improvement to DrawCallPerfBenchmark for D3D null. Change-Id: If4942e0afd9e8fefadce8820a1305e13636547ef Reviewed-on: https://chromium-review.googlesource.com/311115 Tested-by: Austin Kinross <aukinros@microsoft.com> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Olli Etuaho e8e4debc 2015-11-18T17:15:38 Fix invalid generated sampling functions in HLSL output In some generated shaders, "levels" would be read before it is assigned by GetDimensions when clamping mip level to valid range. Fix these cases. BUG=angleproject:1092 TEST=dEQP-GLES3.functional.shaders.texture_functions.* (12 tests start passing) Change-Id: I9fce8d378606738e5172673d222bce7968e26789 Reviewed-on: https://chromium-review.googlesource.com/312022 Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho 3e960463 2015-11-12T15:58:39 Detect when gl_FragData is indexed with != 0 in WebGL 2.0 WebGL 2.0 explicitly specifies it to be an error when gl_FragData is indexed with anything else than constant zero in spec section 'GLSL ES 1.00 Fragment Shader Output'. This doesn't apply to WebGL 1.0 or GLES. dEQP-GLES2.functional.shaders.fragdata* test that dynamic indexing of gl_FragData is allowed. TEST=angle_unittests BUG=angleproject:1210 Change-Id: Ib401242e7867f5e7943456b059dd8e24dc404098 Reviewed-on: https://chromium-review.googlesource.com/312045 Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Olli Etuaho bd163f6a 2015-11-13T12:15:38 Fix parsing structure definitions in place of constructors The shader parser used to accept structure definitions in place of constructors, which is invalid GLSL. This patch fixes that. BUG=angleproject:939 TEST=angle_unittests Change-Id: Ibcf502160e91c19e693e9427b548a399d83e2a71 Reviewed-on: https://chromium-review.googlesource.com/312032 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho 40d9edf1 2015-11-12T17:30:34 Fix structure comparison constant folding objectSize() will return the size of all data in the structure, and simply iterating over the data will work for determining whether two structures are equal. The earlier complex and broken approach where the structure was traversed recursively is not needed. BUG=angleproject:1211 TEST=angle_unittests Change-Id: I0e5c5ccbb767d44ef6acb0f1f25f27dfc42866e1 Reviewed-on: https://chromium-review.googlesource.com/312490 Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho 5c0e023c 2015-11-11T15:55:59 Qualify stored constant union data with const This prevents accidentally changing data that may be shared between multiple TIntermConstantUnion nodes. Besides making the code less prone to bugs in general, this will make it easier to implement constant folding of array constructors. BUG=541551 TEST=angle_unittests, WebGL conformance tests Change-Id: I4f3059f70b841d9dd0cf20fea4d37684da9cd47e Reviewed-on: https://chromium-review.googlesource.com/312440 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho 36b0514a 2015-11-12T13:10:42 Fix ESSL3 indexing corner cases Indexing interface blocks or fragment outputs with a non-constant expression is not valid even if ANGLE has been able to constant fold the expression. BUG=angleproject:1210 TEST=angle_unittests Change-Id: I2ccb67871b682976a31b8de306053b9b28c06437 Reviewed-on: https://chromium-review.googlesource.com/312044 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Frank Henigman b49c9bf9 2015-11-18T19:02:34 bootstrap: make it work on Windows gclient is a .bat file on Windows, and subprocess won't run it unless shell=True. BUG=angleproject:1204 TEST=run in Linux and Windows 8 Change-Id: I1f94673f23ef25fe35df64ffd1ad04ed69626ad0 Reviewed-on: https://chromium-review.googlesource.com/312324 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Austin Kinross <aukinros@microsoft.com> Tested-by: Frank Henigman <fjhenigman@chromium.org>
Jamie Madill daa8c27f 2015-11-18T14:13:55 Fix a user-after-free in a ValidationES unittest. The State destructor was trying to unref a Program that had already been deleted. Fix this by unbinding resources from State before we exit the test. BUG=554520 Change-Id: I2215b1e5d27a34a649572c8f81e96dfeef7e983e Reviewed-on: https://chromium-review.googlesource.com/312977 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 55c25d0c 2015-11-18T13:08:08 D3D11: Fix varying packing with structs. Previously we would try to pass an entire struct through HLSL's shader interface. Instead, split this off as if each field was its own variable, which seems to be spec compliant (see ESSL 3.10). In the future we may want to fix register packing to use specific components of float4/int4/uint4 HLSL registers. This could also fix the remaining bugs in the SM3 packing. TEST=dEQP-GLES3.functional.shaders.linkage.varying.* BUG=angleproject:910 BUG=angleproject:1202 Change-Id: I1fd8b4505abc39bd2385ed5c088c316d55d0bc2c Reviewed-on: https://chromium-review.googlesource.com/311242 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 9fc3682c 2015-11-18T13:08:07 D3D: Rework varying packing code. In D3D we pack varyings by making a register map, and using the recommended GLSL ES algorithm to reserve register space. We use this map to assign row and column slots to each varying and then produce a semantic index value. The existing scheme had a number of bugs, and was failing several angle_end2end_tests. The new design cleans up the code somewhat and uses a different counting scheme for the semantic indexes: just sort the varyings in packing order and use a simple incrementing semantic index per varying. In SM4+, the HLSL compiler sorts and packs the varyings correctly itself, and in SM3, handle the cases we don't support by returning an error instead of a D3D compiler link error. Also refactor how we store varying information for TF Feedback/ StreamOut. Only store the necessary D3D information, instead of extra information like the name and type. This fixes several tests in GLSLTest/*. This also will allow us to fix interpolation qualifier packing and the structure packing in HLSL, which seems to work differently than the rest of the varying types. BUG=angleproject:1202 TEST=bots,dEQP-GLES3.functional.transform_feedback.* Change-Id: Ie5bfbb4f71d8bf97f39115fc46d2e61b131df639 Reviewed-on: https://chromium-review.googlesource.com/311241 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill e39a3f0a 2015-11-17T20:42:15 ProgramD3D: Move some common code into a Metadata class. This metadata class captures some of our commonly referenced but also complex flats into a shared place. We can then re-use them in the semantic code, the DynamicHLSL linking code, and the program code. Refactoring patch only. BUG=angleproject:1202 Change-Id: I8b6088cfa5488c5173a6f06c15abab5a4ead4cb8 Reviewed-on: https://chromium-review.googlesource.com/311700 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Frank Henigman 7824b609 2015-11-16T19:45:10 Add bootstrap.py. Add a script to run "gclient config" and edit the output, since gclient will no longer do what we want. BUG=angleproject:1204 TEST=none Change-Id: I00e214490967e14034c935e051acc39229f27ff7 Reviewed-on: https://chromium-review.googlesource.com/312233 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Frank Henigman <fjhenigman@chromium.org>
Corentin Wallez 6218c80b 2015-11-09T11:14:47 Revert "Revert "renderergl_utils: Require explicit location qualifier for OpenGLES3"" This reverts commit 45a7d64fd84a7cb292ff71890a61f8d2b7609aa4. Change-Id: I7f94609fc7cf14220d98c61e73a13311d3cc4ecd Reviewed-on: https://chromium-review.googlesource.com/311245 Tryjob-Request: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 50ff85e5 2015-11-11T14:22:21 DisplayGLX: add support for complete lack of extensions We thought we could rely on GLX_create_context_attrib being present but this is not the case with VM drivers. Instead we fallback to creating contexts with glXCreateContext that doesn't offer control on which version and profile the context will have. Likewise we may not always be able to use the multisample but we can safely assume that the number of samples and sample buffers are zero in this case. BUG=angleproject:1206 Change-Id: I888c69e609764994baf86386c9683b3edeb320f7 Reviewed-on: https://chromium-review.googlesource.com/312230 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Minmin Gong a37c6137 2015-11-11T17:06:53 D3D11: Fix GL_ETC1_RGB8_OES format. Passes all ETC1 related dEQP tests on Windows. BUG=angleproject:1212 TEST=dEQP-GLES2.capability.extensions.compressed_texture_formats.GL_OES_compressed_ETC1_RGB8_texture TEST=dEQP-GLES2.functional.texture.format.* TEST=dEQP-GLES2.functional.texture.wrap.* TEST=dEQP-GLES2.functional.texture.filtering.* TEST=dEQP-GLES3.functional.texture.format.compressed.etc1* TEST=dEQP-GLES3.functional.texture.filtering.* Change-Id: I937b039f90161bb5e8777766ea0c032ddfbbf159 Reviewed-on: https://chromium-review.googlesource.com/312416 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Minmin Gong <mgong@microsoft.com>
Jamie Madill 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>
Corentin Wallez 67bc1021 2015-11-06T14:30:15 GLX backend: fallback to lesser swap_control extensions Re-reland with a warning fix. We would like to use the EXT_swap_control extension to specify the swap interval of each drawable independently. However open source drivers do not expose this extension and instead expose the MESA and SGI versions that have a global swap interval. This commit changes the code to use the best swap_control extension it can, potentially changing the swap interval on each swap buffers on lesser extensions. BUG=angleproject:1206 Change-Id: I7ecf1eed6808672f277d0242d65f90d7851d2a32 Reviewed-on: https://chromium-review.googlesource.com/312322 Tryjob-Request: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 2075102d 2015-11-13T15:21:30 Revert "GLX backend: fallback to lesser swap_control extensions" This reverts commit a1393c59e9466dfe3a3ccaf710c272aa26045b85. Change-Id: I5da0f740a7073f14ad1ee7e2876a9cc71a706e7f Reviewed-on: https://chromium-review.googlesource.com/312231 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez a1393c59 2015-11-06T14:30:15 GLX backend: fallback to lesser swap_control extensions Reland with a compilation fix. We would like to use the EXT_swap_control extension to specify the swap interval of each drawable independently. However open source drivers do not expose this extension and instead expose the MESA and SGI versions that have a global swap interval. This commit changes the code to use the best swap_control extension it can, potentially changing the swap interval on each swap buffers on lesser extensions. BUG=angleproject:1206 Change-Id: I6c24217c7cfd5e09f60469cc7d6336cd68bc5c32 Reviewed-on: https://chromium-review.googlesource.com/312270 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez b2b6265b 2015-11-09T15:00:39 Display[GLX|CGL]: correctly set the config conformant bits Reland with a fix for a compilation that happened because of a bad rebase. Previously there was a TODO to check if we supported ES3 before setting the conformant bitfield. Now it is done. BUG=angleproject:1188 Change-Id: I3ef2bd2bc71fb61c465085d32cf08a633904caa6 Reviewed-on: https://chromium-review.googlesource.com/312271 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Dirk Pranke ac0f9b1f 2015-11-12T14:54:10 Add missing GN build dependency on -lrt for linux. Without this fix, angle_end2end_tests links fine on Trusty but not on Precise or older versions of Linux (util/linux/LinuxTimer.cpp calls clock_gettime(), which is part of libc on newer versions of the OS but requires -lrt on older versions. GYP had the dependency specified but GN didn't). R=cwallez@chromium.org BUG=432959, 531296 Change-Id: I70e1f701d099f3ba72c7e5dfd7af6d47658ffad9 Reviewed-on: https://chromium-review.googlesource.com/312298 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Olli Etuaho 3fed4306 2015-11-02T12:26:02 Unfold short-circuiting operators in loop conditions correctly Sometimes short-circuiting operators need to be unfolded to if statements. If the unfolded operator is inside a loop condition or expression, it needs to be evaluated repeatedly inside the loop. Add logic to UnfoldShortCircuitToIf that can move or copy the unfolded part of loop conditions or expressions to inside the loop. The exact changes that need to be done depend on the type of the loop. For loops may require also moving the initializer to outside the loop. The unfolded expression inside a loop condition or expression is moved or copied to inside the loop on the first traversal of the loop node, and unfolding to if is deferred until a second traversal. This keeps the code relatively simple. BUG=angleproject:1167 TEST=WebGL 2 conformance tests, dEQP-GLES2.functional.shaders.*select_iteration_count* Change-Id: Ieffc0ea858186054378d387dca9aa64a5fa95137 Reviewed-on: https://chromium-review.googlesource.com/310230 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho 15c2ac30 2015-11-09T15:51:43 Fix constructor parsing issues After this patch, ANGLE no longer accepts constructors where any of multiple parameters is sampler or void. Also, structure array constructors with just one parameter are now accepted. Error message for a constructor with no parameters is also more informative than before. BUG=angleproject:1193 TEST=angle_unittests Change-Id: I6b897973448cf500096f612b3b95dcc23aebc716 Reviewed-on: https://chromium-review.googlesource.com/311590 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Jamie Madill 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>
Jamie Madill 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>
Olli Etuaho f0eb5bbb 2015-11-12T12:50:32 Revert "Display[GLX|CGL]: correctly set the config conformant bits" Fixes build on Linux. This reverts commit 46439bae5d441e13abf071ac209f310f2b044256. Change-Id: Ie6da92e3ee6cc535f2c153a12af0aa63f6bea665 Reviewed-on: https://chromium-review.googlesource.com/312442 Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho 1d122789 2015-11-06T15:35:17 Fix constructor constant folding The previous solution for constant folding constructors was significantly overengineered and partially incorrect. Switch to a much simpler constructor folding function that does not use an AST traverser, but simply iterates over the constant folded parameters of the constructor and doesn't do any unnecessary checks. It also reuses some code for constant folding other built-in functions. This fixes issues with initializing constant matrices with only a single parameter. Instead of copying the first component of the constructor parameter all over the matrix, passing a vec4 or matrix argument now assigns the values correctly. BUG=angleproject:1193 TEST=angle_unittests, WebGL conformance tests Change-Id: I50b10721ea30cb15843fba892c1b1a211f1d72e5 Reviewed-on: https://chromium-review.googlesource.com/311191 Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho 7c3848e5 2015-11-04T13:19:17 Allow constant folding some non-constant expressions This requires removing the assumption that constant folding implies constness in the constant expression sense from various places in the code. This particularly benefits ternary operators, which can now be simplified if just the condition is a compile-time constant. In the future, the groundwork that is laid here could be used to implement more aggressive constant folding of user-defined functions for example. TEST=angle_unittests BUG=angleproject:851 Change-Id: I0eede806570d56746c3dad1e01aa89a91d66013d Reviewed-on: https://chromium-review.googlesource.com/310750 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Corentin Wallez 0ed0d8ac 2015-11-11T21:24:31 Revert "GLX backend: fallback to lesser swap_control extensions" Compile error, whoops This reverts commit 10ad877c41c05aa0764748844244ead6ebca6c1c. Change-Id: Ic8c8b7945c7f702b91fc34ab6862e1aadb3e82e7 Reviewed-on: https://chromium-review.googlesource.com/312260 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 10ad877c 2015-11-06T14:30:15 GLX backend: fallback to lesser swap_control extensions We would like to use the EXT_swap_control extension to specify the swap interval of each drawable independently. However open source drivers do not expose this extension and instead expose the MESA and SGI versions that have a global swap interval. This commit changes the code to use the best swap_control extension it can, potentially changing the swap interval on each swap buffers on lesser extensions. BUG=angleproject:1206 Change-Id: I48e40e443ff9a258fc33b38efb0acf6b1f3db103 Reviewed-on: https://chromium-review.googlesource.com/311244 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 46439bae 2015-11-09T15:00:39 Display[GLX|CGL]: correctly set the config conformant bits Previously there was a TODO to check if we supported ES3 before setting the conformant bitfield. Now it is done. BUG=angleproject:1188 Change-Id: Iffe30ebb5538e205695acd619ca17918d8550f3c Reviewed-on: https://chromium-review.googlesource.com/311690 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Jamie Madill 28afae5d 2015-11-09T15:07:57 Rename LinkedVarying to D3DVarying. Also move this type to D3D-only world. It was only used in the D3D renderer and has specific stuff like register/semantic indexes. Refactoring patch to clean up further work with Varyings. BUG=angleproject:1202 Change-Id: I4b1d6899e9eef356efc7d11e9cd6cf88b234aa76 Reviewed-on: https://chromium-review.googlesource.com/311240 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 076ca26f 2015-11-06T13:04:15 D3D11: Implement fixed primitive restart with tri fans. Similarly to line loops, we fully unpack the index data into a triangle list. BUG=angleproject:597 Change-Id: Icf91cb77df0a941640e34a975898543e1dac5752 Reviewed-on: https://chromium-review.googlesource.com/310501 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Austin Kinross a313f7aa 2015-10-28T12:58:03 Refactor EGLDeviceEXT to remove renderer dependency BUG=angleproject:1190 Change-Id: I38604de469c5f7efaf37bcebf20bc6425df35e62 Reviewed-on: https://chromium-review.googlesource.com/309512 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Austin Kinross <aukinros@microsoft.com>
Olli Etuaho 18b9deb4 2015-11-05T12:14:50 Support writing initializers using HLSL literal syntax Instead of using constructor functions to initialize variables, it is better to use literal initializer syntax provided by HLSL when it is possible. This way shader complexity is reduced and constant array initialization doesn't have to go through as many AST transformations. Before this patch, vec4 initialization would result in the following kind of HLSL: float4 f = float4(1.0, 2.0, 3.0, 4.0); After this patch, it will be: float4 f = {1.0, 2.0, 3.0, 4.0}; Before this patch, vec2 array initialization would result in the following kind of HLSL: float2 f[2] = {0, 0, 0, 0}; angle_construct_into_2_float2(f, float2(1.0, 2.0), float2(3.0, 4.0)); After this patch, it will be: float2 f[2] = {1.0, 2.0, 3.0, 4.0}; BUG=angleproject:1094 BUG=541551 TEST=WebGL conformance tests Change-Id: I9816a8d95a2cba3964922f6b561862d478da6145 Reviewed-on: https://chromium-review.googlesource.com/311160 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Austin Kinross 26d84357 2015-11-02T11:08:16 Fix some EGL validation issues BUG=angleproject:1207 Change-Id: I425397ca81dfd8be98ffdc5b874d978e7cf7758d Reviewed-on: https://chromium-review.googlesource.com/310194 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Austin Kinross <aukinros@microsoft.com> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Corentin Wallez 84f505db 2015-11-09T13:16:45 Revert "GLX backend: fallback to lesser swap_control extensions" This reverts commit 26e3736fe30b9f67ee4b488d8a9d31ded1b679d3.
Corentin Wallez 0e39f492 2015-11-09T13:16:41 Revert "Revert "Revert "renderergl_utils: Require explicit location qualifier for OpenGLES3""" This reverts commit 24db86441d148eb6a497b70c015296422ab48470.