|
fb4eea2e
|
2021-01-11T16:58:02
|
|
Vulkan: Index mandatory support table by ANGLE format.
This removes another instance of indexing a flat array by VkFormat.
With the introduction of YUV formats we no longer have a compact
table. Switching to ANGLE format indexing allows us to keep a flat
array and avoid using an unordered map.
Bug: angleproject:5438
Change-Id: I96caa19e3b7ce419ce09680399919447f002b0bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2622238
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
8db7915e
|
2021-01-12T10:56:47
|
|
Vulkan: Increment buffer view serials only when used
This avoids the texel buffer view serials (shared with image view
serials) recklessly getting large.
Bug: angleproject:5185
Change-Id: I0debe73771094b395f6526475aa3c22a91f9e05e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2623811
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a4b582e8
|
2021-01-11T15:31:13
|
|
Vulkan: Notify ContextVk when UtilsVk binds compute pipelines
This issue was fixed for graphics pipelines (in
UtilsVk::clearFramebuffer), but remained for compute pipelines. If
UtilsVk issues a dispatch call, it now notifies ContextVk to rebind the
pipeline and descriptor sets.
Bug: angleproject:5529
Change-Id: Ic52f91bdc70d02c065ec2d5e2a3614c11fd62a9f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2622236
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
6e9018bd
|
2020-06-25T12:58:14
|
|
GL: Clean up Display code related to multithreading
Rename mCurrentData to mCurrentNativeContexts, and clean up some logic
to be easier to read.
Bug: angleproject:4724
Change-Id: I6fd6d99d4f9a3af808d0baa665edfbdde7fb0500
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2267424
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
5b8dec52
|
2021-01-12T04:11:56
|
|
Reland "Use is_apple instead of is_mac and is_ios everywhere"
This reverts commit 51603c63d1cb9e36afaf2069fc069e542ac2f3fb.
Reason for revert: Fixed issue that broke Skia build
Original change's description:
> Revert "Use is_apple instead of is_mac and is_ios everywhere"
>
> This reverts commit 2762641a3a1edf9665a61f40da6c160338056cb0.
>
> Reason for revert: is_apple is not universally defined. Breaks ANGLE roll into Skia.
>
> Original change's description:
> > Use is_apple instead of is_mac and is_ios everywhere
> >
> > Bug: chromium:1161513
> > Change-Id: Id7d582f127f4b79ea6fc5b8ad39fff768c45f477
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2611312
> > Reviewed-by: James Darpinian <jdarpinian@chromium.org>
> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
>
> TBR=jdarpinian@chromium.org,syoussefi@chromium.org
>
> Bug: chromium:1161513
> Change-Id: I831e60149f410044a79d9f66aa9ddd9902410fd7
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2618039
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
TBR=jdarpinian@chromium.org,syoussefi@chromium.org
Bug: chromium:1161513
Change-Id: I3cf30aa047a1f208fa7d1acda1d6d4e5da7b6ad5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2622244
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2e9706d8
|
2021-01-08T17:29:42
|
|
Vulkan: Use angle::FormatID instead of VkFormat.
This change switches the internal enums we pass around from VkFormat
to FormatID. The end goal of the refactor is to allow the Vulkan
back-end to store packed tables indexed by FormatID. Because VkFormat
has large gaps in its enum space we'd otherwise need to use unordered
data structures like unordered_map.
The change removes the redundant VkFormat storage from vk::Format and
uses a new table query to return the VkFormat that 1:1 matches an
angle::FormatID. We also include a reverse mapping for use with native
Vulkan get functions for Android.
Also moves sRGB conversion functions into renderer_utils. A couple
sRGB formats that don't exist in GL are no longer handled by the sRGB
conversion functions. These formats should be extremely rare.
Bug: angleproject:5438
Change-Id: Id8b49773ca0c556f9f5a6a10fcf0d9762b93bbea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2618204
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
d21d682d
|
2021-01-11T12:59:53
|
|
libstdc++: fix incomplete type for FramebufferCache
libstdc++ does not allow incomplete type for T2 with std::pair<T1,T2>
and fails with:
.../../src/libANGLE/renderer/vulkan/vk_cache_utils.h:1570:64:
required from here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/include/g++-v9/bits/stl_pair.h:215:11:
error: std::pair<_T1, _T2>::second has incomplete type
215 | _T2 second; /// @c second is a copy of
the second object
| ^~~~~~
https://chromium-review.googlesource.com/c/angle/angle/+/2580111
added class FramebufferCache with incomplete type in |mPayload| to
vk::FramebufferHelper. Changing include order is not an option.
However, FramebufferCache is only used in FramebufferVk and we
can make it local there.
Bug: chromium:957519
Change-Id: I5fbdca23adbb9f4aecc266988c02fb0d051504cb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2621473
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
de32c3d2
|
2020-11-04T13:16:31
|
|
Reland "Created test and fixed texture storage bug in d3d11"
This is a reland of 03f3ba5b1454ee7c15cd9391e77307cf1d274b48
Original change's description:
> Created test and fixed texture storage bug in d3d11
>
> Bug: b/172489285
> Change-Id: If7d88cf50d99da3380082c60fb3936ae0b20c4e5
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2519876
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Bug: b/172489285
Change-Id: I6b8226164a09aed208c56cb78b5d2c1385298cbe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2546034
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Trevor David Black <vantablack@google.com>
Commit-Queue: Trevor David Black <vantablack@google.com>
|
|
326f128b
|
2021-01-07T14:25:44
|
|
Vulkan: Prefer host cached memory for Buffers
This improves perf because vertex data upload uses host visible memory,
and uncached memory can be slow.
Test:
Android on Windows with 1080Ti:
glmark2 [build] vbo=false 265 -> 3900 fps
Bug: angleproject:5515
Change-Id: Ib75582bbdb4ca4a22d3a121c7b477a23a8a809ef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2615742
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
51603c63
|
2021-01-08T17:49:52
|
|
Revert "Use is_apple instead of is_mac and is_ios everywhere"
This reverts commit 2762641a3a1edf9665a61f40da6c160338056cb0.
Reason for revert: is_apple is not universally defined. Breaks ANGLE roll into Skia.
Original change's description:
> Use is_apple instead of is_mac and is_ios everywhere
>
> Bug: chromium:1161513
> Change-Id: Id7d582f127f4b79ea6fc5b8ad39fff768c45f477
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2611312
> Reviewed-by: James Darpinian <jdarpinian@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
TBR=jdarpinian@chromium.org,syoussefi@chromium.org
Bug: chromium:1161513
Change-Id: I831e60149f410044a79d9f66aa9ddd9902410fd7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2618039
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
038ae144
|
2020-12-31T21:23:30
|
|
Vulkan: Fix up varying component limits.
We weren't subtracting reserved varying vectors from component limits.
We also were using an incorrect value for fragment input components.
Bug: angleproject:5496
Change-Id: I44fc3b2f15687f4dee7a1498d50378e69d74afe3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2606536
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e4497d60
|
2020-12-31T20:12:13
|
|
Program: Move more common code to ProgramLinkedResources.
Refactoring change only.
Bug: angleproject:5496
Change-Id: Ic1c8301a070e91ad28791c23831b8236058ab9ab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2606535
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
68f35f24
|
2021-01-07T14:42:57
|
|
Vulkan: Add GL_EXT_clip_control entry points
Addition of the entry points for GL_EXT_clip_control extension.
Bug: angleproject:5471
Change-Id: If17ba0120bdb226cc5728bfea83e9085260eba19
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2615862
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
fa449cf3
|
2021-01-06T10:02:12
|
|
Fix separable Geometry Shaders.
Was a needed fix for a new varying test.
Bug: angleproject:3571
Bug: angleproject:5496
Change-Id: I49ae69967510b7a6330ea217a0e0e19e3bebe865
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2613198
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3e33db95
|
2020-12-30T17:17:17
|
|
Merge Program/ProgramPipeline::getMergedVaryings().
This merges two very similar pieces of code into one simpler function.
The function doesn't use any maps or indirection to build the merged
varyings list. It also fixes a potential bug with IO blocks and name
matching due to the code bifurcation.
Bug: angleproject:5496
Change-Id: Ibf54faeeb01d1940570b366ed153fff7c9135c52
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2606533
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f99ccb08
|
2021-01-06T23:29:21
|
|
Vulkan: Add a perf warning when dropping superseded updates
If an update to an image subresource is entirely superseded by a
following update, the former update is dropped. This change adds a perf
warning for this.
Bug: angleproject:3461
Change-Id: Iaf4984ba52f3dfc86d5cc87f8be82123badebd04
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2613203
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a392a81d
|
2021-01-06T12:26:44
|
|
GLX: Avoid creating child window when X visual ID is specified.
ANGLE's GLX backend creates a child ID because the visual of the X
window must match that of the GLX window, and we can't always be
certain.
EGL_ANGLE_x11_visual allows applications to specify the visual ID
of the window passed to ANGLE via EGL_X11_VISUAL_ID_ANGLE. When this
is the case, we don't need to make a child window.
Since Chrome always passes this information, this may help optimize
ANGLE's GLX usage in Chrome, because we don't have to poll the parent
window to manage the child window's properties.
Bug: chromium:1132827
Change-Id: If8082d2d07469905afffab01dde2ec9fca8d4eb9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2611556
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
2d1406a8
|
2020-12-29T18:11:33
|
|
Capture/Replay: Capture glBindBufferBase during MEC setup
"World War Doh" binds uniform buffers via glBindBufferBase() calls
before any frames have rendered and then uses those bound buffers for
all subsequent frames. ANGLE's frame capture was failing to perform
these calls during the mid-execution capture setup phase, leading to
the replay generating VVL errors:
VUID-vkCmdDispatch-None-02699
Descriptor in binding #0 index 0 is being used in draw but has never
been updated via vkUpdateDescriptorSets() or a similar call.
This CL adds those calls to the MEC setup phase, allowing the replay to
execute without any errors.
Bug: angleproject:5495
Test: angle_perftests --gtest_filter="*world_war_doh*"
Change-Id: I751c9c6f60bf78c13428a9d1d6a06dbfe600c24b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2606806
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
a7158eb5
|
2021-01-06T21:33:24
|
|
Vulkan: Fix image leak in staged updates in ImageHelper
When removing superseding updates, the superseded update was not
released, causing a memory leak. This change also makes
SubresourceUpdate non-copyable and correctly implements the move
assignment operator such that swap between different update types are
correct. As a result, the destructor can now ASSERT that the image is
not leaked.
Bug: chromium:1146516
Bug: chromium:1163354
Change-Id: I7531c91d8559c23b2e09159118fe645d12fc601f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2613201
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
acdb63b8
|
2020-12-23T12:57:08
|
|
Remove the checking before accessing to function pointers
Bug: angleproject:5490
Bug: chromium:1161513
Change-Id: I96c5c463a9fd5a337d09f6cefe7836ff52bea90f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2601071
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
e2a8a69a
|
2021-01-04T23:52:02
|
|
Vulkan: Move xfb emulation offset calculation to translator
A new function is added by the translator to calculate the transform
feedback offsets in the emulation path. This function makes the
generated code for transform feedback smaller.
Bug: angleproject:3606
Change-Id: I01460f907e20e2887cb720bddad96697fdcb0cf3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2607492
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
07d619cb
|
2021-01-06T11:36:40
|
|
Vulkan: Fix missing xfb buffer rebind on new command buffer
When a command buffer is ended, bindings are lost. This adds a dirty
bit to `mNewGraphicsCommandBufferDirtyBits` to make sure transform
feedback buffers are bound again on the new command buffer.
Bug: angleproject:5428
Change-Id: I7733c93b1eb5d33a77cbee231a83199be950e19f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2611552
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ca94d1da
|
2021-01-04T21:51:33
|
|
Vulkan: Refactor generated code in xfb emulation path
The index expression was regenerated for every component written to the
output. This change refactors the generated code such that common
values are calculated once.
This is in preparation for moving some of this code to the translator
and reducing the amount of code generated at link time.
Bug: angleproject:3606
Change-Id: Ib180d245218f8f6f18c57c0ea092e8c45cbffd1a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2607490
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
ebf00703
|
2020-12-29T16:25:54
|
|
angle_end2end_tests passes on iOS!
Miscellaneous test skips and fixes for iOS.
Bug: angleproject:5417
Bug: angleproject:5491
Change-Id: Id0785e6243949fc756e4d7923dbbe77a411052f3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2606656
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
|
|
2762641a
|
2021-01-05T23:00:14
|
|
Use is_apple instead of is_mac and is_ios everywhere
Bug: chromium:1161513
Change-Id: Id7d582f127f4b79ea6fc5b8ad39fff768c45f477
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2611312
Reviewed-by: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
956a358d
|
2020-12-23T15:43:00
|
|
GL: Add function pointers for EXT/NV_framebuffer_blit
Allow the GL backend to call BlitFramebuffer through these
extensions.
Bug: angleproject:5474
Change-Id: Ic19b0535056c3e2b098dedc60e2eb8da5f862433
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2602702
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
dc2cf6fc
|
2021-01-06T11:35:53
|
|
Roll third_party/vulkan-deps/ b08eace32..cbab63796 (17 commits; 1 trivial rolls)
https://chromium.googlesource.com/vulkan-deps/+log/b08eace32e9c..cbab637962d0
$ git log b08eace32..cbab63796 --date=short --no-merges --format='%ad %ae %s'
2021-01-06 chromium-autoroll Roll SPIRV-Tools from d630e5f8c10c to 37c03859de9e (1 revision)
2021-01-06 chromium-autoroll Roll Vulkan-ValidationLayers from 2468aa9630c2 to 98382948dfea (1 revision)
2021-01-06 chromium-autoroll Roll SPIRV-Tools from 1bb80d2778a3 to d630e5f8c10c (1 revision)
2021-01-06 chromium-autoroll Roll glslang from 9325cc013e3d to f77085c307fc (1 revision)
2021-01-05 chromium-autoroll Roll Vulkan-ValidationLayers from 57255a663ed9 to 2468aa9630c2 (1 revision)
2021-01-05 chromium-autoroll Roll Vulkan-Loader from 1f0c7868a438 to 9ba835885ffe (1 revision)
2021-01-05 chromium-autoroll Roll Vulkan-ValidationLayers from 56a96658b750 to 57255a663ed9 (3 revisions)
2021-01-05 chromium-autoroll Roll Vulkan-Loader from 294480cb7f3e to 1f0c7868a438 (1 revision)
2021-01-05 chromium-autoroll Roll Vulkan-Tools from 7554321b88ae to 4cc0932495ec (2 revisions)
2021-01-05 chromium-autoroll Roll Vulkan-Loader from 66a23ac8c566 to 294480cb7f3e (1 revision)
2021-01-05 chromium-autoroll Roll Vulkan-Headers from 85470b32ad5d to 9efc4a631161 (1 revision)
2021-01-05 chromium-autoroll Roll Vulkan-ValidationLayers from aa076dae88e2 to 56a96658b750 (25 revisions)
2021-01-05 chromium-autoroll Roll glslang from f426f652299d to 9325cc013e3d (1 revision)
2021-01-05 chromium-autoroll Roll SPIRV-Cross from e50f7d1ce8e1 to 7b7a21c4058c (3 revisions)
2021-01-05 chromium-autoroll Roll SPIRV-Tools from 17ffa89097b2 to 1bb80d2778a3 (1 revision)
2020-12-21 jmadill Rolling 8 dependencies
Created with:
roll-dep third_party/vulkan-deps
Bug: angleproject:5390
Change-Id: I6f4a499099211e8990ed038984f41bc5f881c71f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2601340
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d9669322
|
2020-12-30T14:33:02
|
|
Remove "init" from VaryingPacking.
Instead we can pass the pack mode and size to the collectAndPack
method. This cleans up the interface and also allows us to merge
two separate code blocks in Program and ProgramPipeline.
Bug: angleproject:5496
Change-Id: I390b5d2e8a3b033374ccc5a250597be1f03dec96
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2606531
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
d33ffb22
|
2020-12-30T11:14:00
|
|
Organize VaryingPacking methods.
This clarifies the difference between "collect" and "pack" methods.
Previously the naming was overlapping between the two. Also makes
the "packUserVaryings" method private.
Refactoring change only. Will enable further improvements for
capturing varyings with multiple shader stages.
Bug: angleproject:5496
Change-Id: I854590ceab39f3a0e7a785516e0d1fd44e4ccc98
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2606529
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
92e7bc89
|
2020-12-23T15:18:42
|
|
Remove ProgramLinkedResources from ProgramExecutable.
Instead of storing the entire LinkedResources struct, we can keep it
only for the duration of the linking calls. Refactoring change only.
It sets the stage for more refactoring. This change also switches the
link call to use LinkingState's ProgramLinkedResources directly to
avoid the need to copy the varying packing or use a pointer.
Bug: angleproject:4514
Bug: angleproject:5496
Change-Id: Iefea3c16a33213dc338cc54efaa7c3064ea6ae08
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2601403
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e09e947d
|
2020-12-29T18:21:36
|
|
Capture/Replay: Don't force built-in attribs to have a location
CaptureMidExecutionSetup() hits an assert while capturing "World War
Doh":
ANGLE : FATAL: FrameCapture.cpp:2876 (CaptureMidExecutionSetup):
! Assert failed [[[...]]] attrib.location != -1
This is due to CaptureMidExecutionSetup() enforcing that all attributes,
including built-ins, have a location. However, in the case of "World War
Doh", the built-in 'gl_GlobalInvocationID' does not have a location.
Moving the assert to after the gl::IsBuiltInName() check allows the
capture to complete without hitting any asserts.
Bug: angleproject:4048
Test: Capture "World War Doh"
Change-Id: Ice96dec629b1477b11a710283c4ec4bf1c95c6e2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2606807
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
bf6cc88a
|
2021-01-05T22:17:41
|
|
Vulkan: Remove duplicate shaderType parameter to SPIR-V transformer
The passed-in GlslangSpirvOptions already has the shaderType, so this
extra parameter was not necessary.
Bug: angleproject:4524
Change-Id: Ibbc7442b3173b26825f3cb9e2365789fade92cfc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2611311
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e91097bf
|
2020-12-29T14:05:56
|
|
Vulkan: Clean up "actual"/"intended" naming.
Clarifies that the GL internal format is an "intended" format
and the Vulkan formats are "actual" formats. This makes all the format
fields use the same consistent naming pattern.
Bug: angleproject:5438
Change-Id: I935a49895109e9e06eae5ef98d5614dfd1128ff8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2605728
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
aff17499
|
2020-12-23T14:40:06
|
|
Vulkan: Directly capture non-gl_Postion builtins
Building on support for transform feedback capture of I/O block members,
this change optimizes capture of builtins other than gl_Position by
directly decorating members of gl_PerVertex. Most importantly, this
allows us to reserve only one varying for transform feedback, instead of
as many builtins there could be (up to 4).
Bug: angleproject:3606
Change-Id: Ie0957802c657ed6c5aac538d92b860582ed6da45
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2601072
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6c608e94
|
2020-12-29T16:24:08
|
|
iOS sRGB mipmap generation is broken too
Enable the encodeAndDecodeSRGBForGenerateMipmap workaround for iOS.
Bug: angleproject:5417
Change-Id: I39d9e7c371f0ee5ec5119669f3b855251691f9e2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2606657
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
|
|
fb35201a
|
2020-12-22T13:14:41
|
|
GL: Expose NV_framebuffer_blit for ES2 contexts when available
ANGLE_framebuffer_blit is already exposed but has restrictions on
scaling/flipping and mismatched color buffer formats. When
NV_framebuffer_blit, EXT_framebuffer_blit, or an ES3 context is
available we can expose a less restrictive BlitFramebuffer.
Bug: angleproject:5474
Bug: chromium:1157057
Change-Id: I916ee39c8d6120216f91461080eb3ee9ca777e29
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2601165
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
47ee6a7b
|
2020-12-23T13:31:23
|
|
Add build flags to disable desktop gl backend
This change saves about 100KB on Android
Bug: angleproject:5490
Change-Id: Ieca0e597423f74a917197f381560af5409a9e874
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2601341
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
093250e0
|
2020-12-23T12:07:46
|
|
Vulkan: Make shader variable info maps a class.
Instead of using a map type directly we abstract the info maps into an
encapsulated class. We can enforce a specific API set instead of using
the same API as the map class. This also cleans up a few of the APIs
related to these maps.
This change will allow future changes to the way the variables are
stored in the class without drastically changing the interface.
Bug: angleproject:3572
Bug: angleproject:4524
Change-Id: Ic1a63e1776c39f49b895a1274bae8282d7a6b9b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2600080
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
c2847bbc
|
2020-12-23T15:59:59
|
|
[GLX] Don't request exposure events for child windows
After [1], Chrome and ANGLE use separate X11 connections, so in order
for Chrome to receive exposure events, it must select for them its own
connection, which is done in [2].
The events selected by ANGLE's connection are never dispatched, so
they queue up indefinitely and leak until the connection is closed
(when happens when Chrome closes). This change removes the request
to receive exposure events.
[1] https://chromium-review.googlesource.com/c/chromium/src/+/2492177
[2] https://chromium-review.googlesource.com/c/chromium/src/+/2602441
Change-Id: Ie47c3700855aeeecc8efa1b379df60c344b1b70a
Bug: chromium:1158170
R=jonahr
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2602705
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
220642a9
|
2020-12-16T21:10:37
|
|
Allow Drawing with Immutable Persistent Mapped Buffers
From the EXT_buffer_storage overview:
The GL_EXT_texture_storage extension added immutable storage for
texture objects (and was subsequently incorporated into OpenGL ES
3.0). This extension further applies the concept of immutable
storage to buffer objects.
[T]his extension introduces the concept of persistent client
mappings of buffer objects, which allow clients to retain pointers
to a buffer's data store returned as the result of a mapping, and to
issue drawing commands while those mappings are in place.
The initial implementation of EXT_buffer_storage didn't enable this
portion of the extension, so ANGLE is generating errors while attempting
to draw with an immutable buffer mapped with the GL_MAP_PERSISTENT_BIT
flag.
This CL enables that functionality, since apps (e.g., FIFA Soccer) rely
on it.
Bug: angleproject:5473
Change-Id: Icf1c0597156044a342aac5e4d2abbc29b34f46b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2596957
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
7061af26
|
2020-12-22T10:43:45
|
|
Fix BlitFramebuffer issues with large rects on iOS
Enable adjustSrcDstRegionBlitFramebuffer workaround on iOS and fix
a conflict when it is enabled in combination with
clipSrcRegionBlitFramebuffer.
Bug: angleproject:5417
Change-Id: I1de0f9f392643fbcf6900bad86d83084cb6d4009
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2601106
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
|
|
88fec1e8
|
2020-12-23T11:53:55
|
|
Code generation for NV_framebuffer_blit
Generate the entry points for NV_framebuffer_blit.
Bug: angleproject:5474
Bug: chromium:1157057
Change-Id: Iadffa24ce7368d8ab6c4bf9d5b6c016276e762f5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2602242
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
0dbe7cdd
|
2020-12-08T12:24:35
|
|
iOS testing support
angle_white_box_tests build and runs and passes on the iOS
simulator with this change. angle_end2end_tests builds and runs but
crashes.
Bug: angleproject:4256
Bug: angleproject:5417
Change-Id: I8817e46415c4598cbfae49804727a2e9b21baff1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2600361
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
eeb14308
|
2020-12-23T01:45:35
|
|
Vulkan: Support xfb capture of I/O block fields
In the emulation path, it's ensured that the generated code references
the I/O block field correctly (using the instance name if provided, and
without it otherwise).
In the extension path, the info map is augmented with an array of xfb
decorations for its fields. Then when `OpDecorate %IOBlockId Block` is
encountered, the transform feedback decorations on the fields are
inserted:
OpMemberDecorate %IOBlockId MemberN XfbBuffer buffer
OpMemberDecorate %IOBlockId MemberN XfbStride stride
OpMemberDecorate %IOBlockId MemberN Offset offset
Future work includes removing the duplicate varying added for
gl_PointSize and use this mechanism to decorate gl_PerVertex directly.
Bug: angleproject:3606
Change-Id: I6fed0b1ee7245fe695337043b40b281fb01a1fb0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2599953
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8065aa82
|
2020-12-22T23:38:42
|
|
Front-end support for xfb capture of I/O block members
Validation and generation of transform feedback varyings that specify an
I/O block member are implemented in this change. The GL backend is able
to pass the added tests.
Bug: angleproject:3606
Change-Id: I66d02bed8ca9161555d0d1e7a32ae9ef4d9e813f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2599952
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
b91afcfd
|
2020-12-11T10:58:54
|
|
Bump implementation max textures/images limit to 96.
We need the higher limit for tessellation shaders and ES 3.2.
Unfortunately this means we are no longer using a packed 64-bit bitset
for the active textures and images. We fallback to using std::bitset.
Also keeps the 64 texture limit if tessellation is not available. The
higher limits was causing timeouts in WebGL tests.
Bug: angleproject:3572
Change-Id: I1953955600b56d7c66178bd610de53453151dc8f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2586996
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
74788951
|
2020-12-22T13:11:17
|
|
Vulkan: Fix assertion in xfb of indirect calls
An assertion was fired which was only valid when emulating transform
feedback. The relevant block is conditioned to the respective feature.
Bug: angleproject:3571
Change-Id: I287ef6d94c920ccda742e4032bfc389409a38e1f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2599951
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
85707f7f
|
2020-12-21T14:52:38
|
|
Vulkan: Pass in SPIR-V transform options in a struct
Clean up change in preparation for changes that add more options.
Bug: angleproject:5478
Change-Id: Id35825b337dba153a5c28dfcc311b344ce257f78
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2599941
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
0c5a55a5
|
2020-12-17T14:52:59
|
|
Vulkan: MapBufferRange should avoid wait if INVALIDATE_BUFFER is set
If glMapBufferRange is called with GL_MAP_INVALIDATE_BUFFER_BIT bit set,
caller indicates that it don't care about the previous content. If the
buffer is busy, instead of wait for GPU to finish and then map the
buffer, we should just allocate a new memory and return it.
brawl_stars is hitting this case. With this CL, the frame time is
cutting to half on the pixel device.
Bug: b/175905404
Change-Id: If1220f07ebf53dd28fe6a4732eaba84e2e57598e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2597784
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
4e2b6d6b
|
2020-12-21T10:48:12
|
|
Fix PackedVarying's move constructor
The move constructor was calling the move assignment operator, which
used std::swap on the members. However, `this` was not constructed, so
std::swap was operating on uninitialized values. Caught by UBSAN.
Bug: chromium:1159444
Change-Id: I65f2f0affd1461f880c59780f31a368779411f24
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2599936
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ed9213bc
|
2020-12-18T12:12:10
|
|
Metal: explicitly convert XFB vertex shader to void function
Previously, spirv-cross would automatically do this (converting to void
function) if shader writes to XFB buffers, however this behavior is
changed in latest spirv-cross version.
So the rasterization disable must be explicitly specified via
spirv-cross’s options now.
Bug: chromium:1159974
Change-Id: I9f34e1cd9d2f1386e8a8d030a800fbd7341eb68f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2596914
Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0322fc1a
|
2020-12-16T11:02:13
|
|
Disable syncFramebufferBindingsOnTexImage on Intel/Win/GL
The driver fix is available already.
Bug: angleproject:2906
Change-Id: Id607fa5217360afd99e5de0d2e5f35f79615d160
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2594323
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
011e0ad1
|
2020-12-16T17:34:50
|
|
Promote RGBA4444 and RGB565 to RGB[A]8 on macOS with AMD GPUs.
There are bugs in Apple's OpenGL driver when uploading to textures of
these formats via pixel buffer objects.
Because automatic graphics switching might activate the AMD GPU at any
time, use this workaround on dual-GPU MacBook Pros even if the Intel
GPU is active.
Fixes the following WebGL 2.0 conformance tests:
deqp/functional/gles3/texturespecification/
teximage2d_pbo_2d_00.html
teximage2d_pbo_2d_01.html
texsubimage2d_pbo_2d_00.html
texsubimage2d_pbo_2d_01.html
texsubimage2d_pbo_cube_01.html
Bug: angleproject:5469
Change-Id: I7d65dc5f664159b4b59d46400a8d9c492f67040b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2595245
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
653f6196
|
2020-12-14T12:55:55
|
|
Import Vulkan DEPS from the new vulkan-deps repo.
This will allow the entire set of Vulkan DEPS to be rolled as one.
Bug: angleproject:5390
Change-Id: I10ca4f966f986baf3aab7250935802a3ed1065f1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2587671
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
c0bbe6cf
|
2020-12-16T11:56:52
|
|
Unsuppress TextureCubeTest.CubeMapFBO on Intel/Win/Vulkan
This disables forceCpuPathForCubeMapCopy as well
Bug: angleproject:2822
Bug: angleproject:3055
Change-Id: Iecb37d0c2d109e319c67310dd64ad8d4bbc14fd8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2594707
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
de703db5
|
2020-12-16T20:39:59
|
|
Fix ValidateBufferStorageEXT()
ValidateBufferStorageEXT() has a copy/paste error where the flag
GL_MAP_PERSISTENT_BIT_EXT is enabled twice while
GL_MAP_COHERENT_BIT_EXT is not enabled at all during parameter checking,
causing ANGLE to reject valid calls to glBufferStorageEXT().
Bug: angleproject:5473
Test: BufferStorageTestES3.BufferStorageFlagsPersistentCoherentWrite
Change-Id: I05596f54d48118f609ef1c88ca222d9fcdb2dd3a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2596956
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
937bc82b
|
2020-12-17T17:57:50
|
|
Revert "GLX: Expose EGL_ANGLE_window_fixed_size"
This reverts commit fa9b803e078fb833143df7a2b3f88c8694fa8f2f.
Reason for revert: https://bugs.chromium.org/p/chromium/issues/detail?id=1157748
Original change's description:
> GLX: Expose EGL_ANGLE_window_fixed_size
>
> Right now the GLX backend checks for resize on every SwapBuffers
> call. If EGL_ANGLE_window_fixed_size is used, it will only resize
> when signaled by Chrome.
>
> Bug: chromium:1132827
> Change-Id: Ia4ddbbbf6dcf13f46ad564208eccc517de8be33c
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2572886
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
TBR=syoussefi@chromium.org,jonahr@google.com,jmadill@chromium.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: chromium:1132827
Change-Id: I1110c5dd5d806b3c6c59308d4865f0d3aa57fc3f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2595197
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
909ea88b
|
2020-11-20T13:07:53
|
|
Reland "Vulkan: Ignore glFlush to reduce vkQueueSubmits in Asphalt 9"
This is a reland of 5cf7472dd161bbda329dfc5e4e65bb6ce0c06fbd
The ShareGroupVk::mResourceUseLists was not being cleared each call to
RendererVk::submitFrame(), so it was growing indefinitely. Each
vk::ResourceUseList within it was cleared, so it was holding an
essentially "infinite" list of empty lists, but that caused the loop in
RendererVk::submitFrame() to take more and more time until the tests
timed out.
The fix is to do 'resourceUseLists.clear()' once the loop to release all
resources has completed, like releaseResourceUsesAndUpdateSerials() does
for each individual list. Additionally, ASSERTs are added to guarantee
that the lists are empty when the ContextVk and ShareGroupVk are
destroyed.
Original change's description:
> Vulkan: Ignore glFlush to reduce vkQueueSubmits in Asphalt 9
>
> Multithreaded apps can use the following pattern:
>
> glDrawElements()
> glFenceSync()
> glFlush()
> glWaitSync()
>
> This currently results in a vkQueueSubmit for every glFlush() to ensure
> that the work has landed in the command queue in the correct order.
> However, ANGLE can instead avoid the vkQueueSubmit during the glFlush()
> in this situation by instead flushing the ContextVk's commands and
> ending the render pass to ensure the commands are submitted in the
> correct order to the renderer. This improves performance for Asphalt 9
> by reducing frame times from 150-200msec to 35-55msec.
>
> Specifically, ANGLE will call flushCommandsAndEndRenderPass() when
> there is a sync object pending a flush or if the ContextVk is currently
> shared.
>
> Additionally, on all devices except Qualcomm, ANGLE can ignore all other
> glFlush() calls entirely and return immediately. For Qualcomm devices,
> ANGLE is still required to perform a full flush (resulting in a
> vkQueueSubmit), since ignoring the glFlush() reduces the Manhattan 3.0
> offscreen score by ~3%.
>
> Bug: angleproject:5306
> Bug: angleproject:5425
> Change-Id: I9d747caf5bf306166be0fec630a78caf41208c27
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2552718
> Commit-Queue: Tim Van Patten <timvp@google.com>
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Bug: angleproject:5306
Bug: angleproject:5425
Bug: angleproject:5470
Change-Id: I14ee424d032f22e5285d67accbec078ad1955dd0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2595811
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a19bd601
|
2020-12-16T13:04:38
|
|
Revert "Vulkan: Ignore glFlush to reduce vkQueueSubmits in Asphalt 9"
This reverts commit 5cf7472dd161bbda329dfc5e4e65bb6ce0c06fbd.
Reason for revert: causes timeouts, see anglebug.com/5470
Original change's description:
> Vulkan: Ignore glFlush to reduce vkQueueSubmits in Asphalt 9
>
> Multithreaded apps can use the following pattern:
>
> glDrawElements()
> glFenceSync()
> glFlush()
> glWaitSync()
>
> This currently results in a vkQueueSubmit for every glFlush() to ensure
> that the work has landed in the command queue in the correct order.
> However, ANGLE can instead avoid the vkQueueSubmit during the glFlush()
> in this situation by instead flushing the ContextVk's commands and
> ending the render pass to ensure the commands are submitted in the
> correct order to the renderer. This improves performance for Asphalt 9
> by reducing frame times from 150-200msec to 35-55msec.
>
> Specifically, ANGLE will call flushCommandsAndEndRenderPass() when
> there is a sync object pending a flush or if the ContextVk is currently
> shared.
>
> Additionally, on all devices except Qualcomm, ANGLE can ignore all other
> glFlush() calls entirely and return immediately. For Qualcomm devices,
> ANGLE is still required to perform a full flush (resulting in a
> vkQueueSubmit), since ignoring the glFlush() reduces the Manhattan 3.0
> offscreen score by ~3%.
>
> Bug: angleproject:5306
> Bug: angleproject:5425
> Change-Id: I9d747caf5bf306166be0fec630a78caf41208c27
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2552718
> Commit-Queue: Tim Van Patten <timvp@google.com>
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=timvp@google.com,jmadill@chromium.org,cclao@google.com
Change-Id: I9886bf901a835d408b6a4b8be7ea408fa2121be0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:5306
Bug: angleproject:5425
Bug: angleproject:5470
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2595032
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
98b56e60
|
2020-12-12T16:28:21
|
|
Vulkan: Accumulate internal cache stats in renderer
The CacheStats of all internal caches are accumulated
by the renderer.
In order to see the hit ratios of all caches, the
following GN args must be enabled:
is_debug = true
angle_enable_perf_counter_output = true
Bug: angleproject:5447
Test: Manual verification with angle_end2end_tests
Change-Id: Iaca3249192e9e4e130d8291b7759c459d79b06ee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2588430
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5cf7472d
|
2020-11-20T13:07:53
|
|
Vulkan: Ignore glFlush to reduce vkQueueSubmits in Asphalt 9
Multithreaded apps can use the following pattern:
glDrawElements()
glFenceSync()
glFlush()
glWaitSync()
This currently results in a vkQueueSubmit for every glFlush() to ensure
that the work has landed in the command queue in the correct order.
However, ANGLE can instead avoid the vkQueueSubmit during the glFlush()
in this situation by instead flushing the ContextVk's commands and
ending the render pass to ensure the commands are submitted in the
correct order to the renderer. This improves performance for Asphalt 9
by reducing frame times from 150-200msec to 35-55msec.
Specifically, ANGLE will call flushCommandsAndEndRenderPass() when
there is a sync object pending a flush or if the ContextVk is currently
shared.
Additionally, on all devices except Qualcomm, ANGLE can ignore all other
glFlush() calls entirely and return immediately. For Qualcomm devices,
ANGLE is still required to perform a full flush (resulting in a
vkQueueSubmit), since ignoring the glFlush() reduces the Manhattan 3.0
offscreen score by ~3%.
Bug: angleproject:5306
Bug: angleproject:5425
Change-Id: I9d747caf5bf306166be0fec630a78caf41208c27
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2552718
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
64508f44
|
2020-12-12T18:00:10
|
|
Vulkan: Reduce driver uniform data to minimum if specConst is used
If specialization constant is used, driver uniform data structure should
be reduced to minimum to increase cache locality.
Bug: b/175479076
Change-Id: I1fc50666542c6763c60bfe011cde5bc77ccc08e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2588549
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
46eaba7f
|
2020-12-12T10:31:26
|
|
Vulkan: Add support for internal cache hit and miss counts
Add a CacheStats class that provides cache hit and miss bookkeeping.
All internal caches make use of this class to keep track of its stats.
This provides a means to profile cache hit ratios a.k.a Vulkan object
reuse for any application.
Bug: angleproject:5447
Test: Manual verification with angle_end2end_tests
Change-Id: I44eeb0c2b9b291ec1cdd156fb2be4a5fe80d2848
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2580111
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f32fbb51
|
2020-12-14T14:42:58
|
|
Add EXT_shader_framebuffer_fetch_non_coherent entry points
Addition of the entry points for
EXT_shader_framebuffer_fetch_non_coherent extension.
Bug: angleproject:5454
Change-Id: I2b8ba5141eed61a0c3ba58aeb2eec12a2071e7f1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2590991
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e8c5525c
|
2020-12-09T09:41:21
|
|
Vulkan: flushCommandsAndEndRenderPass during glFenceSync()
The description for glFenceSync states:
glFenceSync — create a new sync object and insert it into the GL
command stream
ANGLE needs to break the render pass and flush any prior commands to
ensure that the newly created Fence object lands with the correct
ordering. This will be done by calling
ContextVk::flushCommandsAndEndRenderPass() before creating the Vulkan
Event object.
Bug: angleproject:5306
Change-Id: I3a460bb559acf8eb4b3041065ec743938d44d823
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2582199
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
c47b951e
|
2020-12-15T13:17:28
|
|
Capture: Disable GL_NV_shader_noperspective_interpolation
Skia uses the extension GL_NV_shader_noperspective_interpolation, which
is implemented by ANGLE. This leads to traces with shaders that use the
extension. Such traces do not replay on some native GLES drivers, as the
extension is not available.
The fix is to disable the GL_NV_shader_noperspective_interpolation
extension when capturing, so that apps do not use this extension.
Bug: b/174256233
Change-Id: I5265cab2a56be488669ed31aa2ea8ec7b7fad8fd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2593190
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Paul Thomson <paulthomson@google.com>
|
|
cb8903b1
|
2020-12-08T01:08:00
|
|
Metal: Ignore OS's internal shader cache when testing.
Internal shader cache caused timeout in some dEQP tests.
Work-around: ignore the cache by hooking fopen function and return null
when the cache related files are accessed.
Bug: angleproject:5354
Change-Id: I12ca228540925e67454bf24ce1ba83d703882c87
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2580918
Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
282fb409
|
2020-12-11T16:09:10
|
|
Fix link validation of I/O block members
Location and struct name matching for fields was missing as they only
apply to I/O blocks and not varyings of struct type.
Bug: angleproject:3580
Change-Id: I69083f39088458da72828b418be3068187a30fcc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2587456
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
da8c2261
|
2020-12-12T16:39:55
|
|
Vulkan: Enable FramebufferVk cache on Apple
This effectively reverts ff60aba. The crash no longer
occurs on Apple.
Bug: angleproject:4442
Change-Id: I4aa745c80a482eb99311f3810e34124afe950cfe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2588429
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
56330564
|
2020-12-10T00:46:04
|
|
Vulkan: Support layered framebuffers
This feature is introduced by geometry shaders, where all the layers of
a texture can be attached to a framebuffer. The geometry shader would
use gl_Layer to decide which layer the primitive should be rendered to.
Bug: angleproject:3571
Change-Id: Ib2ae8e227b226295f9e2f62f6b230839070bc95c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2582711
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
8326b26a
|
2020-12-11T13:59:40
|
|
Fix link validation with ambiguous instanceless interface blocks
The following interface blocks should fail link:
VS:
layout(binding=0) buffer BufferBlockNameA
{
mediump float variable;
};
FS:
layout(binding=1) buffer BufferBlockNameB
{
mediump float variable;
};
Because `variable` is ambiguous.
Bug: angleproject:3580
Change-Id: I29576a6f152780819af0e9fb63249dbee7d9f2fc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2587450
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c75473c2
|
2020-11-23T14:26:32
|
|
Vulkan: Generalize FlipRotationSpecConst to SpecializationConstant
Specialization constant are used not just for flip/rotation. It also
used for other things. This CL merges all specialization constant usage
(lineRasterEmulation, flip, rotation, halfRenderArea) into one class and
rename FlipRotationSpecConst to SpecConst.
Bug: b/173800146
Change-Id: I8dc3354b6caedbb183cec29855fc1c301ec8872a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2555812
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
dcc0bebf
|
2020-12-10T13:43:03
|
|
Vulkan: clean up comments, rename per request
Bug: b/170312581
Change-Id: Iefecb5776cac07477266e6a2e77af7d3c9f38ad6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2585745
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
6d94471b
|
2020-11-19T16:53:09
|
|
Vulkan: Eliminate fence wait from SyncVk
Waiting on a fence is problematic if using threaded worker to submit
work since code needs to know if the work has been submitted or not
before doing the wait.
Eliminate the wait by using a serial if available or if no serial check
the file descriptor directly. If no serial it's because we are waiting
on an imported file descriptor. Could call fence.wait in that
case but can also wait on the file descriptor.
Test: angle_end2end_tests --gtest_filter=EGLSyncTest.*/ES2_Vulkan
Bug: b/170312581
Change-Id: I392a5e73ac8f851d0d5bc53f06063568c0c90d2c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2579042
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
f6df8692
|
2020-12-09T12:46:35
|
|
Vulkan: Support XFB in non-Vertex stages.
This updates the code in several places to support Geometry and
Tessellation Evaluation shaders to output transform feedback.
Does not turn on any new tests but enables support for XFB when we
turn on GS/TS.
Bug: angleproject:3571
Bug: angleproject:3572
Change-Id: I6dcb768f2df4eeee81a4a500e999fcf16716f58f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2581941
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4d9157a5
|
2020-12-09T16:41:31
|
|
Increase internal max uniform blocks limit to 60.
This will make space for the tessellation / ES 3.2 limit of 60 blocks.
Bug: angleproject:3572
Change-Id: Ie6cc6b24bdce2f5f67f62d11cdeefb10f3bd01d0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2582708
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
108b759e
|
2020-12-04T15:15:49
|
|
EGL: Update EGL headers/xml
The new EGL headers introduced 'EGL_NO_X11' which we could use
for ANGLE vulkan display/headless backend.
Changes in CL:
1. Updated include/EGL/egl*.h and scripts/egl.xml based on latest
EGL repo: https://github.com/KhronosGroup/EGL-Registry
Note: local modifications to the file were preserved in
eglext.h, search keyword 'eglext_angle.h' for detail
2. run scripts to update entry_points/loader
scripts/generate_entry_points.py
scripts/generate_loader.py
scripts/run_code_generation.py
3. Update ANGLE code on API 'eglSwapBuffersWithDamage'
4. Format with 'git cl format'
Bug: angleproject:5260
Change-Id: I70ed0dccecf0426929ef8b4775605554d66c5724
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2576314
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
067a12f0
|
2020-11-19T16:47:25
|
|
Reland "Vulkan: Use specialization constant for halfRenderAreaWidth"
This is a reland of ff38106d62fca2e36ec2db1cd580b546fd53ae43
Original change's description:
> Vulkan: Use specialization constant for halfRenderAreaWidth
>
> halfRenderArea is used by fragment shader to adjust gl_FragCoord for
> rotation and yflip compensation. This CL bakes halfRenderAreaWidth into
> shader via specialization constant, thus allow compiler to consolidate
> the calculation into one MAD instruction.
>
> Bug: b/173800146
> Change-Id: Id66301278e3389e2582369b695825e632bccecee
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2551541
> Commit-Queue: Charlie Lao <cclao@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Tim Van Patten <timvp@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Bug: b/173800146
Change-Id: Ifc36086f4c5d6a44fb5456aa6e31bc8a783bba71
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2579648
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
1788355b
|
2020-12-08T16:12:34
|
|
Vulkan: Add dirty bits instead of direct access FBO state
The CL crrev/c/2551541 causes intermittent Bot failure. I believe the
problem is that from ContextVk::onMakeCurrent call stack, the object
state may not in sync or even not completely specified. So instead of
accessing fbo state object here to update mGraphicsPipelineDesc, we
should insert dirty bit and let state validation code to handle it.
Bug: b/175157604
Change-Id: I5f6b9fd901cc4187068f6161bd12836c8bbf8e87
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2580914
Commit-Queue: Ian Elliott <ianelliott@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8789457d
|
2020-12-09T00:21:08
|
|
Fix varying packing of I/O block fields
The sorting algorithm didn't keep the fields in order, which made them
receive arbitrary locations. The SPIR-V transformer assigns the
location on the whole block instead of individual members, which was
incorrect in this situation.
The SPIR-V transformer could have been modified to decorate each field
of the I/O block with a location. This change instead sorts the fields
in such a way that I/O block fields are allocated contiguously, which
allows the SPIR-V transformer to function unchanged.
Bug: angleproject:3580
Change-Id: I27df9e8122dd4207835bad448ffb8015692a1635
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2581076
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
378653f8
|
2020-11-20T12:24:41
|
|
D3D: throw a perf warning for uniform block
We had translated an uniform block only containing a large array member
into StructuredBuffer instead of cbuffer on D3D backend for slow fxc
compile performance issue with dynamic uniform indexing.
This patch throw a warning if a uniform block containing a large array
member fails to hit the optimization.
Bug: angleproject:3682
Change-Id: I33459b559923f16a8dfb70c6f46ec52f68d96e06
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2552365
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
|
|
36f74334
|
2020-12-03T21:26:28
|
|
Vulkan: Fix query pause on framebuffer binding change
When a render pass is closed, render pass queries are paused. The code
that pauses queries however is conditioned to the render pass being
open. In ContextVk::syncState, when processing
gl::State::DIRTY_BIT_DRAW_FRAMEBUFFER_BINDING, `onRenderPassFinished()`
is called. Later on, when the render pass is actually finished, the
queries are not paused.
This change moves the logic to pause render pass queries to
onRenderPassFinished().
Bug: angleproject:5427
Change-Id: I3a87db2e4543ff698803ac5e154a370e85ac7985
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2573581
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
f691b3b5
|
2020-12-02T13:11:54
|
|
Vulkan: Support PrimitivesGenerated query
This query uses the Vulkan transform feedback extension. In GL,
GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN and GL_PRIMITIVES_GENERATED
queries can be independently begun/ended. However, Vulkan requires that
queries from pools of the same type can only be active one at a time.
This forbids the two GL queries from being handled by two VK queries
when they are simultaneously begun.
This change makes these queries share their QueryHelper objects. The
Vulkan transform feedback queries unconditionally retrieve both results
anyway, so this is just a matter of making sure the two GL queries are
merged as one when they are simultaneously used.
The change fixes a number of issues as collateral:
- TransformFeedbackPrimitivesWritten queries when !emulated were not
released
- Stashed queries were never released
- If no render pass is open when a query ends, then getResult(no_wait)
ended up waiting
Bug: angleproject:5404
Change-Id: I8ce13ea76ffd31b3152ded7c713c6466d0315504
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2573580
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
fa9b803e
|
2020-12-03T17:53:12
|
|
GLX: Expose EGL_ANGLE_window_fixed_size
Right now the GLX backend checks for resize on every SwapBuffers
call. If EGL_ANGLE_window_fixed_size is used, it will only resize
when signaled by Chrome.
Bug: chromium:1132827
Change-Id: Ia4ddbbbf6dcf13f46ad564208eccc517de8be33c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2572886
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
aafcb504
|
2020-12-08T09:32:10
|
|
Vulkan: Add ensureSubmission to queueSubmitOneOff
Some callers of queueSubmitOneOff require that the command being queued
to have been sent to the GPU. The new ensureSubmission parameter
indicates that behavior and when running with threaded worker will wait
for the worker queue to empty before returning.
Bug: b/170312581
Change-Id: Ib620fb37f4b9b4431451ccbd10807c0dff1842af
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2579041
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
56f4a501
|
2020-12-07T14:41:32
|
|
Vulkan: Add debugging code for SPIRV transformer.
Requires a custom define for output.
Bug: angleproject:3572
Change-Id: I3721c4067c61f3e22ce7c047054b74d3fe468d8f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2578058
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
bcdd4e58
|
2020-11-03T13:33:44
|
|
Vulkan: Fix validation errors with YUV
Had several validation errors with YUV ImageTests using Vulkan back-end.
This corrects those issues and tests now pass.
Initializing YUV AHardwareBuffers requires Android API 29. The CI bots
are not yet to Android 29 so this must be tested locally by compiling
with the appropriate api level in args.gn:
android32_ndk_api_level = 29
android64_ndk_api_level = 29
Test:
ImageTestES3.SourceYUVAHBTargetExternalRGBSampleInitData
Note: Some tests can run at api 26:
ImageTestES3.ClearYUVAHB
ImageTestES3.YUVValidation
Bug: angleproject:4852
Bug: b/172649538
Bug: b/175021871
Change-Id: I383d24faa9911f77a71bd9b764232ad519b54e9a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2530454
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
e59d8716
|
2020-12-07T16:41:35
|
|
GL: Expose OES_shader_io_blocks
As extra validation that new tests are indeed correct.
Bug: angleproject:3580
Change-Id: I4792bd8e26f96ab6c988f2605f053ce5789a782f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2577818
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8b4990bb
|
2020-12-06T21:00:52
|
|
Capture/Replay: Fix capture of GL_EXT_debug_label
Add it to the list of debug functions we skip.
Test: Seven Deadly Sins MEC
Bug: b/174965026
Bug: angleproject:5337
Change-Id: Ifa2bd9cf12abda20df0c693c149be50d57ee6e62
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2576814
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
dea86294
|
2020-12-02T16:26:03
|
|
iOS build support
libGLESv2 builds with these changes on iOS, iOS Simulator, and
Mac Catalyst, using CGL or EAGL as appropriate. Tests will
require more work. Fixed several errors in the EAGL code which
hadn't been detected because the code wasn't built.
Bug: angleproject:4256
Bug: angleproject:5417
Change-Id: I29072d82607ef2500732c5cc00318fdab4a46b31
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2570211
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
|
|
4accbe92
|
2020-12-04T12:27:01
|
|
Fix separable Geometry shaders.
Geometry shaders weren't being processed in some of the separable
shader logic. This CL fixes two cases: one in Program and one in
ProgramPipeline.
Bug: angleproject:5409
Change-Id: I19adc5c11a54814d28dd20574a5e038ca9dbd021
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2574827
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
251ba5cb
|
2020-12-03T15:55:47
|
|
Vulkan: Fix transform feedback with in-render-pass clears
An in-render-pass clear now pauses transform feedback so it wouldn't
contribute to it. Since it's not possible to resume the transform
feedback in the same render pass (as it needs a memory barrier for its
counter buffer), the render pass is broken after the clear.
Bug: angleproject:5426
Change-Id: I1eaf8c153d076bd912a4a08c65960c12f00341ef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2573579
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d49e7e30
|
2020-12-05T00:29:21
|
|
Mark classes with final dtors as final
- -Wfinal-dtor-non-final-class warns on classes with final dtors but
not final classes.
- Error messages are better when the class is marked final.
- Fix existing issues in code base
Bug: chromium:999886
Test: no errors building
Change-Id: I62301f2f0b9108b08e0a749fbe261beb36b1996f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2575923
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c859c0ac
|
2020-11-24T17:21:38
|
|
Batch replace std::unordered_map with angle::HashMap in src/
There are a few places that will remain std::unordered_map due to build
or run-time errors, which will need to be evaluated more closely to
determine if they should remain std::unordered_map or if there is
another Abseil data structure that would be more efficient while still
working correctly.
Bug: angleproject:4873
Change-Id: Ib04253e3ad6398e63f4cc2bfe12c0f9e57cb112b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2558873
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
b22b1502
|
2020-12-03T16:25:14
|
|
Vulkan: Fix transform feedback spanning multiple render passes
When the render pass breaks while transform feedback is active, the
subsequent render passes didn't restart transform feedback because of a
missing dirty bit.
Bug: angleproject:5426
Change-Id: Icee79cbdabbceab96973cea124240ac7ced82d55
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2572878
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
b35a468a
|
2020-12-04T12:14:37
|
|
Vulkan: Support geometry/tessellation primitive topologies
Bug: angleproject:5406
Change-Id: Ifb7553e87164c204353e1ed94b8d64f5fb4b7206
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2574822
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f2a15485
|
2020-12-04T14:07:24
|
|
Suppress memory leaks detected by LSAN
In order to be able to land SwANGLE in Chromium, this cl adds
suppressions for memory leaks detected by LSAN. Some of these should
be fixed and some are intentional leaks of global variables.
This cl should allow the linux_chromium_asan_rel_ng bot to pass while
using SwANGLE and shouldn't break the win-libfuzzer-asan-rel bot.
Bug: chromium:972686
Bug: angleproject:5377
Change-Id: I7e2336aba43fcfeb95716d6c0aa05caf855134aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2575200
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
|
|
abee60f6
|
2020-11-30T17:22:59
|
|
Capture: Disable GL_CHROMIUM_bind_uniform_location
Some apps (possibly those that use Skia) use the extension
GL_CHROMIUM_bind_uniform_location, which is implemented by ANGLE. This
leads to traces that contain calls to functions from this extension,
such as: glBindUniformLocationCHROMIUM. Such traces do not replay on
native GLES drivers, as the extension is not available.
The fix is to disable the GL_CHROMIUM_bind_uniform_location extension
when capturing, so that apps do not use this extension.
Bug: b/174256233
Change-Id: I8c6de9dc958147bcad053cbf89d8727b40f45fbe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2574836
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f42409e6
|
2020-12-03T17:11:50
|
|
Program: Allow non-fragment program input variables.
Allows shaders that use GS/TS to have input varying variables.
Bug: angleproject:5409
Change-Id: Idfbb725a4eef9e55fdde51d804a891b05dd1daee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2572879
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
72b68950
|
2020-12-02T16:22:21
|
|
Ignore redundant Texture state changes
Dirtying the state unnecessarily was causing Vulkan backend to create
new framebuffer objects when it didn't need to.
Bug: b/174700581
Change-Id: I74e0ed51a2c6598ab3dca9a955c247ec97b6856f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2570201
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|