|
73ec28af
|
2022-03-23T21:13:45
|
|
Revert "Vulkan: Fix invalid access with display texture share group."
This reverts commit 1099b5ef2279cfe1988a39c8e011aada59c650f1.
Reason for revert: suspect culprit of 1309304
Original change's description:
> Vulkan: Fix invalid access with display texture share group.
>
> Create bufferpool that owns by RendererVk.
> If we are using EGL_ANGLE_display_texture_share_group
> extension, use the bufferpool owned RendererVk,
> otherwise, use the bufferpool owned by EGL::ShareGroup.
> The bufferpool lifetime will remain consistent with
> texture lifetime.
>
> Bug: chromium:1299211
> Change-Id: Ie4e87cea1dfd20dabab24e2afed6ddd92e469888
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3531155
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Bug: chromium:1299211, 1309304
Change-Id: Ibdc119ef6bb52352858114d72a0f1c0edcd4da5e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3546288
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Shrek Shao <shrekshao@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
1099b5ef
|
2022-03-17T17:20:44
|
|
Vulkan: Fix invalid access with display texture share group.
Create bufferpool that owns by RendererVk.
If we are using EGL_ANGLE_display_texture_share_group
extension, use the bufferpool owned RendererVk,
otherwise, use the bufferpool owned by EGL::ShareGroup.
The bufferpool lifetime will remain consistent with
texture lifetime.
Bug: chromium:1299211
Change-Id: Ie4e87cea1dfd20dabab24e2afed6ddd92e469888
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3531155
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
20e7bbb7
|
2022-03-18T17:03:18
|
|
Vulkan: Fix invalidate of attachments with emulated format
Some image formats may be emulated such that the emulated format has
more channels than the original. ANGLE clears the image once so that
these extra channels contain valid values, and carefully ensures they
are never modified.
For swapchain images with such formats, as they are automatically
invalidated at the end of the frame, a workaroud was added to make sure
they are re-cleared in the beginning of the next frame. This however
doesn't fix the issue of glInvalidateFramebuffer resulting in the
contents of attachments with such formats to be discarded (even if the
following render pass clears it, the contents are invalid in between).
This change instead makes sure invalidate of images with emulated
formats that have extra channels are handled appropriately:
- On IMR hardware, the invalidate is dropped altogether as it provides
little to no benefit.
- On TBR hardware, a clear is automatically staged on the invalidated
image.
The latter replaces the workaround that was added to make the following
render pass use loadOp=CLEAR, by adding a clear that's respected
regardless of what the future usage is.
This change also paves the way for a future change where the invalidate
of color attachments is tracked in render passes similarly to how
depth/stencil currently is. With this change, the image is no longer in
an inconsistent state where its contents are considered invalid, even
though some channels are meant to remain valid.
Bug: angleproject:6860
Change-Id: Iec5b4854dfbe3a0bf93cd5aa82c19fe116065744
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3536389
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
730c1271
|
2022-01-07T13:41:08
|
|
Vulkan: Submit queue more often for texture data
Outside command buffers should be flushed more often in order
to prevent the texture data accumulation just before the first
render pass when they are referenced.
* Added a tracker next to copyBufferToImage() for texture size
(in ContextVk). When its value passes kMaxBufferToImageCopySize,
the outside command buffer operations should be submitted and
the tracker would be reset. Currently, the threshold value is
set to 1 << 28 = 256M.
* Added a variation of submitFrame() to be used in outside
command buffer submission. The main difference is that it
copies mResourceUseList into GetShareGroupVk() rather than
move it.
* Refactored the two functions into submitFrameImpl().
* Added a helper function to submit the outside command
buffer.
* Added explicit copy functions for ResourceUseList and
SharedResourceUse. The counter in the copied object is
incremented by 1.
* Added a test to make sure submitting the outside command
buffer does not break the render pass.
Bug: angleproject:6354
Change-Id: Ia1d4f857fcbd06934609c94622ccbf675b3b1c72
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3379231
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
093d4287
|
2022-03-21T12:57:10
|
|
Roll vulkan-deps from 51988dcdccbf to 61b4f5b95321 (21 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/51988dcdccbf..61b4f5b95321
Changed dependencies:
* vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/384881cc90..32c07c0c53
* vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/6c8f1627a3..af4bf61013
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC ynovikov@google.com on the revert to ensure that a human
is aware of the problem.
To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: angleproject:7105
Change-Id: Id26d7dfdd9745f549ea08f584e4dd9dc88b7bc90
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3539789
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
f6910a9a
|
2022-03-20T22:43:57
|
|
Vulkan: Update pipeline creation doc
Bug: angleproject:4889
Change-Id: Idb97d0484a716300feb9ed9a3fd882fbec870dbf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3539440
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e56f185b
|
2022-03-19T10:41:50
|
|
Metal: clarify instance count assertions
Bug: angleproject:6963
Change-Id: I5a686d560efb7912b3426560c8be2806a943158c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3536659
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
9637185c
|
2022-03-10T15:38:13
|
|
Add ForceGPUSwitch to EGL_ANGLE_power_preference
eglHandleGPUSwitch() does not work with WebKit sandbox profile.
The root cause is that we do not know the
primary display, and as such we do not know which GPU drives this.
Add eglForceGPUSwitchANGLE(display, gpuIDHigh, gpuIDLow).
This lets the caller figure out the GPU in another process. Then
the caller can just set the GPU in the sandboxed process.
Add tests that are disabled by default until the runner and the
infrastructure supports running the tests with automatic switching
enabled.
Bug: angleproject:7092
Change-Id: I316ee431156596effbdb89659a5e24291719a204
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3516274
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
7c616871
|
2022-02-01T15:12:53
|
|
Metal: Implement ANGLE_base_vertex_base_instance
Includes command buffer and MSL translator updates.
The DrawElementsInstancedBaseVertexBaseInstance tests from
DrawBaseVertexVariantsTest suite fail for dynamic draw and
stream draw buffer usages.
Bug: angleproject:6963
Change-Id: I6caa144860356d5fc85948b72458bec282ea3a3b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3429819
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
e74d0e81
|
2022-02-11T18:05:12
|
|
Vulkan: Implement EGL_KHR_partial_update
This change provides a trivial implementation of partial
update that does nothing, making apps that want this
extension happy. A possible efficient Vulkan implementation
would use the damage set to narrow down render area, but it
appears to only be useful for only some TBDR hardware.
Bug: angleproject:6960
Reviewed-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Change-Id: Ic553ac9590c336093f1bf25a6521574622599bf6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3427640
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Auto-Submit: Constantine Shablya <constantine.shablya@collabora.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b74d6768
|
2022-03-17T16:48:21
|
|
Vulkan: Refactor D/S usage tracking in render pass
This is in preparation for doing the same for color images. That is in
turn in preparation for optimizing mid-render-pass clears, which require
an answer to the following query: "has this color image been read from /
written to so far in the render pass?"
Bug: angleproject:5048
Change-Id: I8abe97919897b8fbf644482071bf7326ca3325d6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3533143
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a55526a5
|
2022-03-17T11:11:37
|
|
Vulkan: Ignore VUID-vkCmdDraw-None-06538.
Suspected as being incompatible API usage in ANGLE.
Bug: angleproject:7105
Change-Id: I8c806b1ae090c5bedd762c1539a228c31a553858
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3533140
Auto-Submit: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
22f177eb
|
2022-03-17T16:58:37
|
|
Vulkan: Expose advanced blend for non-coherent devices as well
Reliance on coherent behavior was accidental.
Bug: angleproject:3586
Change-Id: I86d055cf640368b57256910764c44596b23ccdd8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3535299
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
44e84661
|
2022-03-17T15:02:21
|
|
Revert "Emulate RGB10 (no alpha) on desktop OpenGL."
This reverts commit 6404be2defd3ded3ff2f0437bb87fe515e10f2a7.
Reason for revert: Extension was not fully enabled due to test bug.
Original change's description:
> Emulate RGB10 (no alpha) on desktop OpenGL.
>
> The OpenGL ES extension GL_EXT_texture_type_2_10_10_10_REV
> requires RGB and RGBA formats to be supported but Desktop OpenGL
> does not support RGB. Emulate it with the existing
> emulatedAlphaChannel path in TextureGL.
>
> Bug: chromium:1300575
> Change-Id: I0e6d1044afbc55cf6d4f987cc98b357ff11ff006
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3517346
> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Bug: chromium:1300575
Change-Id: Ib3810a18888544f1700a1f648a5094c19973d86d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3533139
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
479f1988
|
2022-03-17T11:50:46
|
|
Simplify ValidCompressedBaseLevel
Bug: angleproject:7099
Change-Id: I9592aebde56808556f72b2b94a39f94d077f9db2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3529527
Reviewed-by: Brandon Schade <b.schade@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
b465a736
|
2021-12-21T12:52:40
|
|
Metal: Remove redundant CommandQueue::mMetalCmdBuffersTmp
Instead of a member variable, instantiate the temporary
at the use site.
Bug: angleproject:6842
Change-Id: I64848bc937ce2945e6ac55adea8a6dffcaf9b00d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3347649
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: John Cunningham <johncunningham@apple.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
e8ee847d
|
2022-02-23T12:25:39
|
|
Vulkan: Add UpdateDescriptorSetsBuilder.
This helper class encapsulates the vkUpdateDescriptorSets caching.
As part of the refactor, we switch passing a ContextVk to passing
a vk::Context with some mutable variables. This helps encapsulate
ContextVk. Since we use the perf counters in many places, this CL
moves the perf counters to vk::Context, so we can access them
everywhere.
Refactoring change only.
Bug: angleproject:6776
Change-Id: Id529962b2f425bece6f9b3bd0cd1698c692e58cb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3484980
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
98bb4f32
|
2022-02-23T16:51:32
|
|
Vulkan: Implement advanced blend through extension
This change exposes GL_KHR_blend_equation_advanced if
VK_EXT_blend_operation_advanced is supported. No emulation is yet
implemented.
Bug: angleproject:3586
Change-Id: Ie7a442c22e028e3aa45ccef52db320e205664d49
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3487951
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3ddb21fd
|
2022-02-23T14:15:48
|
|
Front-end support for KHR_blend_equation_advanced
Bug: angleproject:3586
Change-Id: I27086295e7455ce8848db1c6004917fea40202e8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3484785
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
459bdc2f
|
2022-03-16T12:04:38
|
|
Reintroduce validation check only for D3D
To avoid undefined behavior, D3D requires the
base mip level to have multiple-of-4 dimensions.
Add this validation check back in.
Bug: angleproject:7099
Change-Id: Id51f6cd4c745455062b864c0d291b9857e985e35
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3530499
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Commit-Queue: Brandon Schade <b.schade@samsung.com>
|
|
1dc9f126
|
2022-03-16T19:29:26
|
|
Revert "Flush the texture staged updates when destroying context share group"
This reverts commit 5c29d795d1625f71ac6999f157b6f3bba79d5256.
Reason for revert: this is causing some test failures on chromium and blocking the angle-chromium auto roller job: https://chromium-review.googlesource.com/c/chromium/src/+/3529771/
Original change's description:
> Flush the texture staged updates when destroying context share group
>
> If we are using the extension EGL_ANGLE_display_texture_share_group,
> flush the texture staged updates upon destroying the context. With the
> extension enabled, the texture could still be alive when both context
> and its' EGL::ShareGroup are destroyed. If we have staged updates not
> yet flushed, the updates will keep the ShareGroupVk bufferpool occupied,
> causing an error upon ShareGroupVk::onDestroy().
>
> Bug: chromium:1299211
> Change-Id: I260de93c3a3099e023e31acbe017803e824459ad
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3495879
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Bug: chromium:1299211
Change-Id: I214161d6a8aec834e1efc5fc9d2479e62e3bfae0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3530505
Auto-Submit: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ed590dc8
|
2022-03-11T12:54:44
|
|
FrameCapture: Add override for Glsizei* types.
Fix capturing glGetSynciv with null lengths on Linux.
When calling the default WriteParamValueReplay handler with a
nullptr, ostream on Linux will write `(nil)`.
This fixes retracing all traces containing glGetSynciv calls with null
lengths.
Add a NullLength test to FenceSyncTests that used to fail in the
capture_replay_tests.
Test: capture_replay_tests.py --gtest_filter=FenceSyncTest.NullLength/*
Bug: angleproject:7071
Bug: angleproject:6808
Change-Id: I0a2bd4db744ce2a026cd932ba0f2f4747672fcc8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3526653
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
63b54d9d
|
2022-03-09T17:04:13
|
|
Do not copy parent layer frame position
The position value in a frame refers to its relative position to
its parent. We do not want to copy that to its new child layer.
Test: when using ANGLE (with metal or swiftshader backend) with
emulator frame, it should render the emulator at the right
position.
Bug: angleproject:7097
Change-Id: I94f78e1253d7ee016bf7ab512d908f75250ce9c7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3523622
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Auto-Submit: Yahan Zhou <yahan@google.com>
Reviewed-by: Yahan Zhou <yahan@google.com>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
349636a0
|
2022-03-15T09:39:36
|
|
Vulkan: Update mCurrentElementArrayBuffersync based on dirty bit
The previous fix crrev.com/c/3513553 has run into corner case that
requires more follow up change crrev.com/c/3522565. But with that, there
is report that now we are hitting assertion in
handleDirtyGraphicsIndexBuffer(). This becomes a bit fragile This new
fix relies on the DIRTY_BIT_INDEX_BUFFER dirty bit and should be more
reliable as long as the dirty bit is set properly (if not, then we have
other bug that it won't even send down vulkan command to bind the
correct element buffer). We could further optimize the code path and
create a fast path for most common usages in the future.
Bug: chromium:1299261
Change-Id: Ifa8f86d431798c9ca4c128ed71a3e9e0a3537ccb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3526021
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
5c29d795
|
2022-02-28T23:56:46
|
|
Flush the texture staged updates when destroying context share group
If we are using the extension EGL_ANGLE_display_texture_share_group,
flush the texture staged updates upon destroying the context. With the
extension enabled, the texture could still be alive when both context
and its' EGL::ShareGroup are destroyed. If we have staged updates not
yet flushed, the updates will keep the ShareGroupVk bufferpool occupied,
causing an error upon ShareGroupVk::onDestroy().
Bug: chromium:1299211
Change-Id: I260de93c3a3099e023e31acbe017803e824459ad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3495879
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
6baf1675
|
2022-03-04T11:04:46
|
|
Remove invalid validation check on compressed texture formats
Remove the ValidCompressedDimension() check for non-WebGL
contexts of compressed formats. This is because compressed
texture images can have dimensions that are neither multiples
of four nor small values like one or two.
Test: gtest_filter=*DXT1CompressedTextureTest.NonBlockSizesMipLevels*
Bug: angleproject:7099
Change-Id: Ic86c15dd3187ffab0665f6db21434fffcbe04fef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3526017
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Brandon Schade <b.schade@samsung.com>
|
|
d4ddd0c1
|
2022-03-10T16:31:00
|
|
Vulkan: Handle the case where the bound buffer is empty
If vertex attribute is enabled and buffer is bound, but buffer size is
0, we should not crash. This CL skips mapImpl and data copy all together
if size is 0 to avoid crash when calling mapImpl while buffer is
invalid.
This CL also added a test for this.
Bug: chromium:1296467
Change-Id: I79af348f133e1d3b4427f044e370652d0875dc91
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3516700
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
70af5ff0
|
2022-02-18T14:35:59
|
|
FrameCapture: Skip invalid VertexAttribPointer calls in MEC.
In CaptureVertexArrayState when a non-default VAO is bound and no
GL_ARRAY_BUFFER is bound, VertexAttribPointer calls with a non-null
offset are invalid and will produce:
"Client data cannot be used with a non-default vertex array object."
Add a test that leaves a vertex array with an invalid vertex
attribute pointer and used to produce an invalid trace with MEC.
Test: angle_end2end_tests --gtest_filter="VertexAttributeTestES3.InvalidAttribPointer/*"
Bug: angleproject:7042
Bug: angleproject:7098
Change-Id: Iaf91fe7f191c44df79db47bb5455e5df922f2ed5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3475353
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
d1415517
|
2022-03-15T06:45:23
|
|
Skip no-op base instance draw calls
Bug: angleproject:3402
Change-Id: I90f17307efb98934b1faf44f2efbdbcfa4db9e0c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3524342
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
b9b64b15
|
2022-03-15T06:31:32
|
|
Fix typo in DrawElementsInstancedBaseVertexBaseInstanceANGLE
Bug: angleproject:3402
Change-Id: I490695e45b4bec31ea9226c6a7df4d426759c53f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3524341
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
1760ce37
|
2022-03-03T17:29:12
|
|
Add usage of Spirv through glslang build flag
Add new build flag angle_use_spirv_gen_through_glslang.
If set, angle_enable_spirv_gen_through_glslang is enabled
and the generateSPIRVThroughGlslang feature is also enabled.
Bug: angleproject:6210
Change-Id: I8f4f71c2d01314a36b15fae795caa01a1ffa7fbc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3502529
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Brandon Schade <b.schade@samsung.com>
|
|
d914e7fb
|
2022-03-09T16:28:06
|
|
Add device id as a part of the key in EGLDisplay cache
Otherwise eglGetPlatformDisplay would return displays created
with other devices.
Bug: angleproject:7087
Change-Id: I6ad3fa03f02892afe43de7e7691fbba17a89d616
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3513753
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
708ce9cf
|
2022-03-14T10:37:31
|
|
Fix crash when pausing XFB then deleting a buffer.
Fix is to validate XFB buffer bindings even if we're paused.
This is undefined behaviour so we can use any non-crashing solution.
Bug: chromium:1305190
Change-Id: Ib95404cdb13adbde7f34d6cc77473a8b3cbf1de7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3522283
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e9d9d933
|
2022-03-14T09:33:28
|
|
Vulkan: Fix another corner case of mCurrentElementArrayBuffer
mCurrentElementArrayBuffer is vertex array state. But it gets modified
with different draw call parameters. When this changes, we always
re-calculate mCurrentElementArrayBuffer. And we have added
updateCurrentElementArrayBuffer call at various places where we need to
reset mCurrentElementArrayBuffer to back to what bound to vertex array.
There is still one more places missing such call, that when a different
vertex array is been bound, the new vertex array may still have
mCurrentElementArrayBuffer set to the special array for LineLoop. We
need to reset it upon it gets bound.
This CL also adds a new test case DrawElementsTest.LineLoopTriangles
from Steven Noonan.
Bug: angleproject:6955
Change-Id: Ida95062b071d25be26e59f886bfe3d61e6886c5c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3522565
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
b97aab3f
|
2022-03-09T17:36:24
|
|
Vulkan: resync mCurrentElementArrayBuffer when out of lineloop
When glDrawElements is called with GL_UNSIGNED_BYTE type or LineLoop
mode, we will internally allocate an element buffer and copy data to it.
But when we switch out of that mode, we must re-sync
mCurrentElementArrayBuffer to what it should be based on VertexArray
buffer binding. This CL fix the bug that we were previously not updating
it and end up using the wrong element buffer.
Also added three tests:
DrawWithSameBufferButDifferentTypes: that uses GL_UNSIGNED_BYTE data and
GL_UNSIGNED_SHORT data in the same buffer and switch between these two
data types without incurring buffer change.
DrawWithSameBufferButDifferentModes: draw line mode followed by triangle
without the same element buffer.
DrawArraysLineLoopFollowedByDrawElementsTriangle: draw line mode with
glDrawArrays and then followed by DrawElements.
Bug: chromium:1299261
Change-Id: I5c471117d300e9fac9127a9d8fa66d48ac312f03
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3513553
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
6404be2d
|
2022-03-10T11:04:22
|
|
Emulate RGB10 (no alpha) on desktop OpenGL.
The OpenGL ES extension GL_EXT_texture_type_2_10_10_10_REV
requires RGB and RGBA formats to be supported but Desktop OpenGL
does not support RGB. Emulate it with the existing
emulatedAlphaChannel path in TextureGL.
Bug: chromium:1300575
Change-Id: I0e6d1044afbc55cf6d4f987cc98b357ff11ff006
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3517346
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
a956162c
|
2022-03-01T13:05:29
|
|
Vulkan: Expose performance counters via extension.
This CL rewrites the Vulkan perf counters test to work in the
angle_end2end_test suite using the newly exposed AMD extension.
Note that we implement only a subset of the extension. Instead
of generating monitors and starting/stopping them we simply
read back all performance counter data at once using the special
montior value "0".
The CL also enables these tests on SwiftShader.
Bug: angleproject:4918
Change-Id: I5d8f6eecb1ccff448657cbdb65b51a225dfb90c0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3497538
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
af2e0c01
|
2021-12-13T20:47:25
|
|
Capture/Replay: Override GL_HALF_FLOAT type for legacy formats
Because GL_HALF_FLOAT and GL_HALF_FLOAT_OES have different values,
and the format table created by BuildInternalFormatInfoMap() and
queried to obtain the readback format uses GL_HALF_FLOAT_OES for
legacy formats, we have to override the type in this case.
Bug: angleproject:6333
Change-Id: Ibfdcf2ad80ccfb15872ab441c0f22f0851ffe3f0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3332721
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
66a5c924
|
2022-03-08T08:51:12
|
|
Remove unused Semaphore::init
Bug: angleproject:7086
Change-Id: If7bd40ec7cbfebd3238f6a23aa682a57c14bd22b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3511312
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ab786b21
|
2022-02-24T15:06:59
|
|
Vulkan: Non-mutable DmaBuf images
When creating Vulkan images, certain DRM format modifiers can only be
used without the mutable format flag.
Bug: angleproject:7027
Change-Id: I6d57a4be1c21d30a963b17794aad6806b22acac8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3488048
Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fe4fa1cb
|
2022-03-08T11:10:16
|
|
Vulkan: Tune pruneEmptyBuffers() to be a bit more aggressive
Right now we check every second and if we find a buffer is empty and
remains empty for 4 checks, we free the buffer. This means we may keep
peak memory usage for 4 seconds. This CL reduces the check to 1/4
seconds, so that a buffer will gets freed if not used for 1 second. Also
added a threshold to keep maximum count of empty buffers to 16. This CL
also optimizes pruneEmptyBuffers() function to avoid erase calls on each
empty buffer block. We set the pointer to null as we free the empty
buffer and a new loop is added at the end to remove all null elements at
once.
Bug: b/223428306
Change-Id: Iff93d6eb404ca22399b26c7adb7efe5c4b87270d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3511311
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
4cca6b3e
|
2022-03-08T14:54:02
|
|
Early return when rebinding the same buffer, sampler or texture
Bug: angleproject:6955
Test: SimpleStateChangeTestES3.BindingSame*
Change-Id: If946a7cf534809d21e49138d9f34dcee61a73627
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3029049
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2bfec1a2
|
2022-03-03T08:22:11
|
|
Vulkan: Add EGL to VULKAN mapping for BT2020 colorspace
Bug: angleproject:7072
Change-Id: I8d79a9ddcc9f0a4946c72821da25d0eda884d4cc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3508166
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2d12b321
|
2022-03-03T10:42:03
|
|
Remove limit on exposeNonConformantExtensionsAndVersions to expose 3.2
Fix an issue where using the feature
exposeNonConformantExtensionsAndVersions would still be
limited to version 3.1. Remove this restraint when the feature
is enabled. Continue to limit version to 3.1 if either it is a
WebGL context or Geometry and Tessellation shader support is
not present.
Bug: angleproject:3647
Change-Id: I17f46756c22d95b39f2fd9ecb2db7ce4de903a2a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3502173
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Commit-Queue: Brandon Schade <b.schade@samsung.com>
|
|
24c641dc
|
2022-03-01T11:12:38
|
|
Add stubs for AMD_performance_monitor.
We can piggy-back on this extension to report internal ANGLE
performance counters to the ANGLE tests.
Includes a minor variable de-duplication in the EP generator.
Bug: angleproject:4918
Change-Id: I4a76aea957b423a36a90349643bd50a4e1905849
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3497537
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
74f32702
|
2022-03-03T13:13:34
|
|
Metal: Fix for mulitsampled buffers losing their contents
Fixes tst included as well as WebGL CTS
https://www.khronos.org/registry/webgl/sdk/tests/conformance2/renderbuffers/multisample-draws-between-blits.html
Both fail on M1 without this fix.
Also fixes WebKit bug https://bugs.webkit.org/show_bug.cgi?id=237113
Bug: angleproject:7073
Change-Id: Id7baa2575c817561f8a0a99181c986b758376a8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3506089
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
ea70300b
|
2022-03-01T14:55:00
|
|
Fix base level changes not updating FBO completeness check.
Bug: chromium:1299264
Change-Id: I0881a4916c3eeb9ee023d28d207795899417d530
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3498282
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Auto-Submit: Jamie Madill <jmadill@chromium.org>
|
|
47977b0e
|
2022-03-01T15:24:51
|
|
EGL: Validate and implement dmabuf extensions
Add validation and default implementation of dmabuf extensions. Actual
implementation should be defined by concrete Display subclasses.
Bug: angleproject:7065
Change-Id: Ie8d7081f7bcb065c809a52a42abdb7af0e75c816
Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Signed-off-by: Constantine Shablya <constantine.shablya@collabora.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3497840
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2e7cfa9b
|
2022-02-22T13:10:12
|
|
Metal: Fix WebGL CTS fbomultisample tests failing in Metal
These tests were failing in Metal:
deqp/functional/gles3/fbomultisample.2_samples.html
deqp/functional/gles3/fbomultisample.4_samples.html
deqp/functional/gles3/fbomultisample.8_samples.html
This CL only fixed the tests failing on AMD. Intel still fails.
See: https://anglebug.com/7079
Bug: angleproject:7049
Change-Id: I745672bba2e9b8b1d34c7a81e07410889eddd35f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3482157
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
36132a26
|
2022-02-24T10:52:31
|
|
Reland "add host cached bit for staging buffer"
This is a reland of commit e1af34a6f4fbcdc9bf1da5498f87b6d2aa8b526b
Original change's description:
> add host cached bit for staging buffer
>
> bug: b/219974369
> Change-Id: Ia31109839af9cfa5b862b72152f7189c42e48e53
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3488773
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
bug: b/219974369
Change-Id: If1b69490a9cbe0784972d85d1ceac8d598c68def
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3503997
Reviewed-by: Hailin Zhang <hailinzhang@google.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
e67027c2
|
2022-02-15T17:21:44
|
|
Vulkan: Fix DRM format support verification
Include VkImageFormatListCreateInfo structure in pNext chains to both
support verification and creation functions.
Bug: angleproject:7027
Change-Id: I04ba396252c159f4d28dde002b7e07b7194623ab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3464856
Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com>
Reviewed-by: Craig Stout <cstout@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
36ce2646
|
2022-03-04T11:37:08
|
|
Vulkan: Align the size before calling into VMA's allocator
The size we saved in BufferSuballocation object may used for
vkFlushMappedMemory() call. This will ensure that we save the aligned
size to avoid VVL error for unaligned size in that flush call.
bug: b/219974369
Change-Id: Iccf3199f43cd346dab80083d5494fbaeee39948f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3504000
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
f9ade9fb
|
2022-02-18T15:08:54
|
|
Vulkan: Add feature to create pipeline during glLinkProgram
Creating the pipeline will trigger the compilation of shaders to byte
code thus warming up Vulkan shader caches. Typically most apps call into
glLinkPrograms during app loadtime and the goal is to improve cache hit
rate and reduce CPU workload during game play.
Bug: angleproject:7046
Test: ProgramBinary*CreatePipelineDuringLink*
Change-Id: I71351d45a9aa84e220ca38503735e94cff1dcf98
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3478354
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
1cef917c
|
2022-03-02T23:50:11
|
|
Reland "Remove ImageViewHelper from ResourceUseList"
This is a reland of 126e967de3978f0dc4f6cf0fa3f9749366ea39ba
Original change's description:
> Remove ImageViewHelper from ResourceUseList
>
> Instead of keeping a dedicated SharedResourceUse mUse for
> ImageViewHelper, let ImageViewHelper take ImageHelper.mUse
> for lifetime tracking. ImageViewHelper no longer needs to
> add its' own mUse in the ResourceUseList through retain()
> calls, and this should cut the ResourceUseList size by
> almost half. For instance, in the trace aztec_ruins,
> the maximum ResourceUseList size before the change is 3643,
> and the maximum ResourceUseList size after the change is 1694.
> Since ImageViewHelper no longer needs to keep SharedResourceUse
> mUse as a class memberWe can remove the inheritance from
> Resource class, and make ImageViewHelper simply a NonCopyable class.
> Bug: angleproject:6717
> Change-Id: I460e83f5f3c1d6ef9722b9f3c9a5ba9552563cb9
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3449450
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Bug: angleproject:6717
Change-Id: I3aa9785d7dcdc8db82847f1586f8cd7d5c838d7c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3501194
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
ef17f38a
|
2022-03-01T10:15:26
|
|
Vulkan: Add overlay widget for cache key size.
Bug: angleproject:6776
Change-Id: I35ab18bc5919129b2decf58d541499f771140e47
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3472754
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ee96a461
|
2022-02-22T12:23:06
|
|
Vulkan: Fix missing empty buffer descriptor.
This could happen for SSBOs and UBOs when the shader renders
without a bound buffer, and robustness enabled.
Bug: angleproject:6707
Change-Id: I993f2489aca47f07068908858c83afa78c9e0402
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3484979
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Auto-Submit: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
e14a20e3
|
2022-03-04T15:05:07
|
|
Revert "add host cached bit for staging buffer"
This reverts commit e1af34a6f4fbcdc9bf1da5498f87b6d2aa8b526b.
Reason for revert: Causes VVL error on Pixel 6:
https://ci.chromium.org/ui/p/angle/builders/ci/android-arm64-exp-test/237/overview
Original change's description:
> add host cached bit for staging buffer
>
> bug: b/219974369
> Change-Id: Ia31109839af9cfa5b862b72152f7189c42e48e53
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3488773
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Change-Id: Ie91fe94471f48ac880c6470c69ac5e7746c603c9
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3503690
Auto-Submit: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d9002eef
|
2022-03-01T16:14:47
|
|
Protect against deleting a current XFB buffer.
Bug: chromium:1295411
Change-Id: I097f272c38e444e0af71aa55c0dc508a07aa0bd3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3498262
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b72718d2
|
2022-02-22T16:18:45
|
|
Vulkan: Fix the data race for mUse from two threads
A data race of mUse object between two threads can occur with the
following sequences:
1) You use the buffer in the context, it adds into mResourceUseList
2) You release the buffer. Now it goes into mGarbageList, even though it
is still in the mResourceUseList.
Now this mUse object has references from two lists, the mGarbageList and
mResourceUseList, and they do not use the same mutex lock. This means
the race could happen and corrupt the mUse data. The same thing could
happen with ImageHelper object as well. This quick fix also grabs
mGrabageMutex while processing mResourceUseList. This CL creates a new
garbage list to hold garbage that has not been submitted to vulkan. And
this list will only accessed from submission thread and with
mGarbageMutex lock held. The advantage of this is that mSharedGarbage
will only have objects that already submitted, which means it is in FIFO
order so that we can break out the loop as soon as we see an uncompleted
garbage.
This bug was exposed by
MultithreadingTest.MultiContextClear/ES3_Vulkan_SwiftShader on
linux-tsan-test
Bug: angleproject:7045
Change-Id: I264c970579aaa53373a61ff067fa0e21eb410ae6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3482158
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
e1af34a6
|
2022-02-24T10:52:31
|
|
add host cached bit for staging buffer
bug: b/219974369
Change-Id: Ia31109839af9cfa5b862b72152f7189c42e48e53
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3488773
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
348ece42
|
2022-03-01T15:40:38
|
|
Vulkan: Fix issue with redefining a layered attachment.
The fix ensures we complete level redefinition before we get the
layer render target in TextureVk::getAttachmentRenderTarget.
Bug: chromium:1296866
Change-Id: Id7fa8e9fed5e766c30580b09336713c675c4e4f0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3498283
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
7b202392
|
2022-03-02T17:32:45
|
|
Capture/Replay: Fix capture on Linux
Need to add support for printing "const GLint *" types.
We've been falling into the default handler and getting lucky with
how other platforms handle ostream with a null value. We use this
extensively with glShaderSource().
Test: MEC of an existing trace on Linux
Bug: angleproject:7071
Change-Id: I7e4f1fbf2876dddac49ea6583918dbc534070d75
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3501201
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
55f57a37
|
2022-02-18T14:43:44
|
|
Vulkan: Reserve memory in move-constructor of ResourceUseList
std::move leaves source in default state, re-reserve space for
other.mResourceUses.
Bug: angleproject:4950
Change-Id: Ib2b544c58676dc4a69f09926f05d73e0a57429d9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3499045
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
19fd3bc5
|
2022-02-28T13:23:20
|
|
Fix unaligned reads on armeabi-v7a
If an application provides unaligned data to glVertexAttribPointer,
we may attempt an unaligned read from this application-provided buffer.
This change detects such a case and copies the data byte-by-byte in
order to prevent SIGBUS errors on architectures that do not support
unaligned reads.
This fixes the issue ONLY for integer-to-float vertex attribute
conversion. Other vertex attribute processing functions may still be
affected by this problem.
Bug: angleproject:7001
Test: VertexAttributeTestES3.DrawWithUnalignedData*
Change-Id: Ic66a150a0bf9fe4df3afe5fc5c91646a46186e8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3448420
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
1fd544a4
|
2022-02-25T12:22:01
|
|
Vulkan: Disable shader validation cache on Android
With local testing and code analysis, we can see that shader
validation caching doesn't work on Android. Turning it off
entirely results in a decent speedup:
Pixel 6 Pro Before: ~10000 ms
Pixel 6 Pro After: ~7000 ms
Test: angle_end2end_tests --gtest_filter="*GLSLTest*Fragment*ES3_Vulkan"
Bug: angleproject:7050
Change-Id: I8107c366b5e2dca7131626d29262d64ad9666e0c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3491461
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
51967b4f
|
2022-02-11T13:01:54
|
|
Vulkan: Fix enabling external fences and semaphores
These capabilities are Instance extensions
need fixed to enable Native fences for Android
Bug: angleproject:7009
Change-Id: I9f07dc88cabd52712ebde28ba938662d7773c8b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3457743
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
5e87ae0a
|
2022-03-01T12:41:00
|
|
Use VK_ANDROID_surfaceless_query for EGLConfig formats
That extension allows DisplayVkAndroid::generateConfigs() to query the
swapchain formats (but not yet colorspaces) before ANGLE is given any
VkSurfaceKHR. This is used for creating EGLConfig's with GL_RGB10_A2
and GL_RGBA16F.
Bug: b/203826952
Change-Id: I55302c98641fbce93f7af428087430763676bdb4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3492482
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Trevor David Black <vantablack@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
b92ebdb7
|
2022-02-24T12:23:09
|
|
EGL: Add code-gen for dmabuf extensions
Add code-gen for EGL_EXT_image_dma_buf_import and
EGL_EXT_image_dma_buf_import_modifiers.
Bug: angleproject:7065
Change-Id: Ib1bd2a881f11e96b1e7e5128975bdba3bdc41e0f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3495122
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
bf619311
|
2022-03-01T17:23:38
|
|
EGL: Implement isX11 for DisplayGLX
This fixes CreatePlatformWindowSurfaceEXT for the GL renderer.
Bug: angleproject:6961
Change-Id: Iaec90f5fe81ee605f43d62e6e63a3fbedd314cb4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3497684
Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5118002e
|
2021-11-29T21:01:03
|
|
Capture/Replay: test and handle texture gen-on-bind
Bug: angleproject:6425
Change-Id: Ieb4c0a7a6ffdbf0690c07c10e001835a0dcbb6e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3295620
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
bc20e55b
|
2021-11-29T21:00:45
|
|
Capture/Replay: test and handle renderbuffer gen-on-bind
Bug: angleproject:6425
Change-Id: I591bf0fdfe2e7f83d7e02f63c8265234f7b85df6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3295618
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
efb951e8
|
2021-11-29T21:00:02
|
|
Capture/Replay: test and handle buffer gen-on-bind
Bug: angleproject:6425
Change-Id: If8b573d0d77192befe6db82498158c535bd3b104
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3295619
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
32881018
|
2022-01-14T16:03:22
|
|
Capture/Replay: atomic counter buffer limits are shader specific
Therefore, the override must also be applied to the per shader
values.
Bug: angleproject:6895
Change-Id: Iecd790afaca9358ee767d41b4c806bb8257b5fa6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3386948
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
5749ec7d
|
2022-03-01T02:14:42
|
|
Revert "Vulkan: Move mid-RP color clear to loadOp if content undefined"
This reverts commit cfe5a1735a934cc83133bb6c69d19aa27278a270.
Reason for revert: https://bugs.chromium.org/p/angleproject/issues/detail?id=5048#c7
@timvp That change just caused a regression in my project. I clear the color + depth buffer before drawing, but initially draw only to the depth buffer. It seems that it decided to ignore the color buffer clear as a result of that.
Original change's description:
> Vulkan: Move mid-RP color clear to loadOp if content undefined
>
> Instead of using vkCmdClearAttachments, if the color attachment has not
> been written to, modify the loadOp of the currently open renderpass to
> CLEAR.
>
> Bug: angleproject:5048
> Test: VulkanPerformanceCounterTest.MidRenderpassClear
> Change-Id: Ida47e6ac7d0f29e2c49bdf2e74c1d876a5d7c223
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3381912
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Tim Van Patten <timvp@google.com>
Bug: angleproject:5048
Change-Id: Iec5c73632429a80f955f7d659cf670f9cbb6c9b7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3496662
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
c80c7ae3
|
2022-02-24T10:43:15
|
|
Capture/Replay: Merge Deletes in Reset
Before this CL, when regenning resources, we would iterate through
each resource ID and issue a delete followed by a gen. The delete
is required to get resources back to their original state, often
caused by applications recreating them during the run.
This ran into problems when our resource maps had stale data in them,
i.e. a texture that had been deleted by the app but remained in our
gTextureMap. We could inadvertently delete a resource we had just
genned.
For example, in ResetReplay(), say we have two textures to delete:
// gTextureMap[1] start with 5
const GLuint glDeleteTextures_texturesPacked_1[] =
{ gTextureMap[1] };
glDeleteTextures(1, glDeleteTextures_texturesPacked_1);
// We just deleted texture 5, now create a new one
glGenTextures(1, reinterpret_cast<GLuint *>(gReadBuffer));
// The driver returned 15, which was unused at this time
UpdateTextureID(1, 0);
// gTextureMap[1] now contains 15
...
// gTextureMap[2] happens to start with 15, which was in use in
// the trace, but was deleted and is no longer in use. The
// deleted value is not cleared from gTextureMap (which is
// another possible way to solve this).
const GLuint glDeleteTextures_texturesPacked_2[] =
{ gTextureMap[2] };
glDeleteTextures(1, glDeleteTextures_texturesPacked_2);
// Whoops! We just deleted our brand new texture 15, even though
// it no longer maps to the original texture.
glGenTextures(1, reinterpret_cast<GLuint *>(gReadBuffer));
UpdateTextureID(2, 0);
// Now gTextureMap[2] contains whatever came back from the driver
...
// The first use of gTextureMap[1] will fail on loop because
// texture 15 no longer exists!
To avoid this problem we delete all resources up front before
genning any new ones.
const GLuint deleteTextures[] = {gTextureMap[1], gTextureMap[2]};
glDeleteTextures(2, deleteTextures);
// Now we no longer have any deletes in the create sequence
glGenTextures(1, reinterpret_cast<GLuint *>(gReadBuffer));
UpdateTextureID(1, 0);
glGenTextures(1, reinterpret_cast<GLuint *>(gReadBuffer));
UpdateTextureID(2, 0);
This is applied to all the resources we regen right now.
This CL:
* Merges the deletion of new resources (that didn't exist when the
trace starts) with resources that are being regenned. That means
there is just one big delete.
* Removes Delete from the call sequences we track for each resource
since we no longer need to keep them around.
* Adds a formatting helper to avoid code duplication.
Test: Blade&Soul Revolution MEC (UE4)
Bug: angleproject:4599
Bug: angleproject:7053
Change-Id: Ida3b7e1ad5d94c5e9860447d5cf959278f37ad47
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3492849
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
cfe5a173
|
2022-01-11T19:26:42
|
|
Vulkan: Move mid-RP color clear to loadOp if content undefined
Instead of using vkCmdClearAttachments, if the color attachment has not
been written to, modify the loadOp of the currently open renderpass to
CLEAR.
Bug: angleproject:5048
Test: VulkanPerformanceCounterTest.MidRenderpassClear
Change-Id: Ida47e6ac7d0f29e2c49bdf2e74c1d876a5d7c223
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3381912
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
8390196a
|
2022-02-26T02:36:22
|
|
Revert "Remove ImageViewHelper from ResourceUseList"
This reverts commit 126e967de3978f0dc4f6cf0fa3f9749366ea39ba.
Reason for revert: Hits an ASSERT about too much garbage being accumulated. anglebug.com/7063
Original change's description:
> Remove ImageViewHelper from ResourceUseList
>
> Instead of keeping a dedicated SharedResourceUse mUse for
> ImageViewHelper, let ImageViewHelper take ImageHelper.mUse
> for lifetime tracking. ImageViewHelper no longer needs to
> add its' own mUse in the ResourceUseList through retain()
> calls, and this should cut the ResourceUseList size by
> almost half. For instance, in the trace aztec_ruins,
> the maximum ResourceUseList size before the change is 3643,
> and the maximum ResourceUseList size after the change is 1694.
> Since ImageViewHelper no longer needs to keep SharedResourceUse
> mUse as a class memberWe can remove the inheritance from
> Resource class, and make ImageViewHelper simply a NonCopyable class.
>
> Bug: angleproject:6717
> Change-Id: I460e83f5f3c1d6ef9722b9f3c9a5ba9552563cb9
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3449450
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Bug: angleproject:6717
Change-Id: Iea3d40458e2cc5be6ab0257ba6df8b82a4eeecda
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3491345
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ce243358
|
2022-02-25T14:07:17
|
|
Vulkan: Add precision fix to SPIR-V transformation validation
The SPIR-V transformation validation ASSERT was done before varying
precision fixes were determined. This change reorders the operations
such that the ASSERT also includes varying precision fix information.
Bug: angleproject:7046
Change-Id: I1685a41cda080ac128025aa84a783984042e7c4e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3488559
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f762cb1b
|
2022-01-05T20:33:06
|
|
EGL: CreatePlatformWindowSurfaceEXT
Implement CreatePlatformWindowSurfaceEXT just like
CreatePlatformWindowSurface in egl_stubs.cpp taking into account that
native window for X11 should be Window* instead of Window.
Bug: angleproject:6961
Change-Id: Ic129bd3e9dd264fdee12b062b5b422a9a6012dd8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3427425
Reviewed-by: Jeff Vigil <jvigilsamsung@gmail.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ded25241
|
2021-08-11T18:38:15
|
|
Vulkan: Clear Recycler's mObjectFreeList on destroy
Previously the Recycler class never freed it's
mObjectFreeList. Free it on destroy().
Bug: angleproject:6278
Change-Id: I3d207aaf67db92350886528c2fb1ce57c3441136
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3089659
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Brandon Schade <b.schade@samsung.com>
|
|
af45d166
|
2022-02-23T14:05:47
|
|
Metal: PVRTC formats fail conformance tests on simulator
Remove support for PVRTC in simulator, as conformance tests fail
Bug: angleproject:6874
Change-Id: I2c3f9e26523098aaa6a988db5cb3f4bf748a0cdc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3485640
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
|
|
126e967d
|
2022-02-09T01:46:25
|
|
Remove ImageViewHelper from ResourceUseList
Instead of keeping a dedicated SharedResourceUse mUse for
ImageViewHelper, let ImageViewHelper take ImageHelper.mUse
for lifetime tracking. ImageViewHelper no longer needs to
add its' own mUse in the ResourceUseList through retain()
calls, and this should cut the ResourceUseList size by
almost half. For instance, in the trace aztec_ruins,
the maximum ResourceUseList size before the change is 3643,
and the maximum ResourceUseList size after the change is 1694.
Since ImageViewHelper no longer needs to keep SharedResourceUse
mUse as a class memberWe can remove the inheritance from
Resource class, and make ImageViewHelper simply a NonCopyable class.
Bug: angleproject:6717
Change-Id: I460e83f5f3c1d6ef9722b9f3c9a5ba9552563cb9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3449450
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
5094968f
|
2022-02-24T16:28:00
|
|
Vulkan: Account for Invariant in transformDecorate
When replacing a varying with a temp variable make sure
to propagate the Invariant decorator to the replacement
variable.
Bug: angleproject:7046
Change-Id: I6e1f9ae5a6045ca963738cfdee5788f04ae620e4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3489812
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1e1505b5
|
2022-02-24T20:59:57
|
|
Upgrade Python scripts from Python2 to Python3
Bug: angleproject:5707
Change-Id: I2c00ef7e7cb529eab2be61378c9a5511a69acd1a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3486298
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
613ec1c8
|
2022-02-15T17:01:01
|
|
Vulkan: Duplicate dmabuf FD on import
When importing a dmabuf FD, Vulkan takes the ownership and attempts to
close on vkFreeMemory. This means we need to duplicate it.
Bug: angleproject:7027
Change-Id: Ife3dce30bd0c88c6b6fd622b93a44528b6a9ea68
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3464855
Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c874943b
|
2022-02-18T15:29:14
|
|
Rename FastUnordered types to FlatUnordered.
These names are consistent with the common parlance. Flat indicates
the values are packed in memory, while fast indicates that lookup
is as fast as possible.
Bug: angleproject:6776
Change-Id: I7b56af26d7fdbf5956872be5033c3aa3f6b1b8c7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3484978
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Auto-Submit: Jamie Madill <jmadill@chromium.org>
|
|
d3ded9aa
|
2022-02-22T23:02:59
|
|
Vulkan: Make Overlay init lazy
So it's not done when overlay is not in use.
Bug: angleproject:7051
Change-Id: Iae2ba20cf8c0825dc5f321e5b31dd278cd892066
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3481310
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1e773db9
|
2022-02-22T10:51:15
|
|
Vulkan: Shader support for KHR_blend_equation_advanced
Translator can accept the layout qualifiers for the advanced blend
equation. No emulation code is currently generated, and ANGLE will
initially rely on the corresponding Vulkan extension.
Based on change by Brandon Schade <b.schade@samsung.com>
Bug: angleproject:3586
Test: angle_unittests --gtest_filter=*KHRBlendEquationAdvanced*
Change-Id: I3b728c5f144386d7030bbbb301ddb07daa1492b9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3481309
Reviewed-by: Brandon Schade <b.schade@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
19704a89
|
2022-02-15T13:21:12
|
|
Capture/Replay: Capture GetTexLevelParameterfvANGLE params
Bug: angleproject:3565
Change-Id: I940154a4e3ace9a3b8683eebdcd7bbb14402a641
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3461564
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
223a25f0
|
2022-01-25T11:15:16
|
|
Capture/Replay: Allow capturing of multisample texture content
It just works.
Bug: angleproject:6611
Change-Id: Ia3da2ee0ea3e09889a65910fd101a7daaa99ea56
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3413157
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
e47a67e4
|
2022-02-22T11:40:23
|
|
Update Python scripts to run with Python 3
* Updated the scripts used in run_code_generation.py so they
could be run with Python 3 with no errors.
Bug: angleproject:5707
Change-Id: Iad7ff61a34ce53b6d54821cdd53ee846dc4afc3c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3482156
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b80635ca
|
2022-02-22T15:50:58
|
|
Revert "Vulkan: Suppress VVL message about allocation exceeding heap size"
This reverts commit 158d47831e77edf16721f631c1c4b45149182f4d.
Reason for revert: No longer necessary anglebug.com/6444#c20
Original change's description:
> Vulkan: Suppress VVL message about allocation exceeding heap size
>
> VMA does not check the result of vkGetBufferMemoryRequirements against
> the heap size before attempting to make an allocation, which leads to a
> validation error.
>
> The error is benign for ANGLE as the subsequent Vulkan allocation will
> fail, leading to an OOM generated by Vulkan isntead of ANGLE to the same
> effect as far as the application is concerned.
>
> Bug: angleproject:6444
> Change-Id: Ia474629971d6835f727b3fb43313a6003e3c939a
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3387088
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Nicolas Capens <nicolascapens@google.com>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:6444
Change-Id: I6b153f6002b35c057fed11d287e0c8211f4ada66
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3480738
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Commit-Queue: Nicolas Capens <nicolascapens@google.com>
|
|
2944e265
|
2022-02-15T16:57:53
|
|
Vulkan: Fix dmabuf memory importable check
Bug: angleproject:7027
Change-Id: I64522d2629c153b8456c975a06fd4293f89aa19a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3464854
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
de37ad17
|
2022-02-16T15:30:46
|
|
Vulkan: Call releaseStagedUpdates before releaseImage
When Texture is destroyed, we call
TextureVk::releaseAndDeleteImageAndViews(). Right now it calls
releaseImage() first and then calls releaseStagedUpdates(). The correct
order should be releaseStagedUpdates() before releaseImages(). Otherwise
for EGLImages, releaseImages will set mImage to nullptr which will make
releaseStagedUpdates skip and leave the staged updates there which
causes problem since context gets destroyed while EGLImage still hold
onto staging buffer belongs to this context's shared group.
Bug: b/219646764
Change-Id: I04a005b742a0d90b981a2f399a5e03b03e3a0adb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3469727
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
d98f4812
|
2022-02-17T15:22:22
|
|
FrameCapture: Capture empty buffer generation.
This avoids emitting VertexAttribPointer with non-null offsets when
the array buffer is empty and a vertex array is bound in MEC.
When no buffer is bound, which was also the case if the buffer was
empty, non-null offsets are not allowed in VertexAttribPointer and
will result in:
"Client data cannot be used with a non-default vertex array object."
Add EmptyArrayBuffer test to VertexAttributeTestES3.
Test: angle_end2end_tests --gtest_filter="VertexAttributeTestES3.EmptyArrayBuffer/*"
Bug: angleproject:7026
Change-Id: I0cb02a5588f5d2bbc85f58b75fd14493b644d52b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3468524
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
f996d4d8
|
2022-02-16T09:27:04
|
|
Vulkan: Fix DynamicBuffer cache reuse.
There is a regression bug that the DynamicBuffer's BufferHelper's size
is no longer the size of entire buffer block's size, but the size of
suballocation. This caused buffer reuse logic to screw up since it
relies on the size to make the decision to keep or free the
mFreeBufferList. This CL fixes this bug by using the buffer block's
size.
This CL also removes DynamicBufferPolicy since it is not used any more
since most of DynamicBuffer usages that triggered that
DynamicBufferPolicy implementation have been switched to BufferPool. The
remaining DynamicBuffer usage is only for attributes and uniforms which
are generally small and per context.
Bug: angleproject:6980
Change-Id: I9e013cbd67dd74f5e7fc5bb7d9c9696bd1f69965
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3469714
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
00169174
|
2022-02-17T14:11:01
|
|
gl.xml: Remove GL_BLEND_EQUATION_EXT from GetPName.
When retrieving the GL_BLEND_EQUATION enum using glGet, FrameCapture
incorrectly emitted GL_BLEND_EQUATION_EXT, which is not part of core
GL4, GLES 2+3.
Add BlendEquationGetInteger test to SimpleOperationTest which failed to
compile in the capture/replay tests before this change.
Bug: angleproject:7026
Test: angle_end2end_tests --gtest_filter="SimpleOperationTest.BlendEquationGetInteger/*"
Change-Id: I886e64ca316754f05ada8e45604bd3aef58a5ba5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3468522
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
8ade4c2f
|
2022-02-16T13:14:54
|
|
Vulkan: Add overlay and stats for descriptor set caches.
This adds more overlay widgets for different metrics of descriptor
sets, including for uniforms and for all sets.
Bug: angleproject:6776
Change-Id: If1a053bd711454227e7ccbdb01202a712a5f9787
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3469228
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
671fcf73
|
2022-02-16T14:22:38
|
|
Vulkan: Add a feature to retain SPIR-V debug info
Add a feature to retain debug info in SPIR-V blob. It is enabled
when validation layers are enabled.
Bug: angleproject:5901
Change-Id: Iccdff31ae0f12fc95d59d20e43e94b6f3d1ae00e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2850388
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
1315bc81
|
2022-02-09T11:25:58
|
|
Vulkan: Refactor DynamicBuffer::allocate.
Reduces duplicate code by re-using allocateFromCurrentBuffer.
Bug: angleproject:6980
Change-Id: I3f1126a53136be8f68a3a79008dd9adae45c86b8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3449279
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|