|
8af9ef3b
|
2020-10-06T10:59:07
|
|
Add emulated format clear perf test
Bug: angleproject:4836
Change-Id: If900d288630ba5fbf82b8b1ce2ccab681cfc50c3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2451481
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3df629c5
|
2020-10-06T15:49:35
|
|
Fix a crash in FormatStringIntoVector
It was wrong to use vararg after vsnprintf() affected it.
Luckily, we don't need to call vsnprintf() on vararg,
since the previous call of vsnprintf() on varargCopy
already gives us the length that we need.
Bug: angleproject:5131
Change-Id: Ie9b62e92ef8ab7e06b51e034c99a5fde20c1ceaf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2453930
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
d5fa6ea9
|
2020-04-29T04:13:54
|
|
Vulkan: Implement OES_draw_buffers_indexed
Bug: angleproject:4394
Change-Id: I7db9c695c233b2daf740acc654b1b2e546a8b681
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2172739
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
385fb40f
|
2020-10-04T13:29:13
|
|
Capture/Replay: Don't capture deleted shaders.
ANGLE can sometimes hold on to deleted shaders while they're still in
use. This would happen when re-capturing captured application. A bunch
of shaders would be still around after used in the program linking
step because they are still attached to the program. Fix this by not
skipping the capture for shader that have been deleted but are still
in the resource map. Noticed while capturing the T-Rex replay.
Bug: angleproject:5134
Change-Id: I04e3e96b43e445d7b467e6db0325ecd0d821549d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2449162
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
9413c402
|
2020-10-03T10:58:12
|
|
Vulkan: Move CommandBatch for threading support
Will need access to CommandBatch class in threading worker.
Bug: b/154030730
Change-Id: Ia79eab77a81b135c22bdeecbaf65bf3c301dc987
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2447442
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
82962a0d
|
2020-10-04T11:50:02
|
|
Capture/Replay: Complete RasterizerState capture.
The dither check was incorrect. Fix the dither capture and add the
missing rasterizer discard and polygon offset capture. Noticed when
capturing the T-Rex replay.
Bug: angleproject:5134
Change-Id: I5222625175ec7e078a9c0ad6c6fd3507db3a7769
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2449158
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
a22a19a4
|
2020-10-04T13:16:46
|
|
Add a --no-finish option to the perf tests.
We can use this to re-capture replays.
Bug: angleproject:5134
Change-Id: I765e0bbb66cfdd822ffa981f2b5533157d024cac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2449161
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
57c6af7d
|
2020-10-04T12:18:29
|
|
Capture/Replay: Fix temp shader ID.
We could mess up capturing Program #1 by using a temp shader ID of 1.
Instead we can use a shader ID that isn't used in the application.
Noticed when capturing from the T-Rex replay.
Bug: angleproject:5134
Change-Id: Ic6fefe9d8cdf327a5ebbb47539b2e11161a4b13c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2449159
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
9f5eb0b8
|
2020-10-05T08:18:05
|
|
Vulkan: Add OES_sample_shading extension support
Support OES_sample_shading extension if the underlying
Vulkan ICD supports sampleRateShading.
Bug: angleproject:3587
Tests: dEQP-GLES31.functional.sample_shading.*
Change-Id: I1b324c1ad3ea3b2157d3cbe0abcdf7085aa4231b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2444213
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
974c2371
|
2020-10-04T12:22:38
|
|
Perf Tests: Run at least 1 step.
We could end up in some very slow scenes (e.g. when debugging). This
could produce a step count of zero which doesn't make sense. Noticed
while capturing the T-Rex replay.
Bug: angleproject:5134
Change-Id: Ibf2439961dfb3c01649dcab37acead7b6e2ab345
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2449160
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
bc4ec4c1
|
2020-10-05T17:10:18
|
|
Vulkan: Plumb OpenGL ES commands to AGI/debuggers
Use vkCmd*DebugUtilsLabelEXT() calls to delimit all GLES commands, and
group them under GLES draw/dispatch calls. Plumb calls from the EVENT
macro (for every GL entrypoint) to vkCmd*DebugUtilsLabelEXT() via a
newly-implemented DebugAnnotatorVk class. Use a new dirty bit so that
cached entrypoints are associated with a triggering draw/dispatch
command.
The DebugAnnotatorVk::beginEvent() method saves a string in a vector
of all GL commands in ContextVk. The dirty bit converts the strings
into begin-end vkCmd*DebugUtilsLabelEXT() pairs. The
DebugAnnotatorVk::endEvent() method makes the final
vkCmdEndDebugUtilsLabelEXT() call for a draw/dispatch command.
Enable the OGL->VK mapping feature by setting
"angle_enable_trace = true" in GN args.
Bug: b/162068318
Bug: b/169243237
Change-Id: I61b6a8d113168c0ce578d6efd002d8a393659aba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2451517
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
0faa4a3d
|
2020-09-19T00:12:35
|
|
Add BlendIntegerTest.MRT
Bug: angleproject:5071
Bug: angleproject:5125
Bug: angleproject:5126
Change-Id: I58539ae721efa6bcaff04c52cb8137b303d3db1e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2418716
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
08142700
|
2020-10-01T19:30:03
|
|
Work-around test runner & DebugAnnotator
Note: This precedes another CL that needs this change.
DebugAnnotator uses a global variable. The test runner doesn't change
state between testing different back-ends. This works-around the
problem by setting the global variable when the context is switched.
Because the GL back-end doesn't have its own DebugAnnotator sub-class,
add a Display* to DisplayImpl::makeCurrent(), so that
DisplayGL::makeCurrent() can install the front-end-Display's
DebugAnnotator.
Note: the Vulkan back-end gets this fix even though the new
DebugAnnotatorVk class will be added in a follow-on CL.
Bug: b/162068318
Bug: b/169243237
Bug: angleproject:5121
Change-Id: If08626a5310f9b4e3210e1a897a6886248e4d8ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2451423
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
23624c53
|
2020-10-05T21:07:02
|
|
Test Runner: More docs.
Bug: angleproject:3162
Change-Id: I5b282d7815973cef9f7e029bc3c65cf42729e009
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2451596
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
77e3d0ae
|
2020-09-25T14:12:04
|
|
Vulkan: Defer the depthStencil buffer layout change to endRenderPass
Depth stencil layout may change while we build the render pass,
depending on the read/write access been made. Right now we are always
inserting a layout change barrier at the start of render pass. Later on
when the read/write property changes, we insert another layout change
barrier. Similarly, we maintain the attachmentOps and
RenderPassDesc::mPackedColorAttachmentRangeAndDSAccess as we changes
read/write access. This makes code quite commplicated. This CL moves
mReadOnlyDepthStencilMode from FramebufferVK to CommandBufferHelper
object and we only maintain that boolean while we updating the
read/write access. Then at the end of render pass or when depthStencil
image is deleted, we update attachmentOps and mRenderPassDesc and layout
transition all at once and only done once. This simplifies the read only
depth stencil mode implementation a lot.
Bug: b/168953278
Change-Id: Ie263b4526c82a9858e5d1f141ea58f499187a3ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2432075
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f074d61a
|
2020-09-28T21:40:57
|
|
Plumb EntryPoint & Context to DebugAnnotator/EVENT()
This makes it easier to plumb debug labels to a future
DebugAnnotatorVk class.
Bug: b/162068318
Bug: b/169243237
Change-Id: I01e3779569c27c91252dc2874f6deaec526afd6f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2451516
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
86ca5d2b
|
2020-10-01T11:56:05
|
|
Vulkan: Add plumbing to render pass when ImageHelper gets deleted
ImageHelper object is not refcounted and garbage collected and
endRenderPass call is deferred until next render pass starts. This
caused a situation that an ImageHelper object gets deleted while still
referenced in the open render pass. This CL make sure that we call into
all shared context's open renderpass when an image goes away so that
they can take appropriate action for this.
Bug: b/169618408
Change-Id: I5075e805980084db82ca3e699462272eee5d2d59
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2443571
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
da61c40e
|
2020-10-06T01:57:55
|
|
Revert "Work-around test runner & DebugAnnotator"
This reverts commit e44c94d96a9b65615fe8f5038e124763ac8c45e5.
Reason for revert: Breaks build of DisplayGbm on ChromeOS:
src/libANGLE/renderer/gl/egl/gbm/DisplayGbm.{h,cpp}
First failing builds:
https://ci.chromium.org/p/chromium/builders/ci/ChromeOS%20FYI%20Release%20%28amd64-generic%29/1608
https://ci.chromium.org/p/chromium/builders/ci/ChromeOS%20FYI%20Release%20%28kevin%29/2212
Original change's description:
> Work-around test runner & DebugAnnotator
>
> Note: This precedes another CL that needs this change.
>
> DebugAnnotator uses a global variable. The test runner doesn't change
> state between testing different back-ends. This works-around the
> problem by setting the global variable when the context is switched.
>
> Because the GL back-end doesn't have its own DebugAnnotator sub-class,
> add a Display* to DisplayImpl::makeCurrent(), so that
> DisplayGL::makeCurrent() can install the front-end-Display's
> DebugAnnotator.
>
> Note: the Vulkan back-end gets this fix even though the new
> DebugAnnotatorVk class will be added in a follow-on CL.
>
> Bug: b/162068318
> Bug: b/169243237
> Bug: angleproject:5121
> Change-Id: I748e8a1fd09b72e07242ac7fb39154537dcce534
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2444095
> Reviewed-by: Ian Elliott <ianelliott@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
> Commit-Queue: Ian Elliott <ianelliott@google.com>
TBR=courtneygo@google.com,ianelliott@google.com,jmadill@chromium.org
Change-Id: I99df2716951726ead24961dc3d27a7ec63aeda80
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: b/162068318
Bug: b/169243237
Bug: angleproject:5121
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2451420
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
|
|
a8d4457c
|
2020-10-02T23:51:57
|
|
Change shader compile failures into an info message.
This reduces spam in our unit tests. Speeds up test execution.
Bug: angleproject:3162
Change-Id: I286a18b3ce862c4e4155076b2ee3f93c9db2eb33
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2447041
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
d3aa1e9c
|
2020-10-03T01:31:33
|
|
Test Runner: Pass dEQP args to child processes.
This fixes the sharding to use the specified back-end. With
the bug ANGLE would start the platform default back-end instead.
Bug: angleproject:3162
Change-Id: Ib2453dd3c58ea40fb36619301865ae0818038d15
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2447043
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
f0d9471c
|
2020-10-02T23:51:57
|
|
Test Runner: More misc improvements.
- reduces default batch size from 1000 -> 256
- reduces default max processes to a max of 16
- stripes tests when in bot mode
- prints less spam when waiting for child processes
The striping and smaller batch size can help with slow tests.
The max process limit seemed to prevent errors on Linux.
Bug: angleproject:3162
Change-Id: Ibed89ca35db54c62ec8ed63b32bc5aed916faec9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2447037
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
e44c94d9
|
2020-10-01T19:30:03
|
|
Work-around test runner & DebugAnnotator
Note: This precedes another CL that needs this change.
DebugAnnotator uses a global variable. The test runner doesn't change
state between testing different back-ends. This works-around the
problem by setting the global variable when the context is switched.
Because the GL back-end doesn't have its own DebugAnnotator sub-class,
add a Display* to DisplayImpl::makeCurrent(), so that
DisplayGL::makeCurrent() can install the front-end-Display's
DebugAnnotator.
Note: the Vulkan back-end gets this fix even though the new
DebugAnnotatorVk class will be added in a follow-on CL.
Bug: b/162068318
Bug: b/169243237
Bug: angleproject:5121
Change-Id: I748e8a1fd09b72e07242ac7fb39154537dcce534
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2444095
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
7004523a
|
2020-10-02T23:51:57
|
|
KHR_debug: Fix off-by-one message length.
The dEQP tests were timing out due to the "get message" call skipping
messages. The get call had a bufSize that ANGLE was rejecting as too
small because it didn't include the null terminator. The dEQP test
would pass but would always take ten seconds. I noticed this when
debugging the ANGLE test launcher and seeing batch timeouts.
Bug: angleproject:5130
Change-Id: Ie9f949218590b98a11f6c10b1f86074e90dbca17
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2447039
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
9214fc18
|
2020-10-05T17:53:48
|
|
Suppress failing Mac GL dEQP-GLES3 tests.
dEQP-GLES3.functional.fbo.completeness.renderable.texture.color0.stencil_index8
dEQP-GLES3.functional.fbo.completeness.renderable.texture.stencil.stencil_index8
dEQP-GLES3.functional.fbo.completeness.renderable.texture.depth.stencil_index8
Bug: angleproject:5136
Change-Id: I3e534df7312f173716952adc7ef24ac052914308
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2451317
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
be73728d
|
2020-10-03T17:52:25
|
|
Improve capture replay tests.
Removes the custom logger class and uses the python logging class.
Moves the argument descriptions into argparse help.
Keep build directories around by default. Essential for normal use.
Print more debug messages.
Bug: angleproject:5133
Change-Id: Ida48828512abe60ee7d16873cbdb87c58529a60a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2446898
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
8608b402
|
2020-10-04T11:42:08
|
|
Capture/Replay: Don't capture XFB 0 in MEC.
This will only add an extra unused XFB object. Noticed when capturing
from the T-Rex replay.
Bug: angleproject:5134
Change-Id: Ia368f9e9f59f9ea7473ac88928a413001fa99496
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2449157
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
0ff24ae0
|
2020-10-05T14:54:31
|
|
Suppress failing Mac GL dEQP tests.
dEQP-GLES2.functional.fbo.completeness.renderable.texture.color0.stencil_index8
dEQP-GLES2.functional.fbo.completeness.renderable.texture.stencil.stencil_index8
dEQP-GLES2.functional.fbo.completeness.renderable.texture.depth.stencil_index8
Bug: angleproject:5136
Change-Id: I787bf4505a5c10d47fa669423df8a7510e28bcab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2450916
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
61b13f8f
|
2020-09-30T16:29:04
|
|
Tests: Update two traces, remove one
* Update candy_crush and temple_run to use more recent
capture headers.
* Remove subway_surfer because the app no longer uses
GLES. Its Unity backend now runs Vulkan, so we can't
re-record it.
Test: angle_perftests --gtest_filter="*Trace*"
Bug: angleproject:4845
Change-Id: I9d219f2be05813c50b31287a65bfc099787d114c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2441851
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
505a8d05
|
2020-09-26T23:40:51
|
|
Capture/Replay: Split very large replay function.
This allows a replay of the T-Rex offscreen benchmark.
Bug: angleproject:5133
Change-Id: I9998c4785e61a6410863a1cd8a8a569b1e08098a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2446897
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
c15d1e2d
|
2020-09-26T15:11:43
|
|
Capture/Replay: Generalize function splitting.
We can use this to split up the replay function as well as very large
setup functions. This will let us replay the gfxbench offscreen
benchmarks directly.
Bug: angleproject:5133
Change-Id: Ic24f25f2ab6821e68356a28a698cb84301e99be2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2446896
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
34445b29
|
2020-10-02T15:23:35
|
|
FrameCapture: More fixes for app updates
* Disable GL_EXT_map_buffer_range during capture, several
native GLES drivers do not support it.
* Unmap buffers before updating them during Reset. Some native
drivers require it.
Test: Temple Run on multiple systems
Bug: angleproject:4845
Change-Id: I9aea9c220320095aee87da107320b8fcad6c0a2f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2447029
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
50070481
|
2020-10-02T01:03:41
|
|
Vulkan: Render pass creation cleanup
Bug: angleproject:4836
Change-Id: If7b0beef4b32149bebb0f63558ac34d0c3cd79c7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2444098
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
c5494728
|
2020-10-02T00:55:28
|
|
Vulkan: Free up 2 bits in PackedAttachmentOpsDesc
These bits will be used to aid in invalidation of
multisampled-render-to-texture attachments.
Bug: angleproject:4836
Change-Id: Ib2b438386f8cd8c057bc0ef16144b9d2ddbc1594
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2444097
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
23825b12
|
2020-10-02T16:32:32
|
|
Test Runner: Set interrupted to 'false' normally.
The bug here was to output 'interrupted: true' when running
in --bot-mode. Instead in normal execution we will output
that we were not interrupted.
Bug: angleproject:3162
Bug: chromium:1134619
Change-Id: I3842e90466473ff05b0b90bc4660f88606a3c9f6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2446851
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c488f0c9
|
2020-10-02T16:23:08
|
|
Suppress flaky test on Win/Intel/GL.
CopyTextureTestES3.ES3UnormFormats/ES3_OpenGL
Bug: angleproject:5127
Change-Id: I93628beb92b8d9b4d8c6f70b32d15ed9add54667
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2446595
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e815afbf
|
2020-09-07T22:09:22
|
|
First pass at increasing inclusivity
Link to the inclusivity rules
https://source.android.com/setup/contribute/respectful-code
Bug: b/162834212
Bug: chromium:1097198
Change-Id: Ied5a9e3879d72bff3f77ea6fcda9b82f30c32c2f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2396737
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Trevor Black <vantablack@google.com>
|
|
7a92d958
|
2020-07-21T16:32:49
|
|
Implement GL_OES_texture_stencil8
Add extension to Caps and code gen files.
Add to Validation of TexImage
Add all the autogen for new extension
Fix swizzle for stencil only
Add LoadFunction
Fix formatutils
Add validation
Test: angle_deqp_egl_tests
--deqp-case=GLES31.functional.stencil_texturing.format.stencil_index8_2d
Bug: angleproject:3231
Change-Id: Id59c7d183ea1658732887e99637d9c8faab938e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2404327
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
513095e9
|
2020-10-02T11:47:19
|
|
Disable AMD OpenGL testing on Windows ANGLE tests.
Our current CI testing for AMD is quite out-of-date and unsupported.
If necessary we could skip based on a GPU device ID.
Bug: angleproject:5123
Change-Id: Idf919a330aa9903ad80aba38f745d4a35d1b501e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2446092
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c6dc9d73
|
2020-09-19T20:09:34
|
|
Vulkan: Add a test and fix the bug with draw/invalidate/clear
This adds a test that does draw with depth enabled, then disable depth
test but with depth mask still enabled. Then invalidate framebuffer and
followed by a clear. That clear will go down clearWithCommand path and
should still work and data stored.
Bug: b/169590459
Change-Id: I6dd30d6a1e12ad7820d98fe79445c336cfa3a643
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2422081
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
e9a82849
|
2020-10-02T11:29:44
|
|
Skip ResizeWindowWithDraw test on all Linux.
Flakes on NVIDIA Linux as well when run in certain orders.
Bug: angleproject:4453
Change-Id: I7565b7868518d01d5e928ce95d0edb8abd651e28
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2446091
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
a2d9abef
|
2020-10-01T16:28:59
|
|
Vulkan: Add OES_sample_shading extension entry points
Addition of just the entry points for OES_sample_shading extension.
Bug: angleproject:3587
Change-Id: I7ef5ceb846d130c2d1e0b4ea7dcbe92452b5d7d3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2444212
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
348814f9
|
2020-09-30T09:50:10
|
|
EGL: Add stencil8 to configs
Add stencil8 option to Depth and Stencil of configs based on
support of stencil8 format from GLES.
Add stencil8 to configs
Adjust dEQP-EGL expectations
Unblocks dEQP-EGL.functional.*.*_no_depth_stencil tests
Test: angle_deqp_egl_tests
Bug: angleproject:3231
Change-Id: I57d7085a71a5b0dc45803351c9116a1694668852
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2430191
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2f3d18f2
|
2020-10-01T05:58:44
|
|
Vulkan: Fix unresolve disagreement between FB and RP
FramebufferVk::updateRenderPass reset the render pass description, but
not the framebuffer description. This caused a disagreement between the
two regarding which attachments need to be unresolved. Later,
FramebufferVk::startNewRenderPass could miscalculate whether a new
framebuffer needs to be generated based on changes in unresolve
attachments.
For example:
- say in the first render pass color needs to be unresolved. Both RP
and FB desc would remember this (each being keys for their respective
caches).
- A following operation triggers syncState such that FB desc changes
(for example rebind of attachment), which cleared RP desc but not FB
desc's unresolve attachment state.
- If the next render pass does not require an unresolve (for example due
to a clear or invalidate), then the framebuffer is not recreated
because according to RP desc at the start and end of
FramebufferVk::startNewRenderPass there has been no change in
unresolve mask.
* At start there's no unresolve because of syncState clearing it.
* At end there's no unresolve because there's no need for unresolve.
- In the end, the framebuffer used for the first render pass would be
used for the second render pass as well. Note that:
* The first render pass included an unresolve, i.e. two subpasses.
* The second render pass requires one subpass according to its RP
desc.
It's quite easy to accidentally have the framebuffer correctly recreated
(based on the reset RP desc) before FramebufferVk::startNewRenderPass.
Note that since syncState has called updateRenderPass, FB desc has
necessarily changed, and mFramebuffer is nullptr, so any call to
FramebufferVk::getFramebuffer would recreate the framebuffer.
Both clear and invalidate call FramebufferVk::getFramebuffer.
The issue is reproducible in situations where clear/invalidate has been
called before the framebuffer is modified, and then draw is issued after
the modification. An ASSERT is added to catch discrepencies between RP
desc and FB desc to catch bugs even when the issue doesn't manifest
itself as a VVL error.
Bug: angleproject:4836
Change-Id: I8a0d116402a6c298377d03e0908baa942019ccd5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2442379
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1fd3e5d8
|
2020-10-01T10:00:18
|
|
Test Runner: Fix race in watchdog timeouts.
This fixes a TSAN warning that popped up with the standalone test
runner. The watchdog timer actually was never started so timeouts
were not working as intended. It also switches the timeout mode
to call _Exit which skips all the atexit handlers and avoids some
races on teardown. This change also speeds up the TestSuiteTest.
Also a small fix to GetTempDir that was including an extra path
separator on Windows.
Bug: angleproject:3162
Bug: angleproject:5117
Change-Id: I0e7880a08b61bbb6e30c65665d5c0acec2d78db2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2442381
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
01641c7a
|
2020-09-30T15:25:28
|
|
Vulkan: Fix UtilsVk clear in non-zero subpass
Mid-render-pass clears (through UtilsVk) run on the current subpass,
which in the presence of multisampled-render-to-texture unresolve
would be subpass 1. The graphics pipeline for that draw call should
set the correct subpass index.
Bug: angleproject:4836
Change-Id: Iba4a03ea96a63b0f5d09c27e5283ff8a8b534e05
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2441509
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6534a6f8
|
2020-10-02T01:10:54
|
|
Revert "Vulkan:Add debug labels for OpenGL calls"
This reverts commit 3705fc41315b50a64299ecb1d75015a33fefd6aa.
Reason for revert: Causes errors on Debug bots. See bug.
Bug: angleproject:5121
Original change's description:
> Vulkan:Add debug labels for OpenGL calls
>
> Implement the DebugAnnotatorVk class, and plumb the EVENT macro in the
> GL entrypoints to save a string of call info in the vector of all
> GL calls in ContextVk.
>
> Then add a vkCmdBeginDebugUtilsLabelEXT() call that includes the
> OpenGL draw/dispatch call prior to any Vulkan Draw or Dispatch calls.
> Also embedded under that label add a second
> vkCmdBeginDebugUtilsLabelEXT() call labeled "OpenGL Commands" that
> includes all of the OpenGL calls leading up to the draw/dispatch.
> Each individual OpenGL call is then given its own
> vkCmdBegin/EndDebugUtilsLabelEXT() pair so that the complete sequence
> of GL calls leading up to a draw call is visible for each Draw.
>
> Enable the OGL->VK mapping feature by setting
> "angle_enable_trace = true" in GN args.
>
> Note: This will create an ANGLE APK on Android that generally won't
> work with games, unless launched by AGI (which provides the debug
> utils extension). A future version will disable these labels unless
> the debug utils extension is found.
>
> Bug: b/162068318
> Bug: b/169243237
> Change-Id: I09886f17fa9287528c12552698738ea1fe2a4b8c
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2427557
> Commit-Queue: Ian Elliott <ianelliott@google.com>
> Reviewed-by: Tim Van Patten <timvp@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
TBR=courtneygo@google.com,ianelliott@google.com,timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: b/162068318
Bug: b/169243237
Change-Id: I772d549213e1ad64ae58a1937e5de0f7ea740084
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2444094
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
eb1df14b
|
2020-10-01T16:25:33
|
|
Suppress MultisampledRenderToTextureBenchmark on Pixel2/GLES
This test started failing, but we don't care about performance on
GLES so we can suppress it for now.
Bug: angleproject:5120
Change-Id: If5eb865956ee5fb6f798d110d42e3493294bc18e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2443590
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
a8872e6d
|
2020-10-01T15:54:25
|
|
Skip MSRTT tests on Nvidia/Windows7
These bots don't have VK_EXT_depth_stencil_resolve.
Bug: chromium:1134286
Change-Id: I4cc5a627996139bf03dc3cc334435d08876a0a8a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2443584
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
22d7db6e
|
2020-09-25T18:09:23
|
|
Vulkan: Change sampleCoverage calculation
When emulating the sample coverage to a mask, truncate
the value.
Test: dEQP-GLES3.functional.multisample.fbo*sample_coverage*
Bug: angleproject:4568
Change-Id: Ie0f9fee7dc7cf08e2289ff24f0fa69f9929c4ae3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2433069
Commit-Queue: Brandon Schade <b.schade@samsung.com>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6136cbcb
|
2020-09-23T21:31:05
|
|
Metal: Implement transform feedback
- XFB is currently emulated by writing to storage buffers.
- Metal doesn't allow vertex shader to both write to storage buffers and
to stage output (i.e clip position). So if GL_RASTERIZER_DISCARD is
NOT enabled, the draw with XFB enabled will have 2 passes:
+ First pass: vertex shader writes to XFB buffers + not write to stage
output + disable rasterizer.
+ Second pass: vertex shader writes to stage output (i.e.
[[position]]) + enable rasterizer. If GL_RASTERIZER_DISCARD is
enabled, the second pass is omitted.
+ This effectively executes the same vertex shader twice. TODO:
possible improvement is writing vertex outputs to buffer in first
pass then re-use that buffer as input for second pass which has a
passthrough vertex shader.
- If GL_RASTERIZER_DISCARD is enabled, and XFB is enabled:
+ Only first pass above will be executed, and the render pass will use
an empty 1x1 texture attachment since rasterization is not needed.
- If GL_RASTERIZER_DISCARD is enabled, but XFB is NOT enabled:
+ we still enable Metal rasterizer.
+ but vertex shader must emulate the discard by writing gl_Position =
(-3, -3, -3, 1). This effectively moves the vertex out of clip
space's visible area.
+ This is because GLSL still allows vertex shader to write to stage
output when rasterizer is disabled. However, Metal doesn't allow
that. In Metal, if rasterizer is disabled, then vertex shader must
not write to stage output.
- See src/libANGLE/renderer/metal/doc/TransformFeedback.md for more
details.
Bug: angleproject:2634
Change-Id: I6c700e031052560326b7f660ee7597202d38e6aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2408594
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
b390d8b0
|
2020-09-30T16:28:46
|
|
Capture/Replay: Minor fixes for MEC
Detected when recapturing Temple Run and Candy Crush.
Each of these apps has updated recently.
Test: angle_perftests --gtest_filter="*Trace*"
Bug: angleproject:4845
Change-Id: Id0e8d362661d97d7b8e60b3afb0a3a989b6a6771
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2441850
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
11d94d86
|
2020-09-23T15:16:19
|
|
Integrate Skia Gold with restricted trace tests.
The implementation is based heavily on the Chromium Skia Gold
Python classes in //build/skia_gold_common .
Results will be visible here: https://angle-gold.skia.org/
Currently results are not visible until this CL lands.
Bug: angleproject:4090
Bug: b/168049670
Change-Id: I7a5d64fe35583ad7ea6360804a0f6b72cd9f6d8b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2430179
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Brian Sheedy <bsheedy@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
91b819a9
|
2020-09-30T10:02:04
|
|
Vulkan: Always reset during createPipelineLayout()
We need to always call reset() during createPipelineLayout(),
particularly to reset the descriptor pools to handle the new descriptor
set layouts that are generated by new immutable samplers. Otherwise,
DynamicDescriptorPool::init() will detect that a pool is attempting to
be created with a mis-matching descriptor set layout handle.
Bug: angleproject:4307
Test: Manually verify Cut the Rope doesn't crash
Change-Id: I0993bc37170e3ddf45c50abdfefda1d7f782b801
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2441127
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
3705fc41
|
2020-09-28T21:40:57
|
|
Vulkan:Add debug labels for OpenGL calls
Implement the DebugAnnotatorVk class, and plumb the EVENT macro in the
GL entrypoints to save a string of call info in the vector of all
GL calls in ContextVk.
Then add a vkCmdBeginDebugUtilsLabelEXT() call that includes the
OpenGL draw/dispatch call prior to any Vulkan Draw or Dispatch calls.
Also embedded under that label add a second
vkCmdBeginDebugUtilsLabelEXT() call labeled "OpenGL Commands" that
includes all of the OpenGL calls leading up to the draw/dispatch.
Each individual OpenGL call is then given its own
vkCmdBegin/EndDebugUtilsLabelEXT() pair so that the complete sequence
of GL calls leading up to a draw call is visible for each Draw.
Enable the OGL->VK mapping feature by setting
"angle_enable_trace = true" in GN args.
Note: This will create an ANGLE APK on Android that generally won't
work with games, unless launched by AGI (which provides the debug
utils extension). A future version will disable these labels unless
the debug utils extension is found.
Bug: b/162068318
Bug: b/169243237
Change-Id: I09886f17fa9287528c12552698738ea1fe2a4b8c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2427557
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b156a753
|
2020-09-28T16:43:50
|
|
Move LayoutCaches to ShareGroup
Testing with TSN found a race condition with RefCounted objects
(DescriptorSetLayout and PipelineLayout). Rather than add more lock
calls to protect accesses to mRefCount and mObject recommendation was to
put these caches in the ShareGroup (basically part of the context).
Locking at the GL level will ensure that two threads that share the same
context will not access the ShareGroup at the same time.
The ShareGroup also works because these layouts are not destroyed until
the context is destroyed so don't have to worry about other threads
(e.g. command processor thread) accessing them.
Bug: b/168744561
Change-Id: Icc0aa07bf4787a69572d6ec62da2f21d286232c3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2437509
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
b3859a3c
|
2020-09-30T12:52:39
|
|
Vulkan: disable glFlush deferral optimization for QualComm GPUs.
It appears this optimization causing Manhattan performance regression on
pixel4 with QualComm GPU. It does have a measurable performance
improvement on S20+ that has ARM GPU. This disables this optimization
for QualComm but still leaves it enabled on other GPUs.
Bug: b/166475273
Change-Id: I9c9cd55ab169463fc8cc16d7d917be660cb2f363
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2441667
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
e1d1b8b3
|
2020-09-29T19:59:54
|
|
Fix info collection on Android without Vulkan.
Allows Vulkan info collection even if Vk is not enabled in ANGLE.
Also removes the system_utils error message so that the Android
test runner can parse the standard output without conflicts.
Bug: chromium:1133459
Bug: angleproject:5109
Change-Id: I7d7bff0f1c3e456342f27538812b33ee6cd1054b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2436657
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f8e5b97e
|
2020-09-28T23:31:41
|
|
Additional perf test cleanup & functionality.
Adds several new command line arguments and documents all args in the
README. Changes the trace tests to output milliseconds.
Bug: b/169600938
Change-Id: Ie8c7840a6a8958951992c806979dde6dc7d8a709
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2438194
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
34f66126
|
2020-09-10T15:59:22
|
|
Vulkan: Check that its okay to add commands
It can be hard to tell sometimes when the mRenderPassCommands or
mOutSideRenderPassCommands command buffers have changed and there have
been some issues with code that locally caches a pointer to a
commandBuffer that then becomes invalid.
This change adds checking so that if a command is being added to a
commandBuffer that's been closed (e.g. submitted for processing) then we
hit an assert.
Bug: b/168144059
Change-Id: If5d37c462e3bcb51f6ec2ca44c27a2fad4e57c19
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2405812
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
463e02e6
|
2020-09-29T14:46:46
|
|
Vulkan: Constants for unpacked D/S attachment indices
kClearValueDepth/StencilIndex is renamed and repurposed in other places
where depth and stencil are placed at indices MAX_DRAW_BUFFERS and
MAX_DRAW_BUFFERS+1.
Bug: angleproject:4836
Change-Id: Idaeff5017d944d786a5f388c4f1ce3a4e3fe9b7d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2437505
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
43163491
|
2020-09-22T11:45:06
|
|
Vulkan: Unresolve depth/stencil MSRTT attachments
Using the same shader that unresolves color, this change allows
depth/stencil to be unresolved as well.
In turn, this allows the depth and stencil loadOp/storeOp of the
implicit multisampled image associated with a
multisampled-render-to-texture renderbuffer to be set to DONT_CARE.
Stencil unresolve depends on VK_EXT_shader_stencil_export. In the
absence of this extension, the stencil aspect is not unresolved and must
continue to use loadOp=LOAD and storeOp=STORE. This is not ideal, but
the expected use-case of depth/stencil MSRTT renderbuffers is that they
get invalidated, so that load and store wouldn't happen in practice.
Bug: angleproject:4836
Change-Id: I9939d1e15e10fa8ed285acdd6fe6edb42c59054f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2427049
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
74ed9b65
|
2020-09-16T16:50:31
|
|
Support EXT_color_buffer_half_float on WebGL 2.0 contexts
EXT_color_buffer_half_float was recently updated to be valid for
WebGL 2 contexts because iOS can't support EXT_color_buffer_float.
Bug: angleproject:5038
Change-Id: Ib0d35c6b26a6cd215ff6725e92c47d1efd64e048
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2415187
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
f57b00f1
|
2020-09-28T09:53:52
|
|
Vulkan: Don't modify mReadOnlyDepthStencilMode in syncState()
We're currently looking for any deferred clears before disabling
read-only depth/stencil mode in FramebufferVk::syncState(). This CL
removes that checking, since read-only D/S mode is configured at the
start of a render pass, so it doesn't need to be updated again as part
of changing framebuffers.
Bug: b/168953278
Test: CQ
Change-Id: I386114640f2b763c964d5ef0c18b1d31449a6f1f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2435497
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
43a3519d
|
2020-09-29T11:45:58
|
|
Add Samsung to ANGLE vendor list
Add Samsung's PCI-SIG vendor ID to ANGLE's
list of known vendors.
Bug: angleproject:5111
Change-Id: I0ec7b6b0dd057fc02828ccb3bfd597591cd7a9ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2438930
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6e36029d
|
2020-09-28T21:57:08
|
|
Disable Mock ICD perf tests on Android.
Bug: angleproject:5084
Change-Id: Iafff2adbd8bfc2844c43ca31329f3f8be1250631
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2438193
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
981a401e
|
2020-09-25T08:00:28
|
|
Add Context* to EVENT() & DebugAnnotator::beginEvent()
This will make it easier for us to record GLES calls and log them with
Vulkan vkCmd*DebugUtilsLabelEXT()
Bug: b/162068318
Change-Id: I6bddf086ef39cbaca313409802bbb4f2da0d85cc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2432193
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3af07fd5
|
2020-09-24T14:26:11
|
|
EXT_float_blend is core in ES 3.2
Bug: angleproject:5098
Change-Id: I084defba9dd83153a9b8d2ee83f7d50e82eb154c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2430164
Reviewed-by: Shrek Shao <shrekshao@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
2663e601
|
2020-09-24T18:28:31
|
|
Vulkan: Dynamically grow descriptor pool sizes
Initial testing using benchmarks shows that the majority of the
descriptor pools allocate fewer than 32 descriptor sets worth of
descriptors. This CL reduces the initial size of each pool from 128 to
32 to reduce memory consumption.
Additionally, when a pool is exhausted and a new one is created, the
size of the pool doubles each time, up to a max of 512 descriptor sets
worth of descriptors. This allows us to aggressively increase the size
of the pools that appear to be very hot and decrease the total number of
pools created.
Bug: angleproject:5067
Test: CQ
Change-Id: I190059cf04134902d6251d475dd908c1cbb82b58
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2430193
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
6612da1f
|
2020-09-25T09:52:58
|
|
GL_OES_texture_stencil8 autogen
Add extension string to registry_xml.py and autogen files.
Bug: angleproject:3231
Change-Id: I57d7f8d8e9292f32b2ae461c539296eb63ce26d4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2432270
Commit-Queue: Jeff Vigil <j.vigil@samsung.com>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
19e9df68
|
2020-09-23T23:37:17
|
|
Re-land "Add a small unit test that dumps system info."
Re-land fixes the GL APIs accidentally leaking into the test.
We can use this in the trace gold tests to identify system properties.
The test uses Vulkan info collection when available and dumps out the
known GPU info as JSON.
Bug: angleproject:4090
Bug: b/168049670
Change-Id: I1481fee14ed8c573f10164d74ec27701e1ad80ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2433090
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
1179b299
|
2020-09-25T21:33:10
|
|
D3D11: Enable renderable mipmap generation.
This path might have been broken some time back with the "setData"
path enabled.
This speeds up sRGB mipmap generation considerably.
Bug: chromium:1130678
Change-Id: Id1c22bc1cfb815339bad5955ce990fe9f48d8b5b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2432112
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6f521921
|
2020-08-24T11:29:33
|
|
Vulkan: Use one triangle for full-screen utils
In tiling GPUs, using two triangles means the tiles intersecting the
seam would be processed twice.
Bug: angleproject:4936
Change-Id: Ib10b77e6ab15bba932f0e4e970e10ed5a8399cdd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2372623
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
88dd1a59
|
2020-09-26T18:21:19
|
|
Revert "Add a small unit test that dumps system info."
This reverts commit 52ee81cfdc13d3f44c1b5db041b14f236c57188c.
Reason for revert: Causes build failure on Android (https://ci.chromium.org/b/8868097753228061152), and is blocking ANGLE roll (crrev.com/c/2433419)
Original change's description:
> Add a small unit test that dumps system info.
>
> We can use this in the trace gold tests to identify system properties.
> The test uses Vulkan info collection when available and dumps out the
> known GPU info as JSON.
>
> Bug: angleproject:4090
> Bug: b/168049670
> Change-Id: Ib8d2244d82b650b94818da30adab180b471af556
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2427872
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Cody Northrop <cnorthrop@google.com>
TBR=cnorthrop@google.com,jmadill@chromium.org
Change-Id: I2b87c323c896be67aa9fbee2cad980927d551d7f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:4090
Bug: b/168049670
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2433089
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ae24f28a
|
2020-09-22T17:33:32
|
|
Vulkan: Move mReadOnlyDepth out of FramebufferDesc
The depth read only or not should not affect VkFramebuffer creation.
RenderPasses with just depthstencil layout differences are considered
compatible. This CL moves this out of FramebufferDesc into
FramebufferVk.
Bug: b/168953278
Change-Id: I5bd05b262b7b3b0dc70f9fb8fc4a3db5e7082916
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2425032
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d2d9e682
|
2020-09-15T16:06:42
|
|
Vulkan: Use DepthStencilReadOnly when it is read only.
We are tracking depth and stencil read or write during the renderpass.
We can use that to switch to DepthStencilReadOnly layout if both depth
and stencil are not writing. This allows drivers to optimize out the
storeOp for the renderpass.
Bug: b/168953278
Change-Id: Id82e06b4bae1ae8c83d880bb5e58accfa61f8191
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2411336
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
52ee81cf
|
2020-09-23T23:37:17
|
|
Add a small unit test that dumps system info.
We can use this in the trace gold tests to identify system properties.
The test uses Vulkan info collection when available and dumps out the
known GPU info as JSON.
Bug: angleproject:4090
Bug: b/168049670
Change-Id: Ib8d2244d82b650b94818da30adab180b471af556
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2427872
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
a3b16c6b
|
2020-08-28T16:14:30
|
|
Vulkan: Workaround vkCmdClearAttachment bug on Pixel
Adds a workaround to use draw calls to clear color instead of
vkCmdClearAttachment when the clear happens in the middle of render
pass. On Pixel phones, vkCmdClearAttachment races with the previous
draw calls in the render pass.
Bug: b/166809097
Change-Id: I8c96b87793da191757635658ad4ee2c3a7875aca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2382416
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
5173a8e1
|
2020-09-23T23:01:21
|
|
Enable Vulkan SystemInfo on more platforms.
Can be used in the gold tests to produce device info.
Bug: angleproject:4090
Bug: b/168049670
Change-Id: I60d3ddc7d17cd00aa816dd266a54f6d6a62770d7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2427871
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
32ed3e71
|
2020-09-21T23:42:34
|
|
Vulkan: Make UtilsVk not contribute to occlusion queries
UtilsVk implements some functionality with draw calls. Of these draw
calls, clear was accidentally contributing to occlusion query results.
Additionally, the copyImage utility creates its own framebuffer and thus
directly creates a render pass, bypassing ContextVk::startRenderPass.
This change also fixes bugs where occlusion query handling assumed
mRenderPassCommandBuffer to be valid and correspond to the started
render pass command buffer, which is not true for the copyImage render
pass.
Bug: angleproject:5042
Change-Id: I19cdbb8fbeabf139791b314a6da265ac5cfd68e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2423209
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
353b7bdd
|
2020-09-25T16:56:29
|
|
Skip BootAnimationTest.DefaultBootAnimation on Win NVIDIA Vulkan
Flaky fails and leads to hangs on GTX 1660 with 456.38 driver.
Bug: angleproject:5085
Change-Id: Id95b1784e484694b96ba9fc7ce084b30951c260a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2432625
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
001c7e8c
|
2020-09-21T13:25:46
|
|
Vulkan: Link PPO during draw validation
From the OpenGL ES 3.1 spec:
11.1.3.11 Validation
It is not always possible to determine at link time if a program object
can execute successfully, given that LinkProgram can not know the state
of the remainder of the pipeline. Therefore validation is done when the
first rendering command which triggers shader invocations is issued, to
determine if the set of active program objects can be executed.
For draws, this CL moves the PPO link operation to ValidateDrawStates()
to generate PPO link failures within ANGLE's validation layer, so we
fail any rendering commands during command validation.
For dispatch, PPOs are linked during Context::prepareForDispatch(),
where the PPO is converted from draw to compute, since that conversion
requires a re-link. This re-link shouldn't fail due to errors that would
have been caught during validation, since the compute shader must have
successfully linked before it can be included in the PPO in the first
place. We don't re-link when converting back to draw, since it's
possible there are validation errors (which we want to catch during
validation of the next rendering command).
Bug: angleproject:5064
Test: dEQP.GLES31/functional_separate_shader_validation_es31_*
Test: ContextNoErrorTest31.DrawWithPPO
Test: ProgramPipelineTest31.VerifyPpoLinkErrorSignalledCorrectly
Change-Id: Ibb249e893c007a83cc6b813f848a660bfa34ecb0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2422375
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
fc4e3cf2
|
2020-09-23T08:41:18
|
|
Vulkan: fix ASSERT issue in ResourceSerialFactory
Refactor ResourceSerialFactory::issueSerial so that the ASSERT is valid
in a threaded environment. Otherwise it's possible for another thread to
increment mCurrentUniqueSerial in the middle of the ASSERT.
Bug: b/168744561
Change-Id: I7208e8be91b21c50ad4a260d02d69f5b7dab2efe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2426685
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
7bed2a5b
|
2020-09-22T23:37:54
|
|
Capture commit position into Android Manifest.
Bug: b/168736059
Change-Id: I2ec1e284f0c51269a60f3b0e51036523258b501e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2425198
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
65311748
|
2020-09-25T13:11:26
|
|
Vulkan: Disable MSRTT on AMD/Windows
Due to buggy drivers on the bots
Bug: chromium:1132366
Change-Id: Ia7a021991fcbd409289915f9121a07d8e5b232c6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2431570
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a2d8bbb5
|
2020-09-18T18:18:34
|
|
Vulkan: Add GL_EXT_buffer_storage extension support
Addition of support for immutable storage to buffer objects.
Also adds new end2end tests for these usecases
* Basic BufferStorage
* SubData update
* map/unmap buffer
Bug: angleproject:5056
Tests: angle_end2end_tests --gtest_filter=BufferStorageTestES3*Vulkan
Change-Id: Iba74b372ad033711927b63c6a04cec0eeb4db699
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2419952
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
68dcea7b
|
2020-09-25T10:52:32
|
|
Suppress flaky Multithread Android end2end_test.
MultithreadingTest.MultiContextDrawWithSwapBuffers/ES3_OpenGLES_NoVirtual
Bug: angleproject:5099
Change-Id: Ide1376702c95103cf988f05ffe0d61e1166f3beb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2432064
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
62778cb9
|
2020-09-22T23:10:04
|
|
Rename version/commit headers.
Prefix the files with angle_ to disambiguate them from other tools.
Bug: b/168736059
Change-Id: I7be25ca18fb69d7f2ab71bdf355932865d134954
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2425197
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0725c1ed
|
2020-09-22T22:56:53
|
|
Add ANGLE commit position to version.h.
Bug: b/168736059
Change-Id: If35210cfc91781cab6f40a1f03a4e82ada90690f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2425196
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
1677cf14
|
2020-09-13T20:14:59
|
|
Metal: Implement Uniform buffers
Uniform buffer is implemented in two forms:
- If number of ubo used in shader program is low, each buffer will use
one discrete Metal buffer slot.
- If number of ubo used is large, they will be embedded into one Metal
argument buffer. Argument buffer is similar to Vulkan descriptor set.
This is due to limit of number of Metal's discrete buffer slots which
is only 31 and over half of them are already used by vertex
attributes, default uniforms, driver uniforms, etc. The downside is
that whenever a buffer binding is changed, the argument buffer must be
updated also.
Added empty TransformFeedbackMtl implementation to enable ES3 context
creation on Metal.
Bug: angleproject:2634
Change-Id: I69325696fac735cb45ab88ab55468c0991abc317
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2408593
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>
|
|
962e3473
|
2020-09-25T00:22:27
|
|
Fix return code of restricted trace tests.
The prior script was incorrectly comparing a boolean result with a
number and producing the opposite result: True would be reported as a
failure, and False would be reported as success.
Bug: angleproject:4090
Bug: b/168049670
Change-Id: I47ec684a57c455c6a833232d0a49774b265f7b39
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2430667
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
69da0b92
|
2020-09-13T20:00:19
|
|
Metal: Use shared memory for small dynamic buffers.
- If BufferMtl is static or large size, don't use shadow copy. Use one
MTLBuffer and map directly on it.
- If BufferMtl is dynamic and small size, use shadow copy and buffer
pool of 10 MTLBuffer (s). The MTLBuffer is allocated in shared memory
in this case (PCI-E memory for example). MTLBuffer in shared memory
region doesn't need to sync content between CPU and GPU.
- When copyBuffer, if BufferMtl is being used by GPU use blit command to
do the copy on GPU side.
- Also implemented GL_MAP_UNSYNCHRONIZED_BIT.
Bug: angleproject:2634
Change-Id: I7a5aab309d24c76106a7087358ee5883ee05d250
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2408592
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>
|
|
d59bccb5
|
2020-09-23T10:20:35
|
|
Vulkan: updateRenderPassDesc may lose color attachment data
FramebufferVk::updateRenderPassDesc() is resetting entire
mRenderPassDesc, which may lose color unresolve attachments. This CL
makes sure that when we toggle depth stencil buffer's read/write access,
we do not reset the whole mRenderPassDesc. Instead we only update the
depth stencil attachment's access.
Bug: b/168953278
Change-Id: Ia9df2d8ac81ebf2da8a360ba1293faf6c14b2738
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2426468
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
7bd8bd9f
|
2020-09-24T17:11:56
|
|
Skip PBO test on TSAN.
Texture2DTest.TexStorageWithPBO/ES2_OpenGL is flaky.
Bug: b/168744561
Bug: angleproject:5097
Change-Id: Ide9b5a7d22e86c6eccd83ebc3bce6797b90150a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2430163
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
54dbd5e7
|
2020-09-23T16:10:12
|
|
Vulkan: Add mutex around queueSubmit related data
There are several queueSubmit related members of RendererVk that can be
accessed from multiple threads. Adding mutex around thoses accesses
resolves race condition flagged by TSAN.
Add stress test for QueueSerial handling
Add test to catch race issue in garbage collection found by TSAN.
Test:
angle_end2end_tests MultithreadingTest.MultiContextDrawWithSwapBuffers
angle_end2end_tests MultithreadingTest.MultiContextCreateAndDeleteResources
Bug: b/168744561
Change-Id: I238cce9052476710778a3b35f8531891d90ddd6e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2415402
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
7a0faa82
|
2020-09-24T20:15:26
|
|
Revert "Pass #pragma optimize setting down to compilation."
This reverts commit 499173de1c91932ba272269cab6918bf7e8d7c11.
Reason for revert: Causes unexpected HLSL compiler errors in some
cases. See bug.
Bug: angleproject:5094
Original change's description:
> Pass #pragma optimize setting down to compilation.
>
> This will allow us to disable optimizations in the back-end. This can
> be useful both for developers and for ANGLE to disable very slow
> shader compilation on D3D11.
>
> Also apply this pragma to VerifyMaxVertexUniformVectorsWithSamplers.
> Reduces compilation time by half in local testing.
>
> Bug: angleproject:5076
> Change-Id: I64ad576e11b9cee5b41f8af0d3621570304d65c2
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2420749
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
TBR=geofflang@chromium.org,jonahr@google.com,jmadill@chromium.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: angleproject:5076
Change-Id: I733e788fe8e9421ae0af662c0eb51af1ed79dde3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2429517
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f024f54b
|
2020-09-24T12:05:38
|
|
Explicitly filter assignments to sources variable
set_sources_assignment_filter() is considered as a mis-feature
of gn (as it makes it difficult to reason about the BUILD.gn
files individually).
Change libGLESv2.gni in angle to check the platform before
adding plaform-specific source files to "sources" variable.
This will allow removing the global sources assignment filter
from Chromium codebase.
Bug: chromium:1018739
Change-Id: I5db637a583d9cf547f6f175baa445d47751e6a3c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2428763
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
68a5baeb
|
2020-09-23T22:13:03
|
|
Revert "Vulkan: Implement a SharedResourceUse pool"
This reverts commit de335c16855f11d1f0a6f0b37bee30c8a09a6c1d.
Reason for revert: Might actually regress CPU overhead perf.
Unsure but it's possible the reported perf improvement was due
to variance.
Original change's description:
> Vulkan: Implement a SharedResourceUse pool
>
> When adding a Resource to the ResourceUseList of ContextVk
> we constructed a new SharedResourceUse object for tracking
> and update of the Resource's Serial. We would then delete
> it after releasing the resource. This incurs repeated
> memory operation costs.
>
> Instead we now allocate a pool of SharedResourceUse objects
> and acquire and release from this pool as needed.
>
> VTune profile of the Manhattan 30 offscreen benchmark
> shows the CPU occupancy of bufferRead decrease from an
> average of 0.9% -> 0.6% and imageRead decreases from
> an average of 0.4% -> 0.3%. The bottleneck for both
> these methods is the retain() method that leverages
> the new SharedResourceUse pool.
>
> Bug: angleproject:4950
> Change-Id: Ib4f67c6f101d4b2de118014546e6cc14ad108703
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2396597
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
TBR=syoussefi@chromium.org,jmadill@chromium.org,m.maiya@samsung.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: angleproject:4950
Change-Id: I40081551c3db67d6e55182fea40119946ed16ac3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2426479
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a76b6836
|
2020-09-17T22:40:42
|
|
Vulkan: Support MSRTT depth/stencil resolve
VK_KHR_depth_stencil_resolve is used by this change to resolve
depth/stencil multisampled-render-to-texture renderbuffers.
This extension is not widely supported yet. If it's not present, the
depth/stencil resolve operation is silently ignored and the renderbuffer
acts as a normal multisampled one. This is not correct, but our primary
user (Chrome), and most applications don't care for the resolved
depth/stencil data. In fact, it's recommended for the depth/stencil
attachment to be invalidated after rendering.
Exposing EXT_multisampled_render_to_texture even in the absence of
depth/stencil resolve allows the majority of the applications to still
take advantage of MSRTT color attachments.
Bug: angleproject:4836
Change-Id: I6ba4187344a0c9330d2c77bdc5e2c6fc5483c299
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2417645
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
f0b02054
|
2020-08-06T20:55:05
|
|
Add a Vulkan feature to compress float32 vertex formats.
Use the vertex conversion pipeline in VertexArrayVk to detect
static vertex data and convert float32 vertices to float16. This
feature is useful for determining if an allication is vertex
bandwidth bound and seeing what gains could be had by using smaller
attributes.
This feature could be implemented in ANGLE's frontend but new
infrastructure for converting and storing the converted attributes
would need to be added to gl::VertexArray. Our backends already
have the functionality needed to handle unsupported attribute formats
and this can be repurposed for compressing vertex formats.
Bug: b/167404532
Bug: b/161716126
Change-Id: I9a09656a72e8499faa4124adf876d7261c8341c9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2342285
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
483473ae
|
2020-09-23T15:52:29
|
|
Vulkan: Relax ASSERT in SemaphoreVk::wait()
The assert in SemaphoreVk::wait() was verifying that acquired images
don't have any staged updates. That assert was failing for images with
emulated image formats, which may have staged updates to clear the image
after initialization.
Bug: chromium:1096746
Change-Id: I74658a8ae48e6c09aa4a859ceb1e2a7099e021c0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2427551
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Michael Spang <spang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|