- 07 Sep, 2017 6 commits
-
-
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 8 commits
-
-
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>
-
Jamie Madill authored
BUG=angleproject:1387 Change-Id: If3fc67f99716b2e5e6a8b0ffd139a07a06cdcab8 Reviewed-on: https://chromium-review.googlesource.com/648050Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
Uses more of the type info table for updates. Also special-case clamping when uniform count == 1. Improves the speed of the d3d11 uniform stress test by ~20%. BUG=angleproject:1390 Change-Id: I6707c67db84c94a28b1519b0bbee5d28fe38b189 Reviewed-on: https://chromium-review.googlesource.com/646828Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Corentin Wallez authored
BUG=2122 Change-Id: I82bed7215142b62b321c9676972386b74a9efa92 Reviewed-on: https://chromium-review.googlesource.com/604211 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Geoff Lang authored
A code-gen bug was found in 15.3.2 (VC++ 2017 Update 3.2) that causes test failures due to one loop being skipped. Attempts to disable optimizations for just the affected function failed so optimizations must be disabled at the end of the source file, which seems to cause all template functions and compiler generated functions to have optimizations disabled. A VS bug has been filed and cross-linked. BUG=759402 Change-Id: Ida765a47234a63bad48e6a4e910f3b82919d6be9 Reviewed-on: https://chromium-review.googlesource.com/647313Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
Currently most uniform type info is determined by switching on the uniform type. Some values are computed from other values, which can result in three or more switch statements plus some multiplies or other math. This patch attempts to improve the speed by pre computing necessary values into constant static tables. Improves performance by about 7% in a uniform stress test. BUG=angleproject:1390 Change-Id: I29bef259a17f6d6536171ade4950e2d712bfd39c Reviewed-on: https://chromium-review.googlesource.com/643791Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Geoff Lang authored
BUG=angleproject:1651 Change-Id: I13c1a669d83098e22c0d7fb003d13beacc20c4ae Reviewed-on: https://chromium-review.googlesource.com/623947Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Olli Etuaho authored
This prepares for accepting arbitrary expressions as the "this" node of the array length method. BUG=angleproject:2142 TEST=angle_unittests Change-Id: I728adb6e76d2779dedbabfaeec7d096872e0d00d Reviewed-on: https://chromium-review.googlesource.com/633945Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
- 31 Aug, 2017 11 commits
-
-
Jamie Madill authored
This simplifies uniform management in D3D11. It will also facilitate further optimizations. Improves performance in a uniforms stress test by ~13% on a test machine. (UniformsBenchmark.Run/d3d11_null_400_vec4) BUG=angleproject:1390 Change-Id: Iba2c15d420396aa8fb4e8c451cba2b4dde7b4b77 Reviewed-on: https://chromium-review.googlesource.com/623930Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This migrates to the new generation style used in GLES2. BUG=angleproject:1309 Change-Id: I43e9d33a0d7c5b1786452895855ff2bfbf82f139 Reviewed-on: https://chromium-review.googlesource.com/638311Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
BUG=None Change-Id: I915c99f21dc879a8e63955cd6a3dd892d05bbf5f Reviewed-on: https://chromium-review.googlesource.com/646590Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This moves the uniform query to the back-end. In D3D, this requires a bit more redesign, especially for matrix uniforms. Gives about a 10% speed improvement in the GL/NULL uniforms stress test on Windows (UniformsBenchmark.Run/gl_null_400_vec4). BUG=angleproject:1390 Change-Id: Idac22a77118e9e94d2f28c585e31ff0bc785ba94 Reviewed-on: https://chromium-review.googlesource.com/623929 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Olli Etuaho authored
Non-existent XFB varyings with the gl_ prefix used to pass linking on the D3D11 backend. On a debug build they would cause an assert. Fix these issues. BUG=angleproject:2141 TEST=angle_end2end_tests Change-Id: Iecc3d03823d02700d6b28c44d77df7a2f9e70a5b Reviewed-on: https://chromium-review.googlesource.com/645747Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Olli Etuaho authored
The prefix is unnecessary now that user-defined names are prefixed in both GLSL and HLSL output. Removing the prefix makes compiler output a bit simpler to read. BUG=angleproject:2038 TEST=angle_unittests Change-Id: I9ffc508f50d6146a2d85798875c88e2c385b83fe Reviewed-on: https://chromium-review.googlesource.com/508730Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Corentin Wallez authored
BUG=602737 Change-Id: I8c24985358dcd297cb437c501b7a3944e36d98de Reviewed-on: https://chromium-review.googlesource.com/644210Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
-
Martin Radev authored
The patch adds D3D11 as a testable platform to the multiview performance tests. BUG=angleproject:2062 TEST=angle_perftests Change-Id: I2266073860fd53f546ce9a414bc343b582c77f70 Reviewed-on: https://chromium-review.googlesource.com/645849Reviewed-by:
Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
-
Olli Etuaho authored
Now user-defined names are prefixed by _u in GLSL output in case name hashing is not on. Internal names such as names of temporary variables created in AST transformations are written out as such. This makes handling of internal function names and internal variable names consistent. It also removes the possibility of name conflicts between user-defined names and internal names in case name hashing is not on. In the same vein, it makes it safe to use GLSL reserved words that are not reserved in ESSL as variable names in case name hashing is not on. This also makes the GLSL output more consistent with how names are handled in HLSL output. Name hashing code is shared between VariableInfo and OutputGLSLBase to ensure names are handled consistently in both. The name that's used in the shader source for a given interface variable is written out to ShaderVariable::mappedName. An exception needs to be made for identifiers close to the length limit, since adding any prefix would take them over the limit. But they can be just written out as such, since we don't have any builtins or ANGLE internal variables that have as long names and could create a conflict. BUG=angleproject:2139 BUG=angleproject:2038 TEST=angle_unittests, angle_end2end_tests, WebGL conformance tests Change-Id: Id6ed052c4fab2d091227dc9a3668083053b67a38 Reviewed-on: https://chromium-review.googlesource.com/507647 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Martin Radev authored
Because the ANGLE_multiview extension uses instancing to multiply geometry for each view, Draw* calls with an active multiview program have to be handled in the follwing way: 1) Convert non-instanced Draw calls to their instanced versions. 2) Multiply the number of instances in an instanced Draw call by the number of views. The patch also applies the viewport offsets to the viewport and scissor rectangle and propagates the computed viewports and scissors to the D3D11 runtime. BUG=angleproject:2062 TEST=angle_end2end_tests Change-Id: I8b4295c95c2cc0c1046c67e1fb1a782a46703292 Reviewed-on: https://chromium-review.googlesource.com/618331 Commit-Queue: Martin Radev <mradev@nvidia.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Martin Radev authored
Relinking the active program can change its number of views and the state has to be correspondingly adjusted. BUG=angleproject:2062 TEST=angle_end2end_tests Change-Id: I20102a428d7566a8cec5d81eeaa55980665812f4 Reviewed-on: https://chromium-review.googlesource.com/637994 Commit-Queue: Martin Radev <mradev@nvidia.com> Reviewed-by:
Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
- 30 Aug, 2017 3 commits
-
-
Jamie Madill authored
In some cases, when the app would call glBufferSubData to do a small data update in an existing vertex buffer, the sync code would not flush out the data to the native D3D11 buffer from the temporary staging buffer. Fix this problem by notifying the VertexArray11 class when buffer data is updated. Note that in the future we can improve this by using a different update notification for when the buffer data changes and when the underlying storage changes. For now take a very broad approach. BUG=angleproject:1156 Change-Id: I2e0fabc97c1f1d5a14d609247e61c602e9a5a85f Reviewed-on: https://chromium-review.googlesource.com/644208Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
Lots of incidental fixes to formatting and naming. Adds specific default return type overloads for ClientWaitSync and GetUniformBlockIndex. BUG=angleproject:1309 Change-Id: Id67cbc0b19fc2cb94c859ab8390f1ff36b1bbd25 Reviewed-on: https://chromium-review.googlesource.com/637203Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jiawei Shao authored
This patch intends to fix a compile error in ANGLE GLSL compiler when parsing an expression with inputs which has interpolation qualifiers ('flat', 'smooth' and 'centroid'). The compiler should report a compile error when a shader input with interpolation qualifier is used as a l-value. BUG=angleproject:2140 TEST=angle_unittests Change-Id: I7c059d53bf001ac31d34519a98e5289797833ce7 Reviewed-on: https://chromium-review.googlesource.com/640075 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:Jamie Madill <jmadill@chromium.org>
-