|
e8c0aa81
|
2021-01-26T23:40:36
|
|
Vulkan: Clean up transform feedback extension pause/resume
1. The xfb counter buffer barrier issued was wrong, following a typo in
the spec. This barrier is now correctly issued using the usual
barrier APIs.
2. A mechanism was added to automatically pause/resume transform
feedback when a program pipeline needs to be rebound. This is
incorrect as it misses the xfb counter buffer barrier. The render
pass is broken instead if transform feedback is active/unpaused and
the program pipeline is changed.
3. The transform feedback counter buffers are now disposed of when
transform feedback is ended. This avoids an unnecessary barrier that
this change would have otherwise incurred (and hence render pass
break) in Manhattan which repurposes the same transform feedback
object.
Bug: angleproject:5528
Change-Id: I1ffe8b4b8975645ba43afd70e9cdbb0765529da5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2651647
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
12990d73
|
2021-02-11T11:37:03
|
|
GetBitSet now uses BitSetArray instead of IterableBitSet
Remove the now unused IterableBitSet class.
Bug: angleproject:3877
Change-Id: I161e5d062c8183e30a7eb9040f3018116fe6e69e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2683494
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
dfd2a881
|
2021-02-11T11:26:18
|
|
Add more functionality to BitSetArray class
Add support for more unary and binary operators.
In order to support setLaterBit and resetLaterBit in
BitSetArray::Iterator there were 2 choices -
1. Make a copy of BitSetArray only if it is a mutating usecase
2. Always perform a copy in the constructor
BitSetIteratorPerfTest was run with both patches -
1) Copy only when necessary - RESULT BitSetIteratorPerf.wall_time: run = 116.1067374961 ns
2) Copy always - RESULT BitSetIteratorPerf.wall_time: run = 242.7446459439 ns
We settled on the copy only when necessary path.
Bug: angleproject:3877
Change-Id: If1d3cc428c68c84857952b46237aa5f206f080cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2690912
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
224e3c14
|
2021-02-08T13:00:16
|
|
Support optimized bitsets that need more than 64bits
For usecases that needed more than 64bits we were using
std::bitset container. This has slower perf compared to
the BitSetT container.
Add a new class that can support large bitsets by wrapping
an array of BitSet32/BitSet64 objects, depending on CPU
bitness, as the container.
Bug: angleproject:3877
Tests: angle_unittests.exe --gtest_filter=BitSetArrayTest*
angle_white_box_perftests.exe --gtest_filter=BitSetIteratorPerfTest*
Change-Id: I3f4a635f9e6974a99db7a4b592ab206aad754760
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2664733
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d30f0114
|
2020-11-05T17:46:53
|
|
Metal: Early loop exit during attachments clear
Added BitSetIteratorTest.IterationOrder
Bug: angleproject:2634
Change-Id: I0e9c6ad4d19bbb7d691e46b7ec720e918b170371
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2520956
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
26ae42cf
|
2020-08-09T00:11:18
|
|
Vulkan: Clean up handleDirtyTexturesImpl.
Adds a new bitset helper and changes a check to an ASSERT.
Refactoring change only.
Bug: angleproject:4959
Change-Id: I0de9f1b707c87cfb6fed8a110654783059e55c99
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2345025
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
d6c7bac9
|
2020-04-18T01:41:14
|
|
Add BlendStateExt helper structure
It provides compact storage and comparison operations for
per-drawbuffer blend states.
Added BitSetT::Zero() static constexpr.
Bug: angleproject:4394
Change-Id: I66d6275facb7b28022fc24ff9cc0d8c3c976c99d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2154669
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e6519445
|
2020-03-12T19:02:03
|
|
Implement ScanForward64 on 32-bit platforms
This unlocks opt-in usage of BitSet64 on 32-bit platforms. It is slightly faster than IterableBitSet when the amount of bits is greater than 32.
Bug: angleproject:4473
Change-Id: I230784acc871e13b1f94c87503f6bb869dcd3a68
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2100969
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
90b1865e
|
2019-03-29T00:00:27
|
|
More unittests for BitSet
Bug: angleproject:2361
Change-Id: Icca49086d95ddb0d2d50e5ba71ae9b748eeabf3f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1545203
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0cc11c68
|
2018-10-12T18:07:18
|
|
StateManagerGL: Remove setGenericShaderState.
We can mutate the BitSetIterator as it clears dirty bits. This removes
the risk of doing a double state update. Improves the proformance of
the GL back-end state update.
Also do an early-out before calling syncDrawArraysState.
Bug: angleproject:2763
Change-Id: Idd25bdd67a6aceff05529a533260b661b07c2928
Reviewed-on: https://chromium-review.googlesource.com/c/1262740
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c6dbc253
|
2018-04-30T19:07:56
|
|
Scope ANGLE_UNUSED_VARIABLE.
Renames the macro to be more ANGLE-ey.
Refactoring only.
Bug: angleproject:1671
Change-Id: I8f2dd227c7e2025886ec66e85efa877ea261d0ad
Reviewed-on: https://chromium-review.googlesource.com/1036209
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
37219c87
|
2017-04-26T10:59:48
|
|
Fix missing return values in bitset_utils.h
This patch adds the missing return value *this in the operator=
of class BitSetT
BUG=angleproject:1814
Change-Id: I758d62e80e4ade92aac64315f1808ca1eabdc787
Reviewed-on: https://chromium-review.googlesource.com/487423
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6de51858
|
2017-04-12T09:53:01
|
|
Optimize angle::BitSetIterator.
Adds a new custom bitset template to handle packing as many bits as
possible into a single variable. Intelligently select the right class
depending on platform features and bit sizes.
For now, always use a packed 64-bit set on 64-bit, instead of using
a 32-bit set for smaller bitsets.
BUG=angleproject:1814
Change-Id: I3ffef815c15515555833f6fc9302d8a4eee5423b
Reviewed-on: https://chromium-review.googlesource.com/471827
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
20e005b2
|
2017-04-07T14:19:22
|
|
Rename BitSetIterator.h to bitset_utils.h
BUG=angleproject:1814
Change-Id: I152ae13b6b7cf0ba72259967f0f124e199b20e07
Reviewed-on: https://chromium-review.googlesource.com/471826
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|