|
330c8673
|
2020-08-28T17:44:13
|
|
Enable MSVC warning 4312.
This is caught in the Skia build.
Bug: skia:7647
Change-Id: I9b164f6fcc55b7e13981659ee8a08766a99a2122
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2381084
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
966a62cb
|
2020-08-04T12:08:00
|
|
Metal: autogen for EXT_occlusion_query_boolean.
Bug: angleproject:2634
Change-Id: I4d6a6378a269ea9e38e9282d6dbfa45e4e3d4d5a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2336126
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5ac807b2
|
2020-08-26T10:18:00
|
|
Vulkan: Let stageSubresourceUpdateAndGetData use ctx staging buffer
stageSubresourceUpdateAndGetData call are made and then flush the
commands out, so they could just switch to use context's staging buffer
instead of use per object's staging buffer.
Bug: b/164511310
Change-Id: Iff7944a37073bb3641498e334847f599903858b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2376895
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
1ab8b75a
|
2020-08-28T14:45:15
|
|
Enable -Wreturn-std-move-in-c++11.
Only one fix needed.
Bug: skia:7647
Change-Id: I048d54ed67fbb09f4dce6c918db26ea63e7127a8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2376719
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c7217aaa
|
2020-08-28T14:45:14
|
|
Enable -Wbad-function-cast.
Fixes a small bug in xxhash.
Bug: skia:7647
Change-Id: Ibd0bd8dc4febfe585e257786d9683ea09c94ec6a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2376718
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9e544a84
|
2020-08-24T18:37:59
|
|
Vulkan: Fix alignment issue with context staging buffer
Context's staging buffer is shared for all kind of usages. We should
pass in alignment requirement for allocate call whenever it is different
from the default alignment. This adds allocateWithAlignment call to
DynamicBuffer call and switch ImgeHelper's usage of it to
allocateWithAlignment
Bug: b/164511310
Change-Id: Idcb6b6f95d6862ee6cb8fca9c164910b7e085a17
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2373590
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
1c654d54
|
2020-08-26T00:16:52
|
|
Metal: Fix handling of vertex attrib offset not multiple of 4
Metal requires the vertex attribute offset to be multiples of 4, and its
stride must not be less than attribute's size.
This should fix the WebGL's test:
conformance/attribs/gl-vertexattribpointer-offsets.html
Bug: angleproject:4846
Bug: angleproject:2634
Change-Id: I0784a8ccaedd5e6c58a266243bfa94ba36e53e11
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2374829
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5c56f228
|
2020-08-28T14:45:14
|
|
Enable two override suggestion warnings.
-Wsuggest-destructor-override and -Wsuggest-override.
Bug: skia:7647
Change-Id: Iaac1baa8f34fdf210baf2fdbe811a582b3ac2d14
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2376717
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
34120d07
|
2020-08-27T15:29:04
|
|
Capture/Replay: Track groups of strings
When string counters were added, it accidentally broke
transform feedback varyings.
All the strings were combined, resulting in:
const char *glTransformFeedbackVaryings_varyings_0[] = {
R"(out_Posout_Aout_Bout_C)"
};
Instead, generate the counter for the entire group.
This CL results in:
const char *glTransformFeedbackVaryings_varyings_0[] = {
R"(out_Pos)",
R"(out_A)",
R"(out_B)",
R"(out_C)",
};
Test: Manhattan MEC works again
Bug: angleproject:4941
Change-Id: Ie605395942c9105ba234009989f41a2a1cd8c53e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2381565
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
91004654
|
2020-08-25T01:08:00
|
|
Metal: Implement ANGLE_robust_resource_initialization.
Bug: angleproject:4929
Bug: angleproject:2634
Change-Id: Ib99b810059420e69d939f1bbb644c2b95de62850
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2374826
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
9a19a996
|
2020-08-26T09:00:50
|
|
Vulkan: Use 4 MB as preferredLargeHeapBlockSize for allocator.
This reduces preferredLargeHeapBlockSize from the default
value of 256 MB to 4 MB, which reduces the initial block
size from 32 MB to 512 KB.
4 MB is the same size as used by Chromium and Skia. It seems
to be a good compromise of not wasting unused allocated space
and not making too many small allocations.
This change is limited to non-Qualcomm GPUs as a number of
tests are failing on Qualcomm after this change and the
initial investigation indicates a potential driver bug. See
http://anglebug.com/4995 for more details.
Bug: chromium:1122718
Bug: fuchsia:58959
Change-Id: Ifdaf863ef38e72098a04ee57dec46ee71cab6ac3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2376891
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: David Reveman <reveman@chromium.org>
|
|
167a0f22
|
2020-08-25T17:11:54
|
|
Vulkan: Fixes to transform feedback emulation path
Two bugs were affecting the following scenario:
- Create program with xfb and no default uniforms
- Draw without xfb
- Begin xfb
- Draw with xfb
- End xfb
- map and validate
The first bug was that the descriptor set that contains the xfb buffers
and default uniforms was never allocated for the first draw call
resulting in VVL errors and crashes.
The second bug was that "Begin xfb" was not setting the xfb buffers
dirty bit, which meant that after the first draw call bound dummy
buffers to the descriptor set, they would not get updated. This was
simultaneously fixed in 5d3a4ca4e, but the added test nevertheless tests
this.
Bug: angleproject:4660
Change-Id: I16eee315e39ec5a657481e54ecd0491581e886aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2376172
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fde4d2f7
|
2020-08-28T04:19:25
|
|
Revert "Vulkan:Clean up best practices exceptions"
This reverts commit 15438d3f906f4dffbd445ef01a934ffe1b8ccfbe.
Reason for revert: Running end2end tests on Linux, this validation error pops a lot.
Original change's description:
> Vulkan:Clean up best practices exceptions
>
> Assign new bug ID for clean-up work. It appears that the
> UNASSIGNED-BestPractices-vkCreateCommandPool-command-buffer-reset
> error was already fixed.
>
> Bug: b/166641492
> Change-Id: I536017e0386cf5f57bb53bcba32d5df048050343
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2380510
> Reviewed-by: Tim Van Patten <timvp@google.com>
> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
> Commit-Queue: Tobin Ehlis <tobine@google.com>
TBR=tobine@google.com,courtneygo@google.com,timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org
Change-Id: I90ee856b8bcac3e3f2b8104fb8642185a26f3e63
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: b/166641492
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2381077
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d3eba1db
|
2020-08-27T09:15:48
|
|
Fix ASAN error with test
Test was not creating large enough vertex attributes for the DrawQuad
call and thus hitting ASAN error when trying to copy the 6 vertices
worth of data from an array of 3.
Bug: b/166617516
Change-Id: Ia05909ada12cafa48e70c6b4ecdbbf729bbb71be
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2380234
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
dfddb983
|
2020-08-27T17:14:08
|
|
Fix warnings that show up in Skia with MSVC.
Bug: skia:7647
Change-Id: I6951dcfc1eacd0426dfa7f8142780a5065fae1b0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2380715
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
bb33c7cb
|
2020-08-27T16:22:20
|
|
Fix badly formatted dEQP test expectation
Bug: angleproject:4996
Change-Id: Ib96c8fe05e715df32390378443e1394b8df74833
TBR=jmadill@chromium.org
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2380247
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
a08495d9
|
2020-08-27T13:47:19
|
|
Revert "Vulkan: restore mContentDefined at endRP()"
This reverts commit 53ee431e3d36692cbe50a96ebbf0ff898ec4d523.
Bug: chromium:1122621
Change-Id: Ifd63aa0694e00ed6ef74b385466b874604355e79
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2380610
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
44df3fa9
|
2020-08-27T14:26:49
|
|
Vulkan: Fix whitebox test to end render pass
Since the RAII-based GLRenderbuffer goes away at the end of the test
function, we should end the render pass before ending the test.
Bug: chromium:1122621
Change-Id: I5aaf2a0b4fd63a38fc5018830ee4e9d7d93f0c81
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2380248
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
15438d3f
|
2020-08-27T12:36:10
|
|
Vulkan:Clean up best practices exceptions
Assign new bug ID for clean-up work. It appears that the
UNASSIGNED-BestPractices-vkCreateCommandPool-command-buffer-reset
error was already fixed.
Bug: b/166641492
Change-Id: I536017e0386cf5f57bb53bcba32d5df048050343
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2380510
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
1e068e1d
|
2020-08-27T15:03:10
|
|
Suppress functional_shaders_indexing_tmp_array_*_const_* on Metal
These tests were recently added, and fail on the Metal backend.
Bug: angleproject:4996
Change-Id: Iadffa25ab5b6c1372874c82f8356f7f19c76d1e0
TBR=jmadill@chromium.org
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2380244
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
d7276586
|
2020-08-26T11:27:13
|
|
Vulkan:Use roundUpPow2 where possible
Utility function roundUpPow2 is more optimal than roundUp so use it.
Bug: b/166462979
Change-Id: I616fa9f487b818137b1b496d93e292c3bd1f428c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2377119
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
7bb75ff6
|
2020-08-26T15:10:59
|
|
Disable forceOldRewriteStructSamplers on Mali.
The nested_array.*sampler2D_* tests can pass on Mali with disabled
forceOldRewriteStructSamplers.
Test: dEQP-GLES31.functional.uniform_location.nested_array.*sampler2D_*
Bug: angleproject:2703
Change-Id: I34368d6ce14b81e873e2a3d60a73da4a8a866884
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2377627
Commit-Queue: Amy Liu <Amy.Liu@arm.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
97013e85
|
2020-08-27T03:35:42
|
|
Revert "Vulkan: Only count descriptor set resources once"
This reverts commit 3c2454b82c050193b8552000f1a9e208928d07e6.
Reason for revert:
Causes rendering issues in Manhattan 3.1.
Original change's description:
> Vulkan: Only count descriptor set resources once
>
> The descriptor set resource counts for monolithic programs already have
> all of the counts combined for all shader stages, rather than needing to
> loop through and combine them all like program pipeline objects.
>
> Bug: angleproject:3570
> Test: CQ
> Change-Id: Ib8a2fe7af991a8d9d5edcef346352c7bac0703fd
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2375869
> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Tim Van Patten <timvp@google.com>
TBR=courtneygo@google.com,timvp@google.com,jmadill@chromium.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: angleproject:3570
Change-Id: I4150d5adf65ace293cb08876e4a62ae3216096b6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2378564
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
68c8ed7a
|
2020-08-25T22:16:17
|
|
Vulkan: More perf warnings
Perf warnings added in the CPU path for unpack buffers, as well as CPU
readback of images.
Bug: angleproject:3461
Bug: angleproject:4900
Change-Id: I0f716a1ea6110ba8e779903a7d5913d5f6df0ce9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2376905
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
710e408e
|
2020-08-25T18:00:39
|
|
Add support for P010 IOSurfaces
Add test coverage of multi-plane IOSurfaces.
Bug: chromium:1115621
Change-Id: Ib2150c4221a3e49f01ab016cebba4830194ab2b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2376174
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
8970ad3f
|
2020-08-26T12:59:19
|
|
Fix Linux build with Skia.
Bug: skia:7647
Change-Id: I6bb33a98d69400c9d95fb9d028d29a3e470067e3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2377291
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b89e9611
|
2020-08-19T11:19:35
|
|
Fix SwANGLE suppressions of EGLIOSurfaceClientBufferTest
Suppressions were missing for several texture formats. This slipped
through because angle_end2end_tests are not run on SwANGLE on Mac.
Bug: angleproject:4369
Change-Id: I0cbafe5daab591da15f86f2658c4edc724ae2561
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2364190
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
1ea22c31
|
2020-08-25T20:55:54
|
|
Vulkan: Fix TRex performance regression
TRex invalidates depth but doesn't disable depth before the render
pass ends. The render pass isn't ended, but a storeOp of STORE was
used instead of DONT_CARE, which causes a performance regression.
Bug: b/163854287
Change-Id: Iebd9999ef66c11ff334db3eef2943f58eb2d5053
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2377105
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
c5b9c49c
|
2020-08-25T18:01:29
|
|
Vulkan: Fix optimizeRenderPassForPresent regression.
gfxbench clears the depth buffer right before the swap. Even though the
last draw call that presents the frame didn't ever read or write to
depth, the tracking we added thought this depth write meant we had to
keep the LOAD_OP as CLEAR. Instead we can refine our check to treat
clears specially when enabling the depth-stencil read-only mode instead
of changing how the tracking works for clears. This way the tracking
can not affect other apps that don't use depth-stencil read-only loops.
Also adds a regression test that counts the clears after a swap.
Bug: angleproject:4959
Bug: angleproject:4979
Change-Id: I12ece6474019f7519a467f827110ad817f7d4df7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2370364
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3c2454b8
|
2020-08-25T12:01:12
|
|
Vulkan: Only count descriptor set resources once
The descriptor set resource counts for monolithic programs already have
all of the counts combined for all shader stages, rather than needing to
loop through and combine them all like program pipeline objects.
Bug: angleproject:3570
Test: CQ
Change-Id: Ib8a2fe7af991a8d9d5edcef346352c7bac0703fd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2375869
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
9a64f307
|
2020-08-25T14:06:40
|
|
Vulkan: Reserve memory for ResourceUseList::mResourceUses
ResourceUseList::add is called repeatedly when we need to
track a resource's usage in a context. Instead of a
potential memory operation on each add we reserve memory
upfront for about 4k SharedResourceUse objects. If the
vector grows larger, it will be automatically handled by
std::vector's allocator.
Bug: angleproject:4950
Change-Id: Ic85ed44a6662819621ee9a47f43dd2542b73114d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2375801
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
a4f706b2
|
2020-08-04T12:08:00
|
|
Metal: Use compute to generate 3D texture's mipmap.
- Metal's built-in blit based mipmap generator doesn't use box
filtering. Hence manual generation using compute is needed.
- Compute based mipmap gen can generate up to 4 mips per pass if the
base level is power of 2.
- This approach can be extended to 2D/cube texture's mipmap generation
in future.
Bug: angleproject:4921
Bug: angleproject:2634
Change-Id: I7f997669fe39afef075b2bca2406e9424cbb3016
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2336120
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
|
|
5d3a4ca4
|
2020-08-21T13:09:56
|
|
Vulkan: Fix dirty state in XFB emulation on EndXFB.
This regressed in "Vulkan: Preserve RPs on XFB changes when possible."
The bug manifested as incorrect fire rendering in Manhattan. The fix is
to ensure we dirty the correct buffer state when we call endXFB. Also
adds a regression test.
Bug: b/161744596
Bug: angleproject:4622
Change-Id: If16cc22b149526950f300e74c0cc82c0fefae5bc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2368016
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
18cd3cea
|
2020-08-25T12:51:19
|
|
Revert "Work around dEQP KHR-GLES31 bug with tess/geom support."
Fix is now upstreamed, we can remove the workaround.
This reverts commit 2ba626dc121339a995a1ffd16a32299bf023cb21.
Original CL message:
> dEQP was inadvertendly requiring the presence of these extensions to
> even run the tests. There's a WIP fix to the dEQP tests and this CL
> implements that fix as a temporary workaround until we can update dEQP.
> Fixes several tests in KHR-GLES31.core.constant_expressions and
> KHR-GLES31.core.shader_macros. They now correctly return unsupported.
Bug: angleproject:4143
Change-Id: I4001b30ab609ac4c9be2ce06c2d3c0dca75b64e6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2375965
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
85ddcc93
|
2020-08-24T14:22:22
|
|
Vulkan: Convert ProgramExecutableVk::mDescriptorSets to std::array
Currently ProgramExecutableVk::mDescriptorSets is a vector, but it's
size is bound so it can be a std::array (DescriptorSetLayoutArray).
To ensure the size grows correctly in the future, the various descriptor
set indexes are also being converted from independent constexpr
uint32_ts into the enum DescriptorSetIndex.
Bug: angleproject:4898
Test: CQ
Change-Id: I7ae8ff3455bcfb61e24b73bd16cc3f8cf9873087
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2372664
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
d787149a
|
2020-08-20T17:33:49
|
|
Allow rendering to unused levels of bound Textures.
This CL refines the feedback loop check to allow rendering to non-
sampled levels of currently bound textures. This is a technique
sometimes used to initialize a mip chain of a texture.
Also adds a regression test that fails on Vulkan.
Bug: angleproject:4500
Bug: angleproject:4690
Change-Id: I5fd370e36a2919c82170abcbd2b0897c075bdcc7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2367314
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
53ee431e
|
2020-08-21T12:40:03
|
|
Vulkan: restore mContentDefined at endRP()
CommandBufferHelper will keep a pointer to the depth-stencil
RenderTargetVk, and use this to set RenderTargetVk::mContentDefined to
true at the end of a render pass.
Test: angle_white_box_tests --gtest_filter=VulkanPerformanceCounterTest.InvalidatingAndUsingDepthDoesNotBreakRenderPass/*
Test: angle_deqp_gles3_tests --gtest_filter=dEQP.GLES3/functional_fbo_invalidate_* --use-angle=vulkan
Bug: b/163854287
Change-Id: I891381825ee01e141dfa4f9099d07d9ffc943f77
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2368194
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
295d2ccd
|
2020-08-24T14:46:31
|
|
Vulkan: Generate perf warnings on suboptimal paths
Using KHR_debug features, this change creates a
performance-warning-generation macro and employs it in a handful of
locations to provide useful feedback to application developers.
The warnings added in this change are not exhaustive.
Bug: angleproject:3461
Bug: angleproject:4900
Change-Id: Id62435d170d90c5be9c1c5cab2d6779ccb58345e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2372628
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d19c08c9
|
2020-08-25T08:07:31
|
|
Fix ASAN issue with FastIntegerMap.BasicUsage
ASAN bot caught bug in FastIntegerMap.BasicUsage test.
The end() iterator points past the end of the list, accessing
end()->first is invalid. rbegin() points at the last element of the
list which is what this test intended.
Bug: b/166255370
Change-Id: I06e098143d3de9658088cda6f10761d41b17a520
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2375305
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
33f8e4d4
|
2020-08-25T12:06:35
|
|
Fix sub-invalidate of incomplete framebuffers
Just like invalidate, this should attempt to sync the framebuffer after
nooping incomplete framebuffers.
Bug: chromium:1119669
Change-Id: Ie4bc6211bbeb1765674f7e0aef884faf7ceb8cc7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2375565
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
09924221
|
2020-08-24T17:17:17
|
|
Convert the EGL end2end tests to use RAII types/macros
These tests are frequently cloned to make new tests, and so it's good
to do a more-global refactor so that these and future tests will use
RAII.
Bug: angleproject:4947
Change-Id: I2973e70ee075629965b18c685793975537e96b6c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2372627
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
027f0c38
|
2020-08-24T15:55:55
|
|
Vulkan: Remove Host->device availability barrier.
vkQueueSubmit already performs this operation, so this barrier was
unnecessary.
The only place this is necessary is when the GPU is expected to receive
updates from the CPU post-submit. ContextVk::synchronizeCpuGpuTime is
the only such use-case in ANGLE.
Bug: angleproject:4897
Change-Id: I7297fbd65d3faabd949dddb6bcaa181053a83193
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2372631
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
78304b47
|
2020-08-23T00:39:28
|
|
Vulkan: Remove BarrierType
This was only used for one ASSERT, which is changed to use a correlated
variable.
Bug: angleproject:4959
Change-Id: I0eccd2c06c52fcfbff4c533e661735bf1213125d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2371222
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6b175c5c
|
2020-08-19T15:11:16
|
|
X11 and Ozone: fallback to X11 backend for tests.
USE_X11 && USE_OZONE build is a new config for
Chromium/Linux that is going to be enabled soon.
However, it breaks angle tests for Linux bots that
run these tests. Atm, we don't support Wayland
in angle anyway, and always falling back to X11
is the right thing to do.
However, it's a bit strange to return false in
IsOzone for USE_X11 && USE_OZONE case, but it's
something we can do now to unblock switching
Chromium to use_x11 && use_ozone config for
Linux and resolve the problem later.
Bug: angleproject:4977
Bug: chromium:1085700
Change-Id: Id223110cc504d8a4faa38608a96338a297a8cfc3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2367856
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c7645886
|
2020-08-24T16:47:21
|
|
Vulkan: Remove the flipViewportY feature
This was featurized as a workaround for Intel/Windows drivers that did
not render flipped in comparison to GL per Vulkan spec. This issue has
long since been fixed, and due to missing parentheses the feature was
accidentally unconditionally true for a long time already.
Bug: angleproject:4896
Change-Id: I1db55d298bd47df649ff1f03d287d0cfa7453ea7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2372632
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7bce5194
|
2020-08-22T23:52:51
|
|
Vulkan: Simplify image read barrier necessity check
RAW hazards were being tested for if the layouts were identical, but
that's impossible.
Bug: angleproject:4911
Change-Id: I73f568b1df2cbffe943217e19b115561e48a56c9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2370862
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
f9a062c9
|
2020-08-16T14:09:41
|
|
Vulkan: Add FastIntegerSet and FastIntegerMap class
Add FastIntegerSet container to enable fast contains operation
for a set of integer keys. The class uses a BitSet vector to
achieve performance.
Add FastIntegerMap container to improve buffer serial
tracking performance. FastIntegerMap uses FastIntegerSet container
to track buffer serial keys. It also provides an ensureCapacity
method to reserve space, for the expected buffer count, upfront.
CommandBufferHelper::mUsedBuffers and ContextVk::descriptorSetCache
are now FastIntegerMap
CommandBufferHelper::mRenderPassUsedImages is now a FastIntegerSet
Based on a CL by Jamie
Bug: angleproject:4950
Test: angle_unittests.exe --gtest_filter=FastInteger*
Change-Id: Ib58be20143f588baab99acadac796f2435f72d54
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2369466
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
7ce9947d
|
2020-08-04T12:08:00
|
|
Metal: autogen for 3D texture's mipmap generating shader.
Bug: angleproject:4921
Bug: angleproject:2634
Change-Id: I5c379d750114e2ca1c5dd0203e94bb63dac1e0bf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2336125
Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
4f7edbe1
|
2020-06-03T14:51:50
|
|
State: Add dirty object for active textures.
Checking sampler completeness after every sampler related
state change is inefficient. Defer sampler completeness
check to draw time.
Based on a CL by hckim.kim@samsung.com.
Bug: angleproject:4765
Tests: angle_perftests.exe --gtest_filter=TexturesBenchmark.*
Change-Id: I7e971371e40b3044ca3d5ca39bfe7fc600620c3e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2268577
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
acda9dde
|
2020-08-08T18:36:57
|
|
Metal: Implement GL_OES_texture_3D
Bug: angleproject:2634
Change-Id: I8c46493ac28fe1bbfdb29ee3a60b23076bbc4c0c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2336119
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
f2196ad6
|
2020-08-04T12:08:00
|
|
D3D11: Disable OES_texture_3D.
GL_OES_texture_3D requires support for 3D textures at both API and GLSL
levels.
D3D11 back-end doesn't handle GLSL's added functions (texture3D*)
properly. See TextureFunctionHLSL::useTextureFunction()
(TextureFunctionHLSL.cpp:1475)
Bug: angleproject:4926
Change-Id: Icd669b070c68ec04f5de790d5a531912f5b42d98
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2336132
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4f247baf
|
2020-08-23T22:58:56
|
|
Metal: Implement EXT_draw_buffers & ANGLE_framebuffer_blit
Bug: angleproject:2634
Change-Id: I769ca7e113e660870e9b31dafb706c313db8ac24
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2332146
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
1d331c91
|
2020-08-19T10:30:14
|
|
Vulkan: Use context staging buffer for copyImageDataToBuffer
ImageHelper::copyImageDataToBuffer() is called from glCopyTexture*. It
allocate staging buffer and write the copy command into command buffer
right away. This uses context staging buffer instead of ImageHelper's
staging buffer. This has the benefit of able to share staging buffer
with other objects (including buffers etc).
Bug: b/164511310
Change-Id: I3f680b1cd95df172a442aac573a8cc8d48972b1b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2364717
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a2c2a910
|
2020-08-20T11:41:50
|
|
Capture/Replay: Fixes for PUBG:Mobile
This CL does the following:
* Skip calls from KHR_debug and EXT_debug_marker
* Update an assert in setDeletedBuffer
* Warn when capturing an invalid call
Test: Capture first 2000 frames of PUBG:Mobile
Bug: b/165824228
Bug: angleproject:4048
Change-Id: Ib7fa616a1b5c8ed7c83daaaf0779b41acd31a7f0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2366828
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ea3f501e
|
2020-08-18T11:13:33
|
|
Feedback Loop Redesign 3/3: Remove feedback loop tracking.
We now we detect feedback loops by tracking the Framebuffers that the
Texture is bound to. We still have the old tracking method that counts
sampler and image bindings in the code as well.
This CL removes the old front-end tracking for feedback loops. It's no
longer used by any back-ends. This removal should reduce CPU overhead
around Texture and Program binding changes. Reverts the image binding
tracking to the simpler scheme that tracks if a Texture has ever been
bound as an Image. This should practically have little or no perf
effect and we can reinstate some simpler tracking in the future if
required.
Bug: angleproject:4500
Bug: angleproject:4959
Change-Id: Idc625d6e4c519919f97a4dc72dd9c35d262706fb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2363210
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
ba1e049f
|
2020-08-21T13:13:54
|
|
Vulkan: Fix compilation error
Two commits conflicted and the bots didn't catch it somehow
Bug: b/163854287
Change-Id: Idb4d7802eec71b2112b11e4553e609b532cee070
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2369261
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
296d3bfd
|
2020-08-21T10:38:32
|
|
Vulkan: do not end render pass when invalidating
Initially, FramebufferVk::invalidateImpl() was very conservative and
always ended a render pass (if the framebuffer is part of the current
render pass). This adversely affects PUBG Mobile, which invalidates
the depth buffer every frame, causing the render pass to be split.
Test: PUBG MOBILE on Android
Test: angle_white_box_tests --gtest_filter=VulkanPerformanceCounterTest.InvalidatingAndUsingDepthDoesNotBreakRenderPass/*
Test: angle_deqp_gles3_tests --gtest_filter=dEQP.GLES3/functional_fbo_invalidate_* --use-angle=vulkan
Bug: b/163854287
Change-Id: I343dee1db3ebaf039ff92557f9ef25b24bcdcc93
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2352627
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
682f9141
|
2020-08-18T10:57:40
|
|
Remove feedback loop support from back-end.
Front-end detection still in place and will be removed in a follow-up.
Removes the Vulkan feature and the special clear handling.
Bug: angleproject:4959
Change-Id: I5d44c3f7dbdb49d8aa0375f54b7148df09732ba2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2363208
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4909d08c
|
2020-08-19T12:21:44
|
|
Vulkan: Rename mStagingBufferStorage to mStagingBuffer
Rename only to keep it consistency.
Bug: b/164511310
Change-Id: I7b00c48010b76bff0b292e6e75b9aff154cdecc0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2364727
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d3e800e9
|
2020-08-15T17:26:04
|
|
Vulkan: Restart RenderPasses in DS read-only mode.
We can combine an initial RenderPass with a read-only RP if the first
RP never writes to depth. We can check the depth-write tracking in
CommandBufferHelper and substitute in a new Framebuffer/RP Desc in this
case as well as issue new layout barriers. We need to disable barrier
merging in this special case.
This reduces the RenderPass count in the Manhattan trace from 15->13.
The performance on the Pixel 4 benchmark goes to ~82% of native for
the on-screen version and ~88% for off-screen. There's also a ~5% bump
in speed for the desktop trace.
Bug: angleproject:4959
Change-Id: I70241824f75eaa1e11b50370f826abc36e91686e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2358772
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
552f0f76
|
2020-08-14T16:37:03
|
|
Vulkan: Use context staging buffer for immutable texture update
This uses context's staging buffer for immutable texture
TextureVk::setSubImageImpl call and flushes update right away.
Bug: b/164511310
Change-Id: I04fee0a9afe0e84617a461fb6cd7137e853adf8b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2357971
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
e689d316
|
2020-08-14T22:51:03
|
|
Vulkan: Don't end RenderPass on DS feedback loops.
Instead of always switching the Framebuffer to mask out depth/stencil
loops we now switch the RenderPass to a "read-only" depth/stencil mode.
Reduces the RenderPass count in Manhattan from 18->15. There are still
a couple extra RenderPasses inserted that we can get rid. We can merge
a few RenderPasses by retroactively changing a started RenderPass to
"read-only" when there are no prior recorded depth writes or clears.
Also adds a test to count the number of RenderPasses ANGLE generates in
DS feedback loop situaions.
Bug: angleproject:4959
Change-Id: I1855a45959655fc27ccd47a3469c1c672fc8fd9e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2357973
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
dff47d5f
|
2020-07-14T19:10:12
|
|
Vulkan: Optimize MSAA using subpass resolve attachments
If a user is performing a blit to resolve a multisample color buffer
into a single attachment, ANGLE can use subpass resolve attachments to
resolve directly into the destination buffer as part of the render pass.
This allows the data to remain in tiler memory and reduce the extra
bandwidth required to write the multisampled data back to perform the
copy.
This work also requires restoring/reopening a render pass if it has been
finished already, assuming the finished render pass was started and for
the framebuffer that is the source for the blit command. Other objects
that were created when the render pass was started need to be updated as
well, such as the source FramebufferVk's resolve attachment, the
CommandBufferHelper's vk::Framebuffer and vk::RenderPassDesc, etc.
While this is better than performing vkCmdResolveImage(), there is still
another major part of optimizing MSAA using resolve attachments not
implemented here: discarding the multisampled image rather than writing
it to GMEM, which requires the user to invalidate the read FBO after the
blit.
This CL was verified with AGI to make sure there are no explicit blits
to resolve the multiple sampled image.
Bug: b/159903491
Test: FramebufferTest_ES31.*Blit*
Test: VulkanPerformanceCounterTest_ES31.MultisampleResolveWithBlit
Change-Id: I320a26088d8f614a295e7feec275d71310391806
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2298663
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>
|
|
185d9d08
|
2020-08-14T22:48:15
|
|
Re-land "Feedback Loop Redesign 2/3: Track bound FBOs in Texture."
Re-land fixes the crash when drawing with no bound Program executable.
Currently we track feedback loops by counting the times a Texture is
bound as a sampler or image in a particular context. This is a bit
tricky because Texture bindings change frequently. Relative to the
number of times we need to check for a feedback loop this causes excess
overhead.
Usually Framebuffers have a low number of Textures bound (in many cases
just 1). And Textures aren't usually bound to many different FBOs. So
instead of counting the number of times a Texture is bound as a sampler
or image we will track the Framebuffers that the Texture is bound to.
This CL adds a small vector class to gl::Texture which tracks all the
Framebufer Serials of its bound Framebuffers. We can use this set to
quickly check if there's any potential feedback loop between the a FBO
and this Texture.
We also update the feedback loop check to use this new method. We will
be able to remove the old counting method when we switch the Vulkan
feedback loop handling to use the new tracking in this CL.
Bug: angleproject:4500
Bug: angleproject:4959
Change-Id: If2bd25b08298a99f5e64b4055137f9154b0f0860
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2365595
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a20f5b17
|
2020-08-18T11:26:50
|
|
Silence Control Flow Integrity (cfi) errors
The cfi bot is throwing 3 different errors with ANGLE when using
the Vulkan backend:
- ChoosePhysicalDevice causes a "function with wrong dynamic type"
error when using vkGetPhysicalDeviceProperties
- In volk.c, using vkGetInstanceProcAddr and vkGetDeviceProcAddr
also causes a "function with wrong dynamic type" error
- In vk_mem_alloc.h, included from vk_mem_alloc_wrapper.cpp,
GetAllocationCallbacks() causes a "unrelated cast" error
This cl silences all 3 cfi errors.
Bug: chromium:1116053
Change-Id: I864ec8d9e2acaec493f472e01b3987dcc641c58f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2363209
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
|
|
7d38b0ba
|
2020-08-19T17:33:31
|
|
Fix manual, disable automatic rolling of googletest and jsoncpp
roll_chromium_deps.py didn't handle properly rolling recursedeps for
these 2 repos, only rolling the top level repo but not internal.
Temporarily disable rolling these 2 repos in roll_chromium_deps.py and
roll them properly to the latest revision used by Chrome.
Change log:
https://chromium.googlesource.com/chromium/src/third_party/googletest/+log/e3c3f879eee34ec81b1e562d8fecd207716d8945..c20c5a3085ab4d90fdb403e3ac98e7991317dd27
https://chromium.googlesource.com/external/github.com/google/googletest.git/+log/f2fb48c3b3d79a75a88a99fba6576b25d42ec528..4fe018038f87675c083d0cfb6a6b57c274fb1753
https://chromium.googlesource.com/chromium/src/third_party/jsoncpp/+log/ec647b85b61f525a1a74e4da7477b0c5371c50f4..30a6ac108e24dabac7c2e0df4d33d55032af4ee7
No change to
https://chromium.googlesource.com/external/github.com/open-source-parsers/jsoncpp.git/+/645250b6690785be60ab6780ce4b58698d884d11
Bug: angleproject:4973
Change-Id: Ie164c5b1adb8684b875f1be4924b295033e2fb4a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2365023
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f6fb6da8
|
2020-08-19T21:04:35
|
|
Revert "Feedback Loop Redesign 2/3: Track bound FBOs in Texture."
This reverts commit 699bcde0b729853f33474941a313f6d5c9e63faf.
Reason for revert: Breaking GLES2WebGLDecoderPassthroughTest.DrawArraysInstancedANGLEEnablement. Here is a sample build : https://ci.chromium.org/p/chromium/builders/ci/Win10%20FYI%20x64%20Release%20%28NVIDIA%29/4240
Original change's description:
> Feedback Loop Redesign 2/3: Track bound FBOs in Texture.
>
> Currently we track feedback loops by counting the times a Texture is
> bound as a sampler or image in a particular context. This is a bit
> tricky because Texture bindings change frequently. Relative to the
> number of times we need to check for a feedback loop this causes excess
> overhead.
>
> Usually Framebuffers have a low number of Textures bound (in many cases
> just 1). And Textures aren't usually bound to many different FBOs. So
> instead of counting the number of times a Texture is bound as a sampler
> or image we will track the Framebuffers that the Texture is bound to.
>
> This CL adds a small vector class to gl::Texture which tracks all the
> Framebufer Serials of its bound Framebuffers. We can use this set to
> quickly check if there's any potential feedback loop between the a FBO
> and this Texture.
>
> We also update the feedback loop check to use this new method. We will
> be able to remove the old counting method when we switch the Vulkan
> feedback loop handling to use the new tracking in this CL.
>
> Bug: angleproject:4500
> Bug: angleproject:4959
> Change-Id: I84a2f0ed8480d1da63d5879e0e56a8be4af4e735
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2358850
> Reviewed-by: Tobin Ehlis <tobine@google.com>
> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
TBR=tobine@google.com,courtneygo@google.com,jonahr@google.com,jmadill@chromium.org
Change-Id: Ica795036895652add37ac8ed319031f9d5a321ac
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:4500
Bug: angleproject:4959
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2365077
Reviewed-by: Khushal <khushalsagar@chromium.org>
Commit-Queue: Khushal <khushalsagar@chromium.org>
|
|
b8c32424
|
2020-08-19T12:06:53
|
|
Fix language inclusivity for SurfaceMtl.mm
He->they
Bug: b/162834212
Change-Id: I8559120ad77006aaa839b70e00b4c8f12e9e8a44
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2364192
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
78d10017
|
2020-08-16T16:13:59
|
|
Vulkan: Enable VK_KHR_bind_memory2 extension
Don't assume support for VK_KHR_bind_memory2,
enable the extension, if supported, during device creation.
Also initialize all required extension functions for the
memory allocator.
Bug: angleproject:4966
Change-Id: I878939fb3324723675a2b7dec18ab453b2a9fc77
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2359529
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
831056bf
|
2020-08-19T12:04:59
|
|
Fix typo in test harness README
Larget->larger
Bug: angleproject:3162
Change-Id: I7ee84b714af179f97db1aa61b58ed946b28373bc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2364191
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
defeda29
|
2020-08-04T12:08:00
|
|
Metal: autogen for EXT_draw_buffers & ANGLE_framebuffer_blit
Bug: angleproject:2634
Change-Id: I8f8ee91fb673301b8bd97c359ee39c411e2bf8da
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2336124
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
add9b677
|
2020-08-17T15:50:20
|
|
Delete extra initialization in spirv shader.
Only webgl requires initialization of local variables,others don't.
Extra initialization in spirv shader may affect performance.
Bug: angleproject:4952
Change-Id: I004761779067748d43c1ea2630794491f1389492
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2359608
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
27a24f6d
|
2020-08-17T19:02:09
|
|
Vulkan: Check aggregate barrier feature instead of caching.
Bug: b/157508684
Change-Id: I6c98cb017d44c1279439d815e77f6ad1a32133e2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2360903
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
ea1bda26
|
2020-08-17T14:21:26
|
|
Vulkan: Name image layouts.
Can be useful for debugging logging.
Bug: angleproject:4959
Change-Id: I4bdb72b4c07979fecc2af0ca2a2b2e7cdab36b9f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2360902
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
d286daf1
|
2020-08-16T23:53:31
|
|
Vulkan: Track RP's read/write access for depth/stencil.
This generalizes the read tracking into read/write. Knowing the write
access can let us determine if we can switch a RenderPass to a read-
only mode. And switching to read-only will let us combine some
RenderPasses in Manhattan.
Bug: angleproject:4959
Change-Id: Ic97547e84fef4a2670437677000d4525006ef69f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2358771
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
699bcde0
|
2020-08-14T22:48:15
|
|
Feedback Loop Redesign 2/3: Track bound FBOs in Texture.
Currently we track feedback loops by counting the times a Texture is
bound as a sampler or image in a particular context. This is a bit
tricky because Texture bindings change frequently. Relative to the
number of times we need to check for a feedback loop this causes excess
overhead.
Usually Framebuffers have a low number of Textures bound (in many cases
just 1). And Textures aren't usually bound to many different FBOs. So
instead of counting the number of times a Texture is bound as a sampler
or image we will track the Framebuffers that the Texture is bound to.
This CL adds a small vector class to gl::Texture which tracks all the
Framebufer Serials of its bound Framebuffers. We can use this set to
quickly check if there's any potential feedback loop between the a FBO
and this Texture.
We also update the feedback loop check to use this new method. We will
be able to remove the old counting method when we switch the Vulkan
feedback loop handling to use the new tracking in this CL.
Bug: angleproject:4500
Bug: angleproject:4959
Change-Id: I84a2f0ed8480d1da63d5879e0e56a8be4af4e735
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2358850
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5b4f6e31
|
2020-08-15T23:03:34
|
|
Vulkan: Add overlay widget for RP buffer count.
Can help evaluate when scenes stress out the resource tracking in the
RenderPass command buffer.
Bug: angleproject:4950
Bug: angleproject:4965
Change-Id: I7da2ad0101a840c5441f2112db4bb61f564afcef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2358521
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
d0b270e6
|
2020-08-14T21:55:17
|
|
Feedback Loop Redesign 1/3: Framebuffer Serials.
Currently we track feedback loops by counting the times a Texture is
bound as a sampler or image in a particular context. This is a bit
tricky because Texture bindings change frequently. Relative to the
number of times we need to check for a feedback loop this causes excess
overhead.
Usually Framebuffers have a low number of Textures bound (in many cases
just 1). And Textures aren't usually bound to many different FBOs. So
instead of counting the number of times a Texture is bound as a sampler
or image we will track the Framebuffers that the Texture is bound to.
Because FBOs are unique to a Context, a Texture could be bound to two
different FBOs with the same ID. In this CL we introduce a new Serial
for the FBO which is unique to an EGL Share Group. This way we can
ensure we don't make the wrong call when a Texture is referenced by a
Framebuffer. It also replaces the old FB serial which was again only
unique to a particular Context.
Bug: angleproject:4500
Bug: angleproject:4959
Change-Id: I0a9989d861a4132bd3b7ed85f699a4448ff37a4e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2358849
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
85919ef7
|
2020-08-08T18:23:47
|
|
Metal: autogen format caps from json
Bug: angleproject:4940
Bug: angleproject:2634
Change-Id: I1e107e856a50a7eaf685296dd7464af9ad5bcec4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2342522
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
594e0e14
|
2020-08-15T16:35:55
|
|
Vulkan: Add DS ReadOnly mode to Framebuffer/RP caches.
Allows ANGLE to create Framebuffers and RenderPasses with a read-
only depth/stencil layout. Also allows us to transition our Images
to this new DepthStencilReadOnly layout.
Internal code redesign. No functional change to our command stream.
Bug: angleproject:4959
Change-Id: I9b80063bdaec8f5d6c89037e0618c85e1c11b78d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2354280
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a13f1061
|
2020-08-14T23:37:21
|
|
Metal: Fix missing image view for texture from IOSurface.
Image view is used by glTexSubImage*, glCopySubImage* and
glCopySubTexture*.
This fixed some failed WebGL tests that make use of IOSurface.
Bug: angleproject:4846
Bug: angleproject:2634
Change-Id: Iebcf840fdc1be2794feab766957b5848a361a63c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2356107
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
57393152
|
2020-08-16T00:08:09
|
|
Auto-gen more Overlay code.
We add a new header where we auto-generate the Widget ID. We also use
a new X macro to generate per-widget arrays and tables.
Bug: angleproject:4965
Change-Id: Ic53e5d1c47d5712a63c98c481c15f550f1f99692
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2358520
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
4cf01e3e
|
2020-08-18T14:29:03
|
|
Clean up Overlay code duplication.
Adds common helper functions for Running Graphs and Histograms.
Bug: angleproject:4965
Change-Id: I8c7295217c637e377b74b4a336eb151b8a7c9596
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2358518
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
ee0a9a34
|
2020-08-13T15:39:49
|
|
Vulkan: Clean up ImageLayout enum.
Remove the redundant manual numbering. Also rename
AllGraphicsShadersReadWrite to AllGraphicsShadersWrite for consistency.
Refactoring change only.
Bug: angleproject:4959
Change-Id: I2e7ca00993f192897bbf88f4bdc3f1610bcb345f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2354279
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
c4a82aaa
|
2020-08-17T11:16:22
|
|
Tests: Add COD:Mobile trace
Test: angle_perftests --gtest_filter=TracePerfTest.Run/*cod_mobile*
Bug: b/164426913
Bug: angleproject:4048
Change-Id: I306714632b635c728fa212ed793f076c6b889227
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2360047
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
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>
|
|
dceaabb1
|
2020-08-08T17:03:47
|
|
Vulkan: Clean up ImageHelper barrier functions.
We don't need to explicitly check if a barrier is required for write
barriers. Write barriers always require a barrier and read barriers
need the layout change check. We introduce a new enum encoding ReadOnly
vs Write layout types and call specialized write/read functions
instead. Also renames the helper APIs to be more consistent.
Refactoring change only.
Bug: angleproject:4959
Change-Id: I0ce39ceaca6be588327c381194a580dc6b11f036
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2344744
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
863115fb
|
2020-08-17T19:41:54
|
|
Re-enable a dEQP-EGL test on SwANGLE
Hopefully no longer flaky.
dEQP.EGL/functional_sharing_gles2_multithread_random_egl_server_sync_shaders_compile_9
Bug: angleproject:4495
Change-Id: I121ad4ece0be3e0ab7b0390a1a2c54cfd2bed537
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2360904
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
693d0e0b
|
2020-08-07T21:28:08
|
|
Vulkan: Minor cleanup to vk_helpers.
Moves some checks into helper functions. Refactor only.
Bug: angleproject:4959
Change-Id: I08053a96f99baff75eb3954ecbb77e83483eba0f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2343406
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d488568a
|
2020-08-17T10:16:45
|
|
Capture/Replay: Don't capture unused default uniforms in MEC
Test: MEC capture of COD:Mobile
Bug: b/164426913
Bug: angleproject:4048
Change-Id: I7f47c8828d57dfcc14bee5994d98c7df5f6a9a71
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2360046
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d63bca58
|
2020-08-06T17:37:18
|
|
Vulkan: Add test for RGB texture not break renderpass
This adds a test that will use an empty RGB texture. It should not break
renderpass.
Bug: b/162603208
Change-Id: I90f5aa2fafdbd70c654c9ad0675d6def32b58313
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2338828
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
65ccbd71
|
2020-08-14T12:40:16
|
|
Capture/Replay: Fix 1010102 vertex attrib type name
The string for VertexAttribType::Int2101010 was wrong, similar to
the fix in ffb31229.
Test: Capture and replay first 1200 frames of COD.
Bug: b/164426913
Bug: angleproject:4048
Change-Id: I86a9ad844cde211d8273840ef7e8ecb055521316
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2357170
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
a9b199b0
|
2020-08-13T17:37:27
|
|
Capture/Replay: Add ability to override entry points
We don't support populating a texture from an EGLImage, but
this feature is in use by games. Instead, populate the texture
with null data. In the future, improve this by reading back the
data.
Test: Capture and play back first 1200 frames of COD.
Bug: b/164426913
Bug: angleproject:4048
Change-Id: Ic8c6bdf3c359c89e647c28b8c57b7218bdf05b15
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2355705
Reviewed-by: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
9ae6d7f2
|
2020-08-14T11:00:29
|
|
D3D: disable to translate uniform block to StructuredBuffer
Temporarily disables the feature that translate uniform block to
StructuredBuffer on D3D backend for a bug.
Adapted from a patch by xinghua.cao@intel.com
Bug: chromium:1112112
Change-Id: I3419a0eb8ae619e1fa532ffb29f56a9099f04618
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2357752
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e89eb912
|
2020-08-12T11:21:07
|
|
Reduce spam in native perf tests.
The QC driver was repeating HIGH priority messages about map flags.
Bug: angleproject:4943
Change-Id: I927c38249f840544a7c1f5e595fa34e706e401bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2352472
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2e5647c8
|
2020-08-14T11:21:14
|
|
Vulkan: Switch buffer barrier check.
ContextVk::onBufferRead can check for "usesBufferForWrite".
Bug: angleproject:4911
Change-Id: Id295c068fd9a4027c3127830c682d62d614718dc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2355102
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
0a3233fa
|
2020-07-29T10:35:04
|
|
X11 and Ozone: fix compilation of tests.
For use_x11 && use_ozone build, use X11 backend by default.
For ozone only, continue using Ozone impl, which is basically
gbm.
Bug: chromium:1085700
Change-Id: Iac104e983135e566b0d42a58e00d3c83b430d6dc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2346276
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
6b2d6f82
|
2020-08-13T23:43:35
|
|
Reenable AttributeLayout end2end tests on Linux SwANGLE
Hopefully no longer flaky.
Bug: angleproject:4502
Change-Id: I958a7febce4057706c0d822b9fffc4d9a2b18f83
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2354295
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
eb85c021
|
2020-08-05T15:07:15
|
|
Vulkan: Refactor Context CommandBuffer query.
getOutsideRenderPassCommandBuffer returns the command buffer directly
since it's now stateless and cannot throw an error. All the RenderPass
begin/end and flushing are done by the dependency functions (buffer/
image read/write).
Bug: angleproject:4911
Change-Id: I5e7806be9d0e1b5e358524bd485298d660fac942
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2339544
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
d201ed8b
|
2020-08-02T16:29:35
|
|
Vulkan: Track used Images in RenderPass.
Adding a simple ImageSerial tracking map in our RenderPass allows us
to know when we do or do not need to close the RenderPass on a new
Image access. This simple tracking scheme improves Manhattan
performance by up to 25% on Android. The improved perf comes from
reducing our RenderPass count (23->18 RenderPasses in our capture
scene).
Adds a FastUnorderedSet class to manage the used RP Image serials.
Updates the Query helpers to explicitly flush the RP before inserting
queries.
Bug: angleproject:4911
Change-Id: I0c34fc8e307514ebdf3e81e08d8e5aedb70ebe8f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2334346
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|