src/libGLESv2


Log

Author Commit Date CI Message
Geoff Lang b04dc82e 2014-12-01T12:02:02 Move Framebuffer clearing from Renderer to the Framebuffer object. BUG=angle:841 Change-Id: I95c9cbdc2d1c99731e19c48e18117358d22b9e94 Reviewed-on: https://chromium-review.googlesource.com/232690 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 492a7e43 2014-11-05T13:27:06 Encapulate the ESSL compiler into a GL object that is per-context. * Allows for multiple contexts have to have different client versions, caps and extensions without causing shader compilation failures. BUG=angle:823 Change-Id: I523679e90be031b0b7fa385d46d6839b1cf3029f Reviewed-on: https://chromium-review.googlesource.com/227710 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill eb32a2e9 2014-12-10T14:27:53 Fix cube map rendertargets. We were using the entire level parameter of the cube map, instead of using the helper functions for cube map ImageIndexes, which set the layer corresponding to the cube map face. BUG=angle:849 BUG=440701 Change-Id: Id78db5c8281b6b644392bb961d69a7f869755a34 Reviewed-on: https://chromium-review.googlesource.com/234380 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Geoff Lang 748f74ef 2014-12-01T11:25:34 Rename Framebuffer::completeness to checkStatus and add an Impl method. BUG=angle:841 Change-Id: I04b4ffd086424569a15aa21447dd552e0a898928 Reviewed-on: https://chromium-review.googlesource.com/232394 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 130e6e8f 2014-12-05T12:17:40 Mark the exported entry points as stdcall. Because they may be returned as stdcall from eglGetProc address, the entry point functions must be stdcall. Fixes issues on 32-bit builds. BUG=angle:733 Change-Id: Ia20046a67fdc28c702837ec59b8299c6bb722006 Reviewed-on: https://chromium-review.googlesource.com/233471 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang e7c6e43c 2014-12-03T14:48:07 Implement all entry points in libGLES and have libEGL act as a shim. This allows libANGLE to only be included in libGLESv2 and moves all TLS data to libGLESv2.dll. BUG=angle:733 Change-Id: I34f0b47987a5efbe906c290d3ca656142e69ea9a Reviewed-on: https://chromium-review.googlesource.com/232962 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 9ad4bda0 2014-12-01T11:03:09 Move Framebuffer invalidation into the impl. BUG=angle:841 Change-Id: Ibcf58c4f676491f3b2582198c6cf9fd4a7a38b42 Reviewed-on: https://chromium-review.googlesource.com/232392 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 164d54eb 2014-12-01T10:55:33 Set all the drawbuffer state at once instead of one buffer per call. BUG=angle:841 Change-Id: I988c7c0cd45317c78b8fd16df8324028ff1cb25d Reviewed-on: https://chromium-review.googlesource.com/232391 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 3011c25b 2014-12-04T13:48:46 Fix event tracer linking on Linux. We were including the cpp in multiple targets, which was causing a multiply defined error. BUG=angle:773 Change-Id: I1e31756faee2d7734f1fc6cfb086d0e7ec6519bc Reviewed-on: https://chromium-review.googlesource.com/232966 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 7dd2e10d 2014-11-10T15:19:26 Merge the ProgramBinary class into Program. BUG=angle:731 Change-Id: I2ee97155841dc62f04bb71c1f2035d210fd3883c Reviewed-on: https://chromium-review.googlesource.com/232694 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 21329414 2014-12-02T20:50:30 Revert "Merge the ProgramBinary class into Program." Issues appeared on the FYI waterfall, content_gl_tests hangs. This reverts commit 2195a6d6032883ed05468d5ecd019e7cb9a27bce. Change-Id: I9fe1a53cf40887ae5a98fd77b4872f41085fcea7 Reviewed-on: https://chromium-review.googlesource.com/232386 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 2195a6d6 2014-11-10T15:19:26 Merge the ProgramBinary class into Program. BUG=angle:731 Change-Id: Ia0a356c0684f3a3576c71dfd04b00874318dd084 Reviewed-on: https://chromium-review.googlesource.com/228701 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 8bc361e1 2014-11-20T16:23:31 Support compiling libANGLE as a static or shared library. BUG=angle:733 Change-Id: If27d3330534bce0f5b691010ea7d97bcb7579122 Reviewed-on: https://chromium-review.googlesource.com/231052 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 2207213b 2014-11-20T15:15:01 Move as many files as possible from common to libANGLE. BUG=angle:733 Change-Id: If01c91cd52ac5c2102276a9fdc4b68ebc13e47f9 Reviewed-on: https://chromium-review.googlesource.com/231850 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 4349ab85 2014-11-25T15:53:34 Revert "Move as many files as possible from common to libANGLE." Chromium directly includes our common/version.h and couldn't build after this change. This reverts commit f0a2c7727f9863c38a435a16a69d513c481fbbdd. Change-Id: Iafc41b1a3973f609518fe3588fdb64cecc285332 Reviewed-on: https://chromium-review.googlesource.com/231840 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang f0a2c772 2014-11-20T15:15:01 Move as many files as possible from common to libANGLE. BUG=angle:733 Change-Id: I40cee6e2e305ac493acbc8649f858785c0569aed Reviewed-on: https://chromium-review.googlesource.com/231051 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 2b5420c0 2014-11-19T14:20:15 Merge libGLESv2 and libEGL classes into libANGLE. BUG=angle:733 Change-Id: Ic491c971411fe82c56cd97c5c8325ac14ec218df Reviewed-on: https://chromium-review.googlesource.com/230830 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 746d0ea7 2014-11-21T11:28:33 Disallow copying of the MemoryBuffer class. BUG=angle:836 Change-Id: Ie3f674ef6c321770209a37b1af06ea21d788f476 Reviewed-on: https://chromium-review.googlesource.com/231232 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang aad0cd7f 2014-11-21T11:07:36 Fix leaked ID3D11Resource object. BUG=427245 Change-Id: If4833df5dc405a2a8d87a577bbd47b954613e321 Reviewed-on: https://chromium-review.googlesource.com/231246 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill f8fccb39 2014-11-12T15:05:26 Fix bugs in 2D Array Texture support. This fixes assertion failures and other errors, reproducible by running the dEQP Texture Format tests. BUG=angle:813 Change-Id: I3b97f89323f9656b45f617211fb4579a24013951 Reviewed-on: https://chromium-review.googlesource.com/229351 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill e5685e08 2014-11-12T15:37:41 Fix failure initting 2D Array textures. Our code currently failed in retrieving a NULL Image internally, when we relied on getting texture dimensions on an unitialized texture. BUG=angle:813 Change-Id: Iaf6791ee291e45daae9c80d6452c4d9154227fdb Reviewed-on: https://chromium-review.googlesource.com/229350 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang acf5d5be 2014-11-19T11:48:40 Remove includes of libGLESv2/main.h. It was mostly being included for gl::error or the debug.h include. BUG=angle:733 Change-Id: If40d511c5422ac9265fbd809f647a91bcc802d41 Reviewed-on: https://chromium-review.googlesource.com/230551 Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 6a1e6b97 2014-11-06T10:42:45 Create a DefaultAttachment type and an implementation for it. This allows for dynamically sized default attachments instead of calling Context::makeCurrent each time the surface changes size. BUG=angle:824 Change-Id: Ic39c0d7dc4269db53a34c01c4d915cb1a3cfbd08 Reviewed-on: https://chromium-review.googlesource.com/228180 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Austin Kinross 44f4d74c 2014-11-11T13:37:00 Fix memory leak when default framebuffer has 0 depth bits and 0 stencil bits Change-Id: If9dbcfc7eac3295b2523dd41dc87198d1b1e2d76 Reviewed-on: https://chromium-review.googlesource.com/229022 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Austin Kinross <aukinros@microsoft.com>
Austin Kinross aed9f94e 2014-10-23T14:31:03 Limit D3D11 Feature Level 9 to GL ES 2.0, and say it's not conformant Change-Id: I2ce88217c9b78e83bac6df5975d9edfbbf90e557 Reviewed-on: https://chromium-review.googlesource.com/225251 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Corentin Wallez e0902644 2014-11-04T12:32:15 Change the component type of STENCIL_INDEX8 to UNSIGNED_NORMALIZED That way RenderbufferStorageMultisample accepts STENCIL_INDEX8 as an internal format for a multisampled buffer (samples > 0) as it isn't concerned by the restriction on integer component types anymore. This is consistent with the component type returned by the NVIDIA driver. BUG=angle:812 Change-Id: Ic03f502ffa082b1011e8127213a5c1df0617ef43 Reviewed-on: https://chromium-review.googlesource.com/227470 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Corentin Wallez ac6ff938 2014-11-12T06:16:53 Unset SRVs which resource are being bound to an RTV This is the extension of a previously debug-only workaround for D3D doing the unsetting by itself (with a warning). It made our state tracking of the bound SRVs out of sync with D3D's and caused some rendering to not take place. BUG=427245 Change-Id: Id378030b64fddafbb3d406872a7dfd2c84793221 Reviewed-on: https://chromium-review.googlesource.com/229066 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
Scott Graham 7e81c9d5 2014-11-15T02:23:08 Revert "Revert "Switch to 8.1 SDK and d3dcompiler_47.dll"" This reverts commit 3cbdc34d4e90f6b51d5612e6f1d3ae632da47234. This reverts back to using 8.1 and d3dcompiler_47, as chrome is now rolled forward. Change-Id: I7ef4ebdbc32146b9ba6f551e376ac03ac71131ba Reviewed-on: https://chromium-review.googlesource.com/229990 Reviewed-by: John Abd-El-Malek <jam@chromium.org> Reviewed-by: Scott Graham <scottmg@chromium.org> Commit-Queue: Scott Graham <scottmg@chromium.org> Tested-by: Scott Graham <scottmg@chromium.org>
Scott Graham 3cbdc34d 2014-11-14T18:25:26 Revert "Switch to 8.1 SDK and d3dcompiler_47.dll" This reverts commit e1425d95ba0ab095c5d64536bbeb3f78adcbf79f. This is to keep the GPU fyi bots green until the chrome side is landed. Chrome will be rolling to e1425d95... Change-Id: Iff1c60eeb7143fb72afa8525b31f8f0de9385897 Reviewed-on: https://chromium-review.googlesource.com/229497 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Scott Graham e1425d95 2014-11-13T11:28:30 Switch to 8.1 SDK and d3dcompiler_47.dll Change-Id: If43c7861ab7f47448fd726fd0b5c35f3a6eeb362 Reviewed-on: https://chromium-review.googlesource.com/229616 Commit-Queue: Scott Graham <scottmg@chromium.org> Tested-by: Scott Graham <scottmg@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Cooper Partin e9bdeb25 2014-11-04T16:49:40 Added Trim support for Windows Store application certification requirement Change-Id: Iff58863bf4af756d77521aadb1ccbaa977f0b78a Reviewed-on: https://chromium-review.googlesource.com/227530 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 30d6c255 2014-11-13T10:03:33 Remove redundant rx:: scoping prefixes. In many places we can get rid of this scoping operator. BUG=angle:789 Change-Id: If6c40c435a97473d2fd9d6f1fb5a2c709393eb00 Reviewed-on: https://chromium-review.googlesource.com/225566 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill b38f2e5d 2014-11-13T10:03:31 Remove the unused Renderer client version methods. Previous patches enable us to get rid of this workaround. We should in subsequent patches also try to clean up code that uses the internal Renderer-only version of the context caps. BUG=angle:789 Change-Id: Ic054090303cdc3f7ee8e45e4577c157559955472 Reviewed-on: https://chromium-review.googlesource.com/227714 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 245d3602 2014-11-13T10:03:30 Pass GL context data into shader creation. This allows us to remove the hack where we store the current GL client version in the Renderer. BUG=angle:789 Change-Id: I6526f11eaa922325a9a41df0df48b2152e022e26 Reviewed-on: https://chromium-review.googlesource.com/227713 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 560eef16 2014-11-11T15:06:39 Fix ProgramBinary being disabled when it should be enabled. Change-Id: I6a21bca32ae5bf1e0e638c0cf46102bd964cd066 Reviewed-on: https://chromium-review.googlesource.com/229064 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang ab75a056 2014-10-15T12:56:37 Refactor Framebuffer attachment application. Instead of passing texture and renderbufer IDs which requires a call to gl::getNonLostContext to resolve the objects, pass the Texture and Renderbuffer objects directly. BUG=angleproject:733 Change-Id: Ia500a781643e43a17c8e9cea9f95847a7ff7b25d Reviewed-on: https://chromium-review.googlesource.com/228280 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill de8892b4 2014-11-11T13:00:22 Pass GL caps and version to compiler. This allows us to get rid of some of the reliance on storing the current context client version in the Renderer. A subsequent patch will allow us to remove the client version ugly hack. BUG=angle:789 Change-Id: I139e0f66e1d39e5cd41a484c841a7101b1f29540 Reviewed-on: https://chromium-review.googlesource.com/227712 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 87f6da1f 2014-11-11T13:00:20 Move the Context ReadPixels logic into RendererD3D. BUG=angle:789 Change-Id: I0a678f8fe31a3e7ddd9a675a0e3cb0342299b0e3 Reviewed-on: https://chromium-review.googlesource.com/226064 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill a93bef2e 2014-11-11T13:00:19 Move BlitFramebuffer logic into RendererD3D. BUG=angle:789 Change-Id: Ib3f830ba2f915a5fa4fa552dccc13c24575aa843 Reviewed-on: https://chromium-review.googlesource.com/226063 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 1bd642c5 2014-11-04T17:05:00 Split the RenderTarget classes based on if they are backing a SwapChain. bug=angle:824 Change-Id: I89e475d4065102dbaa7fa1f1bfd02c7207def75c Reviewed-on: https://chromium-review.googlesource.com/227600 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 23419d56 2014-11-07T15:21:14 Pass 0 for the sample count to RenderTarget when there is no multisampling. BUG=angle:520 Change-Id: Idc9a19ece620d107b87110dac8e1ef7a24f565cc Reviewed-on: https://chromium-review.googlesource.com/228551 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill a153d4b0 2014-11-06T15:27:28 Move Clear logic into RendererD3D. BUG=angle:789 Change-Id: I56d4398e4c49fe980f649327b105cdba9d944a00 Reviewed-on: https://chromium-review.googlesource.com/226062 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Jamie Madill d9e58303 2014-11-06T15:27:26 Move Context draw call logic into RendererD3D. Also move a lot of supporting code. BUG=angle:789 Change-Id: I098bf7d072ece1f414605783c32ec5354ba63e19 Reviewed-on: https://chromium-review.googlesource.com/226061 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Shannon Woods 4de4fd6e 2014-11-07T16:22:02 Fixes a bug in program ID validation for GetUniform* calls. BUG=angle:571 Change-Id: I7080f0f7ea0def29d1b67c9d954ee5d9d41fb348 Reviewed-on: https://chromium-review.googlesource.com/228560 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill 93e13fbf 2014-11-06T15:27:25 MANGLE the ANGLE Renderer class. BUG=angle:789 Change-Id: Ib6d9d47a9353ea3c1a931b793baba85a2698b659 Reviewed-on: https://chromium-review.googlesource.com/225472 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill e6382c3b 2014-11-07T15:05:26 Fix zero texture application. Patch https://chromium-review.googlesource.com/#/c/227711/ would allow NULL Textures sometimes from State::getSamplerTexture. Fix this by always setting the zero "Default" textures instead of NULL in the State. This was breaking the ES2-CTS test 'framebuffer_objects' on Windows. BUG=angle:826 Change-Id: Ie08a89cff0555f21c769759e0c0ed73456a2f91c Reviewed-on: https://chromium-review.googlesource.com/228275 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang b28126ef 2014-10-03T15:51:38 Remove the gl::error function. BUG=angle:520 Change-Id: Iefd4345aa347041143d5452cc2fcf48c071d494b Reviewed-on: https://chromium-review.googlesource.com/222839 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang bafefdf3 2014-10-10T14:26:35 Add error handling to RenderTarget creation. * RenderTarget9/11 don't create any resources themselves anymore. * Pass the real internal format to RenderTarget creation so that it is not lost by converting to D3D formats and back. BUG=angle:520 Change-Id: If420970d42f0bf6ce392d64f9cb7efa4df0b8f8e Reviewed-on: https://chromium-review.googlesource.com/222838 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill ad65a13c 2014-11-06T15:27:23 Add RendererD3D as a layer between GL and Renderer9/11. BUG=angle:789 Change-Id: I6107e6cbdeb5e3466f96a4bdf98181b8e5a25467 Reviewed-on: https://chromium-review.googlesource.com/225471 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 48faf80a 2014-11-06T15:27:22 Use Context caps in Framebuffer completeness check. This frees the Framebuffer from any dependency on the Renderer. BUG=angle:789 Change-Id: I0e9ae0edf93674e32ae4f6538a934cddbdc804d5 Reviewed-on: https://chromium-review.googlesource.com/225470 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 1e9ae079 2014-11-06T15:27:21 Add a base for GL essential data. The data holds the GL state, caps, extensions, texture caps, and current client version. BUG=angle:789 Change-Id: Icd15d806e14490f39041dea663ab2461a6a76090 Reviewed-on: https://chromium-review.googlesource.com/226060 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Jamie Madill dedd7b95 2014-11-05T16:30:36 Merge zero textures into the state texture map. We can treat these textures the same as the rest, saving a bit of code and complexity cost. BUG=angle:789 Change-Id: I14b426c817cbe3c5bb737410378b6a80e274689b Reviewed-on: https://chromium-review.googlesource.com/227711 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Zhenyao Mo 0bdc0f3e 2014-11-04T15:26:10 Switch to new APIs in samples/translator/translator.cpp Also, fix a few issuse for ninja build "all" to finish. BUG=angle:775 TEST=translator.cc compiles OK Change-Id: I6507e9143882a628a7737dd139efb6d8d358b0db Reviewed-on: https://chromium-review.googlesource.com/227490 Tested-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 0af0b38e 2014-11-05T14:09:18 Use an ES3 shader spec for ES3 contexts. BUG=angle:823 Change-Id: I377b4483b3835660e7fd45d923bf7f560cf2e5f6 Reviewed-on: https://chromium-review.googlesource.com/227593 Tested-by: Geoff Lang <geofflang@chromium.org> Tested-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jacek Caban a22cd47e 2014-11-05T11:20:45 Fixed a typo in generatePointSpriteHLSL. Change-Id: I104bbca6442835ab5e8e78580c6cbbb58d32a9b2 Reviewed-on: https://chromium-review.googlesource.com/227570 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Shannon Woods e2632d24 2014-10-17T13:08:51 Changes gl::RenderbufferStorage to rx::RenderbufferImpl BUG=angle:782 Also eliminates Colorbuffer/DepthStencilBuffer and related friends and adds the RenderbufferD3D implementation of RenderbufferImpl. This version fixes problems with the prior CL's handling of render target serial issuance. Change-Id: I7ddfbec1097723d7ea6ce93a9c034f941349108a Reviewed-on: https://chromium-review.googlesource.com/227195 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang 0d3683c4 2014-10-23T11:08:16 Update ANGLE_platform_angle to allow requesting of Renderer versions. Added enums to allow users to request major and minor versions of the underlying API and if a WARP device is used. BUG=angle:490 Change-Id: I0bfb2ac8d327da28a47cc8e6346300e47ab9538c Reviewed-on: https://chromium-review.googlesource.com/225081 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Zhenyao Mo 4de44cb6 2014-10-29T18:03:46 Change ShaderLang APIs from c style to c++ style. BUG=angle:816 TEST=gpu_unittests,angle_unittests,webgl_conformance Change-Id: I0b46c11f6055a82511bb946a6dc491360835526e Reviewed-on: https://chromium-review.googlesource.com/226410 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Zhenyao Mo <zmo@chromium.org>
Shannon Woods f108df24 2014-10-30T18:53:29 Revert "Changes gl::RenderbufferStorage to rx::RenderbufferImpl" This reverts commit 9fc51d90176dcf4273cd6689968e1ca5d1c9fe16. Change-Id: I4134ebe5ef6b8f509f4cc5cc22a2d526ec43ef6d Reviewed-on: https://chromium-review.googlesource.com/226374 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Brandon Jones 091540d3 2014-10-29T11:32:04 Changed feature macros to reduce accidental enabling/disabling Change-Id: Ieb1a0c55f412f2a1bb858522b2dfaa7a60aa7ddb Reviewed-on: https://chromium-review.googlesource.com/226304 Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org>
Shannon Woods 9fc51d90 2014-10-17T13:08:51 Changes gl::RenderbufferStorage to rx::RenderbufferImpl BUG=angle:782 Also eliminates Colorbuffer/DepthStencilBuffer and related friends and adds the RenderbufferD3D implementation of RenderbufferImpl. Change-Id: Ibe72c9589b3c238b952744e7cfd70d97ec898eb9 Reviewed-on: https://chromium-review.googlesource.com/222925 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang ede18442 2014-09-29T14:05:22 Updated Image9 to use gl::Errors for staging texture manipulation. BUG=angle:520 Change-Id: I527a2bcadbf1abb05bd461d35ddbd7e28d487639 Reviewed-on: https://chromium-review.googlesource.com/221396 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Austin Kinross 922a9fb3 2014-10-21T14:26:33 Use D3D11 Debug Annotations when D3D9 is unavailable Change-Id: I37ac5fe7f0b2fe5e71bd7f0afca55e9894f3463c Reviewed-on: https://chromium-review.googlesource.com/224512 Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Brandon Jones 1a8a7e3b 2014-10-01T12:49:30 Moving Uniform handling into ProgramD3D. Moves the last references to HLSLBlockEncoder out of ProgramBinary. Only one reference to ShaderD3D remains. BUG=angle:731 Change-Id: Ie23e24e09fbed4c8c5fab3bab814b7092a383c7f Reviewed-on: https://chromium-review.googlesource.com/220940 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org>
Geoff Lang 8becd0cb 2014-09-26T14:21:54 Updated Image11 to use gl::Errors for staging texture manipulation. BUG=angle:520 Change-Id: I5792b139ddd69c2cabc3b901a7067438c1ee363b Reviewed-on: https://chromium-review.googlesource.com/221395 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 06ecf3dd 2014-09-23T16:39:50 Updated mipmap generation to return Error objects. BUG=angle:520 Change-Id: Ic4e57148d031d6c452b3054efad98f6e730c7691 Reviewed-on: https://chromium-review.googlesource.com/221394 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Cooper Partin 73b8de78 2014-10-28T08:34:30 Fixed D3DDisassemble function dynamic GetProcAddress failure on WinRT Change-Id: I32a345803c9183e0b9b77d529027711f8c8e1ad8 Reviewed-on: https://chromium-review.googlesource.com/225847 Tested-by: Cooper Partin <coopp@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 84bcabe3 2014-10-28T10:52:24 Fix build failure on WinRT due to missing Sleep definition. Change-Id: I9032484dde6e690fcd175d6d76192724e5bc0357 Reviewed-on: https://chromium-review.googlesource.com/225893 Reviewed-by: Cooper Partin <coopp@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 9ae396bb 2014-10-21T17:46:30 Remove getData from BufferImpl. We only ever call this method inside the D3D Renderer, so we can downcast to BufferD3D and call getData on the D3D-specific type. Leave a FIXME for handling index range validation, which will need a CPU-side data cache. Change-Id: Iaf71bc8055869a8561777b6b36f67e376a1d0b81 Reviewed-on: https://chromium-review.googlesource.com/224654 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill c751d1e5 2014-10-21T17:46:29 Support compressed textures with unpack buffers. BUG=angle:792 Change-Id: I32f32422232bd4cb04c8a70005cb51482224bf3e Reviewed-on: https://chromium-review.googlesource.com/224655 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 55d611e7 2014-10-24T16:28:14 Fix ASSERT failure in XFB test. With the invariant handling changes, we're also exporting gl_Position and other builtin variables from the translator where we were not previously. This was causing an assert in the XFB code, where we would inadvertently assign a register to gl_Position, and trip up logic further in the varying handling logic. BUG=angle:808 Change-Id: I674902da75c572e969f9516033a85c7a7170d7d1 Reviewed-on: https://chromium-review.googlesource.com/225261 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 39eab03f 2014-10-22T16:57:15 Add robust D3D11 SRV state tracking. This will ensure our currently set pixel and vertex SRVs match with the underlying D3D state, and reduce the need for resetting them as often. BUG=angle:756 BUG=417424 Change-Id: I42e9e25182b279871ac4cdf8da5e2ab62c8cf71f Reviewed-on: https://chromium-review.googlesource.com/225052 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 2f1cd4a3 2014-09-23T10:40:29 Defer the creation of textures in TextureStorage9 and use Error objects. BUG=angle:520 Change-Id: I5db70189d95babef14d48548054af4c7ff2bfc47 Reviewed-on: https://chromium-review.googlesource.com/219334 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 553c6bee 2014-09-22T15:21:39 Defer the creation of textures in TextureStorage11. BUG=angle:520 Change-Id: If1c1f7519a84900f594701b6298b64ebf8798073 Reviewed-on: https://chromium-review.googlesource.com/219333 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Tibor den Ouden 2221f47b 2014-10-22T15:07:05 Compiler flags and macros added to shader debug report The list of D3D compiler flags and macros used if compilation of a shader succeeds is added to the shader debug output. BUG=angle:751 Change-Id: Ie84a586010787fe8d9c0dedfe9208f881058a588 Reviewed-on: https://chromium-review.googlesource.com/224970 Tested-by: Tibor Ouden, den <tibordenouden@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang fc532b9a 2014-10-21T10:24:16 Delete the ShaderImpl on gl::Shader object destruction. BUG=angleproject:804 Change-Id: I4d68f9283299e9fb6b907a6406c37f92f8b08dbe Reviewed-on: https://chromium-review.googlesource.com/224106 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang c8d297a4 2014-09-19T11:09:08 Remove last uses of gl::error in the Buffer classes. BUG=angle:520 Change-Id: Id18e93b440da64360a6845a42a2664ae531b06f9 Reviewed-on: https://chromium-review.googlesource.com/218769 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 710e5775 2014-10-20T17:13:53 Make commitRegion a base method of TextureD3D. Use a helper method isValidIndex to preserve ASSERT checks. Refactoring patch only. BUG=angle:741 Change-Id: Ie19fa21db51cd0239a3b391de362584a9fbab2df Reviewed-on: https://chromium-review.googlesource.com/222268 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill e76bdda2 2014-10-20T17:13:52 Restrict use of TexStorage more in CopyImage. We were being too permissive in some copyImage methods when checking if we can create a render target or not. This would lead us to trying to use an inconsistent TexStorage in some cases. Note that we do need to create inconsistent TexStorage in cases where we are doing a FBO copy *from* a mipmap-incomplete texture attachment. BUG=angle:780 Change-Id: I5a849b5d8c53713e38cb5f5052a8bb88b3f56260 Reviewed-on: https://chromium-review.googlesource.com/224480 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill f99b0cff 2014-10-20T17:04:36 Remove getNativeTexture from TextureImpl. We can stop exposing this method on the GL-side, now that we only use it on the D3D back-end. BUG=angle:781 Change-Id: I3a9ecc277dcd21147881b8780849782f68b3e62e Reviewed-on: https://chromium-review.googlesource.com/222924 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Jamie Madill dd3bf52e 2014-10-20T17:04:35 Remove getSamplerStateWithNativeOffset. This method returned a sampler state as normal, with the base level automatically offset by the one or two levels we use in the D3D workaround for small compressed textures. Since this is D3D-only, we can move all of the logic into the D3D classes themselves. BUG=angle:781 Change-Id: Ie0a60877efebb41f02f4e57625a44e5fb5cce074 Reviewed-on: https://chromium-review.googlesource.com/222923 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Jamie Madill 10ef2156 2014-10-20T17:04:34 Move Texture Serials to the base class. It's reasonable to use the serial logic on both the GL and all other translated Renderers, since we check the logic on the GL-side. Serials give us a way to identify Textures that aren't raw pointers and aren't "id". "id" has issues when Textures are deleted, then re-allocated with the same value. BUG=angle:781 Change-Id: I1a2a8b6f4ea3db915574c957c143a81e0210ec7d Reviewed-on: https://chromium-review.googlesource.com/222922 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Jamie Madill 6948e301 2014-10-20T17:04:33 Use immutable level count in gl::Texture. Instead of storing a binary flag indicating if we've created immutable storage, store a level count. This indicates if or if not we've created immutable storage, as well as avoiding the call to the native storage to return the level count. BUG=angle:781 Change-Id: I08a6bd086d00ddf3255262a7711628be5212b4b7 Reviewed-on: https://chromium-review.googlesource.com/222921 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Cooper Partin 88d3b8cb 2014-10-08T10:41:56 Added IInspectable EGLNativeWindowType and ICoreWindow support Change-Id: I6dd7fef72a73572d4a3deda7ce36a11da3a75c81 Reviewed-on: https://chromium-review.googlesource.com/224366 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 63837d51 2014-09-18T13:23:18 Defer the creation of Blit9's geometry and return Errors if it fails. BUG=angle:520 Change-Id: I5e51fec38c513419beea5ff612a6ec2fb0e81a26 Reviewed-on: https://chromium-review.googlesource.com/218768 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang cbc7f050 2014-10-15T13:17:00 Use a constant for the number of faces in a cube map. BUG=angle:520 Change-Id: Ia35103059526aff2fc1b29a160d8471f4b5cbd42 Reviewed-on: https://chromium-review.googlesource.com/223107 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Tibor den Ouden 739f8ec3 2014-10-17T21:04:53 Removed declaration of getAttachedShaders() without implementation. Found while working on BUG=angle:751 BUG=angle:751 Change-Id: I8a5c5383f88ecb379395d1a23e36148145ebe34d Reviewed-on: https://chromium-review.googlesource.com/224090 Tested-by: Tibor Ouden, den <tibordenouden@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 64f23f65 2014-09-10T14:40:12 Update the getRenderTarget functions to return gl::Error objects. BUG=angle:520 Change-Id: If1f4f71972b669704eff70b5f60927d8e6ac07b3 Reviewed-on: https://chromium-review.googlesource.com/218767 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 433bfd38 2014-10-20T12:07:36 Merge the copyToStorage methods. BUG=angle:741 Change-Id: I67380748ee875cc2dea61eb82a9b0d600144dc85 Reviewed-on: https://chromium-review.googlesource.com/222267 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill e020bed5 2014-10-20T16:16:46 Revert "Added IInspectable EGLNativeWindowType and ICoreWindow support" Causing regressions in the build: http://build.chromium.org/p/chromium.gpu.fyi/builders/GPU%20Mac%20Builder/builds/20182 This reverts commit 756aebfc7afa6d0de14e96637ef396dd7b290c2d. Change-Id: I2f4bdb5aeb429c9bbc5e655a1761704f33737841 Reviewed-on: https://chromium-review.googlesource.com/224221 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Cooper Partin 756aebfc 2014-10-08T10:41:56 Added IInspectable EGLNativeWindowType and ICoreWindow support Change-Id: I34e443b1e194800460e441ac6cee42cf68430564 Reviewed-on: https://chromium-review.googlesource.com/224302 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill ec6de4ec 2014-10-20T10:59:56 Fix TextureD3D::setData for depth-stencil textures. D3D11 requires us to NULL the update region parameter when updating depth stencil textures. For these textures, we can't always use the subdata workaround, so disable it entirely for these textures. BUG=angle:729 BUG=365078 Change-Id: I44258dd1b8937b1aebcb3a73de835698805537e0 Reviewed-on: https://chromium-review.googlesource.com/222911 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 24e83192 2014-10-20T11:00:53 Fix CopyBufferSubData validation. We were checking readTarget twice, instead of both read and write. BUG=angle:800 Change-Id: I4096a9c4e0fdec9c77bfc25250923c188d2b43db Reviewed-on: https://chromium-review.googlesource.com/224102 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Shannon Woods 8e929230 2014-10-17T18:45:20 We managed to disable NPOT textures on AMD. Reenable them. BUG=angle:799 Change-Id: Iaa8aee1f09c8c2ac3669d6709572f76f40f21847 Reviewed-on: https://chromium-review.googlesource.com/224042 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Shannon Woods 8858cf0a 2014-10-17T20:53:32 Revert "Added IInspectable EGLNativeWindowType and ICoreWindow support" due to build failures on Chromium FYI bots. This reverts commit 406a3be91cc8175df95bd390425e35830778f2d5. Change-Id: Ica2abd2e557a4fd9852d85b7fc018e3d272b6edf Reviewed-on: https://chromium-review.googlesource.com/224051 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Cooper Partin 406a3be9 2014-10-08T10:41:56 Added IInspectable EGLNativeWindowType and ICoreWindow support Change-Id: I9ad82b7819bcca1c05e7aa60dc2baec4a7bc403c Reviewed-on: https://chromium-review.googlesource.com/222360 Tested-by: Cooper Partin <coopp@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tibor den Ouden 97049c6a 2014-10-06T21:39:16 Enhance shader debug output glGetTranslatedShaderSourceANGLE() returns the glsl code, the initial translated hlsl code, the final translated hlsl code and the disassembly of the generated binary with the compiler configuration. This enhancement is only available if the define ANGLE_GENERATE_SHADER_DEBUG_INFO exists. This define is set in the debug configurations for the Windows platform. BUG=angle:751 Change-Id: I8b15e8b25fbb0c0575a73cc876bf8f1fa7ed142a Reviewed-on: https://chromium-review.googlesource.com/221059 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Nicolas Capens 5e0c80ad 2014-10-10T10:11:54 Use attributes to avoid unrolling and flatten conditionals. [loop] and [flatten] help avoid unrolling make more shaders compile successfully. When unrolling has to happen, an error X3531 is generated so we have to try compiling again without these attributes. BUG=395048,395286 Change-Id: I91ea8ac3a822ab1f1ac24907d42326e3c6c9d9af Reviewed-on: https://chromium-review.googlesource.com/222810 Tested-by: Nicolas Capens <capn@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 24d4a3c1 2014-10-09T14:11:21 Update Renderer11::packPixels to return Error objects. BUG=angle:520 BUG=394361 Change-Id: I95f2f806210ac7aea8b0c57bece610eb22d018ed Reviewed-on: https://chromium-review.googlesource.com/222481 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Kenneth Russell 9d6d498c 2014-10-10T19:47:34 Refactor TLS management. Use cross-platform APIs and constants, and conditionally compile the Windows-specific DllMain. BUG=angleproject:783 Change-Id: I8fd2708ab0925cb3207010eb0e759cfc055183ab Reviewed-on: https://chromium-review.googlesource.com/222955 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Kenneth Russell <kbr@chromium.org>