- 13 Jul, 2018 1 commit
-
-
Luc Ferron authored
Bug: angleproject:1578 Change-Id: I1ce739f596b74397b625fee3806f2e1d219b29b6 Reviewed-on: https://chromium-review.googlesource.com/1135573 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
- 12 Jul, 2018 7 commits
-
-
Jamie Madill authored
This started failing with the driver uniform rework: Vulkan: Add driver uniforms for point coords flipping https://chromium-review.googlesource.com/1133584 Suppress until we can investigate. Bug: angleproject:2727 Change-Id: Id1d1fe713ac058a0bb45230ba9e292f012755bcc Reviewed-on: https://chromium-review.googlesource.com/1135729Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Luc Ferron authored
- This makes all end2end tests pass successfully on Win/Nvidia with viewport flipping enabled. Bug: angleproject:2673 Change-Id: I031c0a0f5fb0aede58b59479e57c2c127bcb964c Reviewed-on: https://chromium-review.googlesource.com/1133703Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
-
Jamie Madill authored
This new node type can be used to inject preprocessor directives into the intermediate tree. Outputting the preprocessor directive is easy for the GLSL back-end. This can be used to implement workarounds such as the OpenGL line rasterization rules on Vulkan. Also fixes the build that was broken on Win/x64 with a prior change and makes more methods in IntermNode.h const. Bug: angleproject:2598 Change-Id: Ifd6d0ac7912ccf2137997bb9a0187fd063023d5e Reviewed-on: https://chromium-review.googlesource.com/1133420Reviewed-by:
Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Luc Ferron authored
This new driver uniform allows us to dynamically decide if we flip the y coordinate of the gl_PointCoord variable. We only flip the coordinate if we render downside-up, and otherwise we cancel the flipping since the y coordinate doesn't need modification anymore. This completes all end2end and deqp gles2 tests success when viewport flipping is enabled on Windows Nvidia. Bug: angleproject: 2673 Change-Id: I570e01ef4965933428375f6ebd8eac83ef16fbff Reviewed-on: https://chromium-review.googlesource.com/1133584 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
This marks the internal format pixel bytes compute helpers and the Context scratch and zero buffer helpers as "no discard". This prevents sketchy code where we don't catch error values. Bug: angleproject:2713 Change-Id: Ic6d285897dc36ad529cd5361d2763338578df61f Reviewed-on: https://chromium-review.googlesource.com/1134207Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Luc Ferron authored
- Preliminary change for gl_PointCoords fix for Vulkan. Bug: angleproject:2673 Change-Id: Ie43e8aeccf75a8daa4a137b98292d848522ea2f0 Reviewed-on: https://chromium-review.googlesource.com/1134877Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
-
Olli Etuaho authored
The traversal logic for many node types is essentially the same. Use a single traverse() function for all simple node types instead of having different ones for each node type. Special traversal code is only needed for those node types where the traversal logic is overridden in specific traversers or which do special bookkeeping. This makes traverser behavior a bit more consistent: InVisit calls are now done for all node types, including if/else, ternary and loop nodes. Also false returned from visit function will always skip traversing the next children of that node. This reduces shader_translator binary size on Windows by 8 kilobytes. The added helper functions will also make it easier to implement alternative more efficient traversers. Unfortunately this also regresses compiler perf tests by around 2-3%. BUG=angleproject:2662 TEST=angle_unittests, angle_end2end_tests Change-Id: I3cb1256297b66e1db4b133b8fb84a24c349a9e29 Reviewed-on: https://chromium-review.googlesource.com/1133009Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
- 11 Jul, 2018 10 commits
-
-
Jamie Madill authored
This removes usages of ErrorOrResult from SurfaceVk and FramebufferVk. This will enable the Vulkan error handling refactor. Bug: angleproject:2713 Change-Id: I69430dba51390a5cdc18b7b47ca423b9635e65de Reviewed-on: https://chromium-review.googlesource.com/1128923 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Frank Henigman <fjhenigman@chromium.org>
-
Jamie Madill authored
* Adds a nodiscard to the Error class. * Fixes the places where Error was discard. * Uses more vk::Error instead of gl::Error. This enables the Vulkan back-end Error refactoring. Bug: angleproject:2713 Change-Id: I09606d965e8b7cfd341ad7fb95cf029b9d694ef4 Reviewed-on: https://chromium-review.googlesource.com/1128922 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Frank Henigman <fjhenigman@chromium.org>
-
Jamie Madill authored
We were previously creating our device *before* initializing the FeaturesVk fields. This means we weren't requesting the MAINTENANCE1 extension correctly. Moving feature init before the first createDevice call fixes the ordering issue. This unblocks the viewport flip behaviour fixes. Bug: angleproject:2673 Change-Id: Iae6973b57bcb4da78134a17b0644cd248bfb4981 Reviewed-on: https://chromium-review.googlesource.com/1133920Reviewed-by:
Luc Ferron <lucferron@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This refactor will allow us to generate different error types in different backends. This makes Vulkan happy because it won't have to generate gl::Errors and can stay with vk::Error. Bug: angleproject:2713 Change-Id: I981402450f3b519d4f79851982547695d583355a Reviewed-on: https://chromium-review.googlesource.com/1128921 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Frank Henigman <fjhenigman@chromium.org>
-
Jamie Madill authored
This removes the use of the ErrorOrResult class from these methods. This will enable more performant Error handling. Also cleans up the ANGLE_TRY_CHECKED_MATH macro to be more general. Bug: angleproject:2713 Change-Id: I349947d320907839ca88ec1f9251e6ddc3858a08 Reviewed-on: https://chromium-review.googlesource.com/1128920 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Frank Henigman <fjhenigman@chromium.org>
-
Geoff Lang authored
It was possible for ANGLE to call eglMakeCurrent with EGL_NO_SURFACE and a valid context when the client called eglMakeCurrent with EGL_NO_SURFACE and EGL_NO_CONTEXT. Fix this by always binding a surface when the driver has no native surfaceless support. Don't expose the surfaceless extension when it's not possible to support it (unvirtualized contexts and no native surfaceless support). BUG=860800 BUG=angleproject:2464 Change-Id: Id8af9638d4356dbd710c453c9f196b9f25a2bbf9 Reviewed-on: https://chromium-review.googlesource.com/1131555Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
The ErrorOrResult pattern doesn't help much. Removing it enables the Error passing refactor in the Vulkan back-end. Bug: angleproject:2713 Change-Id: I4e8277ad856c785bf22b4d37b7ae880b534ef005 Reviewed-on: https://chromium-review.googlesource.com/1128919 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Frank Henigman <fjhenigman@chromium.org>
-
Jamie Madill authored
Bug: angleproject:2494 Change-Id: Ia8e374846427b7140ab2565ae5b9b18409a76d96 Reviewed-on: https://chromium-review.googlesource.com/1117323 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Olli Etuaho <oetuaho@nvidia.com>
-
Luc Ferron authored
- Improving the tests revealed a bug in D3D 11 Fast Path rendering. - These changes here are preliminary to implementing the blit for depth/stencil in Vulkan when using the viewport flipping. Bug: angleproject:2673 Bug: angleproject:2719 Change-Id: I6d55084e559d3110c8eeb0e7acb4e6fb09b6c1b5 Reviewed-on: https://chromium-review.googlesource.com/1132125Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
-
Jiawei Shao authored
This patch is the first one of the implementation of atomic functions in D3D11. There are mainly two differences in the usage of GLSL and HLSL atomic functions: 1. All GLSL atomic functions have return values, which all represent the original value of the shared or ssbo variable; while all HLSL atomic functions don't, and the original value can be stored in the last parameter of the function call. 2. For HLSL atomic functions, the last parameter that stores the original value is optional except for InterlockedExchange and InterlockedCompareExchange. Missing original_value in the call of InterlockedExchange and InterlockedCompareExchange results in a compile error from HLSL compiler. To handle these differences, we plan to implement the translation in two steps: 1. Support direct translations from GLSL atomic functions to HLSL ones. Direct translation can only handle the following two situations: (1) The sentence is a GLSL atomic function call without requesting a return value and it is not atomicExchange or atomicCompSwap: e.g. GLSL: atomicAdd(mem, value); -> HLSL: InterlockedAdd(mem, value); (2) The sentence is a simple assignment expression: its right is a GLSL atomic function call and its left is a declared variable. e.g. GLSL: oldValue = atomicAdd(mem, value); -> HLSL: InterlockedAdd(mem, value, oldValue); 2. Support atomic functions in the situations that don't support direct translations. We will modify the intermediate tree to make direct translation work on all these situations. e.g. atomicExchange(mem, value); -> int oldValue; oldValue = atomicExchange(mem, value); int oldValue = atomicAdd(mem, value); -> int oldValue; oldValue = atomicAdd(mem, value); return atomicAdd(mem, value); -> int temp; temp = atomicAdd(mem, value); return temp; for (i = 0; i < atomicAdd(mem, value); ++i) -> int temp; temp = atomicAdd(mem, value); for (i = 0; i < temp; ++i) { ... temp = atomicAdd(mem, value); } int result = isTrue ? atomicAdd(mem, value) : 0; -> int result; if (isTrue) { result = atomicAdd(mem, value); } else { result = 0; } This patch completes Step 1 which mainly focus on the translation from GLSL atomic functions to HLSL ones. BUG=angleproject:2682 TEST=angle_end2end_tests Change-Id: I3b655b6e286dad4fd97f255f7fe87521c94db30c Reviewed-on: https://chromium-review.googlesource.com/1121835 Commit-Queue: Jiawei Shao <jiawei.shao@intel.com> Reviewed-by:Olli Etuaho <oetuaho@nvidia.com>
-
- 10 Jul, 2018 18 commits
-
-
Jamie Madill authored
Also downgrades several Vulkan UNIMPLEMENTED() to WARN(). Also downgrades a couple D3D-specific errors to warnings. Also downgrades an undefined behaviour integer clear error to warning. Also includes suppressions for failing D3D11 ES 3.1 SSBO tests. Also includes suppressions for failing Android GLES format tests. Also includes suppressions for failing Android Vulkan buffer tests. Bug: angleproject:2552 Bug: angleproject:2567 Bug: angleproject:1951 Bug: angleproject:2405 Change-Id: Ie619085021d42012cd578b669f7ff4252ca41a58 Reviewed-on: https://chromium-review.googlesource.com/1062791 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org>
-
Frank Henigman authored
Open files with mode 'r' instead of 'rb' so the hash calculation produces the same results on Linux and Windows. Recalculate the hashes and proc_table_autogen.cpp which was out of date. BUG=angleproject:2711 Change-Id: I31562c96ce36e6df009c44c565fe9a3f1b5ba6c4 Reviewed-on: https://chromium-review.googlesource.com/1128549Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
-
Omar El Sheikh authored
Bug: angleproject:2694 Change-Id: I299d71e0857065d0f60204977d395793f921deaa Reviewed-on: https://chromium-review.googlesource.com/1117702 Commit-Queue: Omar El Sheikh <theoking@google.com> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Geoff Lang authored
BUG=angleproject:2692 BUG=angleproject:2523 BUG=angleproject:2715 BUG=angleproject:2716 Change-Id: I538b385f8b66fb97e176953b0fc4a6299849c005 Reviewed-on: https://chromium-review.googlesource.com/1118713 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Luc Ferron <lucferron@chromium.org>
-
Jamie Madill authored
Also modifies the ProgramVk to initialize the Pipeline and Desriptor Set layouts with driver uniforms enabled. Bug: angleproject:2717 Change-Id: I24f7bf6f89b450d1dcb62dcfa7411555ebe3a937 Reviewed-on: https://chromium-review.googlesource.com/1131568Reviewed-by:
Luc Ferron <lucferron@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
Bug: angleproject:2717 Change-Id: I542f3b0f2de21857d7fea0267f07d2d0eec78a8c Reviewed-on: https://chromium-review.googlesource.com/1131567Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Luc Ferron <lucferron@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This will make it easier to insert internal uniform layouts in Vulkan. Bug: angleproject:2717 Change-Id: Ic1a76848337cc67a57698913c584d8596bf4f27e Reviewed-on: https://chromium-review.googlesource.com/1127300Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Luc Ferron <lucferron@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Tobin Ehlis authored
Update Vulkan Layers/Loader/Tools/Header to latest versions as of 7/10. The layers were updated to correctly comprehend which device extensions are enabled which should fix a false error being flaged on negative Viewports in ANGLE. Bug: angleproject:2704 Change-Id: Ie51660f539beb249c3b11dc7e0d553ff7cabfde3 Reviewed-on: https://chromium-review.googlesource.com/1131919 Commit-Queue: Tobin Ehlis <tobine@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This was introduced in a prior patch. Bug: angleproject:2717 Change-Id: I8f34377cbb9cbede4237efb1610400a8ed20ae2a Reviewed-on: https://chromium-review.googlesource.com/1131566Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Luc Ferron authored
- Fixes all deqp functional_fragment_ops_depth_stencil_* with Y flipping enabled. Bug: angleproject:2673 Change-Id: I94a4225dec8adf9113309e8b8b2c8aa61f6a2bb9 Reviewed-on: https://chromium-review.googlesource.com/1129857 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
This cleans up another use of the proxy context. Bug: angleproject:2714 Change-Id: Icba5bf76a3e9f811ee571529de16fd8162c76b3a Reviewed-on: https://chromium-review.googlesource.com/1128928Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This cleans up another usage of getProxyContext. Bug: angleproject:2714 Change-Id: I5337e30cdd96e282e355c727bb40cd30e049ec1a Reviewed-on: https://chromium-review.googlesource.com/1128926Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Frank Henigman <fjhenigman@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
The BindingPointer pattern isn't necessary. Every time we delete a Texture we call ReleaseTexImage internally. There shouldn't be any time that we keep an orphaned Texture is Surface. This cleans up one place where we were using the ProxyContext. Bug: angleproject:2714 Change-Id: I3b0fd2125d02ea7545922ec6da7f487451bed871 Reviewed-on: https://chromium-review.googlesource.com/1128925 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Frank Henigman <fjhenigman@chromium.org>
-
Luc Ferron authored
- Validated by running: -functional_texture_specification_basic_copytexsubimage2d_* -functional_texture_specification_basic_copyteximage2d_* With the flip flag enabled. Bug: angleproject:2673 Change-Id: I5a3041af79f9316256b0650ab7e3fd0e086e46e3 Reviewed-on: https://chromium-review.googlesource.com/1129820 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Luc Ferron authored
- The depth/stencil related tests are now disabled since I found out that the tests are too simple to find issues if there is a flip since they use only a single color and no gradient / checked board. This is left to implement in the Vulkan backend later on. Bug: angleproject:2673 Change-Id: I8f7091d4b9c8c3bec0353ebab28304b6209ea350 Reviewed-on: https://chromium-review.googlesource.com/1129629Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
-
Jamie Madill authored
These methods can mutate the display resources. Necessary for getting rid of ProxyContext and for the Vulkan error refactor. Bug: angleproject:2714 Bug: angleproject:2713 Change-Id: Ibffb1a382ecb064daaa7c664f9fc65cbcf927b37 Reviewed-on: https://chromium-review.googlesource.com/1128927Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jacek Caban authored
Tested with Firefox build, upstream bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1471632 Change-Id: I4b44847dfc69ee26cf2215b0a0b7573becfd369d Reviewed-on: https://chromium-review.googlesource.com/1117187 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Olli Etuaho authored
This makes the compiler a few kilobytes smaller, and prepares getting rid of TString altogether. BUG=angleproject:2267 TEST=angle_unittests Change-Id: I93a003fe27b99bef72f872fa1066e2e108f934c5 Reviewed-on: https://chromium-review.googlesource.com/1107713Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
- 09 Jul, 2018 4 commits
-
-
Omar El Sheikh authored
Updated ScopedVkLoaderEnvironment destructor to delete an environment variable that gets set during initialization of the renderer to load the Mock/Null driver for tests that request it. Bug: angleproject:2698 Change-Id: Ibbac795b6315971b303d97a55d24565a403d056c Reviewed-on: https://chromium-review.googlesource.com/1120940Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Tobin Ehlis <tobine@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Tobin Ehlis authored
Update Vulkan Layers/Loader/Tools/Header to latest versions as of 7/3. This updates the ICD build to use inputs from the Header repo instead of copies of the file from its own repo. Those copies have been deleted and some of the generation scripts in Tools repo have been renamed. Also put script dependencies from Vulkan-Headers repo into a shared var that's imported by the other repos to minimize repeat code. Bug: angleproject:2704 Change-Id: I98a18be055482dccdad8468115b4045d09342bfb Reviewed-on: https://chromium-review.googlesource.com/1124966Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Tobin Ehlis <tobine@google.com>
-
Jamie Madill authored
This will be used to specify the applied Vulkan. We will use this to implement OpenGL line rasterization rules. Bug: angleproject:2717 Change-Id: I3395bf620a01c4b84b19a00037d05f148e5523f3 Reviewed-on: https://chromium-review.googlesource.com/1120151 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Luc Ferron <lucferron@chromium.org>
-
Jamie Madill authored
This fixes a bug in SPIRV-Tools validation. vec3s were not being packed properly. Affected some of the more complex dEQP shader tests. Unblocks better Debug error reporting. Bug: angleproject:2552 Change-Id: I83447813a4ae3347157321a30a91b5dee55ff6c1 Reviewed-on: https://chromium-review.googlesource.com/1129824 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Luc Ferron <lucferron@chromium.org> Reviewed-by:
Tobin Ehlis <tobine@google.com>
-