|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
3e57e349
|
2020-08-12T12:48:34
|
|
Vulkan: Query application name from the system
While populating VkApplicationInfo::pApplicationName
we are hardcoding the value to "ANGLE", instead query
the value from the sytem.
Bug: angleproject:4955
Change-Id: I222d5d1c0f497bf708389caa048d8b180c1bdecc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2352625
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5559351c
|
2020-08-11T14:23:32
|
|
Vulkan: Correctly determine mip level in resolveColorWithCommand()
FramebufferVk::resolveColorWithCommand() is currently using the wrong
mip level value by using the GL index value, rather than calculating the
VK value from (index value - the base level).
Bug: angleproject:4753
Test: FramebufferTest_ES31::MultisampleResolveIntoMipMapWithBlit()
Change-Id: I8ddaeb21c4957b46880f5ef5f6a78242c04b4dcd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2349951
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
a7cbb3f0
|
2020-08-10T09:53:54
|
|
Capture/Replay: Allow starting capture at an unknown frame
This CL adds a new way to set the start frame of a capture.
It adds a new environment variable called ANGLE_CAPTURE_TRIGGER
that, when set, will be used instead of frame start and end.
By setting ANGLE_CAPTURE_TRIGGER to a non-zero value, ANGLE will
capture that many frames when the value changes. For example,
on Android, we can set it with:
adb shell setprop debug.angle.capture.trigger 20
When we reach the target content, set the value back to zero:
adb shell setprop debug.angle.capture.trigger 0
and ANGLE will start capturing 20 frames.
Currently only hooked up for Android, but should be possible to
support on other platforms.
Test: Capture application frames using trigger
Bug: angleproject:4949
Change-Id: I469ef5c48feb78c85b8cda2fefd5df59e495bbe2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2347858
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Manh Nguyen <nguyenmh@google.com>
|
|
6eb7756d
|
2020-08-07T17:41:39
|
|
Vulkan: tell ContextVk when swapchain is re-created
For an app that only draws to the swapchain, if the swapchain is
recreated with a different rotation (as done by the ANGLE perf tests
when switching from Angry Birds 2 to Candy Crush), ContextVk is not
informed, and so the new rotation is ignored. Use the
subject-observer pattern to set the appropriate dirty bits.
Test: run_angle_perftests --gtest_filter=TracePerfTest.Run/vulkan_angry*:*vulkan_candy* --verbose --local-output
Bug: angleproject:4910
Bug: b/163126746
Change-Id: Ib5303e9c4095db1b3e736911f483589e40a73d0c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2341768
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
5e5b7537
|
2020-08-10T21:02:50
|
|
Vulkan: Optimize resource tracking in CommandBufferHelper.
Introduces a FastUnorderedMap class that uses FastVector. This type
uses static storage for up to a small fixed number of elements and
uses dynamic storage for anything larger.
Local testing shows this almost fully solves the regression from
using unordered_map. It's still slightly slower than using no
tracking (<5%).
Very degenerate cases which track dozens or more buffers will still
have significant overhead. For almost all applications that use only
a few buffers per RenderPass this will be very fast.
Test: angle_perftests, *vulkan_null_index_buffer_changed_ushort
Bug: angleproject:4950
Bug: angleproject:4429
Change-Id: I39edeaaa159124167f1ea23ad2e6eac5e9220d0b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2348108
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9385eb35
|
2020-08-02T23:21:54
|
|
Metal: Generate default shaders to separate files.
Generate default shaders' OS specific versions to separate files to
avoid mtl_default_shaders_autogen.inc becoming too big.
Bug: angleproject:2634
Change-Id: Ie2a39971ec46c36ce13bf5cb72f998f2cbc0ab64
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2332145
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>
|
|
f37f1dcb
|
2020-08-02T19:38:54
|
|
Metal: Init format table using Metal-Feature-Set-Tables.pdf
- Format table is now initialized using informations from
https://developer.apple.com/metal/Metal-Feature-Set-Tables.pdf.
Previously, it was setup using gl::GenerateMinimumTextureCaps().
- This CL also adds InitializeTextureDataFunction and LoadFunctionMap to
mtl::Format. They are needed to properly initialize/convert textures
with non-normalized formats.
- This CL is prerequisite for integer & floating point format supports.
- New test: DXT1CompressedTextureTest.DXT1Alpha (this test was added
in the past but was reverted for some reasons).
Bug: angleproject:2634
Change-Id: I5eaad812909a49c4c138d0f65fd21a6a199fcb22
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2332144
Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
275a495d
|
2020-08-10T16:11:59
|
|
Vulkan: Remove TODO.
Bug: angleproject:3200
Change-Id: Iaa5fb596a29b5488e45dec5636266e24ab4d97b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2347118
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5921a040
|
2020-08-06T17:39:56
|
|
Vulkan: Refactor image dependency commands.
Uses commands similar to the Buffer APIs. Also updates docs.
Bug: angleproject:4911
Change-Id: I1f2ec9bdd1d725d4ec3d6601e63bcb0c045e2121
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2342287
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
bbfbea9d
|
2020-08-10T10:55:58
|
|
Invalid calls' pointer params are no longer captured
Changes call capture methods generation so that invalid calls no
longer capture pointer params.
Bug: angleproject:4817
Change-Id: I2d83d4d3334da8ba34925f80aed2de859a10fae5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2346749
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
f9de2e20
|
2020-08-04T11:53:05
|
|
Enable required extensions for Chromium to use the Metal backend.
This includes:
EGL_ANGLE_display_texture_share_group
EGL_ANGLE_display_semaphore_share_group
EGL_ANGLE_robust_resource_initialization
GL_EXT_debug_marker
Bug: angleproject:4847
Bug: angleproject:4930
Bug: angleproject:4929
Bug: chromium:1112800
Bug: angleproject:4946
Change-Id: Ibacb6badf9f784dae3ca42514142ef13ee7297b8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2332863
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2e2fcfb5
|
2020-08-05T14:43:24
|
|
Implement param capture for glGetUniform calls and extensions
Implement glGetUniform calls to fix crashes in UniformTest test group.
Tests: UniformTest test group
Bug: angleproject:4817
Change-Id: I132c61e053665b0642667aad51f1f3220d101d14
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2339542
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a0880831
|
2020-08-06T19:11:40
|
|
Metal: Implement CHROMIUM_copy_texture
Bug: angleproject:4930
Bug: angleproject:2634
Change-Id: I9fd958aa1dd872855be06a14bdbba4c6624dc934
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2340396
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
3d17084d
|
2020-08-06T17:53:36
|
|
Vulkan: Simpify check for started RenderPass + FB.
We can check the RenderPass CB helper directly instead of caching a
separate variable.
Bug: angleproject:4911
Change-Id: Ic953c101c64fd5142e2dedfd06e3fea287331fd4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2341761
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
48ba75ac
|
2020-08-06T15:26:53
|
|
Remove TextureCommand
TextureCommand::GenerateMipmap can be moved into gl::Command allowing us
to remove TextureCommand.
Bug: angleproject:4753
Test: CQ
Change-Id: Idc546df519e199ffd3a8b8e03b9868cd9152e9ef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2338823
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
81370214
|
2020-07-29T12:54:02
|
|
Pass the Command when sync'ing dirty objects
A new enum is being created that contains command types, which are then
passed to each dirty object when they are synced. This allows the
syncState() methods to perform special handling for each command type.
This change is in preparation for optimizing resolving multisample
images with glBlit, since the render pass needs to be updated before
it's ended.
Bug: angleproject:4753
Change-Id: I77701f79418d35cff689e864c8a8b47b6fca0255
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2327335
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9892e6a2
|
2020-08-05T11:38:27
|
|
Capture/Replay: Reduce SetupContext size further
Still seeing long link times for NBA2K20 trace. Breaking
up SetupContext into even smaller chunks helps.
Test: Compile and link NBA2K20 trace for Android
Bug: b/160014453
Bug: angleproject:4048
Change-Id: Ic8f6d7e8d1c35cbee986da670c0beeb4b77c4e7c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2339853
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a798819c
|
2020-08-05T11:38:10
|
|
Capture/Replay: Dedup shaders to reduce capture size
This CL will track whether a string has already been declared and
written in the output file. This cuts the shader string count in NBA2K20
trace by 85%, eliminating about 300K lines of code from setup.
Test: Compile and link NBA2K20 trace for Android
Bug: b/160014453
Bug: angleproject:4048
Change-Id: Id854b3314644c1e4aae41cd6bb4157f92e9b1945
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2339852
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
1dcb3eb2
|
2020-08-06T15:02:34
|
|
Vulkan: Don't expose MSRTT on Mac/SwiftShader
Frequently causes failures as such:
[...:ERROR:drawing_buffer.cc(854)] Initialization failed to allocate backbuffer.
[...:INFO:CONSOLE(197)] "Unable to initialize webgl context.", source: (197)
Bug: chromium:1112986
Bug: angleproject:4937
Change-Id: I5058f78434c0ac49345fe1167043f2dca759b1b9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2341350
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|