- 22 Aug, 2017 3 commits
-
-
Martin Radev authored
The patch adds support for clearing the layers of 2D array textures attached to a multi-view framebuffer. According to the ANGLE_multiview spec, the layers which are outside of the range [baseViewIndex; baseViewIndex + numViews) should remain unmodified. Because the native Clear* commands clear all of the layers, a workaround is implemented which creates a FBO, attaches a single layer from all multi-view attachments and clears the contents. BUG=angleproject:2062 TEST=angle_end2end_tests Change-Id: Ibf711d02046233eed16bdd3f9c96fc38f82ed0a8 Reviewed-on: https://chromium-review.googlesource.com/615242 Commit-Queue: Martin Radev <mradev@nvidia.com> Reviewed-by:
Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Martin Radev authored
The patch adds tests to verify that all primitive types are rendered correctly in a multi-view context. BUG=angleproject:2062 TEST=angle_end2end_tests Change-Id: Ied4521264841d29ba3b39a612e2da285d0fd9fc6 Reviewed-on: https://chromium-review.googlesource.com/612243 Commit-Queue: Martin Radev <mradev@nvidia.com> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Jiawei Shao authored
This patch intends to implement geometry shader built-in interface block instance gl_in defined in GL_OES_geometry_shader. 1. Add the definition of gl_in and its interface block gl_PerVertex into the symbol table. 2. Support gl_Position as a member of gl_in. 3. Set the array size of gl_in when a valid input primitive type is known. 4. Add check that it should be a compile error to index gl_in or call length() on gl_in without a valid input primitive declaration. This patch also adds unit tests to cover all these new features. BUG=angleproject:1941 TEST=angle_unittests Change-Id: I8da20c943b29c9ce904834625b396aab6302e1e1 Reviewed-on: https://chromium-review.googlesource.com/605059 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Olli Etuaho <oetuaho@nvidia.com>
-
- 21 Aug, 2017 4 commits
-
-
Jamie Madill authored
This moves the input layout cache and vertex and index data managers and related info into the state manager. This makes it easier to manage the state application with regards to dirty bits. Also updates the dirty current value handling in StateManager11. BUG=angleproject:1156 BUG=angleproject:2052 Change-Id: I8de968a1f8416363aa1c49d9e9da129942d21275 Reviewed-on: https://chromium-review.googlesource.com/616783Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
Although we only used this method in one place that didn't need to clear depth or stencil, the method itself doesn't seem like it should be limited. It will become useful in later patches which initialize depth and stencil textures robustly. BUG=angleproject:2107 Change-Id: I7dc67608972f2b31c0cb4d309941be10f47d1d47 Reviewed-on: https://chromium-review.googlesource.com/585600Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Olli Etuaho authored
gl_ViewportIndex is a GLSL built-in that's needed to implement instanced multiview. It is a bit of a special case: it only exists in desktop GLSL and not ESSL, and it shouldn't be exposed to the parser. We add a new level to the symbol table that's hidden from the parser to make adding this kind of builtins in AST transforms consistent with the way ESSL builtins are supported. BUG=angleproject:1490 TEST=angle_unittests Change-Id: I51b2d983950b38c8e85e4b6ed00c6b39f9b3cb03 Reviewed-on: https://chromium-review.googlesource.com/580953 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Martin Radev authored
The patch extends the behavior of SH_SELECT_VIEW_IN_NV_GLSL_VERTEX_SHADER so that either the viewport or layer is selected based on the value of the internal uniform variable MultiviewRenderPath. BUG=angleproject:2062 TEST=angle_end2end_tests TEST=angle_unittests Change-Id: Ia311b12b1fed642dac78eba8732e2535242f34fd Reviewed-on: https://chromium-review.googlesource.com/615260 Commit-Queue: Martin Radev <mradev@nvidia.com> Reviewed-by:
Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
- 18 Aug, 2017 2 commits
-
-
Jamie Madill authored
BUG=chromium:756087 Change-Id: If7d318d58ce46b52a810b1a96fcdbff57a787f86 Reviewed-on: https://chromium-review.googlesource.com/621408Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Olli Etuaho authored
Arrays of arrays have not been implemented yet, but these tests can already be enabled. This is useful to make sure that we don't accidentally enable arrays of arrays where they shouldn't be enabled and that the initial implementation generates errors correctly and doesn't crash on malformed inputs. BUG=angleproject:2125 TEST=angle_unittests, angle_deqp_gles31_tests Change-Id: I538e5ae1f0903c42e06cfce352124130f160649d Reviewed-on: https://chromium-review.googlesource.com/620706Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
- 17 Aug, 2017 6 commits
-
-
Jamie Madill authored
This benign warning would show up in the Debug layer messages. It was causing the test to fail in some standalone configurations. This fix implemented here is to keep 8 different pixel shaders, one for each total count of render targets, up to the implementation max. BUG=angleproject:2025 Change-Id: I826ddae686ddb1cfad17879644152be2f6125c5b Reviewed-on: https://chromium-review.googlesource.com/617512Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
A couple index data manager and Renderer helper methods didn't need to modify state or use any local member variables, so we can make them static to be more accessible from other parts of the code. BUG=angleproject:1156 Change-Id: I522d0dfd396f0fed7b5087e90dcb70a0f9502a75 Reviewed-on: https://chromium-review.googlesource.com/616782Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
On HLSL 4+, the debug runtime issues a warning when we try to render to a color output in the pixel shader that doesn't have a matching render target bound. This happens when doing a depth or stencil-only render pass. We only need to bind a dummy output in HLSL 3, so tighten the workaround we had in place and fix the warning for D3D11. BUG=angleproject:2025 Change-Id: I16ba9e907f3a6e59afff93fe4583d084cbdf42c5 Reviewed-on: https://chromium-review.googlesource.com/617268Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Shao authored
This patch intends to remove the field 'arraySize' in TInterfaceBlock. The field 'arraySize' in TInterfaceBlock is redundant because: 1. If the interface block has instance name, it is recorded as one symbol as a whole, and its array size is recorded in the TType of the symbol. 2. If the interface block doesn't have instance name, its members are recorded separately, and it cannot be declared as an interface block array. This patch can make the implementation of Geometry Shader easier when we set array size to the built-in interface block 'gl_in' and other user-defined unsized input interface blocks during the compilation of a Geometry Shader. BUG=angleproject:1941 TEST=angle_end2end_test Change-Id: I9a51aab9b8f9ea7e88af157505c092426cee7e6e Reviewed-on: https://chromium-review.googlesource.com/615759 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Martin Radev authored
The patch extends the OutputHLSL and DynamicHLSL translators to select the viewport index in the geometry shader and propagate the ViewID variable to the fragment shader. BUG=angleproject:2062 TEST=angle_end2end_tests Change-Id: I9e344a7521e2e1137e6eb38d0bfecea8bece778f Reviewed-on: https://chromium-review.googlesource.com/608967 Commit-Queue: Martin Radev <mradev@nvidia.com> Reviewed-by:
Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Olli Etuaho authored
BUG=angleproject:2125 TEST=compile Change-Id: Ideae29190bd9cd56ecdc0ea31a078d4460413540 Reviewed-on: https://chromium-review.googlesource.com/616145Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
- 16 Aug, 2017 7 commits
-
-
Geoff Lang authored
BUG=602737 Change-Id: I05987f4806e179eb50f4b86533c88831e359b9e8 Reviewed-on: https://chromium-review.googlesource.com/617514 Commit-Queue: Geoff Lang <geofflang@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Geoff Lang authored
Sized internal formats with invalid types would pass validation because GetInternalFormatInfo does not validate that the type is a valid upload type for the given internal format. TEST=conformance2/textures/misc/tex-image-with-bad-args-from-dom-elements.html BUG=angleproject:1932 Change-Id: I07fd542630a4508383263c1fe3d7a80c037d7ca0 Reviewed-on: https://chromium-review.googlesource.com/617508 Commit-Queue: Geoff Lang <geofflang@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Jamie Madill authored
Since 9.3 doesn't support non-zero level render targets, we should always be getting the level zero render target. Previously the code would never try creating a render target when level zero mode was not enabled, but this can break if we refactor the code. Fixes a bug in a future patch which creates the storage as a render target instead of as a non-renderable texture first. BUG=angleproject:2107 Change-Id: Ib2732a35e586bc4956d07783325429e8edeb0c66 Reviewed-on: https://chromium-review.googlesource.com/614120Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
Possibly due to a driver bug. BUG=angleproject:1932 Change-Id: I8b10457681c5635b89f898aab09fa244b3bf7d9c Reviewed-on: https://chromium-review.googlesource.com/616817Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Martin Radev authored
The patch modifies Clear11 to add support for clearing the color, depth and stencil attachments to a side-by-side framebuffer: - Color attachments are cleared through the command ClearView. - Depth and stencil attachments are cleared by drawing a quad on top of each view. BUG=angleproject:2062 TEST=angle_end2end_tests Change-Id: I5753a72222216a48cd954eb1219bc58f968735fc Reviewed-on: https://chromium-review.googlesource.com/603853 Commit-Queue: Martin Radev <mradev@nvidia.com> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Martin Radev authored
The patch modifies the ANGLE_multiview specification so that issuing a Draw* command has undefined results for side-by-side FBOs if the scissor test is disabled. Also, clearing a side-by-side framebuffer will result in clearing the whole content of the specified buffers if the scissor test is disabled. StateManagerGL and FramebufferGL are modified to address this change in the spec. BUG=angleproject:2062 TEST=angle_end2end_tests Change-Id: I39a87d297944f12769dee2ead17b508ac22053db Reviewed-on: https://chromium-review.googlesource.com/612283 Commit-Queue: Martin Radev <mradev@nvidia.com> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Olli Etuaho authored
The arrayOfStructsSize parameter can always be determined from the TType object, so there's no need to pass it to TType::createSamplerSymbols. Furthermore, it's more natural to do the processing for arrays of structs in TType::createSamplerSymbols, rather than in the TStructure::createSamplerSymbols helper it is using. Also rename some parameter names, and move createSamplerSymbols implementation to Types.cpp. This refactoring change prepares for implementing arrays of arrays. BUG=angleproject:2125 TEST=angle_end2end_tests Change-Id: I3f8bec711c0434677ebcf3741abb4f910c36dba3 Reviewed-on: https://chromium-review.googlesource.com/614883 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
- 15 Aug, 2017 5 commits
-
-
Olli Etuaho authored
Some of the code was written under the mistaken assumption that createSamplerSymbols would be splitting sampler arrays in structs into individual samplers. Fix it by adding array dimensions to sampler parameters generated by createSamplerSymbols when necessary. BUG=angleproject:2128 TEST=angle_end2end_tests Change-Id: Ie622c777d78ae65b5629d12e0ae574800c1b78f5 Reviewed-on: https://chromium-review.googlesource.com/614882 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Brandon Jones authored
Replace many error string literals with variables existing in ErrorStrings.h BUG=:angleproject:1644 Change-Id: If5665a6787a1fa8d789811d774711c3705dfb0ab Reviewed-on: https://chromium-review.googlesource.com/598588 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Geoff Lang authored
BUG=angleproject:1932 Change-Id: Iabc1a3e361d66313dc16bf19b392402b7836f8a5 Reviewed-on: https://chromium-review.googlesource.com/612562 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Geoff Lang authored
Mapping a buffer that is bound for active transform feedback or starting transform feedback on a mapped buffer is undefined behaviour under section 2.10.3.2 of the ES 3.0 spec "Effects of Mapping Buffers on Other GL Commands". The spec suggests that an error is generated in this case. TEST=ES3MapBufferRangeTest.TransformFeedback BUG=754000 Change-Id: I613defd07cc1a4348682d992cda61cc898936720 Reviewed-on: https://chromium-review.googlesource.com/614483Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Olli Etuaho authored
Files that only have a single function should be named consistently with the function. Unnecessary include in CallDAG.h is removed. BUG=angleproject:2068 TEST=angle_unittests Change-Id: I27d55a766b9eb66fcfd1e0a2341a2843bb9dc5bb Reviewed-on: https://chromium-review.googlesource.com/608368 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
- 14 Aug, 2017 5 commits
-
-
Geoff Lang authored
BUG=angleproject:1932 Change-Id: Iab79f2a09c2d8a85d2a9dde34acf4d2151072c2b Reviewed-on: https://chromium-review.googlesource.com/612561Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Olli Etuaho authored
This encapsulates expanding struct variables inside the VariablePacker class that packs variables according to the GLSL ES spec. The variable expansion step is no longer run twice when checking uniforms against the max uniforms limit. BUG=angleproject:2068 TEST=angle_unittests Change-Id: I012ddaa249f71c0a78d937c98007c61352e64888 Reviewed-on: https://chromium-review.googlesource.com/608367 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Jiajia Qin authored
Refactor InterfaceBlocks since it only stands for UniformBlock before ES31. But for ES31, uniform block and shader storage block both belong to interface block. This CL will add GetUniformBlocks and GetShaderStorageBlocks in ShaderLang.h. Meanwhile, keep GetInterfaceBlocks which can return all the interface blocks together. BUG=angleproject:1951 Change-Id: I3036e201aadfbd490575ed03538c81bcc3793ff3 Reviewed-on: https://chromium-review.googlesource.com/582546 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Martin Radev authored
The patch adds tests to verify that an occlusion query correctly tracks whether any fragments pass the depth test for any of the views as according to the ANGLE_multiview extension. BUG=angleproject:2062 TEST=angle_end2end_tests Change-Id: Ia85bac4935192554a337c27fad110fbb7f56cf8a Reviewed-on: https://chromium-review.googlesource.com/609961 Commit-Queue: Martin Radev <mradev@nvidia.com> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Martin Radev authored
Handle glFramebufferTextureMultiviewLayeredANGLE calls by saving the arguments into the attachment's state. BUG=angleproject:2062 TEST=angle_end2end_tests Change-Id: I9d7c0e00fe9e917ad2f9d903a39f30b2546dc7a3 Reviewed-on: https://chromium-review.googlesource.com/609960 Commit-Queue: Martin Radev <mradev@nvidia.com> Reviewed-by:
Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
- 11 Aug, 2017 4 commits
-
-
Shao authored
This patch intends to add missing initialization of MAX_INTEGER_SAMPLES, MAX_DEPTH_TEXTURE_SAMPLES and MAX_COLOR_TEXTURE_SAMPLES required for multisampled textures on D3D backends. Since MAX_*_SAMPLES cannot be queried directly from D3D APIs, these values are initially assigned a large value in renderer11.cpp and re-calculated in context::updateCaps(). This patch also adds tests to ensure these values are greater than 1 as required in OpenGL ES3.1 spec. BUG=angleproject:1592 TEST=angle_end2end_tests Change-Id: Iba586e311d40d2da4569816902f96e40bbd6935b Reviewed-on: https://chromium-review.googlesource.com/597411 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Frank Henigman authored
In D3D cube map textures use different code paths than regular 2D textures. Add outside-the-framebuffer handling to those paths, same as was added the other paths earlier. Change-Id: I51896a07f73ae8d761cd9d7b18c68076f38d32a3 Reviewed-on: https://chromium-review.googlesource.com/603050 Commit-Queue: Frank Henigman <fjhenigman@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Olli Etuaho authored
Make sure that the type definitions for nested structs get added to the HLSL header, and that the std140 padding information gets recorded. Prior to this trying to use nested structs in interface blocks crashed. BUG=angleproject:2084 TEST=angle_end2end_tests Change-Id: If57870285c6feaf0c2e462f98f50f20730dd6470 Reviewed-on: https://chromium-review.googlesource.com/608449Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Frank Henigman authored
Cube maps go through a separate path on D3D so we need to test them. BUG=angleproject:1815 Change-Id: Ifb7a85d7e2750f25bce382fdd7a00062d23b3573 Reviewed-on: https://chromium-review.googlesource.com/597213 Commit-Queue: Frank Henigman <fjhenigman@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
- 10 Aug, 2017 4 commits
-
-
Olli Etuaho authored
In HLSL output, structs in interface blocks are not accessed directly. Rather they get copied from the D3D constant buffer to static structs in the shader header. Fix generating the copy/init code in the header to handle arrays of structs correctly. BUG=angleproject:2084 TEST=angle_end2end_tests Change-Id: If66bd5be3f3570ba591b8b62c5284c06fc83dd45 Reviewed-on: https://chromium-review.googlesource.com/608448Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Geoff Lang authored
BUG=angleproject:1932 Change-Id: I6474237cbb82b59a0bd40c1b9b9e2455952d3755 Reviewed-on: https://chromium-review.googlesource.com/600510 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Martin Radev authored
If the ANGLE_multiview extension is used in a program, the number of geometry instances is the number of instances passed to glDraw*Instanced times the number of views in the program. The attribute divisor has to be multiplied by the number of views so that the correct attributes are gathered in the input assembly stage. BUG=angleproject:2062 TEST=angle_end2end_tests Change-Id: I960d6313c02e3eb83f7a07e72b9bcac072c736f4 Reviewed-on: https://chromium-review.googlesource.com/593953 Commit-Queue: Martin Radev <mradev@nvidia.com> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Martin Radev authored
The patch refactors the tests to use the GL RAII objects from gl_raii.h. It also specifies a correct internal format for a texture 2D array object in one of the tests so that the texture is color-renderable. BUG=angleproject:2062 TEST=angle_end2end_tests Change-Id: Ie536ffeb5b2f2594f5273b795fe786a5042f63d4 Reviewed-on: https://chromium-review.googlesource.com/603610 Commit-Queue: Martin Radev <mradev@nvidia.com> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Olli Etuaho <oetuaho@nvidia.com>
-