|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
8d966f7d
|
2022-02-08T11:05:09
|
|
Vulkan: Simplify SubAllocation data types.
We no longer need to bootstrap on the wrapper classes because we
use a separate garbage list. This simplifies the code for the
allocation tracking considerably. Also we remove a few mutable
accessor to fortify our OOP design.
(Credit to Jamie since it is splited from his CL)
Bug: angleproject:6980
Change-Id: I2025ec4d141531273e824bb586957a38efc30be1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3469715
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
38723c28
|
2022-02-15T16:29:36
|
|
Vulkan: Allocate space for default attrib only if it is enabled
When context's default attributes is dirty, we allocate space for the
default attribute, regardless it is enabled or not. Then we call into
VertexArrayVk::updateDefaultAttrib() which only update its state if the
attribute is enabled. This causes a use-after-free scenario that if it
is disabled, the vertex array may have a pointer to the buffer that is
now becomes inflight which may gets deleted when DynamicBuffer code
think the size no longer matches etc.
Bug: chromium:1296467
Change-Id: Ib9ec8e60ebdb326f9bbfb215b3711c37631fce4b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3466776
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
8cb58667
|
2022-02-16T13:47:22
|
|
Vulkan: Add uniform descriptor set caching test.
This covers the case where we'd continually miss the cache due to
buffer size mismatches.
Bug: angleproject:6980
Change-Id: Ia58871f431b6241af52fa0c37ab51952bc1c4f97
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3469227
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Auto-Submit: Jamie Madill <jmadill@chromium.org>
|
|
a0d558f0
|
2022-02-16T12:23:29
|
|
Vulkan: Fix D/S invalidation for MSAA EGL configs
Bug: angleproject:7007
Change-Id: I165ce16e8fdd388ae13aa2e3d05901199706ee24
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3469221
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b1075951
|
2022-02-09T17:35:56
|
|
vk_helpers: Adjust CopyImageToBuffer extent to block size.
When using readPixels with compressed formats, the VkBufferImageCopy
bufferRowLength and bufferImageHeight need to be a multiple of the block
size.
This prevents the following Vk validation errors:
VUID-vkCmdCopyImageToBuffer-bufferRowLength-00203
VUID-vkCmdCopyImageToBuffer-bufferImageHeight-00204
Add tests with texture sizes that are not multiple of block size.
Test: angle_end2end_tests --gtest_filter="GetImageTest.CompressedTexImageNotBlockMultiple*"
Test: angle_end2end_tests --gtest_filter="GetImageTest.CompressedTexImageCubeMap*"
Test: angle_end2end_tests --gtest_filter="GetImageTestES32.CompressedTexImageCubeMapArray*"
Bug: angleproject:6177
Change-Id: I34c788efece285753857500801e88abeaa6a8a78
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3452111
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
bdedf146
|
2022-01-14T13:35:30
|
|
TextureVk: Implement getCompressedTexImage.
Extend ImageHelper::readPixels to support compressed formats.
Implement readPixelsForCompressedGetImage.
Add compression tests to GetImageTest.
Implement CaptureGetCompressedTexImageANGLE_pixels in
capture_gles_ext_params.
Test: angle_end2end_tests --gtest_filter="GetImageTest*.CompressedTexImage*"
Bug: angleproject:6177
Change-Id: I6e5b6d746b9c6cc9b885fa44f75a985660d8fb58
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3452110
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
5f3f13f6
|
2022-02-15T13:39:57
|
|
Vulkan: Invalidate D/S for multisampled EGL configs too
Regardless of whether the EGL config is MSAA, depth/stencil should be
invalidated at the end of the last render pass. Originally,
optimizeRenderPassForPresent was gated on !MSAA because it was only
affecting the layout of the color attachment.
Bug: angleproject:7007
Change-Id: I7cd5497a9da6eeb168c3b55b91f2ff6f5674adb6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3465498
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ed39d49a
|
2022-02-14T11:32:12
|
|
Metal: Fix Hang in WebGL CTS Occlusionquery_strict test
If a query was just in progress and then we switch contexts
a command buffer, which has already been enqueued, is not
committed. Later, other command buffers are enqueued and
committed and Metal hangs, waiting on the uncommitted but
previously enqueued command buffer.
The solution was to not enqueue a command buffer early
but instead, enqueue just before committing.
Bug: angleproject:6752
Change-Id: I62c07ca3d1ed98cc5b27c8c4af405fdedff922b8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3461419
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
760253ce
|
2022-01-27T07:24:27
|
|
Vulkan: replace uniforms FastIntegerMap with FastUnorderedMap
This is in preparation for removing FastIntegerSet and FastIntegerMap.
Bug: angleproject:6954
Change-Id: Ifa0a5c5ca39c705a9f774558bb6cad72ed8f0bc1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3420952
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
93186337
|
2022-02-14T11:15:04
|
|
Vulkan: Check Serial is valid in SyncHelperNativeFence
The change 6d94471bc70 incorrectly checked for validity of mUse
in the clientWait and getStatus methods. mUse is valid once the
constructor is complete, instead check for validity of the serial.
Bug: angleproject:2517
Test: EGLSyncTest.AndroidNativeFence_*
Change-Id: Id71eddc4ecf27cea487be56cb362afd68db1fd65
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3465455
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
904a4797
|
2022-02-15T10:58:07
|
|
Python3 upgrades
Required to run run_code_generation.py on gLinux.
Bug: angleproject:5707
Change-Id: Ifb416be6f89eb67faf43e7de66c6f9a92a5eb5e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3465514
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
3adace15
|
2022-01-10T22:53:19
|
|
Don't expose detailed driver version info to webGL
WebGL's GL_RENDERER string now only includes basic version information
on all backends. This is controlled through a bool passed through
getBackendVersionString.
Bug: angleproject:6777
Change-Id: Ie4e3d91d22c96f175a8139fac1c66e985ed9e1b7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3380263
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Sean Risser <srisser@google.com>
|
|
cf4b50c5
|
2022-02-14T14:12:13
|
|
Vulkan: Retain images before changeLayoutAndQueue
This change d9882db5f694c1c added retain calls for images in some
places. Such retains are needed for textures and renderbuffers as well.
Bug: angleproject:4628
Change-Id: I6b08033870f82851cc62a123bfd9c780812f17b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3462801
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e5045587
|
2022-02-11T22:29:55
|
|
Debug Overlay Demo
Add a new debug overlay to display texture descriptor set cache size
Bug: angleproject:6976
Change-Id: I8bb2d88d4550947f1c6cbd732f936e3e060b1b04
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3457356
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
527ceb73
|
2022-02-07T18:25:02
|
|
Vulkan: Switch XFB counter buffer to suballocation
Bug: b/205337962
Change-Id: I2e26fa3ab150b858f07665459fa108440af988d5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3402333
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
a0bc9dab
|
2022-02-10T13:40:18
|
|
Vulkan: Switch stencilBlitResolveNoShaderExport to suballocation
Bug: b/205337962
Change-Id: Ia7e2f80a9baadb68ec26d9e94af49dababf9bedb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3453310
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
1e29ba62
|
2022-02-11T15:08:05
|
|
Vulkan: Enable overlay by default with debug layers
Bug: angleproject:6976
Change-Id: I8fdd7546358fc1079525862cba0a4a6ff8357f78
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3457346
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
19f40531
|
2022-02-11T11:17:22
|
|
Vulkan: Enable subgroup feature in GenerateMipmap.comp
Enable subgroup feature to optimize shaders used for generating
mipmaps. Remove definition of SPD_NO_WAVE_OPERATIONS to enable
subgroups. Regenerate all internal shaders with target as
vulkan 1.1 to enable subgroup feature.
Bug: angleproject:7006
Change-Id: I36f50f3d27517fedb52e3028a8f6288347b1bfa0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3453288
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
06edae72
|
2022-01-11T11:13:20
|
|
Vulkan: Allow duplicated block name in different shader interface
In OpenGL ES 3.2 Shading Language specification(4.3.9), A block name is
allowed to have different definitions in different shader interfaces
within the same shader.
Bug: angleproject:5557
Test: KHR-GLES32.core.tessellation_shader.single.max_patch_vertices
Change-Id: I49f149cfd8f6f063fc5045aa154cc401d3e38cfb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3429684
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Brandon Schade <b.schade@samsung.com>
|
|
f7f26956
|
2022-02-10T13:33:32
|
|
Vulkan: Fix two bugs exposed by moving mEmptyBuffer to suballocation
There are two bugs exposed when I try to switch mEmptyBuffer to use
suballocation. 1) BufferHelper::initializeNonZeroMemory() for device
local memory uses GPU to do zero fill, but it is missing an
vkEndCommandBuffer call. 2) glTexSubImage2D call try to pick
glCopyuBufferToImage code path and we are not checking against pixel
format. Vulkan spec requires offset must be number of pixel size and we
are using "4" for pixel size which does not work for RGB format.
Bug: b/205337962
Change-Id: Ibca6a60ebd6afc5e2bca07b9cc6a43ebdd240f15
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3449348
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
d285d6a7
|
2021-11-23T23:12:00
|
|
Vulkan: Use VK_EXT_depth_clip_control
Bug: angleproject:6679
Change-Id: Iea3b7a2d8db630dcea19836732de8f9e0a7a568f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3298356
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fd378ce5
|
2022-01-25T18:06:31
|
|
Rebind program on glUseProgramStages
Rebinding program causes all uniform resetting. And uniform resetting
is required not to use wrong uniform for changed program stages.
Bug: angleproject:6946
Change-Id: Ic969aa8fec2ff6e16f46b96a61c6d876bf37ff2f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3416791
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
038adcae
|
2022-02-08T16:46:40
|
|
Vulkan: Render the overlay in the graphics pipeline
Bug: angleproject:6976
Change-Id: I388d429f0726b4d6a1c4ecd446ead93579a14a1b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3448643
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
419bca3f
|
2022-01-19T18:22:56
|
|
Vulkan: Use Vulkan API directly for BufferPool's buffer allocation
There are two motivations in this CL. 1) There are two layers of
suballocator right now. BufferPool provides first suballocation. It
tries to allocate from one of the buffers in the pool. If that failed,
it try to create a new BufferBlock (i.e, a VkBuffer). Right now that
calls into VMA which creates another pool to allocate a buffer. We
really only need one layer of suballocation. And 2) Because we uses VMA
to do actual VkBuffer allocation, we have to use Allocator object. But
VMA can not handle external buffers, so we end up having a BufferMemory
class just to handle two different cases. This CL attempts to clean up
this by let ANGLE calling into vulkan driver directly for the actual
buffer allocation, just like we did for VkImages. By doing so, we able
to remove BufferHelper::mMemory data member as well as BufferMemory
class all together. External memory is now treated exactly the same at
BufferHelper.
Bug: b/205337962
Change-Id: I7c183ab0fd7d9aceb6cf416b0214c300798bc010
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3402740
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|