Log

Author Commit Date CI Message
Jamie Madill 5e017349 2016-02-01T11:13:04 Add Debug labels to more D3D11 objects. This makes debugging using graphics tools easier on Windows. BUG=angleproject:1290 BUG=angleproject:1299 Change-Id: Ia3889c10fd8e23486f0122e0b567c470517bc9e0 Reviewed-on: https://chromium-review.googlesource.com/324821 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Austin Kinross 69a75a2e 2015-11-03T16:40:28 Add an EGL spec for EGL_experimental_present_path_angle BUG=angleproject:1219 Change-Id: I1e303ec30ffe877aebf00720620b818c335fac76 Reviewed-on: https://chromium-review.googlesource.com/310652 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Austin Kinross <aukinros@microsoft.com>
Ian Ewell 53f59f4e 2016-01-28T17:36:55 Finish basic timer query support in GL backend EXT_disjoint_timer_query is feature complete with the WebGL tests passing with Chromium using ANGLE as a backend. There is some flakiness in the timestamp query test on WebGL, but investigation revealed a bug on Chromium's end and a fix is being made there. Since the extension is feature complete, it is now enabled by default on OpenGL so that it can be regression tested. BUG=angleproject:1265 Change-Id: If018b7e3ae84aff7e40c73ff8e672a86689ae6c4 Reviewed-on: https://chromium-review.googlesource.com/324580 Tryjob-Request: Ian Ewell <ewell@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Ian Ewell <ewell@google.com>
Kenneth Russell 331c68a2 2016-02-01T18:54:48 Remove win_angle_x64_dbg_ng tryserver. This won't be mirrored on the waterfall for the time being due to lack of hardware. BUG=542370 Change-Id: I2ecfde30f66d3dcdde2d05144d647c2b4b5c83d3 Reviewed-on: https://chromium-review.googlesource.com/325133 Tested-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Corentin Wallez ae786455 2016-02-01T16:23:34 Tell GN about the dependecy of dEQP tests on expectations Without this, gn-built isolates do not include the test expectations file in the isolate, causing the test suite to bail out at startup. Also rename target_name to api_name as target_name is a special variable name when inside a target definition. BUG=580045 Change-Id: I20be39c7e50e24757a0828f9056613e171f0002f Reviewed-on: https://chromium-review.googlesource.com/325040 Tested-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Olli Etuaho 9b4e8626 2015-12-22T15:53:22 Redesign samplers in shaders on D3D11 Translation of samplers to HLSL on D3D11 is changed as follows: Instead of passing around HLSL sampler and HLSL texture references in shaders, all references to ESSL samplers are converted to constant indices within the shader body. Each ESSL sampler is identified by an unique index. In the code generated to implement ESSL texture functions, these indices are used to index arrays of HLSL samplers and HLSL textures to get the sampler and texture to use. HLSL textures and samplers are grouped into arrays by their types. Each unique combination of a HLSL texture type + HLSL sampler type gets its own array. To convert a unique sampler index to an index to one of these arrays, a constant offset is applied. In the most common case of a 2D texture and a regular (non-comparison) sampler, the index offset is always zero and is omitted. The end goal of this refactoring is to make adding extra metadata for samplers easier. The unique sampler index can be used in follow-up changes to index an array of metadata passed in uniforms, which can contain such things as the base level of the texture. This does not solve the issues with samplers in structs. The interface from the point of view of libANGLE is still exactly the same, the only thing that changes is how samplers are handled inside the shader. On feature level 9_3, the D3D compiler has a bug where it can report that the maximum sampler index is exceeded when in fact it is not. This can happen when an array of samplers is declared in the shader. Because of this the new approach can't be used on D3D11 feature level 9_3, but it will continue using the old approach instead. BUG=angleproject:1261 TEST=angle_end2end_tests, dEQP-GLES3.functional.shaders.texture_functions.* (no regressions) dEQP-GLES3.functional.texture.units.* (no regressions) Change-Id: I5fbb0c4280000202dc2795a628b56bd8194ef96f Reviewed-on: https://chromium-review.googlesource.com/320571 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com>
Jamie Madill 5bf9ff4a 2016-02-01T11:13:03 Fix leak with binding Framebuffers directly. Using BindFramebuffer(1) then GenFramebuffers would return 1. This leads to a memory leak and was something that was obscuring debugging a bug in my ReadPixels fix for ES3. This also fixes a bug where running the texture tests along produces some random failures. BUG=angleproject:1290 BUG=angleproject:1299 Change-Id: If11e8c743d2ddde725b12749ac012f670cd290e1 Reviewed-on: https://chromium-review.googlesource.com/324820 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Corentin Wallez 541591d5 2016-01-28T14:27:50 Fix some override related warnings. BUG= Change-Id: I9e67ba2165ac87959f319fd2485fe385c60a8ea0 Reviewed-on: https://chromium-review.googlesource.com/324461 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Jamie Madill 07fd1aaa 2016-02-01T11:13:03 Updated a few new passing tests in dEQP-GLES3. Unknown when these started passing, but they seem to be OK locally and on the bot. BUG=angleproject:1095 BUG=angleproject:1097 BUG=angleproject:1101 Change-Id: Icf6102792b356cd23bf39414f75e796fe7e81879 Reviewed-on: https://chromium-review.googlesource.com/324940 Commit-Queue: 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 7c41df13 2016-02-01T08:55:14 DisplayGLX: fix a SwapControl copy-paste error BUG=angleproject:1304 Change-Id: If0ec8682b1d519bc6460cd6ed82f42c4c1ceb952 Reviewed-on: https://chromium-review.googlesource.com/324930 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Jamie Madill bc69f3be 2016-01-29T09:48:08 Build GN dEQP iff "build_angle_deqp_tests==true" BUG=580045 Change-Id: Id19f843e8a04d38938b6827a7a64970eb088bcc6 Reviewed-on: https://chromium-review.googlesource.com/324760 Reviewed-by: Kenneth Russell <kbr@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Corentin Wallez f2523eb7 2016-01-28T14:25:04 DisplayGLX: disable the GLES backend on Intel and NVIDIA This is to fix failures in the automated testing while we work on them. BUG=angleproject:1303 Change-Id: I0813b5cf1dca1e329504704c70b9d2b0c34d003b Reviewed-on: https://chromium-review.googlesource.com/324460 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Ian Ewell 3ffd78bc 2016-01-22T16:09:42 Add initial support for EXT_disjoint_timer_query. Basic timer queries are supported and tested in the OpenGL backend but are not enabled by default. A good portion of the existing query code was also refactored for improved validation - specifically for validating that the appropriate extensions are available. BUG=angleproject:1265 Change-Id: Iebae994cd7a8d3ed3e9fc3776fe2f3d99caa9237 Reviewed-on: https://chromium-review.googlesource.com/323450 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tryjob-Request: Ian Ewell <ewell@google.com> Tested-by: Ian Ewell <ewell@google.com>
Jamie Madill 89853e84 2016-01-28T10:36:36 Clean up unused variable macros. We might want UNUSED_ASSERTION as a special case but the unused trace variable macro was being abused in places. BUG=angleproject:1290 Change-Id: I5f9252b3ff0484d2e859b9fcf68d5d060b28f1fc Reviewed-on: https://chromium-review.googlesource.com/324290 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Geoff Lang eaaeb7fb 2016-01-27T16:07:07 Disable support for OpenGL ES targets with WGL on Intel drivers. BUG=angleproject:1145 Change-Id: I9f3a8926eaad88076026f58922289487f90518c7 Reviewed-on: https://chromium-review.googlesource.com/324270 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 5c896691 2016-01-26T14:29:20 X11Window: fix the behavior of setVisible An obvious bug crept in setVisible where setVisible(true) twice would end up hiding the window. BUG=angleproject:1145 Change-Id: Iea8ca3de4ab8c05e6da66fb04c8d377824547b41 Reviewed-on: https://chromium-review.googlesource.com/324090 Tryjob-Request: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez b3844843 2016-01-27T15:03:06 Remove the now unused _ANGLE targets. BUG=522967 Change-Id: I9a5c1793b089920273c74ab43fd5464d0aea7adb Reviewed-on: https://chromium-review.googlesource.com/324022 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Andrii Shyshkalov a832742d 2016-01-27T22:22:52 Touch Infraustructure CQ config. Change-Id: I9f733055ba3c22950eeedc17e756fe50af272a16 Reviewed-on: https://chromium-review.googlesource.com/324280 Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org> Tested-by: Andrii Shyshkalov <tandrii@chromium.org>
Corentin Wallez 4c06817a 2016-01-25T15:50:20 Add support for targetting GLES with DisplayGLX. BUG=angleproject:1145 Change-Id: I3072c31f2f743943b2ed9a3b1a020529112d5f71 Reviewed-on: https://chromium-review.googlesource.com/324091 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang 2e5dd41c 2016-01-27T13:16:35 Fix warnings from shadowed variables in DXGISwapChainWindowSurfaceWGL. BUG=540829 Change-Id: I3595f316afa1897224ad95d6f9a3da3685aa0831 Reviewed-on: https://chromium-review.googlesource.com/324032 Tryjob-Request: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 3e1b4f80 2016-01-27T12:39:27 Refactor ReadPixelsTest. Split the test into several categories based on what fixture types they need. BUG=angleproject:1290 Change-Id: Ia25a022d90a0571e03d86c8e38f6243189968149 Reviewed-on: https://chromium-review.googlesource.com/324020 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Andrii Shyshkalov ed1afee6 2016-01-27T16:03:22 Reland "Infrastructure: CQ Verified label is no longer required." This re-lands https://chromium-review.googlesource.com/#/c/323690/. It didn't break tryjobs, they actually didn't work. Change-Id: Id3da7658515f59e8dae550816d82b1fcce1e5f7a Reviewed-on: https://chromium-review.googlesource.com/324220 Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org> Tested-by: Andrii Shyshkalov <tandrii@chromium.org> Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
Geoff Lang a15472a3 2015-08-11T11:48:03 Fix bugs with drawbuffer state. * IsAttachmentEnabled was checking the wrong draw buffer state. Instead of checking that drawbuffer[colorAttachment] is in use, it should have been scanning for a drawbuffer state that points to colorAttachment. * Allow for maxDrawBuffer != maxColorAttachments. Tested by the GL backend on some systems that don't have the draw buffers extension. Fixed by updating the helpers and adding a new getDrawBuffer helper. BUG=angleproject:1121 Change-Id: Idd1b0a9ec4a3f944d332c708364408bf5d59e1fd Reviewed-on: https://chromium-review.googlesource.com/292740 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tryjob-Request: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 722b0d31 2015-12-08T11:46:28 Add a WGL Surface implementation that renders to a DXGI swap chain. This avoids sandbox issues when calling SetPixelFormat on windows from other processes while in a sandboxed process. BUG=540829 Change-Id: I012168531d8c2e5b189671533cea9f57ec713538 Reviewed-on: https://chromium-review.googlesource.com/296340 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tryjob-Request: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 0dfa807f 2016-01-22T15:27:21 Tests: Prettify output for EXPECT_PIXEL_EQ. Previously our output would spam multiple lines by checking equality for each color component. Instead, use a helper struct with a stream operator to clean up the output. This makes it much more legible. New output style: Expected: (0, 255, 0, 255) Actual: angle::MakeGLColor(255, 0, 127, 255) Which is: (255, 0, 127, 255) BUG=angleproject:1290 Change-Id: Ieea018ab6c149a20b5fd74d74c972118b63a4b5e Reviewed-on: https://chromium-review.googlesource.com/323441 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill f83cbc65 2016-01-22T15:27:21 Use std::random functions for test and samples RNG. These standard functions are much more powerful than the C random() routines. Use them to improve the random utils, and use a class to clean things up further. This fixes a problem I was having using random_utils where I was having trouble generating random 32 bit unsigned integers. BUG=angleproject:1290 Change-Id: I5081764053d0667a4e323553b7dea531256aa778 Reviewed-on: https://chromium-review.googlesource.com/323440 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Corentin Wallez 436e32ae 2016-01-15T15:53:12 GLX backend: check for child window resizes on eglWaitNative This is the standard way, if not often used, for application to notify the driver of window size changes. Chromium uses it to resize when it is done rendering and swapping so that drivers do not clobber the backbuffer. This fixes black flickering appearing when resizing the Chromium windows with --use-gl=angle. BUG=angleproject:1281 Change-Id: Ic76f3c3ef453eae07eb59122135290411f86764d Reviewed-on: https://chromium-review.googlesource.com/322390 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tryjob-Request: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Jamie Madill c1069a08 2016-01-22T15:27:20 D3D11: Add a TextureHelper class to wrap 2D+3D reads. In some cases in our code we had hard-coded ID3D11Texture2D, where the code should handle 2D and 3D textures. This happens in ReadPixels, where we have to handle 3D textures when the user binds a layer of a 3D textures with FramebufferTextureLayer. This is a refactoring patch only, which makes the error cleaner. Tests and the bug fix to come in a follow-up patch. BUG=angleproject:1290 Change-Id: Ie1c293dead4d5b6b4dd6ce24ba2a9146619b141d Reviewed-on: https://chromium-review.googlesource.com/322680 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 5103f4c0 2016-01-26T11:40:18 Supress AMD OpenGL failures in angle_end2end_tests. BUG=angleproject:1291 Change-Id: I4fc8cc152bb5ef18fff78bf312a14691e9de0243 Reviewed-on: https://chromium-review.googlesource.com/324030 Tryjob-Request: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 69accbd1 2016-01-25T16:22:32 Supress Mac OpenGL AMD angle_end2end_test failures. BUG=angleproject:1291 Change-Id: I7fe6a6203c71c893dad97d6e9bc8272164d44f58 Reviewed-on: https://chromium-review.googlesource.com/323790 Tryjob-Request: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 60ec6ea7 2016-01-22T15:27:19 Implement dirty bits for Framebuffer. The dirty bits set the stage for performance improvements in D3D, but don't actually reduce any of the redundant work just yet. BUG=angleproject:1260 Change-Id: Ib84e6a9b7aa40c37c41790f492361b22faaf4742 Reviewed-on: https://chromium-review.googlesource.com/318730 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Andrii Shyshkalov b8d28399 2016-01-25T19:49:46 Revert "Infrastructure: CQ Verified label is no longer required." This might cause analyze weirdness as shown in tryjobs here. NOTRY=true This reverts commit 5b74bd390334b1c988bb4b941e7765b992f611f7. Change-Id: I018925a55ce4cebbc873e8c0ebb4b97ae9ca1020 Reviewed-on: https://chromium-review.googlesource.com/323581 Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org> Tested-by: Andrii Shyshkalov <tandrii@chromium.org> Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
Geoff Lang e0cc2a4a 2016-01-20T10:58:17 Enable all angle_end2end_tests targeting OpenGL and OpenGL ES backends. Added failure supressions and filed bugs for failing tests. BUG=angleproject:1145 BUG=angleproject:1289 BUG=angleproject:1291 BUG=angleproject:1292 BUG=angleproject:1293 BUG=angleproject:1296 Change-Id: Ida78ba855500fe8a6ce6154d43ee01520330e3b1 Reviewed-on: https://chromium-review.googlesource.com/322695 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Frank Henigman 9d81989d 2016-01-22T16:56:04 Add GL_OES_EGL_image functions. Needed to work on Chrome OS. BUG=angleproject:1297 Change-Id: I78e18472780745f73257c8954f263d236ff92180 Reviewed-on: https://chromium-review.googlesource.com/323470 Tryjob-Request: Frank Henigman <fjhenigman@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Frank Henigman <fjhenigman@chromium.org>
Frank Henigman 82e3f3de 2016-01-22T17:55:44 Cast display parm for eglGetPlatformDisplayEXT. The native display parameter to eglGetPlatformDisplayEXT has type void*. When building with -DUSE_OZONE the native display type is intptr_t so a cast is needed. BUG=angleproject:1297 Change-Id: I947f5f9016926b6e3d590a2e29b5ee1fc883384d Reviewed-on: https://chromium-review.googlesource.com/323471 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org> Tested-by: Frank Henigman <fjhenigman@chromium.org>
Andrii Shyshkalov 5b74bd39 2016-01-25T15:17:50 Infrastructure: CQ Verified label is no longer required. BUG=577560 Change-Id: Ibd5b8bfd0da1631b03317dc6d0c85c649c947c12 Reviewed-on: https://chromium-review.googlesource.com/323690 Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org> Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org> Tested-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Geoff Lang 33db61d1 2016-01-20T10:54:49 Add support for targetting GLES with DisplayWGL. BUG=angleproject:1145 Change-Id: I5a0a667621aceedb4662cfb2356d7dbd0d9f7718 Reviewed-on: https://chromium-review.googlesource.com/285557 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Yuly Novikov 451ed25a 2016-01-21T21:16:45 Fix packSnorm2x16. Casting -32767.0f to uint16_t on Android resulted in 0. According to C99 6.3.1.4 footnote 50 this kind of cast behavior is unspecified BUG=angleproject:913 TEST=build/android/test_runner.py gtest -s angle_unittests --release Change-Id: I136386fe0aa618c17f07f99d8e1ca72fa407d36a Reviewed-on: https://chromium-review.googlesource.com/323230 Tryjob-Request: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Yuly Novikov <ynovikov@chromium.org>
Geoff Lang a8e3494e 2016-01-20T10:51:40 Don't force using sized internal texture formats for OpenGL ES. * LUMA formats don't have sized versions without specific extensions. * This allows a more direct translation, the driver should do the right thing. BUG=angleproject:884 BUG=angleproject:1145 Change-Id: I2ad13db7216eb7c715621a237b13ae9e3035310a Reviewed-on: https://chromium-review.googlesource.com/322694 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang b2d9ab67 2016-01-20T10:50:09 Update FunctionsGL to load OpenGL ES entry points. BUG=angleproject:1145 BUG=angleproject:879 Change-Id: I04eb900df28909f97469691a6c05a6af775d7465 Reviewed-on: https://chromium-review.googlesource.com/322693 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Ian Ewell 924b7de2 2016-01-21T13:54:28 Always write to gl_Position when compiling shaders with SH_GLSL_COMPATIBILITY_OUTPUT. BUG=angleproject:1277 Change-Id: Ib820a46151637e8c61e94b966b970de46ccca6b9 Reviewed-on: https://chromium-review.googlesource.com/323160 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Ian Ewell <ewell@google.com>
Austin Kinross d544cc9f 2016-01-11T15:26:42 Fail any ANGLE test if it outputs D3D11 SDK message in debug mode Also: - Disable some Feature Level 9_3 tests that trigger SDK messages - Fix a debug object name issue. If you try to assign a debug name to an object twice then you get an SDK warning message. This can occur if you 'create' two objects (e.g. Rasterizer States) with identical DESCs on the same device, since D3D11 can optimize this and return the same object both times. - Disable the message checks in Line Loops tests, since the tests trigger incorrect D3D11 SDK messages on Win7 machines BUG=angleproject:667;angleproject:1282 Change-Id: I7284fb3a11377afde24e0014e21dbcea80ebb126 Reviewed-on: https://chromium-review.googlesource.com/321393 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tryjob-Request: Austin Kinross <aukinros@microsoft.com> Tested-by: Austin Kinross <aukinros@microsoft.com>
Ian Ewell fc7cf8e9 2016-01-20T15:57:46 Fixed validation errors in teximage3d and friends. BUG=angleproject:1169 BUG=angleproject:1101 Change-Id: I3770335d04cafd652c2f3839afca3e4a854e6e76 Reviewed-on: https://chromium-review.googlesource.com/322381 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Ian Ewell <ewell@google.com>
Geoff Lang b9deac1c 2016-01-20T10:47:50 Fix version check for GL_MAX_VARYING_COMPONENTS with OpenGL ES. BUG=angleproject:1145 Change-Id: Ibd5dab0fe54516427e6f7697559fb0ef670e1035 Reviewed-on: https://chromium-review.googlesource.com/322692 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Corentin Wallez 7acd7354 2016-01-20T15:12:07 Revert "Revert "OSXWindow: fix window size and position computations"" This reverts commit 67d810449c661460770ba7812856cd3da30ad8d6. Change-Id: I4fcaffeb161d22c1cea72fd764461b0c38024e01 Reviewed-on: https://chromium-review.googlesource.com/322214 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 70c27e8e 2016-01-20T14:41:42 Revert "Revert "WindowSurfaceCGL: unregister the SwapLayer on destruction"" This reverts commit 10277159570e987a02a112fa994a4b82845786d3. Change-Id: I9ecf977845c6ee01d7c3e3791c23673407cfb91a Reviewed-on: https://chromium-review.googlesource.com/322213 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez dd46e643 2016-01-20T15:13:10 Suppress ProvokingVertexTest.FlatTriWithTransformFeedback on Mac AMD BUG= Change-Id: Ia6e7c67aaed40cca70be5522e0b9edff2610b63a Reviewed-on: https://chromium-review.googlesource.com/322212 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> Tryjob-Request: Corentin Wallez <cwallez@chromium.org>
Jamie Madill c9d442d7 2016-01-20T11:17:24 Sync dirty objects at the GL layer. The dirty bit system currently puts dirty objects in line with the rest of the dirty state. This means at the Renderer level, the sync manager code would call back to the GL layer to sync the specific objects that are dirty. This is a bit of a layering violation (impl layer mutating top-level objects) and also a bit of repeated boiler- plate code. Fix this by treating dirty objects in a separate dirty bit set, called the dirty objects. This also has the benefit of allowing us to re- implement the dirty object set at a later date, if we want to store them in a list, or other structure. Also don't skip the state sync at the GL level if there are no GL dirty bits. The Impl might have some dirty bits locally, and it's better to call syncState and do the no-op check in the Impl than it is to also sync local state at every sync point (draw call, read, etc) in each Impl. BUG=angleproject:1260 Change-Id: Id5d4beb2a1c4e3ad351edf54e3f32e828d5f5da3 Reviewed-on: https://chromium-review.googlesource.com/318790 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 6fd7472f 2016-01-20T10:59:34 Disable dEQP in GN. Change-Id: If2b3097f976a4433625b393c8562ea5d22c0c070 Reviewed-on: https://chromium-review.googlesource.com/322211 Reviewed-by: Nico Weber <thakis@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill c29968bb 2016-01-20T11:17:23 Refactor FBO related entry points. Change the validation to the consistent style for easy auto-generation and make the context itself implement the entry points. This will more easily allow us to sync state without passing the Context to the Texture methods, or doing work in the entry point. BUG=angleproject:1260 BUG=angleproject:747 Change-Id: I7ed6ec5418b7f51d9e59529267b14b76b87743fb Reviewed-on: https://chromium-review.googlesource.com/319823 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 45838e33 2016-01-15T11:40:56 WindowSurfaceGLX: ignore X11 when destroying windows Chromium seems to destroy the parent window before calling asking to destroy the EGL surface. We don't want to generate a BadWindow X11 error in this case so we ignore errors when calling XDestroyWindow. BUG=angleproject:1281 Change-Id: Ie63d188b6206c0ff3b5ac6a5a874e7d6018489e4 Reviewed-on: https://chromium-review.googlesource.com/322361 Tryjob-Request: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang 07651e24 2016-01-20T10:45:08 Fix OpenGL ES extension checks for floating point textures. BUG=angleproject:1145 BUG=angleproject:884 Change-Id: I1ab16a187155573989f0605dbdd06f73ad8c8c58 Reviewed-on: https://chromium-review.googlesource.com/322691 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 0e7fe675 2016-01-20T10:41:05 Don't expose OES_texture_float_linear without OES_texture_float. Due to our extra logic that only exposes OES_texture_float if the format is renderable, it's possible that the OES_texture_float_linear can be exposed without OES_texture_float. Make sure that can't happen. BUG=angleproject:1145 Change-Id: I9b1262a39872abf4654d4e4751706679e24926f3 Reviewed-on: https://chromium-review.googlesource.com/322690 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Andrii Shyshkalov 7cfcdf06 2016-01-18T20:06:25 Set up infra config folder with CQ configuration. BUG=503611,577560 Change-Id: I4ecb2c6a01c81f6a93c8ff4a52b89789711b23a5 Reviewed-on: https://chromium-review.googlesource.com/322142 Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org> Reviewed-by: Paweł Hajdan Jr. <phajdan.jr@chromium.org> Tested-by: Andrii Shyshkalov <tandrii@chromium.org>
Austin Kinross 45095581 2016-01-14T16:53:36 Enable resource sharing for D3D11 devices created with WARP ANGLE currently blocks resources sharing if ANGLE was initialized using EGL_PLATFORM_ANGLE_DEVICE_TYPE_WARP_ANGLE. This is to prevent applications from trying to share resources between hardware D3D devices and WARP. However, this prevents developers from deliberately initializing ANGLE to run on WARP, and then sharing resources with an external WARP device. ANGLE should support that scenario. BUG=angleproject:1283 Change-Id: I86681355bf34f7fe3367261dd76c434a9fa60739 Reviewed-on: https://chromium-review.googlesource.com/317318 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tryjob-Request: Austin Kinross <aukinros@microsoft.com> Tested-by: Jamie Madill <jmadill@chromium.org>
Austin Kinross 88829e84 2016-01-12T13:04:41 Don't compile D3D geometry shader when using instanced point emulation If ANGLE is using instanced point sprites (e.g. on Feature Level 9_3) then it still tries to compile the point sprite geometry shader. It shouldn't do this. Change-Id: I6e7753dd337c385893fc4bea6c8438aeaf5e8427 Reviewed-on: https://chromium-review.googlesource.com/321397 Tryjob-Request: Austin Kinross <aukinros@microsoft.com> Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Corentin Wallez a433388d 2016-01-14T17:24:50 Implement eglWait* This mostly does nothing except on X11 where it calls the equivalent glXWait*. eglWait* are needed because they are used by Chromium and were triggering an UNREACHABLE(). BUG=angleproject:1281 Change-Id: Iff9c127b16841bc27728304a5ba2caff49ff11b5 Reviewed-on: https://chromium-review.googlesource.com/322360 Tryjob-Request: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 10277159 2016-01-19T13:22:48 Revert "WindowSurfaceCGL: unregister the SwapLayer on destruction" This reverts commit da66ed625901c1ec2df324aa9563ee275130be4f. Change-Id: Ifcef6e06d1f3f30c14f4397d659df6bab857d05d Reviewed-on: https://chromium-review.googlesource.com/322392 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Tibor den Ouden 986d09df 2016-01-07T11:23:21 Improved performance of RefCountObject Drop virtual specifier on addRef() and release(). There are no derived classes which re-implement these functions. Inlined implementation of constructor and destructor. Destructor is still virtual, but empty implementation is now visible for derived classes. Destructor is now protected to make sure that object is destructed through release(). BUG=angleproject:1263 Change-Id: I744430c1d99b917f3d7b63d47305d937be323ee7 Reviewed-on: https://chromium-review.googlesource.com/320861 Tryjob-Request: Tibor Ouden, den <tibordenouden@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Corentin Wallez 67d81044 2016-01-19T10:28:30 Revert "OSXWindow: fix window size and position computations" This reverts commit 34087533024da6a7253a57c83e23b8fa07ee66a8. Change-Id: Ide87d79791aa37095127f048929e1b7a925259ab Reviewed-on: https://chromium-review.googlesource.com/322391 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Jamie Madill 46e6c7a5 2016-01-18T14:42:30 Add stubs for no_error extension. In some cases ANGLE flushes state for FBOs during validation. For testing of the state synching code for FBOs, this makes end-to-end testing impossible. Solve this by partially implementing a hidden no_error extension, hidden to the user by not exposing the extension string, but allowing us to skip validation of some of the FBO methods that require checking for complete FBOs. BUG=angleproject:1280 BUG=angleproject:1260 Change-Id: I708f348ccec6697b974c48cd890ec75a703abe21 Reviewed-on: https://chromium-review.googlesource.com/322210 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>
Olli Etuaho e5df3066 2015-11-18T13:45:19 D3D: Run applyTextures before applyShaders applyShaders will update uniform data by uploading the constant buffer. In the future uniform data will contain the base level of textures so that shaders can use it to adjust results of texture functions. The most natural place to set the base level in uniform data is applyTextures, so it needs to be run before applyShaders. updateSamplerMapping needs to be called before applyTextures, but genericDraw* functions already do that. Remove redundant updateSamplerMapping call from ProgramD3D::applyUniforms. BUG=angleproject:596 BUG=angleproject:1092 BUG=angleproject:1261 TEST=angle_end2end_tests Change-Id: I1828f7bdc75999872a26941a02cb4b6c6a66094d Reviewed-on: https://chromium-review.googlesource.com/322121 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Olli Etuaho a7416ff7 2016-01-18T12:22:55 Fix texture completeness check when base level > 0 is used ANGLE would previously treat a texture as incomplete whenever its base level was above 0. This was because the base level wasn't being taken into account correctly when determining what size the image at a specific mip level should be. Fix this by taking the base level into account when determining the expected size. BUG=angleproject:596 TEST=angle_end2end_tests Change-Id: I4b05514aed2858797ea46cf3570c3c40e5efc508 Reviewed-on: https://chromium-review.googlesource.com/322132 Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Andrii Shyshkalov 60f007d5 2016-01-18T19:49:00 Remove obsolete parts of codereview.settings. Change-Id: Id59fca42b922c5c9bacb6eaed36ceb59e839d35e Reviewed-on: https://chromium-review.googlesource.com/322133 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tryjob-Request: Andrii Shyshkalov <tandrii@chromium.org> Tested-by: Andrii Shyshkalov <tandrii@chromium.org>
Corentin Wallez 34087533 2016-01-15T10:58:03 OSXWindow: fix window size and position computations Also improve debug messages in window_test. BUG=angleproject:1273 Change-Id: Ie47dc1d7ad3be5a55d2a199334bba606f2b45ad0 Reviewed-on: https://chromium-review.googlesource.com/322350 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 da66ed62 2016-01-08T13:35:02 WindowSurfaceCGL: unregister the SwapLayer on destruction Previously the SwapLayer was kept in the CALayer hierarchy after WindowSurfaceCGL's destruction which caused SwapLayer's callbacks to be called after the shared data was freed, causing a segfault. BUG=angleproject:1233 Change-Id: I71dce45330e6b7d5f06a41198c10890b1d8d520e Reviewed-on: https://chromium-review.googlesource.com/320711 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>
Olli Etuaho c8c99a0a 2016-01-14T16:47:22 Add a texture test with a mix of different sampler types This test makes sure that even if sampler / texture registers get grouped together based on type in the HLSL backend of the shader translator, the D3D renderer still has the right register index information for each ESSL sampler. BUG=angleproject:1261 TEST=angle_end2end_tests Change-Id: Id09f96cfa903cd20c8e7229980fa363bb07b6045 Reviewed-on: https://chromium-review.googlesource.com/322200 Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
John Bauman 8ff8da52 2016-01-14T17:42:23 Create DirectComposition backbuffers as SHADER_INPUT With EGL_ANGLE_surface_orientation this is now necessary. Change-Id: I92a20a128640f7f30b8d1d18173336d40fdad187 Reviewed-on: https://chromium-review.googlesource.com/322265 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: John Bauman <jbauman@chromium.org>
Geoff Lang 732703e6 2016-01-13T15:56:45 Don't duplicate calls to X11Window's setVisible. Calling setVisible multiple times in a row can cause a hang while X11Window waits for events that will never be generted. Change-Id: I43af8d4c79c7010dae78aa38c9716ed5b7b02865 Reviewed-on: https://chromium-review.googlesource.com/322380 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Olli Etuaho 1a679900 2016-01-14T12:21:47 Test shadow sampler + 3D sampler in the same shader Shadow samplers use a different sampler object type in D3D11 HLSL than other ESSL samplers. They need to be able to coexist in the same shader. BUG=angleproject:1261 TEST=angle_end2end_tests Change-Id: I960f6a41c0237ed912b072527e14aebeca98cf7c Reviewed-on: https://chromium-review.googlesource.com/322120 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>
Olli Etuaho 51f1c0f0 2016-01-13T16:16:24 Add a workaround for default framebuffer sometimes being SRGB On some GL driver/window system combinations the default framebuffer may do SRGB conversion, which affects the values written there by draw operations and read by readPixels. This is known to happen at least on some Intel systems. For this reason, use an FBO with a known format instead in the texture end2end tests. This enables turning on most TextureTest cases on the OpenGL backend. Tested on Intel HD 4600. BUG=angleproject:1261 TEST=angle_end2end_tests Change-Id: I5a39bd1dadf15b7c52793a0f66d67e9f61618b83 Reviewed-on: https://chromium-review.googlesource.com/321612 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Jamie Madill eb316923 2016-01-12T10:22:09 Include function in EVENT macro on non-MSVS. Adding the function is very helpful for diagnostic messages. Also change the name of the debug trace capture file to the more distinct angle_debug.txt from debug.txt. Change-Id: I59b3d61568fd3917cd8c4a8125ee1c28d608aa30 Reviewed-on: https://chromium-review.googlesource.com/321871 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 5fc4e56d 2016-01-11T10:10:50 Remove two unused methods in BlockLayoutEncoder. Using these methods to compute block offsets instead of the block layout info could lead to some confusion. Change-Id: Iaa3b91bdb517632107923076e3ece7efeab278c2 Reviewed-on: https://chromium-review.googlesource.com/321250 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Alexis Hétu <sugoi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Olli Etuaho 19d48db1 2016-01-13T14:43:21 Fix incorrect delete function call in TextureTest The test must call glDeleteBuffers to delete a buffer instead of glDeleteTextures. This was one reason behind the texture tests failing on the GL backend. BUG=angleproject:1261 TEST=angle_end2end_tests Change-Id: I67042f6948146f3c3fca9e01231b0c4935a6f08d Reviewed-on: https://chromium-review.googlesource.com/321611 Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Corentin Wallez 8000a99e 2015-12-15T14:11:59 WindowSurfaceCGL: make resizing work correctly. Previously the code didn't resize the depth buffer. Also adds a magic setNeedsDisplay call when resizing a CALayer. BUG=angleproject:1233 Change-Id: Id1906312f58d474e95a1b5ebfc15eff4344cd126 Reviewed-on: https://chromium-review.googlesource.com/318450 Tryjob-Request: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Austin Kinross 5faa15bf 2016-01-11T13:32:48 Fix null sampler warning in TextureTest.TextureNPOT_GL_ALPHA_UBYTE The test deliberately tries to render a scene using an invalid texture. ANGLE rendered this correctly, but when it bound the dummy 1x1 black texture that's used instead of invalid textures, it didn't bind a sampler state. This meant that D3D had no pixel shader samplers bound, and outputted a debug warning. Also, technically the test should have been setting GL_UNPACK_ALIGNMENT=1, but that wasn't impacting the result of the test. BUG=angleproject:1248 Change-Id: I871706d518077ea840a585ae0df8f9176e130cb1 Reviewed-on: https://chromium-review.googlesource.com/321391 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Olli Etuaho 2173db3d 2016-01-12T13:55:14 Add sampler array tests This adds some coverage for samplers that is missing from dEQP. The shaders in the added tests both have a sampler array with two samplers. The test shaders sample both textures, add up the results, and the tests then check that the results of the shaders are correct. Only constant indexing is used to access the sampler arrays. One test accesses the sampler array in the main function, another one first passes the array as a parameter to a user-defined function. BUG=angleproject:1261 TEST=angle_end2end_tests Change-Id: I9a0100705ac0da4905d50da37c0149fdbdd24c42 Reviewed-on: https://chromium-review.googlesource.com/321623 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho 4644a20b 2016-01-12T15:12:53 Add a test for sampler as a function parameter This adds some coverage for samplers that's missing from dEQP. The test shader passes a sampler to an user-defined function, samples the texture there and sets the returned sample to gl_FragColor. The test then checks that the shader result is correct. BUG=angleproject:1261 TEST=angle_end2end_tests Change-Id: I2cc511e591a4af01515c6fb38fd43c5f15337bcb Reviewed-on: https://chromium-review.googlesource.com/321622 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho 53a2da13 2016-01-11T15:43:32 Test drawing with a shader with two different sampler types This adds some test coverage that's missing from dEQP. The test uses two different samplers in a shader, a cube map sampler and a 2D texture sampler, adds the sampling results together and checks if the result is correct. BUG=angleproject:1261 TEST=angle_end2end_tests Change-Id: If21e24c964fc208b5d1ccd446834dabf13194944 Reviewed-on: https://chromium-review.googlesource.com/321621 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho 4a8329f2 2016-01-11T17:12:57 Refactoring: Split TextureTest to multiple classes This removes the cube map setup and the draw scale parameter from the tests that don't need them, and reuses the code for setting up the window and the shader program for most of the texture tests. The tests are now structured as follows: TexCoordDrawTest: Test class that sets up a shader program for drawing with texture coordinates. Vertex shader source can be overridden in subclasses, and fragment shader source must be specified in subclasses. Texture2DTest: Inherits TexCoordDrawTest, sets up a 2D texture and a shader for drawing from it. Texture2DTestWithDrawScale: Inherits Texture2DTest, adding a scale parameter that scales the quad that gets drawn. TextureCubeTest: Inherits TexCoordDrawTest, sets up a cube map and a 2D texture and a shader for drawing from them. Texture2DArrayTestES3: Inherits TexCoordDrawTest. Reserves a texture ID and sets up an ESSL3 shader for drawing from a 2D texture array. Also add a few comments about where things being tested are specified. Also, ANGLETest::drawQuad parameter names are renamed to make their meaning clearer. The parameters affect the vertex shader attribute values, which the shader may use for other things besides setting the vertex position. BUG=angleproject:1261 TEST=angle_end2end_tests Change-Id: Id673e36d5883aaaf47f2f830c2a1ad0ca293d578 Reviewed-on: https://chromium-review.googlesource.com/321620 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Jamie Madill 74f44506 2016-01-12T17:03:47 Only use the shortening warning in Clang. This seems to be Clang-only. Change-Id: I4276a29e3d1575bd47d58d819ed3223b2c66838a Reviewed-on: https://chromium-review.googlesource.com/321820 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Corentin Wallez adc5b0eb 2016-01-12T16:35:23 Fix translator having multiply defined symbols in GN builds. This error was introduced in 82b5ab606f68bad27fe5d143d8b96e84801222ac where the translator's essl and glsl sources are compiled in both the translator and translator_lib targets. As translator depends on translator_lib this caused symbols to be defined multiple times. BUG=angleproject:1250 Change-Id: I50bab7112d1460e14710f50250fa2417b2163236 Reviewed-on: https://chromium-review.googlesource.com/321770 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Jamie Madill e865bb12 2016-01-12T16:21:37 Update Debugging Tips document. BUG=None Change-Id: I9e417b37b072ea3874cd8b111d6b751295b9b0c2 Reviewed-on: https://chromium-review.googlesource.com/321760 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Corentin Wallez c89df2ba 2015-12-07T13:05:17 Add loadable_module versions of libEGL and libGLESv2. Reland with a link fix for Clang on Windows In order to implement the --use-gl=angle Chrome flag on Linux, we need to have the ANGLE .so directly in the build directory however GYP places shared_libraries under lib/ on Linux. On the contrary loadable_modules cannot be linked against so we need to keep the shared_library targets. This commit adds _ANGLE versions of the libEGL and libGLESv2 targets as loadable module that depend on their respective shared library. BUG=522967 Change-Id: Iad968ab786b94b6041c279921de99633d23b48a7 Reviewed-on: https://chromium-review.googlesource.com/318470 Tryjob-Request: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Jamie Madill 1fae3556 2016-01-07T14:33:48 Add dEQP Linux GN integration. BUG=angleproject:1272 Change-Id: I20cb8968221c25bb374b3cc71d7ca619a35f1a2f Reviewed-on: https://chromium-review.googlesource.com/320781 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Olli Etuaho 5f80d016 2016-01-11T11:16:01 Disallow invariant(all) pragma in ESSL 3.00 fragment shaders ESSL 3.00.4 section 4.6.1 says that using #pragma STDGL invariant(all) in a fragment shader is an error, so make it an error. This spec language is not found in ESSL 1.00, and it's been removed in ESSL 3.10. BUG=angleproject:1276 TEST=angle_unittests Change-Id: I2022f35475f867304b55dfb142f8568f6df28830 Reviewed-on: https://chromium-review.googlesource.com/321240 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> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Jamie Madill edbc2449 2016-01-04T11:25:00 Add dEQP GN integration. This is Windows-only for now, but will be expanded to Linux. Also do a bit of refactoring in our deqp.gypi file. BUG=angleproject:1272 Change-Id: I526a99fe3b91a2d9e8901c7e033a4916a06780be Reviewed-on: https://chromium-review.googlesource.com/320800 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Austin Kinross 82b5ab60 2015-12-11T09:30:15 Compile out GLSL/ESSL translator output code if it's not needed In WinRT we only use the HLSL code, so the GLSL/ESSL output code is not necessary and is only adding to our binary size. BUG=angleproject:1250 Change-Id: I9363ca3981bde50a230f8353c1bcc09f6ea209cb Reviewed-on: https://chromium-review.googlesource.com/317358 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tryjob-Request: Austin Kinross <aukinros@microsoft.com> Tested-by: Austin Kinross <aukinros@microsoft.com>
Austin Kinross ff318af1 2015-12-22T15:34:45 Fix BlendMinMaxTest.RGBA16F on D3D11 Feature Level 9_3 This test checks for OES_texture_half_float, but it's trying to use a 16F texture as a color buffer so it should be checking for EXT_color_buffer_half_float. Since EXT_color_buffer_half_float requires more format support (e.g. R16F, RG16F, RGB16F) than OES_texture_half_float, it's possible for an implementation to support one extension and not the other. D3D11 Feature Level 9_3 does this. Change-Id: I40fb38aa3f419be2606464bd0476cd064afe90fa Reviewed-on: https://chromium-review.googlesource.com/319642 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Byungseon Shin 9a866453 2016-01-08T10:35:55 Fix compilation error on Linux BUG=574909 Change-Id: I6dc4b010b67a9c7f3b64215a168e6ed5e894989b Reviewed-on: https://chromium-review.googlesource.com/320635 Commit-Queue: Byungseon Shin <xingri@gmail.com> Tested-by: Byungseon Shin <xingri@gmail.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tryjob-Request: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 20020584 2016-01-04T09:09:21 Small cleanup of MultiWindow Fixes a glitch on OSX where the root window would swap twice, causing a glitch. Change-Id: I5886105fb18ed8f45e69cd10b5d1cac49b82093f Reviewed-on: https://chromium-review.googlesource.com/320291 Tryjob-Request: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Kenneth Russell 539146e1 2016-01-06T19:34:18 Add rpath for GN build of angle_end2end_tests. This fixes the static library build of this target on Linux. BUG=angleproject:1270 Change-Id: Id65bd9b7136918829f385920b540a4df83650c6f Reviewed-on: https://chromium-review.googlesource.com/320615 Tested-by: Kenneth Russell <kbr@chromium.org> Tryjob-Request: Kenneth Russell <kbr@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Olli Etuaho 8d8b108a 2016-01-04T16:44:57 Disallow local function prototypes Function prototypes should not be allowed inside other functions according to ESSL 3.00.4 section 4.2.4. BUG=angleproject:1068 TEST=angle_unittests, dEQP-GLES*.functional.shaders.functions.invalid.local_function_proto* Change-Id: I54160da4d49b92a6cd7cbee020e67733963d4e10 Reviewed-on: https://chromium-review.googlesource.com/320091 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 5d653186 2016-01-04T14:43:28 Disallow multiple function prototypes in ESSL 1.00 The same function can't be declared twice in ESSL 1.00. In ESSL 3.00 this is allowed. A function prototype following the definition of that function is not interpreted as redeclaration, and the shader compiler continues to allow this. BUG=angleproject:1067 TEST=angle_unittests, dEQP-GLES2.functional.shaders.functions.invalid.double_declare* Change-Id: I6d2ddafd456d378d92839600f19069ad1cd19aff Reviewed-on: https://chromium-review.googlesource.com/320082 Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Olli Etuaho ee63f5d9 2016-01-04T11:34:54 Move function parsing code to ParseContext This change is pure refactoring. It will make it easier to fix bugs related to function declarations. BUG=angleproject:911 BUG=angleproject:1067 BUG=angleproject:1068 TEST=angle_unittests Change-Id: I031783dc02612d9cf3ff7a9c8291cf8ab33577aa Reviewed-on: https://chromium-review.googlesource.com/320081 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>
Geoff Lang e6683860 2016-01-06T09:49:43 Make sure clang is defined before usage. Standalone builds failed to generate projects. Change-Id: I2897f84242255edabd0606ad858a048f635db0bc Reviewed-on: https://chromium-review.googlesource.com/320680 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nico Weber <thakis@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Hans Wennborg e1743f37 2016-01-06T05:24:22 Clang warning fixes This fixes member initialization order and unused private member warnings that broke the Clang build after the last Angle roll. BUG=82385 Change-Id: If866f352bda6d66093c180fdbec6c16bf902b628 Reviewed-on: https://chromium-review.googlesource.com/320466 Reviewed-by: Nico Weber <thakis@chromium.org> Tryjob-Request: Nico Weber <thakis@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tryjob-Request: Geoff Lang <geofflang@chromium.org> Tested-by: Nico Weber <thakis@chromium.org>
Tibor den Ouden ce95d05b 2015-12-20T22:20:14 Fixed memory leak in egl::Error and gl::Error Move assignment operator of both classes contained a memory leak. Changed type of mMessage from mutable std::string *to mutable std::unique_ptr<std::string> BUG=angleproject:1264 Change-Id: I7d1419b2e9f385b36afebfd6371983be33ee9e61 Reviewed-on: https://chromium-review.googlesource.com/319520 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tryjob-Request: Tibor Ouden, den <tibordenouden@gmail.com> Tested-by: Jamie Madill <jmadill@chromium.org>
Roland McGrath f786c2b9 2016-01-05T12:26:07 GN: Use $root_out_dir in in copy_compiler_dll rule The root_build_dir variable yields the root of the build tree. But when the component is being built under a non-default toolchain, its output files are delivered to a toolchain subdirectory instead. The copy_compiler_dll rule should put its output next to where libANGLE and things built using it will go, which is root_out_dir. This fixes cases where the angle GN component is instantiated under more than one toolchain, which heretofore would produce multiple Ninja rules for the same target file $root_build_dir/d3dcompiler_47.dll and thus get complaints from Ninja. BUG=512869 Change-Id: I9fe83c5c5fa74902ef270654d3707636588af6b7 Reviewed-on: https://chromium-review.googlesource.com/320119 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Roland McGrath <mcgrathr@chromium.org>
Trent Apted 69bbc98e 2016-01-05T13:25:05 Fix case of #includes in DisplayCGL.mm Building libGLESv2 on Mac currently results in .../DisplayCGL.mm:9:10: fatal error: 'libANGLE/renderer/gl/CGL/DisplayCGL.h' file not found Other files in libANGLE/renderer/gl/cgl are using lowercase `cgl` for #includes. DisplayCGL.mm should do the same. Change-Id: I03b68041ef3194eb14d65738e4e4fb12711b1b20 Reviewed-on: https://chromium-review.googlesource.com/320155 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tryjob-Request: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>