src


Log

Author Commit Date CI Message
Corentin Wallez c8947ea2 2015-10-27T10:16:39 FunctionsGLX: add glXGetCurrent(Drawable|Context) support BUG=angleproject:1188 Change-Id: Ibf0fb4be3ec08cc43b2d9aba03a3d0fc12adce9d Reviewed-on: https://chromium-review.googlesource.com/309140 Tryjob-Request: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Jamie Madill e2cd53d6 2015-10-27T11:15:46 Implement primitive restart boolean query. We have support for primitive restart in the GL renderer, but we didn't complete support for the state query. BUG=angleproject:1101 Change-Id: I4c6ad10642f7de1d09718c4582f1037782cced58 Reviewed-on: https://chromium-review.googlesource.com/309151 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@google.com> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 362df97f 2015-10-27T11:15:45 Update WebGL test expectations. BUG=None Change-Id: Id2a88bcfd9ebf8152704ca9fc66d8401d5db43e2 Reviewed-on: https://chromium-review.googlesource.com/309150 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Olli Etuaho ae69d7e1 2015-10-07T17:19:50 Output layout qualifiers in GLSL output Output layout qualifiers for vertex shader attributes and fragment shader outputs. This applies both to ESSL output and GLSL output. If the source shader is in ESSL1, the code has no effect since there's no layout information in the AST. BUG=525930 TEST=angle_unittests, angle_end2end_tests Change-Id: I48b3aa56116c15d11599b030eed4c45be2c8fc7e Reviewed-on: https://chromium-review.googlesource.com/304550 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 839ce0b4 2015-10-23T13:13:12 Validate that compressed image formats are supported by the context. This validation was previously acceptable because all renderers supported all compressed formats in the format tables. Adding new formats that are not universally supported would have caused failures in the dEQP negative API tests. BUG=angleproject:1185 Change-Id: I102a3286a351a7c8936527963a382d9673341fc0 Reviewed-on: https://chromium-review.googlesource.com/308490 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Olli Etuaho 7535b761 2015-06-18T15:47:46 Remove dynamic indexing of matrices and vectors in HLSL Re-re-landing with fix to setting qualifiers on generated nodes. The previous version failed when a uniform was indexed, because it would set the uniform qualifier on some of the generated nodes and that interfered with the operation of UniformsHLSL. Re-landing after fixing D3D9 specific issues. HLSL doesn't support dynamic indexing of matrices and vectors, so replace that with helper functions that unroll dynamic indexing into switch/case and static indexing. Both the indexed vector/matrix expression and the index may have side effects, and these will be evaluated correctly. If necessary, index expressions that have side effects will be written to a temporary variable that will replace the index. Besides dEQP tests, this change is tested by a WebGL 2 conformance test. In the case that a dynamic index is out-of-range, the base ESSL 3.00 spec allows undefined behavior. KHR_robust_buffer_access_behavior adds the requirement that program termination should not occur and that out-of-range reads must return either a value from the active program's memory or zero, and out-of-range writes should only affect the active program's memory or do nothing. This patch clamps out-of-range indices so that either the first or last item of the matrix/vector is accessed. The code is not transformed in case the it fits within the limited subset of ESSL 1.00 given in Appendix A of the spec. If the code isn't within the restricted subset, even ESSL 1.00 shaders may require this workaround. BUG=angleproject:1116 TEST=dEQP-GLES3.functional.shaders.indexing.* (all pass after change) WebGL 2 conformance tests (glsl3/vector-dynamic-indexing.html) Change-Id: I16119f9092360fb72798f9550a6f4d3cfffdc92f Reviewed-on: https://chromium-review.googlesource.com/308790 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Zhenyao Mo <zmo@chromium.org>
Jamie Madill a33475b3 2015-10-26T13:08:58 Suppress failing textures tests in Linux dEQP. BUG=angleproject:1020 Change-Id: Ia074186c2f80b41c5a02523b3b3f564cd09ec557 Reviewed-on: https://chromium-review.googlesource.com/308920 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 81820494 2015-10-26T13:18:51 Don't use static const & locals for format tables. This hits an unimplemented feature in Clang. Work around this by using values instead of references. BUG=angleproject:1160 Change-Id: I94b08d8fd9a09bbbfbe4bcd1b6f9d7f0031ce18d Reviewed-on: https://chromium-review.googlesource.com/308910 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Austin Kinross bc781f31 2015-10-26T09:27:38 Re-re-land "Add GL_OES_vertex_array_object to D3D11 and GL renderers" + Include fixed validation logic for GL_UNPACK_SKIP_IMAGES and GL_UNPACK_ROW_LENGTH + Include fix for Clang build break BUG=angleproject:1186 Change-Id: I403a066e29614f532db6931755265d2ee088d442 Reviewed-on: https://chromium-review.googlesource.com/308746 Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 5296141b 2015-10-26T15:33:27 Revert "Re-land "Add GL_OES_vertex_array_object to D3D11 and GL renderers"" Fails build on Clang because Caps.cpp defines a constructor initializer out-of-order with the member variable order in the header. BUG=angleproject:1186 This reverts commit 7432321e03a70a99639b149f44cf80086feb4ea2. Change-Id: I2840d02e6e7b6bbc76eb495b5462c43116a5c4a6 Reviewed-on: https://chromium-review.googlesource.com/308800 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill f71e6618 2015-10-23T10:28:24 Update dEQP-GLES2 expectations. Some texture.mipmap.2d.projected are passing and fbo.api.valid_texcube_attachments seems to pass. BUG=angleproject:1026 BUG=angleproject:1020 Change-Id: I46ada896978cbb0a3bcbfb3985a5a50e4095ab98 Reviewed-on: https://chromium-review.googlesource.com/308391 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill b066669d 2015-10-26T10:38:18 Revert "Remove dynamic indexing of matrices and vectors in HLSL" This reverts commit 3766a40d6fda7e7190514ab7838a3f37169d863f. This CL was causing crashes in UniformHLSL.cpp, where an internal uniform "base" was attempted to be declared in HLSL. Was crashing on an external WebGL 3D canvas page (http://www.taccgl.org/?dbg=t). BUG=546686 Original commit message: Re-landing after fixing D3D9 specific issues. HLSL doesn't support dynamic indexing of matrices and vectors, so replace that with helper functions that unroll dynamic indexing into switch/case and static indexing. Both the indexed vector/matrix expression and the index may have side effects, and these will be evaluated correctly. If necessary, index expressions that have side effects will be written to a temporary variable that will replace the index. Besides dEQP tests, this change is tested by a WebGL 2 conformance test. In the case that a dynamic index is out-of-range, the base ESSL 3.00 spec allows undefined behavior. KHR_robust_buffer_access_behavior adds the requirement that program termination should not occur and that out-of-range reads must return either a value from the active program's memory or zero, and out-of-range writes should only affect the active program's memory or do nothing. This patch clamps out-of-range indices so that either the first or last item of the matrix/vector is accessed. The code is not transformed in case the it fits within the limited subset of ESSL 1.00 given in Appendix A of the spec. If the code isn't within the restricted subset, even ESSL 1.00 shaders may require this workaround. BUG=angleproject:1116 TEST=dEQP-GLES3.functional.shaders.indexing.* (all pass after change) WebGL 2 conformance tests (glsl3/vector-dynamic-indexing.html) Change-Id: I1d4b2e3888e91af7d5eebf743d12778698b6b903 Reviewed-on: https://chromium-review.googlesource.com/308770 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 587f3c35 2015-10-22T14:00:30 Refactor RendererD3D::applyShaders. Reduce the argument count to make future refactorings easier. BUG=angleproject:754 Change-Id: Ia8acfc2bc8f922ad6a115e198ea51a62710a422c Reviewed-on: https://chromium-review.googlesource.com/307873 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 334d615f 2015-10-22T14:00:28 Fix up the style in DynamicHLSL a bit. Use std::stringstream when possible, and use Context's caps instead of the Renderer's. BUG=angleproject:754 Change-Id: I2dc773709bbd612ab7ea372a358337c0a81869a3 Reviewed-on: https://chromium-review.googlesource.com/307872 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jacek Caban b2e2425a 2015-10-05T16:03:10 Fixed compilation on mingw. BUG=angleproject:1184 This is reland of parts of commit 566273222683314d. It also adds <algorithm> include in FunctionsWGL.cpp, which is needed for std::find on GCC. Change-Id: I852008087afa6b12da6e7e29934fa83390fded21 Reviewed-on: https://chromium-review.googlesource.com/308090 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Dian Xiang 0450dfcc 2015-09-17T11:25:27 Changed GetTextureFormatInfo to use static switch BUG=angleproject:1160 The find of the map table in GetTextureFormatInfo is showing up as a hotspot in draw call perf benchmark. Switching the map into a static switch should make it more efficient. Other tables that only GetTextureFormatInfo uses is also converted into static switching instead of maps for performance. Other tables include swizzle_format_table and load_functions_table which are both only used by GetTextureFormatInfo to generate the TextureFormat for a given internalFormat and d3d device caps. The static switches for each table is generated using a python script named gen_*.py. The data for each table is stored in JSON files. This makes it more flexible for additions and deletions. Change-Id: I0f40fcc2a215c85661863ea225891071cb2f2c71 Reviewed-on: https://chromium-review.googlesource.com/301770 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tryjob-Request: Dian Xiang <dianx@google.com> Tested-by: Dian Xiang <dianx@google.com> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Austin Kinross 7432321e 2015-10-23T10:07:18 Re-land "Add GL_OES_vertex_array_object to D3D11 and GL renderers" Include fixed validation logic for GL_UNPACK_SKIP_IMAGES and GL_UNPACK_ROW_LENGTH BUG=angleproject:1186 Change-Id: I9910a67733702a05991f62129d200ea39adb910c Reviewed-on: https://chromium-review.googlesource.com/308421 Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Austin Kinross d0925fd2 2015-10-23T10:22:01 Add "../../../third_party/deqp/src/data" to dEQP data directories Change-Id: I9bd4127d2eb24657e45b3a3b4668794d86b9d0e3 Reviewed-on: https://chromium-review.googlesource.com/308481 Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 023a290e 2015-10-23T16:43:24 Revert "Add GL_OES_vertex_array_object to D3D11 and GL renderers" This is failing the WebGL 2 test: WebglConformance.conformance2_state_gl_get_calls http://build.chromium.org/p/chromium.gpu.fyi/builders/Win8%20Debug%20%28NVIDIA%29/builds/9807 Also the dEQP-GLES3 tests: dEQP-GLES3.functional.state_query.integers.unpack_skip_images_get* BUG=angleproject:1186 This reverts commit eb36e275b8f63ebd442a2580e858ef671ddfe1be. Change-Id: If903c471f4610ac0b33a268df42f3329d672f429 Reviewed-on: https://chromium-review.googlesource.com/308460 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
hendrikw bb7740cc 2015-10-20T15:30:53 angle: prevent huge allocations when GL_MAX_VERTEX_ATTRIBS fails I'm not sure why yet, but when using angle in skia, getIntegerv(GL_MAX_VERTEX_ATTRIBS, &maxVertexAttribs) sometimes fails, and when that happens we attempt to allocate and array with the size of maxVertexAttribs, which is uninitialized, which could be huge. Prevent this by initializing the variable. Also sweep through other similar calls and ensure that these use initialized values (test code has not been updated) BUG=skia:4380 Change-Id: If1f3cf72f2b2829ad3933637af8778d574a20f61 Reviewed-on: https://chromium-review.googlesource.com/307239 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tryjob-Request: Dian Xiang <dianx@google.com> Tested-by: Hendrik Wagenaar <hendrikw@chromium.org>
Geoff Lang 9c970870 2015-10-23T09:31:26 Revert "Add ASTC compressed texture format info to the GL layer." This reverts commit 3bd6e18d1b6545b94bb82c23bcfa076579adf0ce. Change-Id: I44a82cec1757061897f35f3f63dc6bcc09429866 Reviewed-on: https://chromium-review.googlesource.com/308410 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Austin Kinross eb36e275 2015-10-20T13:44:10 Add GL_OES_vertex_array_object to D3D11 and GL renderers BUG=angleproject:1186 Change-Id: I7c685084b42f977902228cadca3263064881ba77 Reviewed-on: https://chromium-review.googlesource.com/307038 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tryjob-Request: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Kenneth Russell e4bd0418 2015-10-21T17:00:06 Enable EXT_discard_framebuffer in ANGLE's D3D11 backend. This doesn't seem to cause the video-related WebGL test failures anymore that were previously seen. BUG=497445 Change-Id: I705ae8735823ab7f4b26cf7696cdb746936e4447 Reviewed-on: https://chromium-review.googlesource.com/308001 Tryjob-Request: Kenneth Russell <kbr@chromium.org> Tested-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 6ea6f942 2015-09-11T13:11:22 Support GL_ETC1_RGB8_OES. Passes all dEQP tests related to etc1. Reland: Updated to work with the D3D11 renderer and re-tested with chromium's gles2_conform_test. Change-Id: Id2ce1b0eb58129152f67016ce2dc3ab19208269c Reviewed-on: https://chromium-review.googlesource.com/299770 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang aa71b58c 2015-08-27T13:11:20 Lazily load the Blit11 buffers and state objects. BUG=angleproject:1014 Change-Id: I46629253d164a7522c3a97574fcf591f395b04ea Reviewed-on: https://chromium-review.googlesource.com/295144 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 3bd6e18d 2015-09-22T09:30:02 Add ASTC compressed texture format info to the GL layer. BUG=angleproject:1185 Change-Id: Ia0bbe85fe8fa2b6a55289ff291f30e215d7a3ba9 Reviewed-on: https://chromium-review.googlesource.com/301146 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 6c0b8dd6 2015-10-22T11:08:52 Skip the TransformFeedbackTest.MultiContext on OSX AMD too. BUG=angleproject:889 Change-Id: Idf8d00ac13382970aa8b16313a56db32a3fca05f Reviewed-on: https://chromium-review.googlesource.com/307891 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 1a683460 2015-09-29T15:09:59 Implement TransformFeedbackGL. Reland with supression for TransformFeedbackTest.MultiContext on Linux AMD. BUG=angleproject:889 Change-Id: I6f2a2e856dacf16308de222dd0936bedbb3b175c Reviewed-on: https://chromium-review.googlesource.com/307871 Tryjob-Request: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang a9ca8e20 2015-10-22T14:34:20 Revert "Implement TransformFeedbackGL." Failing on AMD Linux bots. This reverts commit a9c5288192f90ebf03b0d26d86964b4fbce74bcb. Change-Id: I2a2db8c3d96c4b927d7d784486c6df772ae63084 Reviewed-on: https://chromium-review.googlesource.com/308130 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang a9c52881 2015-09-29T15:09:59 Implement TransformFeedbackGL. BUG=angleproject:889 Change-Id: I347ac21cfd0a56654a75fb41ac24c6c67ede3a05 Reviewed-on: https://chromium-review.googlesource.com/302351 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tryjob-Request: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jacek Caban 464bfc86 2015-10-07T12:12:02 Use .def file to export functions using dllexport. BUG=angleproject:1183 This is a reland of part of commit 566273222683314dfc8ac1cdb9bf6deb5d2b4c65. The original commit caused warnings on 64-bit MSVC linker. This version removes declspec(dllexport) from exported ANGLE APIs (for which we need a new ANGLE_PLATFORM_EXPORT macro). It also makes those APIs stdcall on Windows builds. Change-Id: Iee2ab7e43ef0b98924f5759b5e1b333307052235 Reviewed-on: https://chromium-review.googlesource.com/304501 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang d470f472 2015-10-20T13:34:25 Don't ASSERT shader compilation success in ShaderGL. This assertion was useful for debugging the initial implementation but it is becoming an issue in tryjobs where tests will hang instead of fail due to driver bugs. BUG=angleproject:882 Change-Id: Ib23a0d16dfe250ea175a166b5e277bf07d80a2fa Reviewed-on: https://chromium-review.googlesource.com/307460 Tryjob-Request: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jinyoung Hur 85769f0d 2015-10-20T17:08:44 Re-land "Only require that the stencil masks are same as many effective bits set" It seems reasonable to validate the equality between stencilWriteMask and stencilBackWriteMask only by comparing the effective bits. An existing dEQP test[1] and a WebGL test[2] also use the max size of stencil bits for checking the stencil mask values. [1] StencilWriteMaskSeparateTestCase (gles3/functional/ es3fIntegerStateQueryTests.cpp) [2] https://www.khronos.org/registry/webgl/sdk/tests/conformance/state/ gl-get-calls.html (Search for "minimumRequiredStencilMask ") Re-land with fix for Clang warning. Change-Id: I4cadaffced04ca55fa6daf7ac6a462368e0cfeec Reviewed-on: https://chromium-review.googlesource.com/307530 Reviewed-by: Jinyoung Hur <hurims@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 1220bbbd 2015-10-20T21:04:11 Revert "Only require that the stencil masks are same as many effective bits set" Reverting temporarily, causes a compile warning with Clang: ..\..\third_party\angle\src\libANGLE\renderer\d3d\d3d11\Renderer11.cpp(242,7) : error: field 'mDebug' will be initialized after field 'mCurStencilSize' [-Werror,-Wreorder] mDebug(nullptr), ^ 1 error generated. ninja: build stopped: subcommand failed. http://build.chromium.org/p/tryserver.chromium.win/builders/win_clang_dbg/builds/98 This reverts commit 685aa4b87d2c6a3f13134c77af8690e5f3d6aa6d. Change-Id: I9dab08b26e2eddf508a7bcde7813c25be350bf31 Reviewed-on: https://chromium-review.googlesource.com/307520 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang de6144f1 2015-10-20T10:55:44 Add support for EAC and ETC2 texture formats with D3D11. Passes: * dEQP-GLES3.functional.implementation_limits.num_compressed_texture_formats * dEQP-GLES3.functional.implementation_limits.compressed_texture_formats * dEQP-GLES3.functional.texture.*eac* * dEQP-GLES3.functional.texture.*etc2* BUG=angleproject:598 Change-Id: Iaec1756b540f8f44c821fd8b9ba63f115ebe6de0 Reviewed-on: https://chromium-review.googlesource.com/305520 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Austin Kinross fe7e9ed4 2015-10-13T14:36:00 Make DebugAnnotator::getStatus work on Windows 10 (WinRT) Change-Id: I860a814490ac643eb3d7d1b770c956f0dce3e39e Reviewed-on: https://chromium-review.googlesource.com/305309 Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Peter Kotwicz 27460dfc 2015-10-15T23:48:34 Do not attempt to compile angle_end2end_tests or angle_perftests on Android BUG=507294 Change-Id: Ied198a26f5eecab1dc608a06c2cc5e3be08cc28c Reviewed-on: https://chromium-review.googlesource.com/306460 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Peter Kotwicz <pkotwicz@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Peter Kotwicz <pkotwicz@chromium.org>
Jamie Madill d2c52e3b 2015-10-14T17:07:05 Fix debug annotations and shaders. The Program refactor inadvertantly broken Debug annotations. Fix this by correctly passing the path to the temporary shader source in the first "C" string argument to ShCompile, instead of as the first part of the source string. BUG=angleproject:1177 TEST=manual testing with MSVS Change-Id: Ie77bb11b51645a474b542ddd2ae0f391e019e341 Reviewed-on: https://chromium-review.googlesource.com/306210 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Jeff Muizelaar 27746966 2015-10-14T18:53:35 Add missing include guard to FunctionsWGL.h Change-Id: I603eb99219234bb0292432ec41ede011c9c7d3ca Reviewed-on: https://chromium-review.googlesource.com/305830 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jinyoung Hur 685aa4b8 2015-09-29T00:58:02 Only require that the stencil masks are same as many effective bits set It seems reasonable to validate the equality between stencilWriteMask and stencilBackWriteMask only by comparing the effective bits. An existing dEQP test[1] and a WebGL test[2] also use the max size of stencil bits for checking the stencil mask values. [1] StencilWriteMaskSeparateTestCase (gles3/functional/ es3fIntegerStateQueryTests.cpp) [2] https://www.khronos.org/registry/webgl/sdk/tests/conformance/state/ gl-get-calls.html (Search for "minimumRequiredStencilMask ") Change-Id: I68cefbe8a9f69c5a9ebcb30027a05581e3024add Reviewed-on: https://chromium-review.googlesource.com/302703 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Jinyoung Hur <hurims@gmail.com> Commit-Queue: Jinyoung Hur <hurims@gmail.com> Tryjob-Request: Jamie Madill <jmadill@chromium.org>
hendrikw f3586994 2015-10-14T18:27:07 angle: move DeallocateCurrent into windows only code DeallocateCurrent is only called from within DllMain, which means it's only called on windows. On the mac, the warning unused-function may be triggered. Move DeallocateCurrent to windows only code. Change-Id: I61ba602af78d546a91cf009ae7350cf03eaa84dd Reviewed-on: https://chromium-review.googlesource.com/305880 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tryjob-Request: Corentin Wallez <cwallez@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Cooper Partin e115c3be 2015-10-14T13:55:10 Fixed incorrect buffer count for emulated points rendering Emulated points rendering for FL9_3 was getting lucky because the value of maxDiff just happened to be large enuough to include the additional pointsprite vertex buffer in the total buffer count used in IASetVertexBuffers. maxDiff is calculated while buffers and offsets are being configured. The pointsprite buffer was not updating maxDiff resulting in an off-by one calculation which causes TDRs on some Qualcomm chipsets. This issue was discovered using Cocos2dx. BUG=angleproject:1176 Change-Id: I3b3af1757e1cef48bbc62e68695a3e239fef77bf Reviewed-on: https://chromium-review.googlesource.com/305752 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Cooper Partin <coopp@microsoft.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Austin Kinross 7a3e8e24 2015-10-08T15:50:06 Don't include samplers in uniform vector count validation Change-Id: Id2820643b70d3266c82eb10a5f05d3a5886e9323 Reviewed-on: https://chromium-review.googlesource.com/304871 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Austin Kinross <aukinros@microsoft.com>
Austin Kinross 6655878f 2015-10-07T15:47:43 UniformTest.SamplerUniformsAppearOnce should check for VTF support Change-Id: If4b1602a5f706b5343fc1757962341602354b88e Reviewed-on: https://chromium-review.googlesource.com/304389 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Austin Kinross <aukinros@microsoft.com>
Austin Kinross d4d5084b 2015-10-07T15:57:42 Fix "blob content mismatch between level9 and d3d10 shader" errors on 9_3 Fixes these dEQP failures on 9_3: + dEQP-GLES2.functional.shaders.struct.local.loop_nested_struct_array_vertex + dEQP-GLES2.functional.shaders.struct.local.loop_nested_struct_array_fragment Change-Id: I3e3b3552fe842c8a3c04363bf966c121e40dd9dc Reviewed-on: https://chromium-review.googlesource.com/304489 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tryjob-Request: Geoff Lang <geofflang@chromium.org> Tested-by: Austin Kinross <aukinros@microsoft.com>
Minmin Gong adff67b5 2015-10-14T10:34:45 Re-land "Implements more pack/unpack states." Pack: row length, skip rows, skip pixels. Unpack: image height, skip images, skip rows, skip pixels. Note that PBOs are not covered by this change. Re-land with fix for test expectations. BUG=angleproject:512 BUG=angleproject:1095 Change-Id: I71d8d3bd8fc1f2c75ca16ac2634d5eafcbd71f26 Reviewed-on: https://chromium-review.googlesource.com/305522 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill c7473924 2015-10-14T14:33:19 Revert "Implements more pack/unpack states. Pack: row length, skip rows, skip pixels. Unpack: image height, skip images, skip rows, skip pixels. Note that PBOs are not covered by this change." Expectations still not correct. This removes suppressions for two failing tests: functional.texture.specification.teximage3d_depth_pbo.depth_component32f_2d_array dEQP-GLES3.functional.texture.specification.teximage3d_depth_pbo.depth32f_stencil8_2d_array BUG=angleproject:512 BUG=angleproject:1095 This reverts commit 72e7013e68a24107b9082629fc52d59a78998eb2. Change-Id: Id81b6e616e61535b8504890ce57591813e22af69 Reviewed-on: https://chromium-review.googlesource.com/305521 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Olli Etuaho a6996685 2015-10-12T14:32:30 Automatically enable highp in fragment shaders on ESSL3 Most code using the translator already enables highp with the resources flag when a shader spec that accepts ESSL3 is used, but for example the shader_translator utility doesn't. This fix makes sure that highp is always enabled when a fragment shader written in ESSL3 or newer is being compiled. This will make shader_translator easier to use for testing ESSL3 shaders. BUG=541550 TEST=angle_unittests Change-Id: Ia1911677c55f3c5d921829a8cbb808847ac8b636 Reviewed-on: https://chromium-review.googlesource.com/305190 Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Jamie Madill e73a1e84 2015-10-13T19:30:04 Revert "Fixed FL9_3 shaders that use glPointCoord without glPointSize." Failing test in angle_end2end_tests: GLSLTest.MaxMinusTwoVaryingVec4PlusTwoSpecialVariables: program link failed: C:\fakepath(87,5-18): error X4000: variable 'output' used without having been completely initialized This reverts commit 73e32ee161b7b613e9e25e3cc393851c430eeb98. Change-Id: Ie47cb3a92ccfa1271a880a8b7e5a87b05963bab9 Reviewed-on: https://chromium-review.googlesource.com/305530 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Minmin Gong 72e7013e 2015-10-01T17:19:45 Implements more pack/unpack states. Pack: row length, skip rows, skip pixels. Unpack: image height, skip images, skip rows, skip pixels. Note that PBOs are not covered by this change. BUG=angleproject:512 BUG=angleproject:1095 Change-Id: Ia2fd7e52615d4aa08011dd615fcc20b79672d355 Reviewed-on: https://chromium-review.googlesource.com/304908 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Cooper Partin 73e32ee1 2015-09-21T14:30:14 Fixed FL9_3 shaders that use glPointCoord without glPointSize. This change fixes a Shader error on FL9_3 that reports Vertex/Pixel Shader linkage signatures between stages being incompatible when glPointCoord is used without glPointSize. Change-Id: I93ffb6c6dd38f26e2156a374b1b58ecc3a5f250b Reviewed-on: https://chromium-review.googlesource.com/301450 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Cooper Partin <coopp@microsoft.com>
Corentin Wallez 02f98029 2015-10-13T11:13:34 Use named value-parameterized tests for dEQP gtests This replace the non-descriptive digit at the end of the test name by the name of the dEQP test being run. Reland, enabling the named tests only in standalone. BUG=angleproject:1153 Change-Id: I1336d38425c19305fae8279a42d4931cc516215c Reviewed-on: https://chromium-review.googlesource.com/304171 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Austin Kinross 08528e17 2015-10-07T16:24:40 glTexSubImage2D should always allow non-power-of-two inputs If GL_OES_texture_npot isn't active then ANGLE currently prevents calls to glTexSubImage2D with: - level > 0 - width/height NPOT This isn't correct. It is legitimate to supply data to a NPOT subregion of a POT texture via glTexSubImage2D. Fixes these dEQP tests on 9_3: dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.a8_2d dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.a8_cube dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.l8_2d dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.l8_cube dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.la88_2d dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.la88_cube dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgb565_2d dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgb565_cube dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgb888_2d dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgb888_cube dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgba4444_2d dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgba4444_cube dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgba5551_2d dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgba5551_cube dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgba8888_2d dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgba8888_cube Change-Id: I5889a27edbfa807995fa20b16f36456f676b80fc Reviewed-on: https://chromium-review.googlesource.com/304612 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Austin Kinross <aukinros@microsoft.com> Tested-by: Jamie Madill <jmadill@chromium.org>
Olli Etuaho 2f6ddf31 2015-09-22T16:10:07 Allow double underscore in macro names Double underscore is allowed according to GLSL ES 3.10, and based on Khronos discussions the intent is that this should also apply to older specs. The dEQP tests also check this, and WebGL tests that check the opposite were recently removed. The error is changed into a warning. BUG=angleproject:989 TEST=angle_unittests dEQP-GLES3.functional.shaders.preprocessor.* (2 tests start passing) dEQP-GLES2.functional.shaders.preprocessor.* (2 tests start passing) Change-Id: I582c01b4adc8fc416354351e02b776f2cc602408 Reviewed-on: https://chromium-review.googlesource.com/300965 Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com>
Brandon Jones 1048ea75 2015-10-06T15:34:52 Made program binaries cache information needed for getTransformFeedbackVarying BUG=angleproject:1173 Change-Id: Ib8883b32f54f5d38fb94e85decae2dcee108facf Reviewed-on: https://chromium-review.googlesource.com/304381 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org>
Jamie Madill 4a3c2341 2015-10-08T12:58:45 Program: Clean up UBO info gathering. The data size & block member info was getting messy, so clean up how we query this from the Impl layer. Also remove the register information from gl::UniformBlock, moving it into the D3D-only world. BUG=angleproject:1172 Change-Id: I40af658ebbd6b7c1a4251906a387ebcbb621cf77 Reviewed-on: https://chromium-review.googlesource.com/304150 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill e826b9f7 2015-10-09T16:41:06 Revert "Fixed compilation on mingw." This causes some linker warnings. I don't think we should add linker warnings to Chrome, so reverting this temporarily until we can land your CL with the correct using of export keywords. Please re-submit the fixed CL. This reverts commit 566273222683314dfc8ac1cdb9bf6deb5d2b4c65. Change-Id: I21fa623af31fac06de6afbefa50c9ea1ec157c15 Reviewed-on: https://chromium-review.googlesource.com/305000 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 000b2f49 2015-10-09T15:33:14 Revert "Implements more pack/unpack states. Pack: row length, skip rows, skip pixels. Unpack: image height, skip images, skip rows, skip pixels." This is causing failures in dEQP-GLES3.functional.texture.specification.teximage3d_depth_pbo.depth_component24_2d_array First failing build on the bot: http://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20Release%20dEQP%20%28NVIDIA%29/builds/3635 Please fix the failure and re-land your CL with the fix. BUG=angleproject:512 BUG=angleproject:1095 This reverts commit f1bb3f0569d5ef41b17f8ad0add7308f9d0f0de1. Change-Id: I30f61db888b0adf73a1d98bbeeb2428068119627 Reviewed-on: https://chromium-review.googlesource.com/304990 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Minmin Gong f1bb3f05 2015-10-01T17:19:45 Implements more pack/unpack states. Pack: row length, skip rows, skip pixels. Unpack: image height, skip images, skip rows, skip pixels. BUG=angleproject:512 BUG=angleproject:1095 Change-Id: I11e3bc05d23419b72c92b96aabd3f0bacd983626 Reviewed-on: https://chromium-review.googlesource.com/304370 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Corentin Wallez 13473fae 2015-10-08T08:02:34 Suppress EGLSurfaceTest.MakeCurrentTwice on Mac chromium builds This is to remove a failure on the intel trybots were ANGLE is currently enable to create any context while this test expects creation to succeed. BUG=angleproject:891 Change-Id: I0450da3211fd958a17f6db0d7e2a85968d6e3a87 Reviewed-on: https://chromium-review.googlesource.com/304730 Tryjob-Request: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez af5756a1 2015-10-01T11:49:39 Only support ES3 if texture swizzling is available On OSX 10.8 with an Intel HD 3000 we were wrongly exposing ES3 when texture swizzling was not available. BUG=angleproject:891 Change-Id: If71acdc1943ab2f013dc80cd28eab130c32fb201 Reviewed-on: https://chromium-review.googlesource.com/303392 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tryjob-Request: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Austin Kinross 6d85f039 2015-10-07T15:50:23 Fix WinRT compilation issue in ShaderD3D.cpp Change-Id: If7bd4e9cdba3d893f2ee28a70b894af3fb37ae30 Reviewed-on: https://chromium-review.googlesource.com/304488 Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang f22c6b13 2015-08-31T13:28:12 Store WGL extensions in FunctionsWGL. Add helpers for checking which extensions are available instead of discarding the extension strings after function loading. BUG=angleproject:1144 Change-Id: Ie3d209cd5f6f116bbedaa618a59a4c2d7ddda4d6 Reviewed-on: https://chromium-review.googlesource.com/296360 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 1ea9aaad 2015-10-07T11:13:55 Add suppressions for several Intel failures. Also add a new test for UBOs to end2end_tests. BUG=540538 Change-Id: I6ffa6ba061a2c33811c65719deaa4302f1dbd704 Reviewed-on: https://chromium-review.googlesource.com/304521 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Olli Etuaho b3fbd867 2015-09-30T17:55:02 Fix setting const qualifier on indexing expression Resubmitting now that separate fix for updating mangled names of types has been merged. A unit test is added to make sure that the same regression doesn't happen again. Previously, constness of indexing expressions did not take the index expression into account. Now constness correctly takes into account both the base expression and the index expression. Setting the type of expressions that index arrays is also simplified. BUG=angleproject:1170 TEST=angle_unittests Change-Id: Ie9b6aaee8185b945c03657b13d9513cc55cd2a9f Reviewed-on: https://chromium-review.googlesource.com/303601 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Olli Etuaho b12531c9 2015-10-05T14:40:40 Invalidate mangled name of TType if the type is changed Sometimes, the mangled name of a type is already generated when the type is still being changed. For example, this could happen when the type of A[i] is generated by copying the type of A (already mangled) and calling clearArrayness() on the copy. Make sure that the mangled name gets updated if the type is changed by clearing the mangled name when something affecting it is changed. BUG=angleproject:1170 BUG=538692 TEST=angle_unittests Change-Id: I9dfacea653f56536e1573a6dbf60ff21da7cc5ab Reviewed-on: https://chromium-review.googlesource.com/303846 Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Geoff Lang f0aa8429 2015-09-29T15:08:34 Implement QueryGL. Passes all tests in: * dEQP-GLES3.functional.occlusion_query * angle_end2end_tests BUG=angleproject:887 Change-Id: I643ab4c28cb545de9e7b0e1740e3fd8e2aa9d3d9 Reviewed-on: https://chromium-review.googlesource.com/302338 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tryjob-Request: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jacek Caban 56627322 2015-10-05T16:03:10 Fixed compilation on mingw. Change-Id: I5734f789f25fbc6b9b90f2043459a3a5f72008c4 Reviewed-on: https://chromium-review.googlesource.com/303602 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 90208e95 2015-10-05T15:40:36 Check for GL_OES_get_program_binary before running ProgramBinaryTest. BUG=angleproject:882 Change-Id: I2e5f4aeac6ff413d5f69097957718c52bd7828dd Reviewed-on: https://chromium-review.googlesource.com/304170 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 33bb5ad6 2015-10-05T13:16:41 Only apply uniform buffers referenced by the Program. Continues to pass dEQP-GLES3.functional.ubo.* Performance regression in draw call overhead is fixed. BUG=angleproject:882 BUG=angleproject:1171 Change-Id: I1d827d70611c1bf743a7930796e31a54aca04b1e Reviewed-on: https://chromium-review.googlesource.com/303473 Tryjob-Request: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Christopher Cameron 7e921616 2015-10-01T14:00:04 Add texture2DRect -> texture conversion for OpenGL core profile BUG=534114 Change-Id: If0e1557a2399436b1b160407ced2d265f42df5f0 Reviewed-on: https://chromium-review.googlesource.com/303761 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: ccameron chromium <ccameron@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang e1a27751 2015-10-05T13:16:04 Make more gl::Program methods const. BUG=angleproject:1123 Change-Id: Ib48c523538322871a0deec7ba6497c8797967ef1 Reviewed-on: https://chromium-review.googlesource.com/303305 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
tmartino 7c10269d 2015-10-02T16:43:40 Correcting INVALID_ENUM issue for GLES3. Similar to prior fix for GLES2, validation now correctly returns INVALID_ENUM instead of shorting out. BUG=angleproject:1168 Change-Id: I8247b0b3520b0f116856049c85606bb44fa24021 Reviewed-on: https://chromium-review.googlesource.com/303472 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Tommy Martino <tmartino@chromium.org>
Geoff Lang 01306fc7 2015-10-05T16:53:10 Revert "Implement program binary in ProgramGL." Causing issues on AMD and Intel bots. This reverts commit 6d8926691a8ed59add7602af602af3e6f7a81ab6. Change-Id: Ifb395f78a6a44b874ac13da1f252f604a1a7b0bc Reviewed-on: https://chromium-review.googlesource.com/303439 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 5a85bee2 2015-10-02T14:06:06 Add angle_perftests to GN. Also clean up the formatting a bit with gn format. BUG=537008 Change-Id: I23337e634f20f611aaae7d17ef47b5784738bbe8 Reviewed-on: https://chromium-review.googlesource.com/303793 Reviewed-by: Kenneth Russell <kbr@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 6d892669 2015-10-02T09:57:30 Implement program binary in ProgramGL. Verified by end2end tests and manually checking that chrome can load and save program binaries. BUG=angleproject:882 Change-Id: Ic7e4b443365af6ea2d9ce5b0ecfb685eac85f479 Reviewed-on: https://chromium-review.googlesource.com/303828 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Olli Etuaho 36b73909 2015-10-05T11:58:50 Fix standalone ninja build on Linux Preprocessor conditions referring to undefined macros failed standalone build which uses the -Werror=undef setting. This same error has been in multiple patches, and reverting them would cause test breakage, so fixing the issue is simpler than reverting. Change-Id: I4a079ef5d823eed76ebdefa8be413f63d29a5f6a Reviewed-on: https://chromium-review.googlesource.com/304020 Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho 5f579b1b 2015-08-14T17:44:43 Improve handling of internal function calls Many parts of the shader translator that deal with function calls have been written without internal function calls in mind. Fix some of these so that they can handle internal function calls. -Fix TLValueTrackingTraverser handling a shader where there are an internal and non-internal function of the same name. -Maintain internalness when shallow copying function calls in SeparateExpressionReturningArrays and ArrayReturnValueToOutParameter AST transformations. -Output function internalness in intermOut. BUG=angleproject:1116 TEST=angle_unittests Change-Id: Ic65e2803062b807651f1b3952409face6aceb780 Reviewed-on: https://chromium-review.googlesource.com/303353 Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Jamie Madill e623bd46 2015-10-02T19:14:15 Revert "Fix setting const qualifier on indexing expression" Failing to compile shaders which are used in some layout_tests, see http://crbug.com/538692 for logs and bad shaders. We should diagnose if the shaders are faulty or if there's a bug in this CL and take appropriate action, but first priority is to get the tests running again. BUG=538692 BUG=angleproject:1170 This reverts commit 16a79cd169420cdf0254964b1bac9dd9964a8119. Change-Id: Iea14c58d87041bcf5ba645b7076ba0936dea6b9d Reviewed-on: https://chromium-review.googlesource.com/303794 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Corentin Wallez 4fbec003 2015-10-01T11:47:47 Check for GL_INVALID_INDEX instead of -1 for GetUniformIndices While they have the same bit representation, the variable was unsigned so the comparison would always fail, which triggered a compilation warning. BUG= Change-Id: Idbbdb942b71d59f95e65c072dbbfdf31d14eda05 Reviewed-on: https://chromium-review.googlesource.com/303391 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tryjob-Request: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 4e7196a1 2015-09-30T14:44:15 UniformTest.FloatUniformStateQuery do computations in doubles When using floats, when testing INT_MAX, the loss of precision causes an undefined behavior when casting from float to int. In this cause on clang 3.6 on Mac, the integer wrapped and became INT_MIN. Reland with warnings fixes for MSVC on standalone builds. BUG=angleproject:891 Change-Id: Ieed609840ae22e89f51c3a85cd5309c4d8bc52ea Reviewed-on: https://chromium-review.googlesource.com/303900 Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang e746890e 2015-10-02T10:46:24 Return the correct value when querying GL_MAX_FRAGMENT_UNIFORM_VECTORS. BUG=angleproject:1087 Change-Id: Ibd0918f29b65c509e749953059d584ea83776a31 Reviewed-on: https://chromium-review.googlesource.com/303775 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 8bd4b6c5 2015-10-01T16:17:48 Load the ARB_sampler_objects entry points in FunctionsGL. Load the sampler object entry points and limit supported ES version to 2 if samplers are not available. BUG=angleproject:1162 Change-Id: Ida7cf0cc0a81dd3714d958a98efe0c6e973ecca2 Reviewed-on: https://chromium-review.googlesource.com/303770 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang c46cc2f3 2015-10-01T17:16:20 Remove ProgramImpl::getBinaryFormat. Because we only expose GL_ANGLE_program_binary, we're only allowed to use the GL_PROGRAM_BINARY_ANGLE binary type. This should be enforced at the GL level. If implementations wish to use multiple types of formats internally, they are able to by writing those enums to their binaries. BUG=angleproject:882 BUG=angleproject:1123 Change-Id: I43685958814e4333b7cef3952d92c1017dc885f8 Reviewed-on: https://chromium-review.googlesource.com/303827 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 2b280922 2015-10-01T17:05:15 Remove the unused ProgramImpl::getShaderVersion method. BUG=angleproject:882 BUG=angleproject:1123 Change-Id: Iace1d6c2c594f0b00c18d595f14cef9bce6f3595 Reviewed-on: https://chromium-review.googlesource.com/303826 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
tmartino 0ccd5aee 2015-10-01T14:33:14 Correcting INVALID_OPERATION to INVALID_ENUM Should return INVALID_ENUM when uncompressed texture passed to compressed image constructor. BUG=angleproject:1168 Change-Id: If30f0407e7455d6e19432831883d33a1e8bfec9a Reviewed-on: https://chromium-review.googlesource.com/303750 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Olli Etuaho ee0d4c52 2015-10-02T15:50:06 Revert "UniformTest.FloatUniformStateQuery do computations in doubles" This change broke standalone build on Windows. Two casts from double to GLfloat were missing. This reverts commit 7aa4cae26f755dc9e6646e669fc3222f9dd63b20. BUG=angleproject:891 Change-Id: I69cf773c940fd43b06f21c1ee86e60bac6825684 Reviewed-on: https://chromium-review.googlesource.com/303352 Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Corentin Wallez 630d85cb 2015-09-30T14:35:48 Fix an undefined behavior in clampCast This undefined behavior appeared in angle_end2end_tests compiled with clang 3.6 on Mac. BUG=angleproject:891 Change-Id: I840b40a7bd54c9cfaeb0fe6784b73f875f9d5502 Reviewed-on: https://chromium-review.googlesource.com/303337 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 7aa4cae2 2015-09-30T14:44:15 UniformTest.FloatUniformStateQuery do computations in doubles When using floats, when testing INT_MAX, the loss of precision causes an undefined behavior when casting from float to int. In this cause on clang 3.6 on Mac, the integer wrapped and became INT_MIN. BUG=angleproject:891 Change-Id: Ieb3199fd33c25e7da8d154f88658e06f01d53c0e Reviewed-on: https://chromium-review.googlesource.com/303338 Tryjob-Request: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 25e563fe 2015-09-29T13:21:27 Add -Wnon-virtual-dtor and fix a warning. BUG= Change-Id: I234e3a963e110762bac2a89d146b60f028928fb5 Reviewed-on: https://chromium-review.googlesource.com/302487 Tryjob-Request: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang 5d124a69 2015-09-15T13:03:27 Support UBOs in RendererGL and ProgramGL. Reland: fix compile warnings on Windows. BUG=angleproject:882 BUG=angleproject:883 Change-Id: If4844d50d43ff9b765f64606e8f08d65a1afd9a4 Reviewed-on: https://chromium-review.googlesource.com/303431 Tryjob-Request: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang cf2dbd91 2015-10-01T15:48:22 Revert "Support UBOs in RendererGL and ProgramGL." Compile error. This reverts commit 97d82b724b71be464f2aff377f056cade44fca94. Change-Id: I71ae10cb01b8ded0297eaf4742fb1098ce02a9bb Reviewed-on: https://chromium-review.googlesource.com/303303 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 97d82b72 2015-09-15T13:03:27 Support UBOs in RendererGL and ProgramGL. BUG=angleproject:882 BUG=angleproject:883 Change-Id: I36f8ef42d87e289658a6ba4899380bc72b9bcebf Reviewed-on: https://chromium-review.googlesource.com/299871 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang f6ade2ec 2015-09-29T11:21:43 Implement GL_EXT_debug_marker for RendererGL. Passes dEQP-GLES2.functional.debug_marker.* Change-Id: I37f2b6724f32867d2e428613b1b6d9c8377c6d60 Reviewed-on: https://chromium-review.googlesource.com/302990 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 9bf70365 2015-09-30T15:07:48 Fix a possible OOB read in InsertD3D11FormatInfo. It's unclear how this might happen, as it's during static map init, but add a fail-safe to be sure. BUG=526779 Change-Id: I5aa33f9bed30d4a8c1e9937a0b8c5fd11a7503d7 Reviewed-on: https://chromium-review.googlesource.com/302385 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Olli Etuaho 16a79cd1 2015-09-30T17:55:02 Fix setting const qualifier on indexing expression Previously, constness of indexing expressions did not take the index expression into account. Now constness correctly takes into account both the base expression and the index expression. Setting the type of expressions that index arrays is also simplified. BUG=angleproject:1170 TEST=angle_unittests Change-Id: Ie2d122020cc252655ab0eea96886b9f85931b80a Reviewed-on: https://chromium-review.googlesource.com/303350 Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Corentin Wallez d4b5054d 2015-09-28T12:19:26 compiler: Rewrite do-while loops as while loops This works around a Mac driver shader compiler bug that makes many do-while loops cause GPU-hangs when ran. BUG=angleproject:891 Change-Id: I29828d6ea9e887ad0ed0c577f1deb41fb632a900 Reviewed-on: https://chromium-review.googlesource.com/302465 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 7b43c9b0 2015-09-30T10:47:30 Add suppressions for failing end2end tests on Mac Intel BUG=angleproject:891 Change-Id: I88a8bcc4a6911c92bdb981aca34a0557ad451df7 Reviewed-on: https://chromium-review.googlesource.com/303390 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang 242468f3 2015-09-24T14:15:41 Sync scissor state before calling BlitFramebuffer. Now passes: * dEQP-GLES3.functional.fragment_ops.scissor.framebuffer_blit_center * dEQP-GLES3.functional.fragment_ops.scissor.framebuffer_blit_corner * dEQP-GLES3.functional.fragment_ops.scissor.framebuffer_blit_none BUG=angleproject:885 Change-Id: Ifec2995562c684b3a4b287619c9bf7a25512b1fd Reviewed-on: https://chromium-review.googlesource.com/302384 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Kimmo Kinnunen 5f0246ca 2015-07-22T10:30:35 Implement gl_FragDepth for GLES SL 3.0 Makes it an error to access gl_FragDepthEXT in #version 300 es shader. TODO: Lacks the feature to make "#extension GL_EXT_frag_depth : require" an error for #version 300 es. Reland of: https://chromium-review.googlesource.com/#/c/287570 BUG=angleproject:1102 TEST=angle_unittest Change-Id: I064d918d65f37539cb1e14f12173ca5591a4ea3f Reviewed-on: https://chromium-review.googlesource.com/301711 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>