- 19 Oct, 2017 3 commits
-
-
Olli Etuaho authored
No statement should be required after the last case label of a switch statement in ESSL 3.10. The validation is still kept for ESSL 3.00 for dEQP compatibility. If the dEQP tests are changed in the future, we might consider just issuing a warning regardless of shader version. BUG=angleproject:2189 TEST=angle_unittests Change-Id: Ic53e71e0176668a7dbffa315712885846e217f03 Reviewed-on: https://chromium-review.googlesource.com/727802Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Jamie Madill authored
Also point gyp_angle back at tools. BUG=angleproject:1569 Change-Id: Ib17ba6973db24aec9cd47000d869e5aa427c84a3 Reviewed-on: https://chromium-review.googlesource.com/727529Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This needed to be updated to third_party. BUG=angleproject:1569 Change-Id: I13b5855b23ca9f7bfe3c4380c0bc701547f4f156 Reviewed-on: https://chromium-review.googlesource.com/727528Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
- 18 Oct, 2017 6 commits
-
-
Geoff Lang authored
From the ES3.0 spec: The error INVALID_VALUE is generated if texture is non-zero and layer is negative. BUG=765919 Change-Id: I0ac9bd0335ab4d55701d6def0158297d5add993e Reviewed-on: https://chromium-review.googlesource.com/723741Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Frank Henigman authored
This should do the same things as the stand-alone gyp build, but with gn. You should switch to gn as gyp support will go away. You need a recent enough version of gn. If yours is too old try this one: ./buildtools/linux64/gn If "gclient sync" or anything fails with an ImportError on gyp stuff, try running it with the following PYTHONPATH in the environment: PYTHONPATH=tools/gyp/pylib BUG=angleproject:1569 Change-Id: I56d19bec2d8b649a7bd65062c656cbfc69ea3dd8 Reviewed-on: https://chromium-review.googlesource.com/642588Reviewed-by:
Frank Henigman <fjhenigman@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
-
Jamie Madill authored
This was showing up in BlitFramebufferPerf.Run/d3d11_depth_2_samples. It would only show up when running the perf tests with the D3D11 Debug layer enabled. BUG=angleproject:2188 Change-Id: I71f310641d4a4c017e8c4c907c2bdc61019978a4 Reviewed-on: https://chromium-review.googlesource.com/724962Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This fixes a D3D11 runtime warning in perf test init. We don't see it on the bots because we don't typically enable the D3D11 runtime. BUG=angleproject:2188 Change-Id: I512db7d5a34204f1d94e28d80cadb18f9b17e55f Reviewed-on: https://chromium-review.googlesource.com/724738 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This moves the Pipeline Layout and related layout code init into the LinkProgram implementation call. These resources don't depend on anything other than the state at link time. Moving the init makes the calling code a bit simpler since it doesn't need to process error conditions and check for validity every time. Also introduce a reset() method, similar to ProgramD3D. This will allow us to re-link a program multiple times (once resource lifetime management is properly implemented). BUG=angleproject:2167 Change-Id: Ibe76ed9b901adf6b69b51ba8219b3ce79d55b87d Reviewed-on: https://chromium-review.googlesource.com/720071 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org>
-
Jamie Madill authored
Currently this won't speed up performance much, if at all, since we don't even really support state changes. It sets the stage for using a pipeline cache later, with better state change support. It also makes implementing descriptor sets for Textures a bit simpler, since we can just update descriptor sets when the dirty bits tell us of a Texture change. Add cache structures to VertexArrayVk and ContextVk so we only need to update the structures before we create a new pipeline. When we support pipeline caching, we will most likely be updating a compact representation for fast cache query. BUG=angleproject:1898 BUG=angleproject:2167 Change-Id: Id545f2c67c06d8b6e8b7eb63ca70464f6b9a51f6 Reviewed-on: https://chromium-review.googlesource.com/713586 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Frank Henigman <fjhenigman@chromium.org>
-
- 17 Oct, 2017 8 commits
-
-
Corentin Wallez authored
This adds support for macOS 10.13 "High Sierra" BUG=chromium:774309 Change-Id: I9b5b13750608f703dd0a3e0afeb1e314b437b8cc Reviewed-on: https://chromium-review.googlesource.com/721520 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Corentin Wallez authored
The std::pair constructor isn't constexpr there. BUG= Change-Id: I7711185c6c991fd5793cc6c785e9905710660cd9 Reviewed-on: https://chromium-review.googlesource.com/723849Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
-
Jamie Madill authored
Add the code that finds the right memory information into a shared location. This will allow it to be reused with other points in the code. BUG=angleproject:2167 Change-Id: I72d0522e134666d0a00921cb5ef6bc093473afdf Reviewed-on: https://chromium-review.googlesource.com/717189 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
This was generating a warning for missing virtual destructor in some configurations. BUG=angleproject:2167 Change-Id: I05e335de4ab1160c6066665d588b50527ea34cbd Reviewed-on: https://chromium-review.googlesource.com/723980Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This method is useful for the Vulkan back-end as well as D3D11. It can produce a uniform block layout for the default uniform blocks as well as for interface blocks. Put it in blocklayout.h in the translator. BUG=angleproject:2167 Change-Id: I13160906921da439746c1811a623006250aaeefd Reviewed-on: https://chromium-review.googlesource.com/713941Reviewed-by:
Frank Henigman <fjhenigman@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Frank Henigman authored
DEPS libpng into third_party/libpng/src, instead if third_party/libpng. Then we'll be able to put its BUILD.gn into third_party/libpng instead of the more distant build/secondary/... location. BUG=angleproject:1569 Change-Id: I12b1c51d65682cba3954c26f1bd3f7491ac31b01 Reviewed-on: https://chromium-review.googlesource.com/722176 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Olli Etuaho authored
These can be used instead of direct access of the arraySize field in Chromium, so that arrays of arrays support can be implemented inside ANGLE without breaking the Chromium build. BUG=angleproject:2125 TEST=angle_unittests Change-Id: I123c2a18549e8f6e40ade946870a5437faf2155e Reviewed-on: https://chromium-review.googlesource.com/718201Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Frank Henigman authored
BUG=angleproject:1569 Change-Id: I2bcde845d70159c1047349673ec8417b7686eafc Reviewed-on: https://chromium-review.googlesource.com/721257Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
-
- 16 Oct, 2017 3 commits
-
-
Corentin Wallez authored
For testing this also converts two unimportant GLenums, gl::BufferUsage and gl::CullModeFace. BUG=angleproject:2169 Change-Id: If1e86a97d0fed3fd567303aca6506ec579503076 Reviewed-on: https://chromium-review.googlesource.com/688000 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
These extra include dirs were not being rebased correctly in the BUILD.gn side. Instead add them later in angle_deqp_support. The GN build already had the correct deps in any case. BUG=angleproject:1569 Change-Id: Ieb4fab47bd9948a3309da239f2efdafbfcc8782c Reviewed-on: https://chromium-review.googlesource.com/722065Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Olli Etuaho authored
The code is refactored so that symbol nodes can only be initialized with an unique id object. This prevents accidentally forgetting to create an id for a symbol node. This opens up possibilities for future optimization: For example the names and types of symbols could be stored in a central location inside the SymbolTable, and TIntermSymbol nodes would only need to store the symbol id. The symbol id could be used to look up the name and type of the node. BUG=angleproject:1490 TEST=angle_unittests Change-Id: Ib8c8675d31493037a5a28c7b36bb9d1113cc10f6 Reviewed-on: https://chromium-review.googlesource.com/580955Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
- 15 Oct, 2017 1 commit
-
-
Yuly Novikov authored
Also SubDataOffsetPreservesContents. BUG=angleproject:2185 Change-Id: I73401e4b511313f14ee9659f3d20c8086e3d04a3 Reviewed-on: https://chromium-review.googlesource.com/719890 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org>
-
- 13 Oct, 2017 5 commits
-
-
Jamie Madill authored
This seems to be a new thing with VS2017. BUG=angleproject:1569 Change-Id: Ic46566b979e975e5e6eb3a1f80eac9e44b66f2d4 Reviewed-on: https://chromium-review.googlesource.com/719296Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Olli Etuaho authored
There are many types of statements after which a semicolon is not needed. Skip writing the semicolon in HLSL output in these cases to make the output code more readable. BUG=angleproject:1013 TEST=angle_end2end_tests Change-Id: I8f6a5e4ecfe5def456fdf19cca5ca451c13d7f35 Reviewed-on: https://chromium-review.googlesource.com/718420 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Olli Etuaho authored
The multiview transform feedback test was not compliant with the GLES spec for transform feedback. The issue had to do with this part of section 2.15.2 of GLES 3.0.5 spec: "The error INVALID_OPERATION is also generated by BeginTransformFeedback if no binding points would be used, either because no program object is active or because the active program object has specified no output variables to record." Fix this. BUG=angleproject:2184 TEST=angle_end2end_tests on NVIDIA 387.92 drivers Change-Id: I24816d2c24df0072179f21ead892bd2c9ba696d2 Reviewed-on: https://chromium-review.googlesource.com/718702 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
The incomplete texture handling is similar between the D3D and Vulkan back-ends. We create 1x1 textures, initialize them to black, and bind them when we detect incomplete textures. We would also bind incomplete textures when we detect feedback loops. In the GL back-end, we wouldn't detect feedback loops, and would allow the driver to handle incompleteness. Instead implement this in a shared helper class, and do the feedback loop detection in the front-end for every back-end. This makes our behaviour more consistent between back-ends, and prevents undefined behaviour. Because initializing multisample textures is tricky (they can't be updated with TexImage calls) we do a bit of a workaround so the back-end can clear the incomplete multisample texture initially. This progresses the initial Vulkan textures implementation. BUG=angleproject:2167 Change-Id: I79ddcc0711fcc986f2578a52ac6f701231d241ac Reviewed-on: https://chromium-review.googlesource.com/700993Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Yuly Novikov authored
Actually failing on Win Intel D3D11, but not possible to test for Intel D3D11 since GL_RENDERER is NULL. BUG=angleproject:2183 TBR=jmadill@chromium.org Change-Id: I894b2772af1154a86354ca755a06f146b33a4ed8 Reviewed-on: https://chromium-review.googlesource.com/716801 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
- 12 Oct, 2017 9 commits
-
-
Corentin Wallez authored
Also adds a test for an integer overflow in DrawArrays validation. BUG=602737 Change-Id: I71c5bd155cf919964f46e2b0b48267253cab91eb Reviewed-on: https://chromium-review.googlesource.com/716841Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
-
Jamie Madill authored
We can use Python's "endswith" more easily than using the current checks. BUG=angleproject:1390 BUG=angleproject:2167 Change-Id: I5a35602c91b989270cff1d42a9d5ede542039fbd Reviewed-on: https://chromium-review.googlesource.com/717188Reviewed-by:Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Olli Etuaho authored
If variables are declared inside a GLSL switch statement, they are scoped until the end of the switch statement. This is not compatible with HLSL rules, where the scoping is until the end of the case. To work around this, wrap switch statements in a block that declares the variables in HLSL. This is done after most other transformations done to the AST are complete, since some of the other transformations may introduce temporary variables. BUG=angleproject:2179 TEST=angle_end2end_tests Change-Id: Id0bb89affe103177fd3d6a6b2f3619b5e1ada0a6 Reviewed-on: https://chromium-review.googlesource.com/716381Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Corentin Wallez authored
BUG=602688 Change-Id: I49a1a9b3753159c91058a7754534383fbc8a778e Reviewed-on: https://chromium-review.googlesource.com/713740Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
-
Olli Etuaho authored
RemoveSwitchFallThrough now treats cases where break; or return; is nested inside a block as non-fallthrough to avoid unnecessary duplication of code. For example, the case 1 below would previously get treated as fall-through: switch(foo) { case 1: { break; } default: break; } Now RemoveSwitchFallThrough doesn't do anything to this code. BUG=chromium:772695 TEST=angle_end2end_tests Change-Id: Iafab6d8b05c63bcdb5f54834dbc1f41192c31dd4 Reviewed-on: https://chromium-review.googlesource.com/709197Reviewed-by:Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Olli Etuaho authored
Some users of ANGLE might want to use the D3D11 backend on older Windows 7 platforms that only support DXGI 1.1. DXGI 1.1 doesn't recognize the FL 11.1 enum passed to D3D11CreateDevice, so special fall-back code is needed to fall back to FL 11.0 or lower in this case. BUG=angleproject:2173 Change-Id: Id77401d0e2a16786ed44d117ca746908e8d0892c Reviewed-on: https://chromium-review.googlesource.com/716356Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Ben Wagner authored
Fix resulting warnings. Change-Id: Ie251012ee01aa484a8c489f9deeec385a50528f9 Reviewed-on: https://chromium-review.googlesource.com/713695 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Olli Etuaho authored
Make NodeInsertMultipleEntry private and clarify some comments in IntermTraverse.h. BUG=angleproject:2100 TEST=angle_unittests, angle_end2end_tests Change-Id: Iae60a46714c8b5cb9ad1e9d70aa6776f9deaf3d5 Reviewed-on: https://chromium-review.googlesource.com/715718Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Olli Etuaho authored
The grammar needs to generate AST nodes even for no-op statements, since they might be the last statement in a switch statement that is required for switch statement validity. Change the grammar to generate nodes from empty blocks and empty declarations. We also need to do some further processing of the AST. This is because PruneEmptyDeclarations will still remove empty declarations, and at least the NVIDIA driver GLSL compiler doesn't accept some types of no-op statements as the last statement inside a switch statement. So after parsing has finished we do rudimentary dead code elimination to remove dead cases from the end of switch statements. BUG=angleproject:2181 TEST=angle_unittests Change-Id: I586f2e4a3ac2171e65f1f0ccb7a7de220e3cc225 Reviewed-on: https://chromium-review.googlesource.com/712574 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
- 11 Oct, 2017 5 commits
-
-
Jamie Madill authored
The way that the strings were generated was erroneously marking 2D multisample textures as "2D" instead of "2D_MULTISAMPLE". Fix this by changing how the types are parsed and generated. Fixes incomplete texture handling of 2D multisample textures. BUG=angleproject:1390 BUG=angleproject:2167 Change-Id: I8ffffca119cc7ca654ed1fe81cba37b758f9ef9f Reviewed-on: https://chromium-review.googlesource.com/713585Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Frank Henigman <fjhenigman@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Frank Henigman authored
Update to the version of googletest current in chromium. Googlemock has merged into googletest so we get rid of the separate DEPs entry and point everything inside googletest. We put it in 'third_party' instead of 'testing' to prepare for the upcoming stand-alone gn build which borrows chromium build files that require other stuff in the 'testing' directory. BUG=angleproject:1569 Change-Id: I51d1675efd5d0104bb6390721928010221a5d6fc Reviewed-on: https://chromium-review.googlesource.com/713466Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
-
Olli Etuaho authored
In case the last case inside a switch statement is not terminated in a branch statement, RemoveSwitchFallThrough needs to add it before calling handlePreviousCase. This ensures that all preceding fall-through cases will get a copy of the branch statement and so will not fall through. This also fixes running RemoveSwitchFallThrough so that it's only executed once per each switch statement. The error was not caught by the dEQP tests, so a new ANGLE test is added. BUG=angleproject:2178 TEST=angle_end2end_tests Change-Id: I26b6989aa4d32de2d74cde56d72ee24f61195445 Reviewed-on: https://chromium-review.googlesource.com/709196Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Ben Wagner authored
Fix the resulting compile errors. No-Try: true Change-Id: I88e74f240b29ecf7b3883b0c5880dcb871e4c3cd Reviewed-on: https://chromium-review.googlesource.com/710415 Commit-Queue: Ben Wagner <benjaminwagner@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Yunchao He authored
Strcmp in SampleApplication.cpp is a cstring function. So some compilers (at least the default gcc compiler in my Ubuntu 17.04) would think that strcmp is not declared and lead to build failure, even we have include <string> in header file. Now that we use std::string variable in SampleApplication.h, it is better to include <string> in that header file as what it is. Then add <string.h> to include cstring functions in .cpp file to fix the build issue. BUG=angleproject:2180 Change-Id: Id97a6956480637c1218314c04d9b331031c7b911 Reviewed-on: https://chromium-review.googlesource.com/711396Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-