src/libANGLE/renderer/gl


Log

Author Commit Date CI Message
Corentin Wallez a7c01c62 2015-07-20T14:05:32 Add an angle_link_glx that can be used for debugging This replaces the dlsyming of glX entry point with linking to libGL which in trun allows the ANGLE to be traced using apitrace. Re-land with a trivial compilation fix (MEMBER vs MEMEBER) BUG=angleproject:892 Change-Id: Ie89b6fe26eb80d3d8d48f49645d7a6254230bf5c Reviewed-on: https://chromium-review.googlesource.com/287143 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 2c58d81d 2015-07-21T13:31:23 Revert "Add an angle_link_glx that can be used for debugging" This reverts commit cddca5f204d9aa55c9810cf30c74997ca19a7f86. Change-Id: I07fa96a8b84308c77fb642a64f39fcacc471d96e Reviewed-on: https://chromium-review.googlesource.com/287123 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 6703b265 2015-07-20T14:05:32 Add an angle_link_glx that can be used for debugging This replaces the dlsyming of glX entry point with linking to libGL which in trun allows the ANGLE to be traced using apitrace. BUG=angleproject:892 Change-Id: Ic065582401e0e1e3fce1329cde216220a1e086a8 Reviewed-on: https://chromium-review.googlesource.com/286880 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang 92139c25 2015-07-20T15:32:37 Always try to load the extension entry points. Despite many extensions being written against specific versions of the GL spec, some drivers (Intel) expose the extensions in much earlier versions. This leads to issues where the extension string would be present but the entry points were not loaded. BUG=angleproject:1038 Change-Id: Ia87bb3f038f310f6bc3e711a0b2d82717b67ae70 Reviewed-on: https://chromium-review.googlesource.com/286525 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang ecc9688d 2015-07-20T15:35:58 When the GL version is below 3.0, use GL_MAX_VARYING_FLOATS. It should be equivalent to GL_MAX_VARYING_COMPONENTS for ES2. BUG=angleproject:1038 Change-Id: Ic2fe6c27a0ebd6259d70f8d28edb7d4bdd5d0c35 Reviewed-on: https://chromium-review.googlesource.com/286526 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 8b0f0b3b 2015-07-20T15:59:28 Add a profile mask member to the FunctionsGL structure. BUG=angleproject:883 Change-Id: I3cdf88391e77a26a77e120de0fd32296a2b079d1 Reviewed-on: https://chromium-review.googlesource.com/286822 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Corentin Wallez bb6a5f93 2015-07-16T17:30:04 WindowSurfaceGLX: swap after resizing the child window. This reverts ac2582d3aac25f2a5c504af146ca614761fc3f7e which was a speculative improvement. It turns out that resizing before the swap is important as it lets the driver know that it should resize the default framebuffer, making the following frame have a default framebuffer of the right size. BUG=angleproject:1050 BUG=angleproject:892 Change-Id: I84ec3728226fde9fb208f91c02a3d5a1ab71aef8 Reviewed-on: https://chromium-review.googlesource.com/286252 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez e7d8c80a 2015-07-16T17:28:10 WindowSurfaceGLX: Do not send an unused border_pixel to XCreateWindow This was a typo that never had any effect but it could cause problems in Debug but in release border_pixel could have contain garbage and cause an X11 error. BUG=angleproject:892 Change-Id: Id6dc24c726730d998b419101239b3a43d6675330 Reviewed-on: https://chromium-review.googlesource.com/286251 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang b61e173a 2015-06-05T11:49:55 Only sync attributes used by the current program in RendererGL. Improves draw call overhead of RendererGL. DrawCallPerf_gl: Before: 136973 score After: 153317 score Improvement: 11.932% BUG=angleproject:959 Change-Id: Ib75f6fdd756648e4a07f6e970cda03abbdbcf009 Reviewed-on: https://chromium-review.googlesource.com/275409 Reviewed-by: Kenneth Russell <kbr@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 95137842 2015-06-02T15:38:43 Use a map to store uniform locations instead of a vector. Some intel drivers use seemingly arbitrary integers as uniform locations. This causes the location vector to be resized to arbitrarily large sizes. BUG=angleproject:882 Change-Id: I8db89178907dd6206eb8e646a0b426aa9bac0832 Reviewed-on: https://chromium-review.googlesource.com/274816 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Austin Kinross 02df796f 2015-07-01T10:03:42 Centralize renderer limitations for non-conformant renderers Some renderer configurations (e.g. D3D11 Feature Level 9_3) have some limitations and aren't quite conformant. This change generates errors when applications hit these limitations, and informs developers that they must work around them. BUG=angleproject:1055 Change-Id: I6a4a9e5cc71288ca366a54c769ca0eb82e79a7f7 Reviewed-on: https://chromium-review.googlesource.com/282814 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 8442a612 2015-06-05T16:43:27 Fix texture formats that only require extensions failing requirements checks. Unset version requirements equate to UINT_MAX causing requirements checks for fail for formats that only need extensions such as DXT formats. Fixes tests that require compressed formats. Passes conformance/extensions/webgl-compressed-texture-s3tc.html BUG=angleproject:884 Change-Id: Id810c477a359bf9d35a886c60735a91b51d1e931 Reviewed-on: https://chromium-review.googlesource.com/275693 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 5ec53c82 2015-06-05T16:32:14 Handle the remaining pixel unpack parameters in TextureGL. BUG=angleproject:884 Change-Id: I9e248e623f3b342f878bf65c9686768b90cf5ed8 Reviewed-on: https://chromium-review.googlesource.com/275692 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Geoff Lang afce829a 2015-06-05T16:25:16 Sync pixel pack state before glReadPixels in FramebufferGL. Fixes conformance/reading/read-pixels-pack-alignment.html BUG=angleproject:885 Change-Id: I48f1598d9a67f3980d2ff86307eb107ec7506776 Reviewed-on: https://chromium-review.googlesource.com/275691 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang aef1663f 2015-06-05T16:09:55 Add missing GL_STENCIL_INDEX8 format to the formatutilsgl table. Fixes conformance/renderbuffers/framebuffer-object-attachment.html BUG=angleproject:884 Change-Id: I421b563fa8549eb2edc42a9ac1c798fc457256ee Reviewed-on: https://chromium-review.googlesource.com/275690 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 8e34494f 2015-07-09T14:22:07 Share data between VertexArray and Impl. Using the same design as for the Framebuffer::Data helper, we can use a struct to share between the object and the Impl. This also gives the Impl access to the maxEnabledAttrib, and saves some duplicated storage. BUG=angleproject:1040 TEST=WebGL CTS, end2end_tests, unittests Change-Id: I55c91e8a5f3dcae302cab441182320aafd5375ef Reviewed-on: https://chromium-review.googlesource.com/283930 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Sam McNally 5a0edc62 2015-06-30T12:36:07 Change intializer list order to match field order. BUG=505304 Change-Id: I38149e72732f0b4eb7d398f90b5d11660e2a7fbc Reviewed-on: https://chromium-review.googlesource.com/282465 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Corentin Wallez ac2582d3 2015-06-26T13:18:18 WindowSurfaceGLX: swap before resizing the child window BUG=angleproject:892 Change-Id: I9b27777547624959fce6e045f9aac2652f139b9b Reviewed-on: https://chromium-review.googlesource.com/282058 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 9de512e2 2015-06-26T13:16:50 WindowSurfaceGLX: Fix child window creation size This makes Chrome on ANGLE work on Linux without obvious bugs. BUG=angleproject:892 Change-Id: I595ac00a6646cb407941932b0d4f9f020d4cd059 Reviewed-on: https://chromium-review.googlesource.com/282057 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang 8273e006 2015-06-15T13:40:19 Add new GLSL target versions. Test the emulated GLSL functions against multiple GL versions. BUG=angleproject:1044 Change-Id: I1e12523301042f0d541ab2f4e73f02319d1584ef Reviewed-on: https://chromium-review.googlesource.com/277702 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Kenneth Russell 0eb0a816 2015-06-19T20:18:16 Fix seg fault in IsPlatformAvailable. Some GLX implementations can't handle having libGL.so.1 dlclose'd out from under them while there's any X window still open against which a GLXWindow was ever created. Load the library once per process rather than once per FunctionsGLX instance. This showed up as a crash in X11Window::destroy, during XCloseDisplay. BUG=angleproject:892 Change-Id: I0da2674786a952865e5bea2513259c0a32d4453c Reviewed-on: https://chromium-review.googlesource.com/280902 Tested-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Corentin Wallez <cwallez@google.com>
Corentin Wallez 4ffd7790 2015-06-11T15:28:33 DisplayGLX: add error checking for the dummy pbuffer creation BUG=angleproject:892 Change-Id: I7a15f2be19a598e40d4fa5a7c70d879cdbc6d32a Reviewed-on: https://chromium-review.googlesource.com/277011 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 322653bf 2015-06-17T18:33:56 Fix Chromium build of angle_end2end_tests BUG=angleproject:892 Change-Id: I9922046fc9e4d82d7034405f5952263f982c6529 Reviewed-on: https://chromium-review.googlesource.com/278159 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang 3f6096b7 2015-06-17T09:11:31 Fix some markdown syntax that github had trouble parsing. Change-Id: I00f4409b7c6e12bb0cd6944a488fde3f6ef4054c Reviewed-on: https://chromium-review.googlesource.com/278055 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang ee09b58e 2015-06-16T15:13:52 Notify the VertexArrayImpl when a buffer is detached. Update VertexArrayGL to clear it's cached buffer binding when a buffer is detached to prevent name aliasing. Fixes: * DEQP standalone crashes. * WebGL Conformance DEQP tests. Change-Id: If21a617629e15873ddeae0368b5399616f2ca68b Reviewed-on: https://chromium-review.googlesource.com/278050 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang a80d4046 2015-06-15T11:44:30 Document ESSL3 builtin functions and which GLSL version they became core in. BUG=angleproject:1044 Change-Id: I1cd35f17a2d6cc384ac1bfae72a23a092ca50244 Reviewed-on: https://chromium-review.googlesource.com/277701 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Corentin Wallez <cwallez@google.com> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 464a6b8b 2015-06-15T21:25:28 Revert "Enable point sprites in StateManagerGL." Speculative fix for failures on the AMD FYI bot. This reverts commit 67e04be12dda07ac9b37798558e842f50bd42776. Change-Id: Ia57e3c800a6ff9e81e31bf5b37a95e97460ceda4 Reviewed-on: https://chromium-review.googlesource.com/277681 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 67e04be1 2015-06-08T11:05:40 Enable point sprites in StateManagerGL. Fixes: * conformance/rendering/point-size.html * conformance/rendering/point-with-gl-pointcoord-in-fragment-shader.html * PointSpritesTest * particle_system sample BUG=angleproject:883 Change-Id: Idb3352fa916cf08817496f0a8425c95ece9bfa49 Reviewed-on: https://chromium-review.googlesource.com/275860 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Austin Kinross 6ee1e786 2015-05-29T17:05:37 Implement GL_EXT_debug_marker in D3D9/D3D11 renderers BUG=angleproject:1043 Change-Id: I7f3bfb35050662520b901828d0478719fa8d11b3 Reviewed-on: https://chromium-review.googlesource.com/274054 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Austin Kinross <aukinros@microsoft.com>
Geoff Lang 862c0ba4 2015-05-25T15:31:16 Implement the remaining caps queries. Limit the supported ES version based on these caps. BUG=angleproject:879 Change-Id: If3a097576465b33af0015fcb28dab10e88fdc4d9 Reviewed-on: https://chromium-review.googlesource.com/273160 Reviewed-by: Kenneth Russell <kbr@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Qingqing Deng 03f3caec 2015-03-16T02:01:21 Emulate Missing pack_unpack functions from OpenGL 4.1 BUG=angleproject:947 TEST=angle_unittests, angle_end2end_tests Change-Id: Id1afd7630d9720b6701225b7abf1ce4a3bf528b6 Reviewed-on: https://chromium-review.googlesource.com/260232 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Austin Kinross 08332634 2015-05-05T13:35:47 Implement EXT_discard_framebuffer in D3D11 renderer Change-Id: I52bcf0cfb1aa123e085a35730fdefb006b617c3c Reviewed-on: https://chromium-review.googlesource.com/269232 Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 39fcf263 2015-06-08T14:39:07 Use both null and real renders for draw call perf. Introduce a "null" GL renderer for this specific benchmark, which does not do any work on drawArrays and drawElements. We could use the same kind of trick for buffer and texture updates, if we need it. This gives us a good baseline for comparing GL and D3D perf. BUG=angleproject:1040 Change-Id: I4bf7c75df01932de45ddd0a4e42e8fc82f15e37e Reviewed-on: https://chromium-review.googlesource.com/276192 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 435e4910 2015-06-04T14:44:52 Don't create child windows in the WGL implementation. BUG=angleproject:890 Change-Id: I66fb7b97ea3f09d40ba25a769c8bc7fe04527805 Reviewed-on: https://chromium-review.googlesource.com/275307 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang dd2eb504 2015-06-03T15:40:16 Always use the highest GL version available unless requested. BUG=angleproject:890 Change-Id: I76a1b1c455cb4be02b4b5c52153f5c87f33d426d Reviewed-on: https://chromium-review.googlesource.com/275008 Reviewed-by: Kenneth Russell <kbr@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang e44e829d 2015-06-04T14:03:35 Document OpenGL ES and EGL features, formats and extensions. Change-Id: I38fb5acc5e0824035ccba55c28d12c8980c5905e Reviewed-on: https://chromium-review.googlesource.com/275311 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 2469dad9 2015-06-02T15:40:52 Load the framebuffer and vertex array object extensions. BUG=angleproject:879 BUG=angleproject:1038 Change-Id: Idd2ad36707c17d13c45bc4fc131ec1ebfc45e0a5 Reviewed-on: https://chromium-review.googlesource.com/274817 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 19fafa4b 2015-06-02T12:41:44 Fix incorrect value being synced for the alpha blend equation. Fixes angle_end2end_test BlendMinMaxTest with the blend_minmax extension enabled. BUG=angleproject:883 Change-Id: Iae2441d11a3c4c497a1ddc4d250120fd85175d52 Reviewed-on: https://chromium-review.googlesource.com/274802 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang ae6584e6 2015-06-01T15:49:26 Sync the scissor tests state before clearing. Fixes: * conformance/rendering/gl-scissor-fbo-test.html * conformance/rendering/gl-scissor-canvas-dimensions.html BUG=angleproject:883 Change-Id: Icd337894f1dbc7464a4566bfab9a30b70fd4bbfa Reviewed-on: https://chromium-review.googlesource.com/274445 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang fd216c41 2015-05-27T16:12:30 Support BGRA texture by remapping the internal format to RGBA. The format is still passed as BGRA to the driver so that the data can be properly unpacked. BUG=angleproject:884 Change-Id: I767626c818ce1a3c5a4739f07aa623bf8a9ae377 Reviewed-on: https://chromium-review.googlesource.com/273162 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 6683032d 2015-05-27T16:11:32 Add remaining unsized formats to the GL format tables. BUG=angleproject:884 Change-Id: I53e7ff9e35b820573691df0d23b41ef45e2a07d0 Reviewed-on: https://chromium-review.googlesource.com/273590 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Geoff Lang c3ab9f7f 2015-05-27T14:45:59 Disable UNIMPLEMENTED in ProgramGL::applyUniforms. Disables lots of assertion failures in WebGL CTS. BUG=angleproject:882 Change-Id: I407397a256955d608dbf1234e4e391704653bb5a Reviewed-on: https://chromium-review.googlesource.com/273547 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 6db25f15 2015-05-27T15:15:41 Always init gl_Position in vertex shaders in ShaderGL. Fixes: * conformance/glsl/misc/empty_main.vert.html * conformance/glsl/misc/gl_position_unset.vert.html BUG=angleproject:882 Change-Id: I92a465b58f319b14e4f697d9bb5b45427a6247c0 Reviewed-on: https://chromium-review.googlesource.com/273548 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang bf6f48ff 2015-05-27T13:54:39 Bind renderbuffers as soon as they are generated. Like textures, renderbuffers don't become real objects until they are bound. If the renderbuffer is never bound before being attached to a framebuffer, it would generate an INVALID_OPERATION. Fixes: * conformance/textures/tex-input-validation.html * conformance/renderbuffers/renderbuffer-initialization.html BUG=angleproject:886 Change-Id: I639b9e2d9ae694dce29f20ed5f95077ae02d471e Reviewed-on: https://chromium-review.googlesource.com/273533 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 08dcfed6 2015-05-25T13:38:42 Encapsulate GL version and standard into a struct and enum. Change-Id: I9f51971c1bfd51424605b2687b5fd107d58c9a67 Reviewed-on: https://chromium-review.googlesource.com/273139 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/273572 Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 51d4f044 2015-05-27T21:10:42 Revert "Encapsulate GL version and standard into a struct and enum." Linux didn't like compiling this. This reverts commit 03f589122ed796060f1345f9ccfc64455c547fef. Change-Id: Ifd0824caeb02791b4acc5e4bca330ecdc8164b11 Reviewed-on: https://chromium-review.googlesource.com/273583 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 03f58912 2015-05-25T13:38:42 Encapsulate GL version and standard into a struct and enum. Change-Id: Ib3c37627298976040d5a333f4c845a7b2620dd30 Reviewed-on: https://chromium-review.googlesource.com/273139 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Corentin Wallez 44aedf37 2015-05-25T14:41:51 Enable PbufferTest on Linux by not advertising bindable configs GLX Pbuffers are not bindable so implementing bindable pbuffers would have to be one of the following: - Implement Pbuffer as GLXPixmaps, with complication arising in the initialization. - Implement Pbuffers as GL textures, which would require a large change of the EGL implementation. - Fake bindable Pbuffers with glCopyTexImage2D, with obvious performance problems. BUG=angleproject:892 Change-Id: I7d9cd5a4aa2d35343244be3cbe55fc1e492f6928 Reviewed-on: https://chromium-review.googlesource.com/273056 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang 294cad9d 2015-05-26T15:11:23 When applying vertex array objects, update the currently applied index buffer. When binding a vertex array object, it was not changing the tracked index buffer binding. This was causing the buffer bindings to sometimes not be updated between index and non-indexed draw calls. Fixes: * Intermittent crashes in chromium startup. * conformance/rendering/many-draw-calls.html * conformance/rendering/framebuffer-switch.html * conformance/attribs/gl-bindAttribLocation-aliasing.html * conformance/attribs/gl-vertex-attrib-render.html * conformance/buffers/index-validation-verifies-too-many-indices.html BUG=angleproject:883 Change-Id: I34ed1ebc65b339329c0f9ab9c28a392f552ed3d8 Reviewed-on: https://chromium-review.googlesource.com/273300 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 90d98afa 2015-05-26T16:41:38 Bind a texture after creation so that it has a type. If a texture is bound to a framebuffer before any data is set on it, the texture does not have a type because it has never been bound. This generates an INVALID_OPERATION because the attachment type cannot be validated. Fixes: * Many generated GL_INVALID_OPERATIONs in chromium BUG=angleproject:884 Change-Id: I4f36f80fecc5a772b6522f8f82e0be9d3758e524 Reviewed-on: https://chromium-review.googlesource.com/273324 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Geoff Lang 851cd580 2015-05-26T16:47:23 Check for null attribute buffers before binding. Fixes: * Crash in conformance/extensions/oes-vertex-array-object.html BUG=angleproject:880 Change-Id: I90eba9b26b2834644ce3ba0e78cab3417c2a7bd1 Reviewed-on: https://chromium-review.googlesource.com/273325 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Geoff Lang 113bc73e 2015-05-26T15:03:49 Fix missing break statements. Fixes: * conformance/glsl/functions/glsl-function* BUG=angleproject:883 Change-Id: I22a528c6ba4c4077ba47269e14396b4117d1c849 Reviewed-on: https://chromium-review.googlesource.com/273169 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Corentin Wallez aaa9eb94 2015-05-22T16:08:08 WindowSurfaceGLX handle resizing the window on swap This make the multi window sample work well. BUG=angleproject:892 Change-Id: If98c6f995875b63c391cee9b6fddc6d138d48f8b Reviewed-on: https://chromium-review.googlesource.com/272946 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang f34d1db9 2015-05-20T14:10:46 Add table entries for almost all the remaining GL texture formats. BUG=angleproject:884 BUG=angleproject:967 Change-Id: I113757dd9e1fae8fe0241a7286be979a90891b53 Reviewed-on: https://chromium-review.googlesource.com/270275 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/273135
Geoff Lang 859dcb88 2015-05-25T15:12:54 Revert "Add table entries for almost all the remaining GL texture formats." Missing include of <limits> for linux. This reverts commit aa3a5fadebb2bad0be07eb2963a9d23f901c4c49. Change-Id: Iafebfbc6154b4fe3a94e3f8b91b5ff496631c1f1 Reviewed-on: https://chromium-review.googlesource.com/273134 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang aa3a5fad 2015-05-20T14:10:46 Add table entries for almost all the remaining GL texture formats. BUG=angleproject:884 BUG=angleproject:967 Change-Id: I0b05841272f4410c33ee4e4c3654846f07b7c39b Reviewed-on: https://chromium-review.googlesource.com/270275 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Corentin Wallez f4863b70 2015-05-21T16:29:36 Implement swapInterval for EGL on GLX BUG=angleproject:892 Change-Id: I80d8d67270662c7f2be893f4a8318fbc0926f1fc Reviewed-on: https://chromium-review.googlesource.com/272677 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang 3e589ea6 2015-04-21T10:35:04 Load texture storage extension entry points in RendererGL. BUG=angleproject:884 Change-Id: Iaef596337f9c4d781fb93f517c8f605d119136fb Reviewed-on: https://chromium-review.googlesource.com/266599 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/272746 Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang c76dc21a 2015-05-22T15:21:48 Revert "Load texture storage extension entry points in RendererGL." This reverts commit 5ec636f67cb65438b71ca46375fa45e33eb2e4ba. Change-Id: I68b87279f08e558948216630259349e4db8481d7 Reviewed-on: https://chromium-review.googlesource.com/272785 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 5ec636f6 2015-04-21T10:35:04 Load texture storage extension entry points in RendererGL. BUG=angleproject:884 Change-Id: I30e688ca4304b0a0a1c939edee95d75faf8e8485 Reviewed-on: https://chromium-review.googlesource.com/266599 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Corentin Wallez f68fd9c4 2015-05-19T16:41:44 Revert "Revert "Call XSync in the GLX EGL impl if we have a new X server connection"" This reverts commit 9c0a421858162673f4232d37bf8c5e2459ec28ea. Change-Id: Ia543daebc240b81950e21930895a7e24ed9f7a1b Reviewed-on: https://chromium-review.googlesource.com/272225 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Jamie Madill 8c5aeb6c 2015-05-21T08:17:18 Add some string helper classes. *re-land with build fix for Clang* These helper functions mirror some utilities in Chrome, for splitting strings along whitespace, or reading file contents into a string. Also remove the hack for skipping the doubly-defined GLX header. BUG=angleproject:892,angleproject:998 Change-Id: Ife43fbf5035a3be7820460bea1b26d0e632a4fb0 Reviewed-on: https://chromium-review.googlesource.com/272518 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang 42c98f6b 2015-05-20T14:09:25 Handle compressed texture formats in the emulated TextureStorage for TextureGL. BUG=angleproject:884 Change-Id: Id54d9ff2845af52807161e0b589d8b76cfba412d Reviewed-on: https://chromium-review.googlesource.com/272424 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 8509d86e 2015-05-20T14:06:13 Pipe the imageSize parameter from the entry point to avoid recomputation. BUG=angleproject:884 Change-Id: Ic4d5bdc5b65ebcb8c57b960e84708e945db0276a Reviewed-on: https://chromium-review.googlesource.com/272422 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill a30c78ae 2015-05-21T12:15:43 Revert "Add some string helper classes." Build errors on Clang: FAILED: /b/build/goma/gomacc ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/third_party/angle/src/common/angle_common.string_utils.o.d -DV8_DEPRECATION_WARNINGS -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORE=0 -DCHROMIUM_BUILD -DCR_CLANG_REVISION=233105-2 -DTOOLKIT_VIEWS=1 -DUSE_LIBJPEG_TURBO=1 -DENABLE_ONE_CLICK_SIGNIN -DENABLE_PRE_SYNC_BACKUP -DENABLE_REMOTING=1 -DENABLE_WEBRTC=1 -DENABLE_MEDIA_ROUTER=1 -DUSE_PROPRIETARY_CODECS -DENABLE_PEPPER_CDMS -DENABLE_CONFIGURATION_POLICY -DENABLE_NOTIFICATIONS -DENABLE_HIDPI=1 -DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE -DDONT_EMBED_BUILD_METADATA -DDCHECK_ALWAYS_ON=1 -DENABLE_TASK_MANAGER=1 -DENABLE_EXTENSIONS=1 -DENABLE_PLUGIN_INSTALLATION=1 -DENABLE_PLUGINS=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_THEMES=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_BACKGROUND=1 -DENABLE_GOOGLE_NOW=1 -DCLD_VERSION=2 -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_PRINT_PREVIEW=1 -DENABLE_SPELLCHECK=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_APP_LIST=1 -DENABLE_SETTINGS_APP=1 -DENABLE_SUPERVISED_USERS=1 -DENABLE_SERVICE_DISCOVERY=1 -DENABLE_WIFI_BOOTSTRAPPING=1 -DV8_USE_EXTERNAL_STARTUP_DATA -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DSAFE_BROWSING_SERVICE -DUSE_LIBPCI=1 -DUSE_OPENSSL=1 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -Igen -I../../third_party/angle/src -I../../third_party/angle/include -isysroot /Applications/Xcode5.1.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk -O2 -gdwarf-2 -fvisibility=hidden -Werror -Wnewline-eof -mmacosx-version-min=10.6 -arch x86_64 -Wendif-labels -Wno-unused-parameter -Wno-missing-field-initializers -Wno-selector-type-mismatch -Wpartial-availability -Wheader-hygiene -Wno-char-subscripts -Wno-unneeded-internal-declaration -Wno-covered-switch-default -Wstring-conversion -Wno-c++11-narrowing -Wno-deprecated-register -Wno-inconsistent-missing-override -std=c++11 -fno-rtti -fno-exceptions -fvisibility-inlines-hidden -fno-threadsafe-statics -Xclang -load -Xclang /b/build/slave/GPU_Mac_Builder/build/src/third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.dylib -Xclang -add-plugin -Xclang find-bad-constructs -fcolor-diagnostics -fno-strict-aliasing -c ../../third_party/angle/src/common/string_utils.cpp -o obj/third_party/angle/src/common/angle_common.string_utils.o ../../third_party/angle/src/common/string_utils.cpp:72:19: error: no matching constructor for initialization of 'std::ifstream' (aka 'basic_ifstream<char>') std::ifstream inFile(path); ^ ~~~~ /Applications/Xcode5.1.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/c++/4.2.1/fstream:465:7: note: candidate constructor not viable: no known conversion from 'const std::string' (aka 'const basic_string<char>') to 'const char *' for 1st argument basic_ifstream(const char* __s, ios_base::openmode __mode = ios_base::in) ^ /Applications/Xcode5.1.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/c++/4.2.1/bits/fstream.tcc:894:25: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'const std::string' (aka 'const basic_string<char>') to 'const std::basic_ifstream<char>' for 1st argument extern template class basic_ifstream<char>; ^ /Applications/Xcode5.1.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/c++/4.2.1/fstream:451:7: note: candidate constructor not viable: requires 0 arguments, but 1 was provided basic_ifstream() : __istream_type(), _M_filebuf() ^ 1 error generated. FAILED: /b/build/goma/gomacc ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/third_party/angle/src/common/angle_unittests.string_utils_unittest.o.d -DV8_DEPRECATION_WARNINGS -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORE=0 -DCHROMIUM_BUILD -DCR_CLANG_REVISION=233105-2 -DTOOLKIT_VIEWS=1 -DUSE_LIBJPEG_TURBO=1 -DENABLE_ONE_CLICK_SIGNIN -DENABLE_PRE_SYNC_BACKUP -DENABLE_REMOTING=1 -DENABLE_WEBRTC=1 -DENABLE_MEDIA_ROUTER=1 -DUSE_PROPRIETARY_CODECS -DENABLE_PEPPER_CDMS -DENABLE_CONFIGURATION_POLICY -DENABLE_NOTIFICATIONS -DENABLE_HIDPI=1 -DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE -DDONT_EMBED_BUILD_METADATA -DDCHECK_ALWAYS_ON=1 -DENABLE_TASK_MANAGER=1 -DENABLE_EXTENSIONS=1 -DENABLE_PLUGIN_INSTALLATION=1 -DENABLE_PLUGINS=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_THEMES=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_BACKGROUND=1 -DENABLE_GOOGLE_NOW=1 -DCLD_VERSION=2 -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_PRINT_PREVIEW=1 -DENABLE_SPELLCHECK=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_APP_LIST=1 -DENABLE_SETTINGS_APP=1 -DENABLE_SUPERVISED_USERS=1 -DENABLE_SERVICE_DISCOVERY=1 -DENABLE_WIFI_BOOTSTRAPPING=1 -DV8_USE_EXTERNAL_STARTUP_DATA -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DSAFE_BROWSING_SERVICE -DGTEST_HAS_POSIX_RE=0 -DGTEST_LANG_CXX11=0 -DGL_APICALL= -DGL_GLEXT_PROTOTYPES= -DEGLAPI= '-DANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES={ "d3dcompiler_47.dll", "d3dcompiler_46.dll", "d3dcompiler_43.dll" }' -DANGLE_TRANSLATOR_STATIC -DUSE_LIBPCI=1 -DUSE_OPENSSL=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -D_FORTIFY_SOURCE=2 -Igen -I../.. -I../../third_party/angle/include -I../../third_party/angle/src -I../../third_party/angle/src/compiler/preprocessor -I../../third_party/angle/src/tests -Igen/angle -I../../testing/gmock/include -I../../testing/gtest/include -isysroot /Applications/Xcode5.1.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk -O2 -gdwarf-2 -fvisibility=hidden -Werror -Wnewline-eof -mmacosx-version-min=10.6 -arch x86_64 -Wall -Wendif-labels -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wno-selector-type-mismatch -Wpartial-availability -Wheader-hygiene -Wno-char-subscripts -Wno-unneeded-internal-declaration -Wno-covered-switch-default -Wstring-conversion -Wno-c++11-narrowing -Wno-deprecated-register -Wno-inconsistent-missing-override -std=c++11 -fno-rtti -fno-exceptions -fvisibility-inlines-hidden -fno-threadsafe-statics -Xclang -load -Xclang /b/build/slave/GPU_Mac_Builder/build/src/third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.dylib -Xclang -add-plugin -Xclang find-bad-constructs -fcolor-diagnostics -fno-strict-aliasing -c ../../third_party/angle/src/common/string_utils_unittest.cpp -o obj/third_party/angle/src/common/angle_unittests.string_utils_unittest.o In file included from ../../third_party/angle/src/common/string_utils_unittest.cpp:12: ../../testing/gtest/include/gtest/gtest.h:1481:16: error: comparison of integers of different signs: 'const int' and 'const unsigned int' [-Werror,-Wsign-compare] if (expected == actual) { ~~~~~~~~ ^ ~~~~~~ ../../testing/gtest/include/gtest/gtest.h:1511:12: note: in instantiation of function template specialization 'testing::internal::CmpHelperEQ<int, unsigned int>' requested here return CmpHelperEQ(expected_expression, actual_expression, expected, ^ ../../third_party/angle/src/common/string_utils_unittest.cpp:55:5: note: in instantiation of function template specialization 'testing::internal::EqHelper<false>::Compare<int, unsigned int>' requested here EXPECT_EQ(0xBADF00D, uintValue); ^ ../../testing/gtest/include/gtest/gtest.h:2017:67: note: expanded from macro 'EXPECT_EQ' EqHelper<GTEST_IS_NULL_LITERAL_(expected)>::Compare, \ ^ ../../testing/gtest/include/gtest/gtest_pred_impl.h:162:23: note: expanded from macro 'EXPECT_PRED_FORMAT2' GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_NONFATAL_FAILURE_) ^ ../../testing/gtest/include/gtest/gtest_pred_impl.h:147:17: note: expanded from macro 'GTEST_PRED_FORMAT2_' GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2), \ ^ ../../testing/gtest/include/gtest/gtest_pred_impl.h:77:52: note: expanded from macro 'GTEST_ASSERT_' if (const ::testing::AssertionResult gtest_ar = (expression)) \ ^ BUG=angleproject:892,angleproject:998 This reverts commit fa5fb6f1ef685af316b320530ffbb425bb63446e. Change-Id: I949debbd365926301ec19225f262484fa3b8e13b Reviewed-on: https://chromium-review.googlesource.com/272548 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill fa5fb6f1 2015-05-20T16:13:48 Add some string helper classes. These helper functions mirror some utilities in Chrome, for splitting strings along whitespace, or reading file contents into a string. Also remove the hack for skipping the doubly-defined GLX header. BUG=angleproject:892,angleproject:998 Change-Id: Ie617be7e02c2ccc684028500aabb54561c9c6c14 Reviewed-on: https://chromium-review.googlesource.com/272436 Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Corentin Wallez d229ea6a 2015-05-19T17:31:35 Write the single/double buffer investigation results BUG=angleproject:892 Change-Id: I163e3b674cdb5357cfaf31305f4776dc4c895af1 Reviewed-on: https://chromium-review.googlesource.com/272228 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez a588ef5b 2015-05-19T16:38:47 Fix most occurences of -Winconsistent-missing-override Other occurences are in code generated by macro in googlemock. BUG=angleproject:892 Change-Id: I8b2c6ad4b793be2d9a440687b1b010c9feb8bdae Reviewed-on: https://chromium-review.googlesource.com/272224 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 4f691690 2015-05-19T13:40:28 FunctionsGLX: Remove all but one of the ANGLE dependencies A follow-up CL will make it so the dependencies on TokenizeExtensionString doesn't pull the GL headers, this will then allow use to remove the hack for the inclusion of glx.h BUG=angleproject:892 Change-Id: I51c5466617057e2c580bd5e8056307515bcecc4b Reviewed-on: https://chromium-review.googlesource.com/272206 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 3cd0ca3c 2015-05-15T15:05:18 Completely isolate GLX in FunctionsGLX This makes it so it is the only file including glx.h. BUG=angleproject:892 Change-Id: I5c45b659ec102b7a2c92e010a6843fa21b7c664b Reviewed-on: https://chromium-review.googlesource.com/271418 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 9ce754eb 2015-05-15T13:22:40 DisplayGLX: rework the GLXFBConfig selection This allows us to return multiple EGL configs, in particular we can have configs with no depth-stencil buffer. Also includes a description of the investigation I did for this patch. BUG=angleproject:892 Change-Id: I921e254e91e818396dd4c9bd0ee2a43b00a043b9 Reviewed-on: https://chromium-review.googlesource.com/271426 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 8befcff5 2015-05-15T13:21:10 WindowSurfaceGLX: set the border pixel attribute This is so we can use a different visual depth than our parent window so that we can create a subwindow whichever the parent's visual. BUG=angleproject:892 Change-Id: I9bab676761b1f80fad1599adb8e97a3ec710f67f Reviewed-on: https://chromium-review.googlesource.com/271425 Reviewed-by: Kenneth Russell <kbr@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Zhenyao Mo 9c0a4218 2015-05-15T17:24:47 Revert "Call XSync in the GLX EGL impl if we have a new X server connection" broke linux builders This reverts commit cedb8ca27f97d3101a22f586671a4668bf09bbec. Change-Id: I57143ec207b454bce7498a4d33f6d54464b55ab8 Reviewed-on: https://chromium-review.googlesource.com/271424 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Zhenyao Mo <zmo@chromium.org>
Corentin Wallez cedb8ca2 2015-05-14T13:28:42 Call XSync in the GLX EGL impl if we have a new X server connection This prevents races between the application's connection and ANGLE's one that could lead to X errors crashing the program. BUG=angleproject:892 Change-Id: Ic09462e76724d1a32c35b32708de97258d99241c Reviewed-on: https://chromium-review.googlesource.com/271178 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez d64a38b3 2015-05-14T13:03:31 FunctionsGLX: add support for glXWaitX/GL The functions are not used in the code but are useful during development to try to see where race condition with the X server are. BUG=angleproject:892 Change-Id: Ie1267e46ac251bd9ac62e2a146db68ad84644fb8 Reviewed-on: https://chromium-review.googlesource.com/271177 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 582173d9 2015-05-13T15:51:28 FunctionsGLX: make most functions take the display implicitly In later CLs FunctionsGLX will need to store the X display so we take advantage of it to reduce the verbosity of the other GLX files slightly. BUG=angleproject:892 Change-Id: I42ea00d0a37055e5e0752a860978b8ef5afb7a0b Reviewed-on: https://chromium-review.googlesource.com/271163 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 0d3afab8 2015-05-11T14:53:13 Implement Pbuffers for the GLX EGL implementation BUG=angleproject:892 Change-Id: I32b9bbb35d99621f16a055fb544ec0691dfcd5a0 Reviewed-on: https://chromium-review.googlesource.com/270261 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 4298123b 2015-05-11T14:13:35 DisplayGLX: handle EGL_DEFAULT_DISPLAY for ANGLE_platform_angle BUG=angleproject:892 Change-Id: I681e2b92ac2e8b853c7d1271a5518c4b77a67929 Reviewed-on: https://chromium-review.googlesource.com/270260 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez eac64633 2015-05-06T13:14:24 Add a basic GLX EGL implementation BUG=angleproject:892 Change-Id: Ife9955a457d4a6fb3adce17757ccb0de7d0dd274 Reviewed-on: https://chromium-review.googlesource.com/269413 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez f229cb9b 2015-05-08T15:53:39 Add a FunctionsGLX class to dynamically load the GLX entry points BUG=angleproject:892 Change-Id: I516b7d859100cb065871de8e328585a9ca817499 Reviewed-on: https://chromium-review.googlesource.com/270123 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang f51bc795 2015-05-04T14:57:03 Optimize Texture binding by only applying referenced textures. Update ProgramGL to track which the current values of sampler uniforms so that only the currently applied texture units have to be bound for the draw call. BUG=angleproject:882 Change-Id: I280aa106172b13a5fbb31cdefba27b6691c0a0e4 Reviewed-on: https://chromium-review.googlesource.com/264803 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Corentin Wallez 9477dc94 2015-05-06T13:13:33 Add GLX EGL implementation stubs BUG=angleproject:892 Change-Id: I1ef1bd0ce60f4585e473f9750c748a1b41c09da2 Reviewed-on: https://chromium-review.googlesource.com/269741 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang 0ca53786 2015-05-07T13:49:39 Fix issues with ProgramGL. * Don't re-create the native GL program every link, some program state should persist between re-linking such as bound attribute locations. * Forward glBindAttribLocation calls to the ProgramImpl, fixes some chromium rendering issues because chromium always binds attribute locations, sometimes with gaps. * Query the real attrib location before inserting it into the list of attribs. It was unsafe to rely on the attrib having the same location as its index into the active attributes. BUG=angleproject:882 Change-Id: If14b4c4c2f5ebcdaa4f7c5a890b9519d6d4e6e43 Reviewed-on: https://chromium-review.googlesource.com/269991 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 0e201cb7 2015-05-04T15:02:57 Load the blit framebuffer extension entry points. Change-Id: I654f944aea25661d3fb1e2381b93780771300f32 Reviewed-on: https://chromium-review.googlesource.com/269144 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill f611316b 2015-05-07T11:49:21 Use stream operators for appending to InfoLog. Also add a helper class to keep the previous behaviour of automatically appending a newline after every new message. BUG=angleproject:992 Change-Id: I0ff5d2846175cf19de7a6af295af24a92451456f Reviewed-on: https://chromium-review.googlesource.com/268744 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 27464aa9 2015-05-01T11:07:46 Sync the generic vertex attribute data. BUG=angleproject:883 Change-Id: If5616bf24c1ac5477ae80cf1d25efa70b62edea1 Reviewed-on: https://chromium-review.googlesource.com/268750 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 1eb708e1 2015-05-04T14:58:23 Clear cached state when deleting GL objects. Change-Id: I84eac9b3796858e5e19e26851ad83baa1f9b6af2 Reviewed-on: https://chromium-review.googlesource.com/269142 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 716cc88e 2015-05-04T15:30:15 Always sync writemasks and front face. BUG=angleproject:883 Change-Id: Ie1d544c8f30472238d859d8fd7f553a73b066802 Reviewed-on: https://chromium-review.googlesource.com/269145 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 520c4ae2 2015-05-05T13:12:36 Add a Buffer::getIndexRange function. Instead of exposing the index range cache, add a more generic method that allows the buffers to handle their own caching of index ranges. BufferImpl::getData can be hard to implement for BufferGL because there isn't a way to tell the buffer to unmap and glGetBufferSubData can be very expensive, requiring an extra copy of the data. BUG=angleproject:881 Change-Id: Idec645219056132e0d72a410fbe7b971fa02c9e9 Reviewed-on: https://chromium-review.googlesource.com/261892 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 831b1953 2015-05-05T11:02:27 Move the IndexRangeCache and Range types to the gl namespace. BUG=angleproject:881 Change-Id: Ib05149facee9fcc7714cb957ca8647b3498a36b6 Reviewed-on: https://chromium-review.googlesource.com/269254 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Corentin Wallez 94b3a078 2015-05-05T17:00:07 Factor GL extension parsing in renderergl_utils.cpp DisplayGLX will use it for the GLX extensions too. BUG=angleproject:892 Change-Id: I5e4f80776a558fcdcc7e7b83767145112bcfee98 Reviewed-on: https://chromium-review.googlesource.com/269461 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Jamie Madill 443e1d9b 2015-05-05T12:57:55 Refactor egl::Surface constructors. We can reduce the code in these classes quite a bit by calling the common code in egl::Display. BUG=angleproject:994 Change-Id: Idf0ffa054fc6a70cf8c65a0b98fd963911715591 Reviewed-on: https://chromium-review.googlesource.com/269258 Reviewed-by: Kenneth Russell <kbr@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Corentin Wallez fee03501 2015-05-05T15:08:24 Move comments next to their code block in FunctionsGL BUG=angleproject:892 Change-Id: I7b47e26c81dc91900b17a2062bef0ee10c3290aa Reviewed-on: https://chromium-review.googlesource.com/269209 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 570dae9e 2015-05-05T15:11:08 Remove noop assignment to configId in DisplayWGL It is overwritten by ConfigSet::add. BUG=angleproject:892 Change-Id: I23becb235969c6aeda216014fd06880bd7cc5f67 Reviewed-on: https://chromium-review.googlesource.com/269410 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang b80360f1 2015-05-04T15:01:31 Load the KHR_debug extension entry points and print debug messages. Change-Id: If1b64a7d5cc80205683062586a56fb50da6c1a21 Reviewed-on: https://chromium-review.googlesource.com/269143 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 8cf813c7 2015-05-04T12:55:18 Query attachment render targets from Impl class. *re-land with fix for D3D9* This allows us to eradicate the GetAttachmentRenderTarget methods. This improves potential performance, at the cost of exposing a Renderer-specific function at the API object level. BUG=angleproject:963 Change-Id: Iee9f985ddaed668df0c622228004b348eb4d2ea8 Reviewed-on: https://chromium-review.googlesource.com/269006 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Corentin Wallez 74e16084 2015-05-04T12:44:30 CompilerGL: Use mOutputType when creating the compiler BUG=angleproject:892 Change-Id: Id6bbc4059f92ff7d8d291583cd30dbd4cd5e9bd3 Reviewed-on: https://chromium-review.googlesource.com/268969 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 92d7706d 2015-05-04T12:41:54 Fix tautological compare and && in || warnings in FunctionsGL.cpp Change-Id: Icfbd79e3cbb116da9981daeb42d3657146bf673e Reviewed-on: https://chromium-review.googlesource.com/268968 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez 931c78cb 2015-05-04T12:45:53 Fix typo intialize -> initialize Change-Id: Ia39fffc6f2782b918b37ab7ae25ee16ecc98e93a Reviewed-on: https://chromium-review.googlesource.com/269120 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Jamie Madill e737b06c 2015-05-04T16:53:56 Revert "Query attachment render targets from Impl class." D3D9 bug is causing failures in the WebGL depth texture test. BUG=angleproject:963 This reverts commit 804e8436f91733e1d0f769ec10082e4741f2e549. Change-Id: I660f05033360e97258794138cb50b604f5ac16b6 Reviewed-on: https://chromium-review.googlesource.com/269005 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>