- 11 Sep, 2017 12 commits
-
-
Jamie Madill authored
This is a preparation for more dirty bits. It moves the driver constant buffer application into the state manager, redesigns how the dirtiness is tracked (no more memcmp) and also removes a couple of virtual calls. BUG=angleproject:1390 BUG=angleproject:2052 Change-Id: I41a75c280600ad8ba1f23c721d436214a116422a Reviewed-on: https://chromium-review.googlesource.com/659223 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
Instead of storing a type GLenum, store a pointer into the type info table. This makes looking up some values a bit easier. Also includes some micro-optimizations. Improves the score of the uniforms micro-benchmark by about 12.4% on a local Windows 10 machine. BUG=angleproject:1390 Change-Id: I35f7f1c7bb3cf2c62d737b494dc56ff61ea2d1fb Reviewed-on: https://chromium-review.googlesource.com/659221 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
The type info tables were incorrectly using some information. This bug was uncovered after trying to use the tables more. BUG=angleproject:1390 Change-Id: I5eae01f51269bab05746a14bd3caabb614be210a Reviewed-on: https://chromium-review.googlesource.com/659220Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
Any time we would query ProgramD3D for a particular vertex or pixel shader, we would iterate over all the cached shaders of the program looking for the matching input or output layout signature. This change makes it so we only compute the index of the matching shader once, and subsequent calls will re-use the shader index. This should speed up the draw call benchmarks. Also include a fix to the Serial class that initializes a Serial value to an invalid sentinel value. This ensures that comparing any other Serial (including another invalid serial) to the invalid serial will return not-equals. BUG=angleproject:1155 Change-Id: I7d913bf08d0bedf6155eae0661b2a5fa94565cc9 Reviewed-on: https://chromium-review.googlesource.com/648730 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
Triggers the swizzle update whenever a new texture is bound, or when a subImage call triggers a swizzle cache update. BUG=angleproject:1387 Change-Id: Ia2a82126a621d8a643f715ea7e4a9c35b97e0a18 Reviewed-on: https://chromium-review.googlesource.com/648729 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
BUG=angleproject:1387 Change-Id: I5f759c3dc60b53a5d4f8a1dd1f4a1d3d5330bfda Reviewed-on: https://chromium-review.googlesource.com/648487 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
This makes it in a centralized location where it can work with dirty bits. BUG=angleproject:1387 Change-Id: I3bfeb53c265d1679f6b8556941c1d9d77747aa24 Reviewed-on: https://chromium-review.googlesource.com/648486 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
In StateManagerGL, use the texture, sampler and program binding dirty bits to set a dirty bool that is checked once per draw call. This completes the GL back-end texture dirty bits. BUG=angleproject:1387 Change-Id: I619a89bf98ded5e55353f6ca44e814605f7ce492 Reviewed-on: https://chromium-review.googlesource.com/648055 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
This also reformats the Sampler class to use a shared state struct with the implementation. It removes the call to sync the sampler state from the StateManagerGL::setGenericShaderState method, since it should all be handled at the front-end now. Also rename 'syncImplState' to 'syncState' methods. BUG=angleproject:1387 Change-Id: I5f0219b719aee99aaaa486ec188b2af0c9128e6a Reviewed-on: https://chromium-review.googlesource.com/648054 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
These will have to be fleshed out in the back-ends. Also currently uses a single bit for all the bindings, and we can extend this to more fine-grained updates in the future. This patch implements top-level updates for texture completeness. Sampler completeness caches are removed from the Texture class, and replaced by a cache in the gl::State class. The State class also keeps a channel binding to the bound textures so it can be notified when textures might change from complete <-> incomplete. In future CLs we skip updating back-ends if texture state doesn't change. BUG=angleproject:1387 Change-Id: If580b4851303c86f3240e62891f5f6047eefb6a2 Reviewed-on: https://chromium-review.googlesource.com/648053Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
Also includes a ToLower string helper for a VS2017 warning fix. https://chromium.googlesource.com/external/gyp.git/+log/aae1e3efb50786df2..c6f471687407bf28d BUG=angleproject:1569 Change-Id: Iaf8a091a24d937db3adb242f05c8a5c9d2b03b0f Reviewed-on: https://chromium-review.googlesource.com/659219Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Frank Henigman <fjhenigman@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Martin Radev authored
The patch adds a sample which makes use of the ANGLE_multiview extension to draw the same scene to two views each having its own camera matrix. BUG=angleproject:2062 TEST=angle_end2end_tests Change-Id: I4b765a189047bf219a05e98b032ad95efbb36905 Reviewed-on: https://chromium-review.googlesource.com/655166 Commit-Queue: Martin Radev <mradev@nvidia.com> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
- 08 Sep, 2017 4 commits
-
-
Jamie Madill authored
Uncovered this after reports to the Google group. Also fix a minor documentation issue with Windows store. BUG=angleproject:1944 BUG=angleproject:1255 Change-Id: Ib4fc784a818cf65e280630db483987cc01366994 Reviewed-on: https://chromium-review.googlesource.com/657881Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Olli Etuaho authored
The WebGL spec proposal was changed so that only GL_OVR_multiview extension name is supported, instead of having two variants OVR_multiview and OVR_multiview2. We're only supporting the WebGL version of the shader extension, so we drop compiler support for GL_OVR_multiview2. Shader restrictions were also removed from the WebGL spec, so no special validation for how ViewID_OVR gets used is needed. Tests that were testing for the shader restrictions are either removed or changed from negative tests to positive tests. BUG=angleproject:1669 TEST=angle_unittests Change-Id: I83f92b879376d41b727b5aca419fd75fb6f53477 Reviewed-on: https://chromium-review.googlesource.com/654608Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Martin Radev authored
This patch casts gl_InstanceID to uint before doing division by the number of views to circumvent the HLSL compiler's warning on performance degradation. BUG=angleproject:2062 TEST=angle_end2end_tests Change-Id: I326530ee112f34f82becdec5239edd5054c4104f Reviewed-on: https://chromium-review.googlesource.com/655298 Commit-Queue: Martin Radev <mradev@nvidia.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Yuly Novikov authored
Maybe not the most elegant way, but I'd like to get the bot green. BUG=angleproject:2122 Change-Id: Ib8f92034a8f42a42efd18c94a3623948490b7911 Reviewed-on: https://chromium-review.googlesource.com/656717Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
-
- 07 Sep, 2017 11 commits
-
-
Yuly Novikov authored
MultiviewRenderTest.FlatInterpolation/ES3_D3D11_force_geom_shader_layered MultiviewRenderTest.FlatInterpolation/ES3_D3D11_force_geom_shader_side_by_side fail on Win10 Intel HD 630. BUG=angleproject:2062 Change-Id: I1a0c19b89f0813efe7eef5c64dc510ad750916f9 Reviewed-on: https://chromium-review.googlesource.com/656047Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
-
Jamie Madill authored
The calculation for unreferenced was incorrect - it checked the 'used' flag of the uniform location, but if samplers started at index zero, all the unused uniforms were to be considered valid samplers. Instead, initialize the uniform index to INVALID_INDEX. This bug was uncovered after doing work on the Texture dirty bits. BUG=angleproject:1387 Change-Id: I5e404e367caed38368bcc0e581699ae2c911bcc9 Reviewed-on: https://chromium-review.googlesource.com/655930Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Corentin Wallez authored
This is to have the new "OS" for MacOS Sierra. Several types were introduced in angle_config.h to minimize the angle-mods.patch to make it easier to update in the future. BUG=angleproject:2137 Change-Id: I7a98c5cb48d424f83eb39763eba0e51852a9b98f Reviewed-on: https://chromium-review.googlesource.com/636202 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
We would allocate this texture for devices that don't need it. Instead do this lazily. This was showing up in the profiles for the MotionMark benchmark, possibly due to re-creating the surface. BUG=angleproject:1155 Change-Id: I28b5eda29e21899fc8afef054e1b8063e3cc2e00 Reviewed-on: https://chromium-review.googlesource.com/655479Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This was showing up in profiles of the MotionMark benchmark, possibly due to re-creating the canvas many times. BUG=angleproject:1155 Change-Id: Id857b89770b846881fb381f7c3ab70c07b924271 Reviewed-on: https://chromium-review.googlesource.com/655478Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This covers a regression introduced with texture dirty bits. BUG=angleproject:1387 Change-Id: Ic8112718c185298ef54ec5a6f6ed2cd519e010d6 Reviewed-on: https://chromium-review.googlesource.com/653586Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Martin Radev authored
The ANGLE_multiview extension can be supported with three possible code paths - through view being selected in the vertex shader on D3D and OpenGL, and through the view being selected in the geometry shader on D3D only. This patch extends the multi-view performance tests to benchmark these three different code paths. BUG=angleproject:2062 TEST=angle_end2end_tests Change-Id: I443e4db64a95eede1142718a43a095ee5a03738c Reviewed-on: https://chromium-review.googlesource.com/652466 Commit-Queue: Martin Radev <mradev@nvidia.com> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Olli Etuaho <oetuaho@nvidia.com>
-
Geoff Lang authored
Renderer11::createRenderTarget already fixed this issue but it also is exposed in SwapChain11::resetOffscreenDepthBuffer now that multisampled surfaces are supported in ANGLE. BUG=angleproject:2136 Change-Id: I978666ebc1bb3db14ddf69954d7eb750391bf7a8 Reviewed-on: https://chromium-review.googlesource.com/653779 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Martin Radev authored
The enums introduced by the ANGLE_multiview extension are changed to use the values reserved specifically for ANGLE. BUG=angleproject:2062 TEST=angle_end2end_tests Change-Id: Ib668f2e0e9022442a432b1a04050aeb2ff82a3d1 Reviewed-on: https://chromium-review.googlesource.com/654864Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Martin Radev <mradev@nvidia.com>
-
Martin Radev authored
Until this patch multi-view layered framebuffers used to be cleared by attaching a single layer of each attachment to a framebuffer and calling the Clear* command for that internal framebuffer. According to the GL 4.1+ specifications, Clear* commands clear all of the layers of an attached 2D texture array. If all of the layers are active for a multi-view layered framebuffer, then we can directly call the corresponding Clear* command instead of iterating over each layer and clearing it. BUG=angleproject:2062 TEST=angle_end2end_tests Change-Id: Ie4dfd9fff47715b502f358272bfc47c0373c4e91 Reviewed-on: https://chromium-review.googlesource.com/649209 Commit-Queue: Martin Radev <mradev@nvidia.com> Reviewed-by:
Olli Etuaho <oetuaho@nvidia.com>
-
Martin Radev authored
View selection can happen in the vertex shader through the optional feature VPAndRTArrayIndexFromAnyShaderFeedingRasterizer. BUG=angleproject:2062 TEST=angle_end2end_tests Change-Id: Iaf65685e04f828b0936295fea867f6f6cbe69bee Reviewed-on: https://chromium-review.googlesource.com/628419 Commit-Queue: Martin Radev <mradev@nvidia.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
- 06 Sep, 2017 5 commits
-
-
Corentin Wallez authored
BUG=angleproject:2122 Change-Id: Ia51c139197e1b90e54505278d301ae8ac7dab53d Reviewed-on: https://chromium-review.googlesource.com/653240 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Geoff Lang authored
The MSDN documentation states that BGRA4, RGB5A1 and RGB565 should all support 4 samples with DXGI 1.2 and D3D11.1 but some drivers appear to not have full support. Fall back to RGBA8 render targets when the driver cannot support at least 4 samples for ES3 feature levels. BUG=761489 Change-Id: I6bcd417700f1188945e8032ca6a64c4fbb2bc8a8 Reviewed-on: https://chromium-review.googlesource.com/652828Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Kenneth Russell authored
This trybot was broken during the removal of the Linux ChromiumOS Builder from chromium.gpu.fyi and is blocking all ANGLE CQ jobs. BUG=762377 TBR=dpranke@chromium.org, jmadill@chromium.org NOTRY=true Change-Id: Ibc3ccf3af842ee8b040014732d179573f286afad Reviewed-on: https://chromium-review.googlesource.com/653244 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by:
Kenneth Russell <kbr@chromium.org>
-
Martin Radev authored
The patch extends Renderer11 so that a D3D11.1 device and D3D11.3 context can be created. This is necessary for using the D3D11.3 feature called VPAndRTArrayIndexFromAnyShaderFeedingRasterizer. BUG=angleproject:2062 BUG=angleproject:2145 TEST=angle_end2end_tests Change-Id: I84c761b2897d7d911686f5b6d79cb93e233015a0 Reviewed-on: https://chromium-review.googlesource.com/591448Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Corentin Wallez authored
Without DXGI, EnumDisplayDevices is the only way to get the primary device. Previously the code would work on most configs with a combination of AMD, Intel and NVIDIA GPUs but would fail on more esoteric system. Like our try bots that have Matrox GPUs. BUG=angleproject:1874 BUG=angleproject:2137 Change-Id: Ie2dfbb559001ccad2fd5b8a8fd6436e0fba9d003 Reviewed-on: https://chromium-review.googlesource.com/651629Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
- 05 Sep, 2017 5 commits
-
-
Jamie Madill authored
This would drastically slow down some framebuffer updates. BUG=angleproject:1155 Change-Id: Ibff428c49bd5127a101bce46cc1df355f4542ccf Reviewed-on: https://chromium-review.googlesource.com/649986 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
This allows the dirty objects to notify the context if something needs to be communicated down to the ContextImpl. In this case it means a dirty Texture can notify the Context that it needs to re-apply texture bindings. BUG=angleproject:1387 Change-Id: I162115e51112d1c27c0dab621d1b3d14446af96d Reviewed-on: https://chromium-review.googlesource.com/648052Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
Discovered some of these while investigating Texture dirty bits. BUG=angleproject:1387 Change-Id: I8b170462bfd283e4b0f9d47b7f7ddbaa7957914d Reviewed-on: https://chromium-review.googlesource.com/648051Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Corentin Wallez authored
BUG=angleproject:2122 Change-Id: I99eed52b1f12004f0bab3f94bd3acddda8dafd69 Reviewed-on: https://chromium-review.googlesource.com/650526Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
-
Jiajia Qin authored
This change adds GL_KHR_robust_buffer_access_behavior support. The old change is in https://chromium-review.googlesource.com/c/angle/angle/+/607413 BUG=755897, angleproject:1393, angleproject:1463 Change-Id: I04a1132c3ae8d3a766194df61c4ff7bf0b084f03 Reviewed-on: https://chromium-review.googlesource.com/640750 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
- 04 Sep, 2017 1 commit
-
-
Martin Radev authored
A branch is added in the geometry shader to select either the viewport, or texture layer which is being rendered to based on the value of a uniform in the driver constant buffer. Using this approach there is no need for separate programs for side-by-side and layered rendering. BUG=angleproject:2062 TEST=angle_end2end_tests Change-Id: I66701164ff02a851c13695d5409f8ad350534e69 Reviewed-on: https://chromium-review.googlesource.com/645547 Commit-Queue: Martin Radev <mradev@nvidia.com> Reviewed-by:
Olli Etuaho <oetuaho@nvidia.com>
-
- 02 Sep, 2017 1 commit
-
-
Dirk Pranke authored
We're removing this bot as redundant now in Chromium. Change-Id: I35f00bff4e62780609f869c447839aa48b74b46c R: jmadill@chromium.org Bug: crbug.com/743212 Reviewed-on: https://chromium-review.googlesource.com/648654Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
- 01 Sep, 2017 1 commit
-
-
Corentin Wallez authored
BUG=angleproject:1671 Change-Id: I58dd30d0aaffd1a776aa14a04011cbdd72181bf2 Reviewed-on: https://chromium-review.googlesource.com/648356 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-