- 14 Jan, 2019 3 commits
-
-
Tim Van Patten authored
dEQP-EGL.functional.preserve_swap.preserve.no_read_before_swap#no_draw dEQP-EGL.functional.preserve_swap.preserve.no_read_before_swap#post_clear dEQP-EGL.functional.preserve_swap.preserve.no_read_before_swap#post_render dEQP-EGL.functional.preserve_swap.preserve.no_read_before_swap#pre_clear dEQP-EGL.functional.preserve_swap.preserve.no_read_before_swap#pre_clear_post_clear dEQP-EGL.functional.preserve_swap.preserve.no_read_before_swap#pre_clear_post_render dEQP-EGL.functional.preserve_swap.preserve.no_read_before_swap#pre_render dEQP-EGL.functional.preserve_swap.preserve.no_read_before_swap#pre_render_post_clear dEQP-EGL.functional.preserve_swap.preserve.no_read_before_swap#pre_render_post_render Bug: angleproject:3051 angleproject:2716 Change-Id: I3607f45cd2f447fb0a95f91ffd9aa93000dfa18c Reviewed-on: https://chromium-review.googlesource.com/c/1407248Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
-
Jamie Madill authored
This is the back-end responsibility now. Bug: chromium:921338 Change-Id: I6181210a80ec7d635382df74d842d8a899ad2894 Reviewed-on: https://chromium-review.googlesource.com/c/1409405Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This is not a complete implementation because it does not have the ability to disable the physical device feature. It does pass the current set of robust access tests. But there could be a performance regression on platforms that have a slower impelmentation. We would want the ability to support cases with bufer robustness on or off. Bug: angleproject:3062 Change-Id: I7d6eb889debcbd32f6ed809b526677123f872726 Reviewed-on: https://chromium-review.googlesource.com/c/1403967Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
- 11 Jan, 2019 6 commits
-
-
Jamie Madill authored
Inlines a number of Vulkan vertex array methods. Also changes the way vertex buffers are bound. Note that Vulkan doesn't support NULL buffer bindings. Thus we create an emulated NULL buffer to work around the problem of having gaps in the bound vertex buffers. This allows us to use a single bind call for ranges of vertex buffers even when there are gaps. Also changes how vertex array dirty bits are reset. Instead of calling memset to clear the affected buffers we pass a mutable pointer to the Vertex Array sync state. This allows us to only reset the dirty bits that we sync. This saves on the memory clearing time. Improves perf by about 10% in the Vulkan VBO state change test. Bug: angleproject:3014 Change-Id: Ib7b742dff7897fc891606a652ea0b64255a24c86 Reviewed-on: https://chromium-review.googlesource.com/c/1390360 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
Turns out this is much faster than using dynamic state. When we support multiple viewports it might be easier to use dynamic state since we won't need to make an overly large pipeline description. We could support both methods using a flag to indicate the viewport and/or scissor regions are invalid. Until then we can remove the pipeline and scissor dirty bits. Improves perf by about 15% in the Vulkan VBO state change test. Bug: angleproject:3013 Change-Id: I4572250626a9a0f0ca3451b17e8f0de186416cae Reviewed-on: https://chromium-review.googlesource.com/c/1390359 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org>
-
Shahbaz Youssefi authored
EXT_debug_utils is a (relatively) new extension that subsumes EXT_debug_report and EXT_debug_marker extensions. This change uses EXT_debut_utils (if available) to receive debug messages, keeping EXT_debug_report as fallback. Bug: angleproject:2798 Change-Id: Ia6767604548704e18f8150a54d2533c0b1197841 Reviewed-on: https://chromium-review.googlesource.com/c/1403955 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org>
-
Jamie Madill authored
Instead of using 8 bytes per vertex we can reduce the space used for the divisor to 8 bytes. For larger values than 255 we can emulate the divisor by unrolling the draw call. We will likely need to do this in any case for instanced draws when the instancing extension isn't available. The tighter packing will allow for us to move the viewport and scissor back into the pipeline description. It seems this is much faster than using dynamic state. Every state change that would pull in a new Pipeline would need the viewport and scissor re-applied. It seems these driver calls are costly. Does not improve perf significantly but enables future improvements. Bug: angleproject:3013 Change-Id: I1a41c3acadc6fbd47c7a7b961c706e82f78de936 Reviewed-on: https://chromium-review.googlesource.com/c/1390358 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org>
-
Jamie Madill authored
Should be setting mSkipTest instead of calling abortTest(). Bug: 921004 Change-Id: I7bead806eef0c7825348d509a9dce7ed1bf34825 Reviewed-on: https://chromium-review.googlesource.com/c/1407250Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This is timing out on Intel. Would be nice to narrow the suppression but we don't have that check yet in perf tests. Bug: chromium:921004 Change-Id: Icb8bf2d1222b9ff9790877dc051797a1291ad02b Reviewed-on: https://chromium-review.googlesource.com/c/1406892Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
- 10 Jan, 2019 8 commits
-
-
Tim Van Patten authored
When ANGLE is enabled for an app, show a dialog box to the user to indicate that ANGLE is in use. This is useful because there are not (or at least shouldn't be) any visual indication that a different OpenGL driver is in use. Clean up some missed renaming/logging related to the "Enable ANGLE for all" setting. Bug: angleproject:3006 Test: Load an app with ANGLE enabled and verify dialog box is shown. Test: Load an app without ANGLE and verify dialog box is not shown. Change-Id: I46ec89567c93efaf156a4801948cd48aabd5f4fb Reviewed-on: https://chromium-review.googlesource.com/c/1383374Reviewed-by:
Tobin Ehlis <tobine@google.com> Reviewed-by:
Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
-
Tom Anderson authored
Context in Chromium CL: https://chromium-review.googlesource.com/c/chromium/src/+/1405277/ This CL must be landed first. BUG=chromium:916973 R=thakis,cwallez,fjhenigman,geofflang,jmadill,ynovikov Change-Id: Icde4ec98c9031a262e0dfafa5cfe2a702c4c4e3e Reviewed-on: https://chromium-review.googlesource.com/c/1405908Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Reviewed-by:
Nico Weber <thakis@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
-
Enrico Galli authored
This commit adds support for querying the GL_BUFFER_DATA_SIZE of GL_ATOMIC_COUNTER_BUFFER in the D3D renderer. Bug: angleproject:1729 Test: angle_end2end_tests Change-Id: Id6aae0d92c5e0960b2b245ba7d83970b04ba4eed Reviewed-on: https://chromium-review.googlesource.com/c/1399143 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Ian Elliott authored
A bug on Android is causing <something> to crash if the rules-processing code calls GetSystemInfo, which in turn calls Vulkan. While this is being investigated, we will temporarily disable calling GetSystemInfo (instead, insert dummy data that won't match any actual GPU), so that the rest of the rules processing will still work. Bug: angleproject:3063 Change-Id: I9976fd57ba001099b94ebe7186739477bf0c8f79 Reviewed-on: https://chromium-review.googlesource.com/c/1405709 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by:
Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by:
Cody Northrop <cnorthrop@google.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
Implements a transition table from Pipeline Cache entry to state change neighbouring Pipeline Cache entries. We use a 64-bit mask to do a quick scan over the pipeline desc. This ends up being a lot faster than doing a full hash and memcmp over the pipeline description. Note that there could be future optimizations to this design. We might keep a hash map of the pipeline transitions instead of a list. Or use a sorted list. This could speed up the search when there are many transitions for cache entries. Also we could skip the transition table and opt to do a full hash when there are more than a configurable number of dirty states. This might be a bit faster in some cases. Likely this will be something we can add performance tests for in the future. Documentation is also added in a README file for the Vulkan back end. This will be extended over time. Improves performance about 30-35% on the VBO state change test. Bug: angleproject:3013 Change-Id: I793f9e3efd8887acf00ad60e4ac2502a54c95dee Reviewed-on: https://chromium-review.googlesource.com/c/1369287 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org>
-
Jamie Madill authored
This simplifies the dirty state updates in VertexArrayVk. It also lets us use a smaller dirty bit mask when a single attribute is marked dirty in a vertex array. Improves performance by about 1-2% in the VBO state change test. Will allow for better performance using a pipeline transition table. Bug: angleproject:3013 Change-Id: I25c5172b3f41b7abac6b8273c8f9cd42eb46cc9f Reviewed-on: https://chromium-review.googlesource.com/c/1403958Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Geoff Lang authored
Nexus5X drivers generate INVLAID_ENUM errors when querying GL_QUERY_COUNTER_BITS. Add device detection from renderer string. BUG=angleproject:3027 Change-Id: I367e20c79e1c4e53c26d94603d9a893604b51165 Reviewed-on: https://chromium-review.googlesource.com/c/1374274 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org>
-
Courtney Goeltzenleuchter authored
The compressed symbol support requires explicitly listing the libraries, so add validation libraries. Use list of ANGLE libraries to reduce duplication Bug: angleproject:2981 Change-Id: Ia8feb58d2a2ee66299b00bbb1fd3a4d9094c0b68 Reviewed-on: https://chromium-review.googlesource.com/c/1394569 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org>
-
- 09 Jan, 2019 4 commits
-
-
Shahbaz Youssefi authored
This change implements staging image/texture copies when the destination image is not yet fully initialized. With this change, CPU readback for glCopyTex[Sub]Image2D and glCopy[Sub]TextureCHROMIUM should happen only if the texture formats don't allow a fragment-shader based copy. Bug: angleproject:2958 Change-Id: I04087e14ea8fb6fbc731598c5493e44651c22c01 Reviewed-on: https://chromium-review.googlesource.com/c/1393909 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
These two checks are lifted directly from the Chromium code base. Also adds a presubmit check for a patch description. Also adds some checks to the "on commit" function so "git cl presubmit" can work. Also reformats the style of the presubmit script a bit to match the patterns in the Chromium presubmit. Bug: angleproject:2626 Bug: angleproject:3054 Change-Id: Iff29b8856cf9eb9531e893cd0b0d80c0834b7676 Reviewed-on: https://chromium-review.googlesource.com/c/1403255Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Shahbaz Youssefi authored
While here, added a presubmit test for the Bug: tag too. Bug: angleproject:3046 Change-Id: I7030685230b4ce4bfc435c14ef85324e16b76274 Reviewed-on: https://chromium-review.googlesource.com/c/1402061 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Shahbaz Youssefi authored
This change implements glCopy[Sub]TextureCHROMIUM in GPU. As with the previous change implementing glCopyTex[Sub]Image2D, it currently only selects the shader path if the texture is already defined. Bug: angleproject:2958 Change-Id: Ia1b5625f92e6c9f91807c9b601e5c34d2d5e5c30 Reviewed-on: https://chromium-review.googlesource.com/c/1392394 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org>
-
- 08 Jan, 2019 4 commits
-
-
Shahbaz Youssefi authored
By doing the copy multiple times, we exercise both paths where the destination is already initialized and when it's not. This adds tests for all combinations of formats and flags. Bug: angleproject:2958 Change-Id: I56afb44496acd1b4d5a8527f4dbee29afbac9c81 Reviewed-on: https://chromium-review.googlesource.com/c/1398643 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
The new test suite doesn't run several Chromium tests. See https://crrev.com/c/1398562 for reference. Also sorts the CQ testers alphabetically. Bug: chromium:822310 Change-Id: I5f4006e6f027a4666e9ccc5e5bcf981b3b979429 Reviewed-on: https://chromium-review.googlesource.com/c/1400861Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Kimmo Kinnunen authored
Check if the display was valid (non-null Display pointer) before querying NVCTRL X11 extension. Bug: 840249 Change-Id: I299f87e2eb150d56649dd71c7becbe8f8abf7841 Reviewed-on: https://chromium-review.googlesource.com/c/1392906Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
Also use the non-unicode version of LoadLibrary explicitly. Bug: chromium:919163 Change-Id: I4841c3eef586ff57563915da12765baaa6e0b146 Reviewed-on: https://chromium-review.googlesource.com/c/1398642Reviewed-by:
Bruce Dawson <brucedawson@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
- 07 Jan, 2019 1 commit
-
-
Qin Jiajia authored
This patch enables that the interface block information can be correctly collected in API side for std430 layout. So we can get right offset value when we use glGetProgramResourceiv to query. BUG=angleproject:1920 Change-Id: Ib936f6e25936c07c5bbc29f6b567d282a0f257c2 Reviewed-on: https://chromium-review.googlesource.com/c/1345891Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
-
- 06 Jan, 2019 2 commits
-
-
Frank Henigman authored
Enable end2end test LinkAndRelinkTest.RenderingProgramFailsWithProgramInstalled on Vulkan. It works now because Vulkan was rolled and a shader with no output is now a warning instead of an error. BUG=angleproject:2648 Change-Id: Ie92d28b53c18a9a2b74fc2d1b951923512910a33 Reviewed-on: https://chromium-review.googlesource.com/c/1396264Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
-
Jamie Madill authored
Bug: angleproject:2995 Change-Id: I3ed814935ba587d260502b664976322a57f32d98 Reviewed-on: https://chromium-review.googlesource.com/c/1396502Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
- 05 Jan, 2019 2 commits
-
-
Jamie Madill authored
Also has some minor optimizations for the front-end. 12% improvement on the Vulkan VBO change test. Bug: angleproject:3014 Change-Id: I38e1a8194edfc14bfe57424be348cb9688e928f4 Reviewed-on: https://chromium-review.googlesource.com/c/1369286Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
Updates angle_util to see the loader includes even if the loader is not enabled. This makes the GN check happy. Bug: angleproject:3052 Change-Id: Ifd23070385beefede4358c7b4c1823dc87b5ded8 Reviewed-on: https://chromium-review.googlesource.com/c/1395809Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
- 04 Jan, 2019 2 commits
-
-
Nico Weber authored
From `gn help sources`: As a special case, a file ending in ".def" will be treated as a Windows module definition file. It will be appended to the link line with a preceding "/DEF:" string. This makes the code slightly shorter, and also gives ninja a chance of re-running the link when the .def file changes since it now knows about this file. No intended behavior change. Change-Id: I5fecb22752508880b726482f7c3da5a75180e446 Reviewed-on: https://chromium-review.googlesource.com/c/1396499Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org>
-
James Darpinian authored
WebGL requires that drawing produces INVALID_OPERATION if a texture's format doesn't match the sampler type it is bound to. This is a little confusing because samplers have two attributes that could be called "type": addressing mode (2D/3D/Cube), and component format (float/signed/unsigned/shadow). ANGLE already handled checking the addressing mode; this change adds checking for the component format. Fixes WebGL conformance test conformance2/uniforms/incompatible-texture-type-for-sampler.html Bug: chromium:809237 Change-Id: I52ebfecd92625e3ee10274cb5f548d7e53de72dd Reviewed-on: https://chromium-review.googlesource.com/c/1377611Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: James Darpinian <jdarpinian@chromium.org>
-
- 03 Jan, 2019 8 commits
-
-
Jamie Madill authored
Not picked up in prior review. Bug: angleproject:3024 Change-Id: I9dd1ea146996c8ac3569070af0cb12df65f0d815 Reviewed-on: https://chromium-review.googlesource.com/c/1394570Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
WGLWindow lets us use a Windows driver's bindings instead of ANGLE. This only works if the underlying driver supports OpenGL ES compatibility. Also adds the WGL headers, WGL XML, and a specialized WGL loader. Because of a small driver issue with NVIDIA I added a retry for the WGL Window initialization. Bug: angleproject:2995 Change-Id: Ie5148ece470dd03df33015f4919ad1fa79a859ec Reviewed-on: https://chromium-review.googlesource.com/c/1366021 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org>
-
Jamie Madill authored
This splits HLSL SSBO access into two steps. First we compute a mapping from the collected SSBO variable names to TField pointers. Then during tree traversal we use a block encoding visitor class that uses the shader names to store BlockMemberInfo structures for the structures and variables. Each nested structure is traversed separately so that the BlockMemberInfo offsets are relative to the structure start rather than the enclosing block. The array stride for a structure is the size of the struct after all the alignment is included. This gives the correct results for the SSBO access chain in the HLSL code. It also will allow us to use the same encoding and visiting logic for SSBOs on the API side. Bug: angleproject:3024 Change-Id: I42b1db0e7547782ae77fe5f64a797f803f203f45 Reviewed-on: https://chromium-review.googlesource.com/c/1352731 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org>
-
Shahbaz Youssefi authored
Part 1 in a series of changes to perform image copies on the GPU. Bug: angleproject:2958 Change-Id: I6264a880865c4738c0866f2dc71af63425fc4118 Reviewed-on: https://chromium-review.googlesource.com/c/1370724 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Shahbaz Youssefi authored
Removes dstAccessMask being redundantly set where `GetBasicLayoutAccessFlags()` sets the same bits. Additionally, removes setting HOST_WRITE_BIT and TRANSFER_WRITE_BIT as src access mask if new layout is SHADER_READ_ONLY_OPTIMAL. The correct src access mask will be set based on the previous layout. Additionally, specializes `GetBasicLayoutAccessFlags()` in `GetSrcLayoutAccessFlags()` and `GetDstLayoutAccessFlags()` where the access mask is set correctly (and optimally) based on whether the layout is the old or the new one. This removes a few unnecessary access masks from src (for WAR hazards), and adds a few missing access masks to dst (for RAW hazards), such as VK_ACCESS_COLOR_ATTACHMENT_READ_BIT necessary for blending. Bug: angleproject:2958 Change-Id: I5870bc99c755f0444332418f998032850825aca5 Reviewed-on: https://chromium-review.googlesource.com/c/1392397Reviewed-by:
Tobin Ehlis <tobine@google.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
-
Jamie Madill authored
This cleans up any potential problems with allocating and freeing resources in different shared objects or DLLs. Previously we were using a dynamically linked allocation function and then calling the standard delete function. Also adds a base class helper for EGLWindow. Will base the WGL Window class on this. Needed for running ANGLE tests against native drivers. Bug: angleproject:2995 Change-Id: Ic92b447649ebb32c547605c20086c07a601842f0 Reviewed-on: https://chromium-review.googlesource.com/c/1393443 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org>
-
Jamie Madill authored
Previously on each draw call we were checking both the instanced and non-instanced attributes for overflow. On on-instanced draw calls we don't need to do any special checks for instanced attributes. Also we can inline more into the headers. This improves draw call performance slightly. Bug: angleproject:2966 Change-Id: Idf5861d2d9daf9fffd5c84f6a1ea5b23ac8ab713 Reviewed-on: https://chromium-review.googlesource.com/c/1390357 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Markus Tavenrath <matavenrath@nvidia.com>
-
Jamie Madill authored
Requires a couple tweaks to the back-end to be compatible with the null driver. Bug: angleproject:2966 Change-Id: Ia83651aabb0dd14b7d6f64152c276463a8fb28fc Reviewed-on: https://chromium-review.googlesource.com/c/1392392Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-