- 27 Nov, 2018 8 commits
-
-
Tim Van Patten authored
Update ANGLE Developer Options Update ANGLE developer options to allow selecting the OpenGL driver (default, ANGLE, native) for each app as well as forcing ANGLE for all apps. Bug: angleproject:2962 Test: Verify the default/ANGLE/native values are saved and applied and used by the loader. Change-Id: I6041e7e49ca5cc65f90fc8ae6f1b084e4639d769 Reviewed-on: https://chromium-review.googlesource.com/c/1330315 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
Allows for better readability. Also sort the error strings by ID. Bug: angleproject:2957 Change-Id: Ib3900a4c90507ac84496fd5ff916417eb768667b Reviewed-on: https://chromium-review.googlesource.com/c/1337461 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org>
-
Jamie Madill authored
The GLenum was already mostly packed. There were just a few missing values because of the exclusion of things like GL_QUADS and GL_POLYGON from GLES. Also update the PackedEnumMap initialization to take an intializer. The initializer is a list of key/values which is much more robust to changes in the packed map. Improves draw call speed slightly as there is no conversion needed any more for the mode enum. Bug: angleproject:2966 Change-Id: Icae658272c6234f29335f6a57a63cf341cf5b2a0 Reviewed-on: https://chromium-review.googlesource.com/c/1346529 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org>
-
Geoff Lang authored
This test flakes on many platforms. BUG=angleproject:2408 BUG=angleproject:2407 Change-Id: I9e8ff8aedc02962656c1a336c3f34191920ae8c7 Reviewed-on: https://chromium-review.googlesource.com/c/1352222 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This applies git cl format --full to all ANGLE sources. Bug: angleproject:2986 Change-Id: Ib504e618c1589332a37e97696cdc3515d739308f Reviewed-on: https://chromium-review.googlesource.com/c/1351367Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org>
-
Geoff Lang authored
The EXT_color_buffer_half_float extension spec issue #2 states that none of the added color buffer formats are required to be renderable and the client must check for framebuffer completeness for using them. Chrome exposes the extension if at least RGBA16F is renderable for WebGL. Replicate Chrome's behaviour by loosening our requirements to only expose this extension if an explicit check for RGBA16F renderability succeeds. BUG=angleproject:2984 Change-Id: Id97f3043ebf3fd11b5e9e2d505e57b76baba9716 Reviewed-on: https://chromium-review.googlesource.com/c/1351350 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org>
-
Qin Jiajia authored
This patch adds the swizzle process if the swizzle node is the last node in ssbo access chain. Bug: angleproject:1951 Change-Id: Iecc95baa45e8cc40be9111a15398c7e858bfb99e Reviewed-on: https://chromium-review.googlesource.com/c/1341234 Commit-Queue: Jiajia Qin <jiajia.qin@intel.com> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
James Darpinian authored
Implementing a WebGL spec change: https://github.com/KhronosGroup/WebGL/pull/2658 Fixes WebGL 2 conformance test: conformance2/transform_feedback/same-buffer-two-binding-points.html Also applying the change to D3D backends because they can't support multiple transform feedback outputs in one buffer. Bug: chromium:866089 Change-Id: I8d7eda14225c13efb7ca1ed974239332be4e79a6 Reviewed-on: https://chromium-review.googlesource.com/c/1347749 Commit-Queue: James Darpinian <jdarpinian@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
- 26 Nov, 2018 8 commits
-
-
Shahbaz Youssefi authored
Bug: angleproject:2958 Change-Id: Ifa40537bc6003486b37d5d2ac9a2b7f1f5c3d1c2 Reviewed-on: https://chromium-review.googlesource.com/c/1351115Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
-
Geoff Lang authored
BUG=angleproject:2909 Change-Id: Ie59c1206e2ce4940e27fed7887dbee665721049b Reviewed-on: https://chromium-review.googlesource.com/c/1351354Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Shahbaz Youssefi authored
Bug: angleproject:2958 Change-Id: I3f77e694638b4dc060d20a149c3f9c8aed3692d1 Reviewed-on: https://chromium-review.googlesource.com/c/1351114Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
-
Jamie Madill authored
To allow for extern "C" declarations to not break on a brace. This preserves the current code style. Also add indented preprocessor definitions. This makes the formatting of "platform.h" much nicer. Bug: angleproject:2971 Change-Id: I392babe0c8d67539a8e026a36a023a7404bb63c2 Reviewed-on: https://chromium-review.googlesource.com/c/1347452 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Geoff Lang authored
When calling glReadPixels on unsized sRGB textures, the data returned is not linearized. Using sized sRGB formats works around this problem. Fix SRGBTextureTest assuming that unsized SRGB formats work in ES3. BUG=angleproject:2977 Change-Id: I413c888ca0c3564ecdc364f3ea693e75ed4f8d6d Reviewed-on: https://chromium-review.googlesource.com/c/1343138Reviewed-by:
Tobin Ehlis <tobine@google.com> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Geoff Lang authored
When ANGLE exposes an ES2 context, there is often no way to create fence objects because GL_NV_fence is not available. BUG=882580 Change-Id: Ic18539e0243317a188545f3945f6b33d3401f1a8 Reviewed-on: https://chromium-review.googlesource.com/c/1348769Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Markus Tavenrath authored
Generating static objects within a function results in multithread safe code. This code generates the static objects upon the first execution of the line which declares the object. This results in high runtime cost for synchronization and a bigger code size. Instead introduce a new function uint32_t GetPackedTypeInfo(GLenum type) which returns a packed representation for the Type class. This representation is usually returned in a register on the assembly level. As a result we save constant storage for the TypeInfo object and one indirection when reading any value from this object. The Type constructor accepts the packed representation and unpacks it an inline function. For fields which are not used the compiler also applies dead code elimination which reduces the cost furthermore. As a result of this change the cost of GetTypeInfo is reduced by a factor of 4-5. Bug: angleproject:2974 Change-Id: I8ed0bf2f09d087fa4cffa04f82e3b7f8c183fe30 Reviewed-on: https://chromium-review.googlesource.com/c/1340221Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Tobin Ehlis authored
Update ScopedPerfEventHelper class to add systrace markers by default. This change unifies ANGLE EVENT* macro system so that at the base level in LoggingAnnotator class, systrace markers will be added by default. Modify the base DebugLogger to use char* by default and move any conversions to wchar_t to the Windows specializations where wchar is used. This limits type conversions to only where they're needed. This change also includes some new TRACE_EVENT() calls in the VK backend which will result in systrace markers for those calls on the Android platform. The new build flag "angle_enable_trace" is added to enable the tracing calls. Bug: angleproject:2528 Change-Id: Icefc197d4407e1cd31338710e37865abae6a0b15 Reviewed-on: https://chromium-review.googlesource.com/c/1042785 Commit-Queue: Tobin Ehlis <tobine@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org>
-
- 23 Nov, 2018 1 commit
-
-
Qin Jiajia authored
Below deqp cases already pass: dEQP-GLES31.functional.layout_binding.ubo.* dEQP-GLES31.functional.shaders.builtin_functions.*compute* BUG=angleproject:1951, angleproject:2759, angleproject:2619 Change-Id: I5541840462b792e83b4745c50e3c3d2c94db7745 Reviewed-on: https://chromium-review.googlesource.com/c/1347750Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
-
- 22 Nov, 2018 4 commits
-
-
Shahbaz Youssefi authored
While this is not exposed to the front end yet, this commit adds support for creating Compute pipelines for internal usage. Bug: angleproject:2959 Change-Id: I976eae1ce0f736c257b7b4ae0d1c3b2d9f4da5bb Reviewed-on: https://chromium-review.googlesource.com/c/1333972 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Shahbaz Youssefi authored
Use gl::ShaderType instead. For now, only GLES2 shaders are supported in ProgramVk. Bug: angleproject:2522 Change-Id: I17bc9afddb6d39cf45fb4dd37f34c7263a3ed515 Reviewed-on: https://chromium-review.googlesource.com/c/1333970Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
-
jchen10 authored
Currently we initialize a variable using zero initializer. Take the below variable for example: uint var[4]; We translate it to: uint var[4] = { 0, 0, 0, 0}; If the array size is large, we have to use very long zero initializer. The problem is that it's very slow for D3D drivers to compile. This CL uses the 'static' trick below to solve the problem: static uint _ANGLE_ZEROS_[256]; ... uint var[516] = {_ANGLE_ZEROS_, _ANGLE_ZEROS_, 0, 0, 0, 0}; For 'static', if the declaration does not include an initializer, the value is set to zero. https://docs.microsoft.com/en-us/windows/desktop/direct3dhlsl/dx-graphics-hlsl-variable-syntax Bug: chromium:898030 Change-Id: Ia3f6574b5ddaffa94bf971140eba95835ee105ee Reviewed-on: https://chromium-review.googlesource.com/c/1332805Reviewed-by:Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
-
Jamie Madill authored
Instead pass error code and error message directly to the Context. As a side effect every validation error has an associated message now. Reduces binary size by almost 100k. Bug: angleproject:2957 Change-Id: I045e8ab57f8f9d787654a32f6f037011fe3a9f24 Reviewed-on: https://chromium-review.googlesource.com/c/1335890 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org>
-
- 21 Nov, 2018 3 commits
-
-
Jamie Madill authored
This allows for a few nice things. First and foremost it reduces the size of the PipelineDesc, which is now 232 bytes. It also allows us to completely forego pipeline caches for compute shaders. We also allow sharing vertex and fragment shaders among multiple programs for internal shaders. This is good for memory savings. To allow this we keep the shaders as ref counted objects. Bug: angleproject:2522 Change-Id: I2322be5061979d9669a0b25c152359561eeb80ee Reviewed-on: https://chromium-review.googlesource.com/c/1344449 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Courtney Goeltzenleuchter authored
This reverts commit 89652a35. Turns out we will need two versions of this APK, one for integration which will be signed and called com.google.android.angle and an unsigned apk put into AOSP that will be com.android.angle. We'll start by restoring the name of this APK to com.google.android.angle. Change-Id: I1cbdaa5281a28947ef1ca6a98a88cdef9df7153a Reviewed-on: https://chromium-review.googlesource.com/c/1335896 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by:
Cody Northrop <cnorthrop@google.com>
-
Geoff Lang authored
BUG=900058 Change-Id: Ice8976ddd9cbc9c90162cf7fae2b8f91ddcfcef3 Reviewed-on: https://chromium-review.googlesource.com/c/1344590Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
- 20 Nov, 2018 6 commits
-
-
Geoff Lang authored
This allows Chrome to expose the ETC texture formats in WebGL on top of ANGLE. BUG=angleproject:1552 Change-Id: I6a6c3912791e121826b2083421e37df7c0dc38e7 Reviewed-on: https://chromium-review.googlesource.com/c/1342420 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Kai Ninomiya <kainino@chromium.org>
-
Geoff Lang authored
BUG=angleproject:2923 Change-Id: Id201efa09bcc67d4e40154e2362bf4b78ffd5652 Reviewed-on: https://chromium-review.googlesource.com/c/1344591Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Geoff Lang authored
BUG=angleproject:2274 Change-Id: I5fb5d182ae21c05cd3aedf6f94e2dd7a30d11723 Reviewed-on: https://chromium-review.googlesource.com/c/1344589Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
This most strongly affects the Vulkan back-end which uses a hash map to cache VkPipelines. It also should speed up some parts of the D3D11 back-end. Bug: angleproject:2522 Change-Id: I10801654f043abce17339c30d7bf62bc8644e49c Reviewed-on: https://chromium-review.googlesource.com/c/1316889 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
Includes the following fixes: * Removes obsolete global variable. * Disables trace event collection when trace events disabled. * Fixes calibrated steps getting stuck after first test. * Scale calibrated steps with actual time after glFinish. Should fix a few crashes and timeouts with the perf tests. Bug: angleproject:2923 Change-Id: I9ba1c042dee31cf2400ccbeedca0d497ed52fb12 Reviewed-on: https://chromium-review.googlesource.com/c/1343677Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Qin Jiajia authored
Bug: angleproject:1951 Change-Id: I5e469ee5f13604102b0ee268d5bf9f5ac4809ecd Reviewed-on: https://chromium-review.googlesource.com/c/1278098 Commit-Queue: Jiajia Qin <jiajia.qin@intel.com> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
- 19 Nov, 2018 3 commits
-
-
Yuly Novikov authored
Bug: angleproject:2657 Change-Id: I076f9d3b8e532fefa614483a822600a9636f7a37 Reviewed-on: https://chromium-review.googlesource.com/c/1342423Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
-
Jamie Madill authored
Bug: angleproject:2976 Change-Id: If38669ca13297b17d55c03c977f4028cb03f6f34 Reviewed-on: https://chromium-review.googlesource.com/c/1342421Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Markus Tavenrath authored
Having getter functions in the State class non-inline results in more generated code to call the function than it'd take to just fetch the value from the class. For those cases inline the getter functions to reduce calling overhead and binary size. Bug: angleproject:2973 Change-Id: Iddd14fd836ee89de69cdabfd58b95bcedc7e9e4e Reviewed-on: https://chromium-review.googlesource.com/c/1340220 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
- 18 Nov, 2018 2 commits
-
-
Jamie Madill authored
It seems to be a regression in recent drivers. Olli contributed this workaround for the GL back-end some time ago. This CL enables it for Vulkan as well on the affected drivers. Bug: angleproject:2970 Change-Id: I37f0caf8d9db073cb880aa1500d1ff7a1eee9d34 Reviewed-on: https://chromium-review.googlesource.com/c/1341108Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This should fix a problem where our vs_toolchain.py was out-of-date with a recipe change. See crrev.com/c/1339101 and crrev.com/c/1330185 . Bug: angleproject:2971 Change-Id: Ic6998942bd7a9cff34c17b0f521fc3856ca3ee2f Reviewed-on: https://chromium-review.googlesource.com/c/1341109Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
- 16 Nov, 2018 5 commits
-
-
Jamie Madill authored
This will make them easier to maintain. Add to add new features. Bug: angleproject:2964 Change-Id: I8c1f92e0d0ca15fc4f555f6c537fa9311320ef7d Reviewed-on: https://chromium-review.googlesource.com/c/1334429 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org>
-
Shahbaz Youssefi authored
TextureVk::copySubTextureImpl uses the format's pixelReadFunction and pixelWriteFunction and was using the angle format (i.e. the format the texture was created with) instead of the texture format (i.e. the actual format used by the backend) to read and write pixels. This was specifically to make Luminance/Alpha formats work. However, this was incorrect for any emulated format. This commit fixes the function to use the texture format. To avoid issues with Luminance/Alpha, this commit patches the pixel read/write changes for these formats before using them. Bug: angleproject:2913 Change-Id: I8981882b98502d869156a879bb7b5994943ecd8e Reviewed-on: https://chromium-review.googlesource.com/c/1330261Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
-
Jamie Madill authored
Several files were formatted by the code generation script. Bug: angleproject:2957 Change-Id: I8a5cbf2c17297a3644686004a8981ab2305c1ada Reviewed-on: https://chromium-review.googlesource.com/c/1334428Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Yuly Novikov authored
By notifying egl::Display that the device is lost, which marks all gl::Context as lost, turning all future GL commands to no-ops. Also clear CommandGraph and destroy in flight resources, making sure no more commands are executed on the lost device. Bug: angleproject:2657 Change-Id: I3a1e3646c8ebb37faff507a3c5cec7582a7e05fc Reviewed-on: https://chromium-review.googlesource.com/c/1323849Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
-
Jamie Madill authored
This removes the ANGLE_TRY_HANDLE macro. Also the internal uses of gl::ErrorStreamBase. There are remaining uses in the validation code. Further progress will be blocked on removing egl::Error and the use of gl::Error in the validation layer. Also reduces binary size by up to 4k. Bug: angleproject:2491 Change-Id: I3e0481f99738f9f24256c10e73f3efcce9826a35 Reviewed-on: https://chromium-review.googlesource.com/c/1334427 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org>
-