Branch :
| Author | Commit | Date | CI | Message |
|---|---|---|---|---|
| d7d0ed32 | 2016-10-07 11:33:51 | Implement robust GetShaderiv entry points. BUG=angleproject:1354 Change-Id: I994b7a596b5b67fadbd91ad0d64054c792523200 Reviewed-on: https://chromium-review.googlesource.com/395111 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> | ||
| f2f6f65f | 2016-10-05 19:53:23 | Add cross-platform Workarounds to Context. These are distinct from the renderer-level workarounds. Add the first workaround, loseContextOnOutOfMemory. This is enabled when the application enables reset notifications via KHR_robustness, and is intended for more robust handling of errors in key APIs for Chromium's correctness (in particular, sync objects). Change Context::getResetStatus to persistently return the "lost" status if it was set by calling Context::markContextLost. Previously, if markContextLost was called but the implementation hadn't actually received an error like a lost device, the "lost" reset status would be dropped. Returning it only once to the caller is also fragile. Tested this by manually injecting a failure in FenceSync11::clientWait and ensuring that Chromium detected it as expected. BUG=chromium:650138 Change-Id: Ie53069eacd1754ad5d64936e3fef315af24605fa Reviewed-on: https://chromium-review.googlesource.com/394233 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 8234e7b3 | 2016-10-07 15:12:10 | Refactor some errors into ANGLE_TRY macros. BUG=None Change-Id: I00ff2523995cb49d1af60cae62c2bba0d020eed4 Reviewed-on: https://chromium-review.googlesource.com/395569 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| ef300b15 | 2016-10-07 15:12:09 | Refactor some entry point stuff. BUG=angleproject:747 Change-Id: I80634b5e6de8bae1433c49a56a92d3b19c24e11d Reviewed-on: https://chromium-review.googlesource.com/395568 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| 740d9020 | 2016-10-07 11:20:52 | Implement robust GetRenderbufferParameteriv entry points. BUG=angleproject:1354 Change-Id: I073b75d416bd5184402b580bcebfca34f7cd28a8 Reviewed-on: https://chromium-review.googlesource.com/395110 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> | ||
| 62fce5b1 | 2016-09-30 10:46:35 | Implement robust ReadPixels entry points. BUG=angleproject:1354 Change-Id: I70738d2f00e283ddc52b1545f8efda9022110487 Reviewed-on: https://chromium-review.googlesource.com/391090 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| e9e8a899 | 2016-10-07 10:24:52 | D3D11: Fix some format support entries. On Intel these were seeingly missing or erroneous. BUG=angleproject:1389 BUG=angleproject:1459 Change-Id: I4410407ce1171f420b275c7662896f5b26a949c2 Reviewed-on: https://chromium-review.googlesource.com/395168 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 76648fe2 | 2016-10-05 17:01:41 | Constexpr-fy the ES3 effective format map. This removes the global std::vector constructor here. BUG=angleproject:1459 Change-Id: I407a7bda1f8f8a2dd8d5b0e847573f8594eccf39 Reviewed-on: https://chromium-review.googlesource.com/394235 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 22416868 | 2016-06-08 16:14:36 | Add dirty bits for internal texture state. Synchronize TextureGL internal state using the dirty bits. TexturesBenchmark scores: Before: 5051 After: 7639 Diff: +51.2% BUG=angleproject:1386 Change-Id: Id04aef778a47175d1a284564495a646045855b4b Reviewed-on: https://chromium-review.googlesource.com/393866 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| 47110bf4 | 2016-04-20 11:13:22 | Implement CHROMIUM_copy_compressed_texture for D3D11. BUG=angleproject:1356 Change-Id: Id563997d2921cf558c52a781ae66d8bde58d1f2f Reviewed-on: https://chromium-review.googlesource.com/339847 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> | ||
| 55e98210 | 2016-10-05 16:39:13 | Make global ES3 formats STL map a switch. This eliminates another global std::map, and replaces it with a json generated switch. This should be better for threading, better on memory use, and faster. BUG=angleproject:1389 BUG=angleproject:1459 Change-Id: I1d289637c00783690ec8ea743ea2aa17b0ab8e50 Reviewed-on: https://chromium-review.googlesource.com/394234 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| b7fe49db | 2016-10-05 16:39:11 | D3D11: Fold mipmap gen caps into the support table. This change is two-fold: first it allows us to remove the std::map for D3D11 format info, which was only being used in a single place. Secondly, it fixed the support table to use the correct 9_3 caps for texture support, determined by running the D3D11FormatTablesTest. This should reduce the number of format queries we need to run on 9_3 startup. BUG=angleproject:1389 BUG=angleproject:1459 Change-Id: I2435a47fc221e73c96337bc7c1c4ed37b527bc1f Reviewed-on: https://chromium-review.googlesource.com/392210 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| e0548ad2 | 2016-10-06 15:55:35 | D3D11: Split off DXGI component type query. This query is currently a part of a std::map. Split it off to its own switch using auto-generation based on the format string. Also introduce a DXGI-to-angle format map. This map is not totally complete because some more esoteric formats don't have corresponding ANGLE formats yet. We should add these other formats (EG NV12) if we need them. BUG=angleproject:1389 BUG=angleproject:1459 Change-Id: I49e045bdc04a52166299c9e22a4c4d3f24069dbc Reviewed-on: https://chromium-review.googlesource.com/392209 Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 5d9f5df0 | 2016-09-27 13:28:25 | Implementation of eglGetSyncValuesCHROMIUM extension. This change adds implementation of eglGetSyncValuesCHROMIUM extension on D3D11 with Direct Composition. This should work on Windows 8.1 and above. The implementation is based on IDXGISwapChain::GetFrameStatistics. Extension documentation: https://chromium.googlesource.com/chromium/src/gpu/+/master/GLES2/extensions/CHROMIUM/EGL_CHROMIUM_get_sync_values.txt BUG=angleproject:1402 Change-Id: I306434dd8d85d618b14edfa38fc2a22e50fddacc Reviewed-on: https://chromium-review.googlesource.com/390351 Commit-Queue: Stanislav Chiknavaryan <stanisc@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 873d00f4 | 2016-10-06 13:05:57 | Change UNREACHABLE to use ASSERT. The ASSERT macro is enabled with ANGLE_RELEASE_ASSERT, so we should use the same behaviour as the normal ASSERT for the other debug macros. Also remove UNREACHABLEs in the format validation code that were being hit silently. Also make some EGL tests skip instead of fail, since they were hitting UNIMPLEMENTED. BUG=angleproject:1332 BUG=angleproject:1540 BUG=angleproject:1340 Change-Id: Ie3347f2bf2459a5831b66827871998d8fbe7d4b2 Reviewed-on: https://chromium-review.googlesource.com/392490 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 26a717b0 | 2016-09-27 08:45:42 | GL: Emulate SRGB blits where needed. Desktop OpenGL before 4.4 doesn't handle SRGB blits the same way OpenGL ES does. Emulate them by drawing a quad. BUG=angleproject:1492 BUG=chromium:634525 Change-Id: I9f2992d9b373941b10f19f8a51564f0f756cc4df Reviewed-on: https://chromium-review.googlesource.com/389853 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org> | ||
| b80a5e9c | 2016-10-05 16:39:09 | Store channel bits info in angle::Format. This allows us to delete some duplicated code in the D3D11-side. BUG=angleproject:1389 BUG=angleproject:1459 Change-Id: Ifdcfcd4a56e06ff2ae8f5ca0bda72281d52c2964 Reviewed-on: https://chromium-review.googlesource.com/392208 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> | ||
| ed4d342e | 2016-10-03 15:45:35 | Make the "FormatMap" a static switch. This map lives in formatutils.cpp, and maps from a {format,type} to an internal format. Convert this into generated code. BUG=angleproject:1389 Change-Id: Ib12750d83d3f8cf8794d6668874cb025f856b5d4 Reviewed-on: https://chromium-review.googlesource.com/392207 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> | ||
| 168445c2 | 2016-09-23 16:33:22 | Add an extension for requesting a NULL Display. BUG=angleproject:1468 Change-Id: Ief4b0e7d7a0420e59e547cd24fde53deb3718ccb Reviewed-on: https://chromium-review.googlesource.com/388845 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| d08f3b3d | 2016-09-23 15:56:30 | Add stubs for a NULL renderer. BUG=angleproject:1468 Change-Id: I2ed2b65a4b6f6ea3dda61c0467aef95e407cd38c Reviewed-on: https://chromium-review.googlesource.com/388844 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> | ||
| 18319182 | 2016-09-28 14:22:27 | Re-land "Fix glGetIntegerv(GL_TEXTURE_BINDING_EXTERNAL_OES, ...)" BUG=angleproject:1332 Change-Id: Ie970466c4528cb80b2363d0c0683da2d9c23c4f4 Reviewed-on: https://chromium-review.googlesource.com/392267 Commit-Queue: John Bauman <jbauman@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| 4c655248 | 2016-10-04 10:27:21 | D3D11: Fix unreferenced XFB vars getting dropped. Our for-loop logic was confused so that some unreferenced transform feedback varyings might get dropped. BUG=chromium:651493 Change-Id: Id283230da0a47fc647b2a3862da60be5538e439e Reviewed-on: https://chromium-review.googlesource.com/391945 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 0e48719f | 2016-10-03 16:30:38 | formatutils: allow reusing rowPitch computation for depthPitch This should fix a null D3D11 backend draw call performance regression. BUG=651101 Change-Id: I2eb10cddd15f0e7b25b886c89eccd2906e988c72 Reviewed-on: https://chromium-review.googlesource.com/392227 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org> | ||
| 2549e74e | 2016-10-03 10:59:21 | Only expose the EGL robutness extensions when the native GL context has them. On some drivers, the WGL_ARB_create_context_robustness extension is present but the created context does not expose the extensions. Be more defensive and only expose robustness if we're able to create contexts that have it. BUG=angleproject:1538 Change-Id: I3d02b2071c7b2c576abe66cc283cee467e400fd3 Reviewed-on: https://chromium-review.googlesource.com/391833 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: John Bauman <jbauman@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> | ||
| c4431804 | 2016-10-03 15:41:38 | D3D11: Fix Buffer11::copyFromStorage and UBOs. The change to initialize a constant buffer immediately after calling BufferData in D3D11 led to a bug where we would map the UBO for writing with the wrong map bits. Fix this by using the same map method as the rest of the code. The D3D11 runtime seems to allow arbitrarily large constant buffers on Windows 10, but not Windows 7. Thus this CL also fixes a bug in our constant buffer size clamping to not copy more than the available buffer size for uniform buffers. BUG=chromium:651493 Change-Id: I876767691d02db90ecb08a8fa78199f03339a35e Reviewed-on: https://chromium-review.googlesource.com/391167 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| c9e6026c | 2016-09-30 17:15:07 | Revert "Add workaround for unused std140 and shared uniform blocks on MacOS" This reverts commit 9aa83fe302578d226f195fff5fb3f0e2fb723a4c. The new test UniformBufferTest.ActiveUniformNumberAndName/ES3_OPENGL is failing on multiple platforms. Examples: https://build.chromium.org/p/chromium.gpu.fyi/builders/Mac%2010.10%20Release%20%28ATI%29/builds/12285 https://build.chromium.org/p/chromium.gpu.fyi/builders/Linux%20Release%20(ATI) Change-Id: I78b1a4d58e9a291e40ad304eb32f990e0518f7ee Reviewed-on: https://chromium-review.googlesource.com/391049 Reviewed-by: Kenneth Russell <kbr@chromium.org> | ||
| 5dc37d05 | 2016-10-01 00:00:19 | Revert "Fix glGetIntegerv(GL_TEXTURE_BINDING_EXTERNAL_OES, ...)" This reverts commit ca40662aa81f7735d3510fa52e55d28503c7f9ec. https://chromium.googlesource.com/angle/angle/+/ca40662aa81f7735d3510fa52e55d28503c7f9ec broke angle_end2end_tests on the Win Debug bots. Examples: https://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20Debug%20%28NVIDIA%29/builds/18718 https://build.chromium.org/p/chromium.gpu.fyi/builders/Win8%20Debug%20%28NVIDIA%29/builds/15905 Tests failing: Texture2DTest.QueryBinding/ES2_D3D11 Texture2DTest.QueryBinding/ES2_D3D9 Texture2DTest.QueryBinding/ES2_D3D11_9_3 Change-Id: If9da864f49e0de3a134d43ae36c2a99e9b5a2a53 Reviewed-on: https://chromium-review.googlesource.com/391130 Reviewed-by: John Bauman <jbauman@chromium.org> | ||
| ca40662a | 2016-09-28 14:22:27 | Fix glGetIntegerv(GL_TEXTURE_BINDING_EXTERNAL_OES, ...) BUG=angleproject:1332 Change-Id: I591b9520bc1122eb6232803ac86b6d0322f8c349 Reviewed-on: https://chromium-review.googlesource.com/390323 Commit-Queue: John Bauman <jbauman@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| ff5b2d51 | 2016-09-07 11:32:23 | Add a GL_ANGLE_robust_client_memory extension. This allows specifying data size to all GL functions that provide a pointer to client memory and a length parameter for all functions in which the driver writes to client memory. BUG=angleproject:1354 Change-Id: Ia68be1576b957cb529c87b5e0d1bd638c7dbd371 Reviewed-on: https://chromium-review.googlesource.com/382012 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| fde9d8c1 | 2016-07-28 10:53:19 | D3D11: Add null check to Renderer11::testDeviceLost. After experiencing a device loss, Renderer11::resetDevice can fail to recreate mDevice, leaving it null. In a following call to testDeviceLost, mDevice will be dereferenced, causing a segfault. BUG=angleproject:1457 Change-Id: Ib5be64542929441ceb7088a328c3245ae7e52f17 Reviewed-on: https://chromium-review.googlesource.com/364120 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> | ||
| 9aa83fe3 | 2016-09-29 08:42:42 | Add workaround for unused std140 and shared uniform blocks on MacOS On some Mac drivers with shader version 4.1, they will treat unused std140 and shared uniform blocks' members as inactive. However, WebGL2.0 based on OpenGL ES3.0.4 requires all members of a named uniform block declared with a shared or std140 layout qualifier to be considered active. The uniform block itself is also considered active. This workaround is to reference all members of unused std140 and shared uniform blocks at the beginning of the vertex/fragment shader's main(). BUG=chromium:618464 TEST=UniformBufferTest.ActiveUniformBlockNumber Change-Id: I1d2c5e3e8da04786ac6a37fd26f7bb9c14cd76ed Reviewed-on: https://chromium-review.googlesource.com/387169 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| 886de369 | 2016-09-27 10:49:35 | Factor code between PixelUnpackState and PixelPackState BUG=angleproject:1512 Change-Id: I4c60472d216bfc5198e635d70fd197a5738dde98 Reviewed-on: https://chromium-review.googlesource.com/390133 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 6f0a0dca | 2016-09-27 13:51:29 | Workaround isnan() on Intel drivers On some Intel drivers, calling function isnan() on highp float will get wrong answer. This patch work arounds this bug by using an expression to emulate this function. BUG=chromium:650547 Change-Id: I5bc5e0352c434f42cd2c55103a74f9f7ba51a72c Reviewed-on: https://chromium-review.googlesource.com/389834 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> | ||
| 9a8d366a | 2016-09-22 12:18:29 | FramebufferGL: add readPixels workarounds Implements workarounds for: - The pack state making rows overlap in memory, which causes crashes on some drivers. - The driver adding an extra last row padding when checking if the pixel pack buffer is large enough for the readPixels. BUG=angleproject:1512 Change-Id: I120ff58649bb523e8b01da6ef03d8fcadaf076b2 Reviewed-on: https://chromium-review.googlesource.com/388029 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| ece7c5a8 | 2016-09-21 15:28:23 | Add validation for the pack buffer in ReadPixels BUG=angleproject:1512 Change-Id: Ia6bac628c35f04bc5d3adfde1569902475519698 Reviewed-on: https://chromium-review.googlesource.com/387668 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| 054f7ed0 | 2016-09-20 17:15:59 | preprocessor: Miscellaneous cleanups - Use full header paths in includes - Use ASSERT instead of assert - Use angle::NonCopyable instead of PP_DISALLOW_COPY_AND_ASSIGN - Use range-for in a couple places - Remove pp_utils.h BUG=angleproject:1522 Change-Id: If107fef89e8465bca65cf664926d1051c5d1e232 Reviewed-on: https://chromium-review.googlesource.com/387212 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 6a0e4e52 | 2016-09-22 17:03:09 | BlitGL: orphan scratch textures when we are done. This will allow the OpenGL driver to reclaim GPU memory. BUG=angleproject:1512 Change-Id: If063e1ff9f4a544012ca78c37e198054cb4edcac Reviewed-on: https://chromium-review.googlesource.com/388771 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| e8a78496 | 2016-09-22 13:08:39 | D3D11: Restrict ES3 bits to FL 10.1. We would advertise ES3 in some cases when we didn't support it. BUG=angleproject:1381 BUG=chromium:649101 Change-Id: I2a5bbc1d6153cdfc6c9c577aa0b82caf8482a42d Reviewed-on: https://chromium-review.googlesource.com/388190 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> | ||
| 32dd62b8 | 2016-09-23 14:09:06 | Allow LINEAR filtering on OES_depth_texture formats. The ES3 spec and this extension lead to some awkward interactions. The extension doesn't mention allowed filtering modes, so be default it allows both linear and nearest. ES3 however, very clearly restricts any depth texture (any texture with effective internal format which has depth or stencil bits) to only use nearest filtering. This then breaks compatibility with the legazy unsized formats. Choose to be slightly non-conformant here, and allow linear filtering for the older unsized formats. Although this could lead to problems down the line, it is consistent with existing ES drivers in practice. Other future options might be to override the behaviour of the filter to use nearest when using WebGL validation compatibility. BUG=chromium:649200 Change-Id: I4ee7608dd04d1fd238385aefee32c8c9c1e80ca0 Reviewed-on: https://chromium-review.googlesource.com/388759 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| f41a7151 | 2016-09-19 15:11:17 | Add an extension to disable resource generation on bind. BUG=angleproject:1518 Change-Id: I662f7b07da5c97831496f2617b0adadf9858bdc9 Reviewed-on: https://chromium-review.googlesource.com/386799 Reviewed-by: Antoine Labour <piman@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> | ||
| 1db8a26b | 2016-09-22 13:53:47 | Fix warning in standalone in new validation. BUG=angleproject:1512 Change-Id: Ifdb8d4c38e3c90e03eee42ba9fd6390dffd61363 Reviewed-on: https://chromium-review.googlesource.com/388611 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| f607c60a | 2016-09-21 11:46:48 | Fix validation of ReadPixels format and type. The validation for ReadPixels allows for two combations of format/type: 1. Based on the current framebuffer's component type. * GL_RGBA/GL_UNSIGNED_BYTE if the framebuffer is a normalized (signed or unsigned). * GL_RGBA_INTEGER/GL_INTEGER if the framebuffer is an integer format. * GL_RGBA_INTEGER/GL_UNSIGNED_INTEGER if the framebuffer is an unsigned integer format. * GL_RGBA/GL_FLOAT if the framebuffer is any type of float framebuffer (added in EXT_color_buffer_float). * These combations are detailed in the ES2 spec on pg 105 or ES3 on pg 193. 2. The implementation read format/type returned from glGetIntegerv. * These formats are added by specs, OES_texture_float, EXT_texture_rg, EXT_read_format_bgra, etc. Update the GL and D3D backends to perform the conversion from GL_HALF_FLOAT to GL_HALF_FLOAT_OES. Continue allowing reading as BGRA_EXT to support Skia. Should be removed in the future. BUG=607283 BUG=angleproject:1478 Change-Id: I0312cad4d5f138ab036f383d221f8ccd19a77f6d Reviewed-on: https://chromium-review.googlesource.com/346232 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> | ||
| 1ce09ace | 2016-09-21 10:43:38 | D3D11: Free buffer staging storage when idle. Using the same policy as for system memory storage, we release the staging buffer if it has been unmodified for several uses. We could further extend this technique to other storage buffers using a nearly identical policy. We might need to mitigate the cost of iterating over all the storages of all the buffers. BUG=angleproject:516 Change-Id: Ib24ef03cf4184ef6f0c24f83347538df82de5f58 Reviewed-on: https://chromium-review.googlesource.com/387200 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| c5cacd60 | 2016-09-14 14:50:24 | Implement a separate last row texture unpack buffer upload workaround When uploading textures from an unpack buffer, some drivers expect an extra row paading, causing them to think the pixel buffer is not big enough. We work around this by uploading the last row separately. BUG=angleproject:1512 Change-Id: I52fb8b35dc450b957f1fafb0b405c81bf0504157 Reviewed-on: https://chromium-review.googlesource.com/385193 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> | ||
| c287ea6e | 2016-09-16 14:46:51 | Add WebGL validation extensions to ANGLE. BUG=angleproject:1523 Change-Id: I6fecb5055ed8087665aeee34b3a066ea8f38d51b Reviewed-on: https://chromium-review.googlesource.com/386281 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Antoine Labour <piman@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> | ||
| e292e902 | 2016-09-07 10:49:01 | Workaround the unary minus operator issue on Intel On some Intel D3D drivers, evaluating unary minor operator on an integer variable may get wrong answer in vertex shader. This patch works around this bug by replacing -(int) with ~(int)+1 on Windows Intel. BUG=chromium:644033 Change-Id: I0af719e84d618a33f25bcb33bde0c381fb462a31 Reviewed-on: https://chromium-review.googlesource.com/381675 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 2e60034b | 2016-09-19 13:56:40 | D3D11: Store Buffer SRVs in native storage. This allows us to not store std::pairs to identify SRVs. Instead we can release the cached SRVs directly when we re-create the native buffer. BUG=angleproject:1513 Change-Id: I6f6d5edc659aa843c9439b97661073415f1a772b Reviewed-on: https://chromium-review.googlesource.com/385818 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 09cfac60 | 2016-09-06 17:25:16 | Work around For and While loop bugs on Intel Mac OSX Condition calculation in for and while loops has bug on Intel Mac. Work around it by converting "CONDITION" to "CONDITION && true". This CL also adds previous SH_EMULATE_ABS_INT_FUNCTION workaround to the ANGLE GL back-end on OSX BUG=chromium:644669 TEST=deqp/functional/gles3/shaderloop_for/while.html Change-Id: I910f662b054f259fcb601b9938841b3a2d066840 Reviewed-on: https://chromium-review.googlesource.com/381678 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Qiankun Miao <qiankun.miao@intel.com> Commit-Queue: Corentin Wallez <cwallez@chromium.org> | ||
| 930fefca | 2016-09-14 15:54:18 | RendererGL: enable GL_DEBUG_OUTPUT on Debug builds The intent was already to enable it but without glEnable(GL_DEBUG_OUTPUT) the Linux NVIDIA driver doesn't output anything. BUG= Change-Id: Ia9a500c2e792ee7c4e2a7be60d478419eda617e1 Reviewed-on: https://chromium-review.googlesource.com/385278 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| fcb79357 | 2016-09-13 15:13:15 | D3D11: Detect driver version before workaround init. This is order-sensitive. The workarounds need the driver version to properly determine if workarounds should be used. This fixes the WebGL 2 test invalidate/sub on NVIDIA. BUG=angleproject:1246 Change-Id: I7ca4f44ec2874553f167214e937e918b49e69567 Reviewed-on: https://chromium-review.googlesource.com/385077 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 7ebb97fc | 2016-09-08 18:01:50 | Use 64-bits compile options BUG=chromium:645071 Change-Id: I31825123bf4cb45fb37a93f538e8936487beb5ff Reviewed-on: https://chromium-review.googlesource.com/382712 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| 95738972 | 2016-09-13 10:30:57 | Specialize GLTypeToGLEnum in headers BUG=angleproject:1514 Change-Id: I1f95e985471ea7a2ea0242d8b48ceccca68edf42 Reviewed-on: https://chromium-review.googlesource.com/384891 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org> | ||
| 57b9424f | 2016-09-09 12:48:00 | D3D11: Release SRV cache in Buffer11 destructor. This was leading to a resouce leak with fast unpack. BUG=angleproject:1513 Change-Id: I4ff6c6e3c889392e314654d63f2db8f671b6913c Reviewed-on: https://chromium-review.googlesource.com/383711 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> | ||
| 2c07eb21 | 2016-09-02 13:06:43 | Add workaround for B5G6R5 format in Intel driver In Intel driver, the data with format DXGI_FORMAT_B5G6R5_UNORM will be parsed incorrectly. According to https://msdn.microsoft.com/en-us/library/windows/desktop/ff471324(v=vs.85).aspx DXGI_FORMAT_B5G6R5_UNORM should be equivalent to D3DFMT_R5G6B5. However, the data will be treated as B5G6R5 not R5G6B5. This workaroud will disable B5G6R5 support when it's Intel driver. By default, it will use R8G8B8A8 format. BUG=chromium:644610 TEST=dEQP-GLES3.functional.fbo.blit.default_framebuffer.rgb565* Change-Id: I9d64a9bcedf9247de6950d345ed2d3fb00170d30 Reviewed-on: https://chromium-review.googlesource.com/380421 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| 7ffdda9a | 2016-09-08 13:26:51 | D3D11: Don't allow fast unpack from GL_ALPHA8. This format is one that doesn't support buffer SRV creation. It seems like there is no equivalent dEQP test for this format. BUG=angleproject:1503 Change-Id: I9ecdb9406ca0b62dd54b450d2b50341d76584b2b Reviewed-on: https://chromium-review.googlesource.com/381435 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> | ||
| 65d17e56 | 2016-09-08 09:52:58 | Generate OUT_OF_MEMORY when compiler initialization fails. INVALID_OPERATION implies that the error is recoverable. Change-Id: Iaa13293168f66f46864e5e4c0ab7d7c53c97e8fd Reviewed-on: https://chromium-review.googlesource.com/383131 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> | ||
| d13ca30d | 2016-09-08 09:35:57 | Fix incorrect compressed internal format enum. This error was not exposed since compressed formats use different validation paths. Fixed for completeness. BUG=angleproject:1511 Change-Id: I9b44a795b1e43f52555440f776e00bb4b92354ef Reviewed-on: https://chromium-review.googlesource.com/382653 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> | ||
| 9df01f8a | 2016-09-07 17:33:41 | Fix overflow in ImageIndexIterator::done. The maxLayer() method was reading out of range for 2D arrays. BUG=644846,614178 BUG=angleproject:1493 Change-Id: I7cc4773d1ee9ff2d0a18cb0a8e916cf3687446db Reviewed-on: https://chromium-review.googlesource.com/382332 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> | ||
| b6c3e77b | 2016-09-07 11:10:13 | StateManagerGL: handle GL_DITHER DITHER is on by default and dEQP precision tests turn this off, to avoid dithering messing with the precision. The OpenGL backend didn't handle glDisable(GL_DITHER) causing precision to be wrong on RGB565 on Linux Intel. BUG=angleproject:1492 Change-Id: I5e750fbe9df397e8b9a826979b14c84a2d72a00d Reviewed-on: https://chromium-review.googlesource.com/382111 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org> | ||
| 9e3d7aa0 | 2016-09-02 15:19:43 | D3D11: Work around small mipped stencil textures. AMD has a bug with 2x2 and 1x1 mips of depth/stencil textures. Formats D24S8 and D32FS8 both seem to render black for the very small mips. We can work around this by selectively caching a copy of the texture data that only has depth information, since stencil isn't filterable in OpenGL ES. BUG=angleproject:1493 BUG=chromium:638323 Change-Id: Iebef42c4680018d9854dbe789d677823167213dd Reviewed-on: https://chromium-review.googlesource.com/380037 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| dea2777c | 2016-09-02 15:09:09 | D3D11: Rename TextureStorage swizzle invalidation. Since we'll also be storing a cache of depth textures as well as swizzle info, generalize the invalidation methods. BUG=angleproject:1493 BUG=chromium:638323 Change-Id: I8fef049b01c81483fcf28196866a22d5cfed32a1 Reviewed-on: https://chromium-review.googlesource.com/380036 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 96f4f45e | 2016-09-02 16:20:11 | Fix ImageIndexIterator termination. There was an off-by-one error preventing proper iteration. BUG=angleproject:1493 BUG=chromium:638323 Change-Id: I8a3907620a1503d16b039606a67fe3471f88e165 Reviewed-on: https://chromium-review.googlesource.com/380325 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 29639857 | 2016-09-02 15:00:09 | D3D11: Work around Intel uniform buffers bug. When copying from a staging buffer to a uniform buffer, the first upload would be incorrect. Work around this by trying to upload directly to a uniform buffer on the first BufferSubData call. BUG=chromium:593024 Change-Id: I0df3a1422b962bf3ece5d445f435df01e3544b67 Reviewed-on: https://chromium-review.googlesource.com/368774 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 5b46a680 | 2016-09-01 15:22:06 | Clear the swizzle cache in TextureStorage11::setData. BUG=angleproject:1494 Change-Id: I67471e4b961b3d8374c2da84394ead743939c225 Reviewed-on: https://chromium-review.googlesource.com/380095 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| 8314465d | 2016-08-31 17:03:30 | GL backend: add a workaround for bad default current vertex attributes BUG=angleproject:1492 BUG=351528 Change-Id: Ie4b25b0106282c9f60d19053e5a320549887bc8b Reviewed-on: https://chromium-review.googlesource.com/379196 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org> | ||
| 4e58af61 | 2016-08-26 10:56:52 | Add missing TexImage and CopyTexImage format combinations for ES3. * Some unsized DEPTH_COMPONENT combinations were not added to the validation tables for the ANGLE_depth_texture extension. * The HALF_FLOAT_OES format was not validated in ES3 for RGB and RGBA formats when the OES_texture_half_float extension is supported. * BGRA->BGRA CopyTexImage validation was missing. No more errors are generated within ANGLE when visiting http://alteredqualia.com/tools/webgl-features/ BUG=605754 Change-Id: If654c34adcebb4cd3eaa994ad7e912f6ffa4df55 Reviewed-on: https://chromium-review.googlesource.com/376281 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> | ||
| b920e360 | 2016-08-03 18:19:41 | Implement GL_ARB_create_context_robustness on GLX and WGL BUG=angleproject:1463 Change-Id: I5bdcfd757d6f7d6411558c368fa7a26c8a38c9ba Reviewed-on: https://chromium-review.googlesource.com/365971 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 11e43ece | 2016-08-11 09:54:08 | Add a workaround for Intel drivers on glsl function texelfetchoffset GLSL function texelfetchoffset will be translated into texture.Load in ANGLE. In D3D there is a note that When one or more of the coordinates in Location exceeds the u, v, or w mipmap level dimensions of the texture, Load returns zero in all components, but in glsl there is no such restriction, which will cause the WebGL 2 dEQP test deqp/functional/gles3/shadertexturefunction/texelfetchoffset.html fail on Windows with Intel GPU. Adapted from ExpandIntegerPowExpressions.cpp, this patch adds a translation from texelFetchOffset into texelFetch to work around this issue. BUG=angleproject:1469 Change-Id: Iecfb9570472036acf5960789bdb1a63f191316be Reviewed-on: https://chromium-review.googlesource.com/367883 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> | ||
| 1fe74c7e | 2016-08-25 13:23:01 | Manually compute the mipmap size for the textureSize builtin. There were two issues with the current implementation: * The GetDimensions function already takes into account the base level of the SRV. * The GetDimensions function returns doesn't return valid sizes for levels that don't exist in the SRV. Instead, manually do the lod offset. BUG=angleproject:931 BUG=angleproject:1316 TEST=dEQP-GLES3.functional.shaders.texture_functions.texturesize.sampler2d_fixed_vertex Change-Id: I63259b563a42b93b73949e0ef7ac412099a42f13 Reviewed-on: https://chromium-review.googlesource.com/376099 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> | ||
| 87fbe1c2 | 2016-08-03 14:41:42 | ContextImpl: only expose getResetStatus for robustness This will allow each backend to implement this method separately. The current set of ContextImpl methods used for robustness are slightly D3D-centric. BUG=angleproject:1463 Change-Id: I101f8ada2c49de4cf110db48b1e8380c52b50fb2 Reviewed-on: https://chromium-review.googlesource.com/365829 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org> | ||
| 4c4c8e72 | 2016-08-04 12:25:34 | Add compute program compilation and linking support Compute shaders can be now compiled and linked to create programs. Some tests are added to verify successful and unsuccessful compute shader linking. The patch also replaces std::array<int, 3> with a custom struct WorkGroupSize. BUG=angleproject:1442 TEST=angle_end2end_tests TEST=angle_unittests Change-Id: I4ab0ac05755d0167a6d2a798f8d7f1516cf54d84 Reviewed-on: https://chromium-review.googlesource.com/366740 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> | ||
| 9949f04d | 2016-08-03 12:47:27 | Fence11: When busy looping on a fence, test for device loss Previously the code only checked is the device had already seen as lost but never updating the lost status. Since checking for device loss can be expensive, only do it every 128 loop iterations. BUG=angleproject:1463 Change-Id: Ib481aebbb73d0f279e7ef835ac3a96c0a4663d58 Reviewed-on: https://chromium-review.googlesource.com/365736 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org> | ||
| 0ea0caeb | 2016-08-10 12:39:29 | Move load functions table to renderer layer. We will be able to use it for the Vulkan formats table. BUG=angleproject:1455 Change-Id: Iddc09fe560b06880af72a6fa8eb03fa2792e2f8c Reviewed-on: https://chromium-review.googlesource.com/367454 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 17605b61 | 2016-08-10 11:48:29 | Replace DXGI with ANGLE format in the load tables. BUG=angleproject:1455 Change-Id: I851848d8a28bd70ff921d76b19902f40a5e8b17d Reviewed-on: https://chromium-review.googlesource.com/367453 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| b2e4863c | 2016-08-09 18:08:03 | Replace std::map with switch in load functions. BUG=angleproject:1455 Change-Id: Ica74ea5503efc0315bc4d98aa322da523a30b24c Reviewed-on: https://chromium-review.googlesource.com/367696 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 6230dd54 | 2016-08-23 15:20:03 | Check for OpenGL ES support when creating context Support for an OpenGL ES version can come either through OpenGL ES, OpenGL core or available extensions. The context creation should fail if the requested OpenGL ES version is not supported. BUG=angleproject:1477 TEST=angle_end2end_tests Change-Id: I810d004a1bd62f75f162d775d3cf92c4283252a3 Reviewed-on: https://chromium-review.googlesource.com/374338 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 91e71ed9 | 2016-08-23 09:29:22 | Misc minor WinRT fixes and cleanups Change-Id: Ibf041e74d81ef266791e6b6a3bb43bf504b035b3 Reviewed-on: https://chromium-review.googlesource.com/374040 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| 39b11018 | 2016-08-22 13:42:30 | Remove Windows 8.1 (Store apps) and Windows Phone 8.1 support ANGLE has moved onto the Windows 10 SDK, and is using new compiler features that aren't supported by the old Windows 8.1 toolchain. Support for the 8.1 projects has been broken in master for some time now. Since more and more developers are moving towards Windows 10, we are going to take a snapshot of ANGLE that includes 8.1 support and freeze it in a branch on github.com/microsoft/angle. If developers wish to compile for use ANGLE in 8.1 apps then they should use that branch going forward. Change-Id: Ifee2d8a8cc0332500e0bd338911d831e7624fa82 Reviewed-on: https://chromium-review.googlesource.com/374039 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| c4718040 | 2016-08-09 17:21:03 | Remove DXGI_FORMAT_UNKNOWN cases from load table. These cases were unreachable. BUG=angleproject:1455 Change-Id: I5f3b969de3aca3862944ac9ed510c9f5e9fd77e2 Reviewed-on: https://chromium-review.googlesource.com/367695 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 04d3d895 | 2016-08-09 15:02:19 | Simplify load functions table. The indexing of the table data was mismatched with the table, causing confusion with no appreciable gain. Fix this, reducing the lines in the script and table at the same time. BUG=angleproject:1455 Change-Id: I59095ba11a416575fd2310765eaac8d368b90cab Reviewed-on: https://chromium-review.googlesource.com/367694 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 55f29a8c | 2016-08-09 13:11:02 | Check if conversion needed from load function. The 'LoadToNative' copy is the only one that should be considered a non-conversion. For depth formats, we should be clamping on SetData and CopyImage calls, so this changes the flags for two of the depth formats, but won't affect behaviour since the conversion bit is never check for depth/stencil formats. This allows us to remove the 'requiresConversion' bit from the data. BUG=angleproject:1455 Change-Id: I739ecc54406d65049caad7851ffd51d7cb777946 Reviewed-on: https://chromium-review.googlesource.com/367693 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| c99518fc | 2016-08-09 11:10:38 | Move default ANGLE format map to shared location. This default format mapping serves as a base for a Renderer format mapping. Any formats that require emulation or other representation in a Renderer can be overridden in the renderer layer. BUG=angleproject:1455 Change-Id: I47f070c2ea132bada9cc0fc4353b89b74b8ee8f3 Reviewed-on: https://chromium-review.googlesource.com/367692 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| c2c106d4 | 2016-08-11 12:42:14 | D3D11: Clean up buffer calls a bit. BUG=None Change-Id: I3b697c3b721b5be4888d039a5cefd160ab5b23f8 Reviewed-on: https://chromium-review.googlesource.com/367877 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 9371f7ab | 2016-08-09 11:10:37 | D3D11: Remove unsized formats from the table. These cases weren't actually ever hit within ANGLE. BUG=angleproject:1455 Change-Id: I60da3fb9eae91598ddaed5572a4bab0a66345694 Reviewed-on: https://chromium-review.googlesource.com/367691 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 30712068 | 2016-08-09 11:10:36 | Move fast copy functions into angle::Format. These tables were duplicated in D3D11 and D3D9, and would have to be further duplicated into Vulkan. BUG=angleproject:1455 Change-Id: Ice1b81417d7b14f933b61861c4a9997c260ef72e Reviewed-on: https://chromium-review.googlesource.com/367690 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 8cf70d55 | 2016-08-09 11:10:35 | D3D11: Rename ANGLEFormatSet to Format. BUG=angleproject:1455 Change-Id: I896b3ed2d5e4ff3ad72de9a3a4b554841129e4e9 Reviewed-on: https://chromium-review.googlesource.com/367093 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| c98cd326 | 2016-08-09 11:10:33 | D3D11: Merge d3d11::TextureFormat and ANGLEFormatSet. BUG=angleproject:1455 Change-Id: I7fc2640ec9d73528feb526b4d8b89cabccda4d17 Reviewed-on: https://chromium-review.googlesource.com/367092 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| e5922891 | 2016-08-09 11:10:32 | D3D11: Partially squash D3D11 format types. d3d11::TextureFormat and d3d11::FormatSet don't really do different things, so it would be best to merge them. BUG=angleproject:1455 Change-Id: I8c09ae763e4cb284bb611fed9d74b9048fb9f13e Reviewed-on: https://chromium-review.googlesource.com/367091 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 9a39224b | 2016-08-09 11:10:31 | D3D11: Move the swizzle format set into ANGLEFormatSet. The only piece of data left in the d3d11::TextureFormat is the initializer function, which could just as easily be in the ANGLEFormatSet. BUG=angleproject:1455 Change-Id: Iee8eb84f71807575c2a46bf4fcbf283aa1b7f565 Reviewed-on: https://chromium-review.googlesource.com/367090 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 86e0b7f7 | 2016-08-09 11:10:29 | Clean up PackPixels. BUG=angleproject:1455 Change-Id: I263719cc77ff80580a551683d062e862dee1bdab Reviewed-on: https://chromium-review.googlesource.com/365826 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| a5ac1e16 | 2016-08-09 11:10:28 | D3D9: Use angle::Format when possible. This will unify the way we call into PackPixels and also cleans u the code. It required adding a few D3D9-specific formats to the table. BUG=angleproject:1455 Change-Id: Ic8282f40f52cabdb2925e2bb305c26582284082d Reviewed-on: https://chromium-review.googlesource.com/365825 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> | ||
| a5b1561e | 2016-08-09 11:10:27 | Place format info in angle::Format. Some bits of information, like the copy functions and mipmap gen functions, can be shared across back-ends in the angle::Format class. Also name the info struct angle::Format, and use an enum class angle::Format::ID to identify the particular format. This patch introduces a new table generator for angle formats and updates the D3D11 generator accordingly. BUG=angleproject:1455 Change-Id: I13b8b98822b1186c6a9e436dc232c18fef50980c Reviewed-on: https://chromium-review.googlesource.com/365824 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 20f69ce5 | 2016-08-09 11:10:26 | Introduce angle::Format enum. This general enum can encapsulate different formats between GL/Vulkan/D3D9/D3D11/etc so we can use them in common routines like PackPixels. It also can help us get rid of the ANGLEX enums which we use to represent internal formats not present in GL. It is currently used for Textures/Renderbuffers/Surfaces, but can also be extended in the future to cover things like vertex formats. It mirrors something like a DXGI_FORMAT in D3D11 or VkFormat. BUG=angleproject:1455 Change-Id: I467d7b36d8fc92bb45239d56b9243d06f4e29378 Reviewed-on: https://chromium-review.googlesource.com/365413 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 17b10a9a | 2016-08-03 14:10:06 | D3D11: Store more format info by-reference. This CL stores the d3d11::TextureFormat by reference in the texture storage. Adding the internalFormat to the TextureFormat allows us to store a single ref instead of three per TextureStorage11. Also store the format sets in a d3d11::TextureFormat by-ref instead of by-pointer, making the code a bit cleaner. BUG=angleproject:1455 Change-Id: I3c0e966d948c694435577d7d45dc0cd156480cdb Reviewed-on: https://chromium-review.googlesource.com/365412 Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 3416ff3e | 2016-08-04 10:13:21 | D3D: Check for error before createTextureStorageEGLImage. Previously we were just dumping any unexpected errors here. Fix this by passing in the RT explicitly in the constructor, although we still store the EGLImage pointer in case the RT changes. BUG=angleproject:1455 Change-Id: Ie4d4a07c3a7b3a5ccc0a43c4e80bfc6ee43a676b Reviewed-on: https://chromium-review.googlesource.com/365411 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| f7ccaf73 | 2016-08-03 14:10:04 | D3D11: Move texture format code out of the python script. It's better to maintain the code outside of a generator script. It gives easier formatting and updating. BUG=angleproject:1455 Change-Id: I2b4383f1ed01545004de10024d03879201e2bf41 Reviewed-on: https://chromium-review.googlesource.com/365410 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| f5207dea | 2016-08-05 11:51:40 | DisplayGLX: XSync before setting the error handler This mirrors https://codereview.chromium.org/2206973002 BUG=628823 Change-Id: Ifd71d67df174cac3f90097c809fc91046699bed8 Reviewed-on: https://chromium-review.googlesource.com/366790 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org> | ||
| 43341b7a | 2016-08-03 14:10:03 | D3D11: Merge FL10 and 9_3 ANGLE formats. This will let us use ANGLE formats to describe a format layout rather than a Renderer-specific usage. This in turn will let us use ANGLE formats for other Renderers, as a universal thing. BUG=angleproject:1455 Change-Id: I56492cb809d4ef6ac4b962cb12affbc853bbdaa0 Reviewed-on: https://chromium-review.googlesource.com/365269 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 509a1d46 | 2016-07-18 10:10:29 | GN: Enable more MSVS warnings. Some warnings were enabled only in standalone builds. Enabling them in the GN config will prevent standalone build breakage and also make some potentially harmful warnings more visible to non-Windows devs. BUG=angleproject:1449 Change-Id: I11fe9bac957864d37af37b3860a22fcbd91946ac Reviewed-on: https://chromium-review.googlesource.com/360961 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| e1c4d39a | 2016-08-04 11:44:34 | Fix unused variable warnings. BUG=angleproject:1442 Change-Id: I07b32d4c1f1a95f136bf922e78053e0de41c1633 Reviewed-on: https://chromium-review.googlesource.com/366083 Reviewed-by: Geoff Lang <geofflang@chromium.org> |