|
9d668d6c
|
2022-01-07T18:18:23
|
|
Revert "Frontend: separate lock in swap prep"
This reverts commit 40c5cb255c0a07bdab574aa076ee603e7d791ab3.
Reason for revert: Regression in TSAN caused by this CL:
https://ci.chromium.org/ui/p/angle/builders/ci/linux-tsan-test/352/overview
Original change's description:
> Frontend: separate lock in swap prep
>
> Swapchain-based backends like Vulkan might block a lot in
> vkAcquireNextImageKHR, which is bad for overall fast progress if we also
> hold the global EGL lock there.
>
> This CL starts to split the global EGL lock. We release the EGL lock
> when performing vkAcquireNextImageKHR, and only maintain a lock for
> surfaces.
>
> Bug: angleproject:6851
> Change-Id: I329d5c4c579718a4980c4261590f77099ce1400e
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3361249
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Lingfeng Yang <lfy@google.com>
Bug: angleproject:6851
Change-Id: Ie03b784021f7b8b5c1ef95a911ef7da4029abd46
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3373165
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
462cdb08
|
2022-01-06T18:46:21
|
|
Capture/Replay: Reset FBOs, RBOs, VAOs
Add resetting framebuffers, renderbuffers, and vertex arrays to
MaybeResetResources().
This is required to prevent leaks in app launch traces, such as Angry
Birds 2 (com.rovio.baba).
Bug: angleproject:4599
Change-Id: I34b45ecb1a1b5144f1e23b6bc56315f7713fed94
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3371881
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
40c5cb25
|
2022-01-06T13:31:54
|
|
Frontend: separate lock in swap prep
Swapchain-based backends like Vulkan might block a lot in
vkAcquireNextImageKHR, which is bad for overall fast progress if we also
hold the global EGL lock there.
This CL starts to split the global EGL lock. We release the EGL lock
when performing vkAcquireNextImageKHR, and only maintain a lock for
surfaces.
Bug: angleproject:6851
Change-Id: I329d5c4c579718a4980c4261590f77099ce1400e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3361249
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
|
|
1e2856fd
|
2022-01-07T13:04:39
|
|
Update freetype-py wheel
Bug: chromium:1282168
Change-Id: I7daac60c540d6f67620fba2823ac0d4d36845a13
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3372783
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
caf6433a
|
2022-01-04T14:37:29
|
|
Vulkan: Rename releaseStagingBuffer to releaseStagedUpdate
There is no more per ImageHelper dynamic buffer for staging, and this
function is not just removing staging buffer, but removing all staged
updates. Rename it to reflect what it actually does.
Bug: b/208323792
Change-Id: I5a2182291848a9e137ed29b888f31215664b46fd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3367078
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
93159c02
|
2021-12-30T16:01:52
|
|
Vulkan: Remove DynamicShadowBuffer implementation
This is no longer used since mShadowBuffer was removed from BufferVk in
https://chromium-review.googlesource.com/c/angle/angle/+/3313333
Bug: b/208323792
Change-Id: I0bb1d66c2f0f58bac74139a274c957681edf2ad4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3362504
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
3263eb01
|
2021-12-28T10:10:50
|
|
Vulkan: Switch GPU translated vertex buffer to NonHostVisible
When we translate using GPU, there is no need to use host visible
memory. Use device local memory instead.
Bug: b/205337962
Change-Id: Ic76dcb28bde2f079f6ac406d846518bf5f369d74
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3340553
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
8589c456
|
2021-12-22T17:13:33
|
|
Vulkan: Remove mStagingBuffer from ImageHelper and ContextVk
This CL removes ImageHelper::mStagingBuffer and
ContextVk::mStagingBuffer and uses per shared group staging buffer pool
instead.
Bug: b/208323792
Change-Id: I46b5fd542697eb860def9c6d592dd147ad4dc973
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3354090
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
6da1ac81
|
2021-12-22T10:13:43
|
|
Vulkan: Switch ReadPixels from DynamicBuffer to shared pool
FramebufferVk::readPixelsImpl() and ImageHelper::copyImageDataToBuffer()
use per FramebufferVk DynamicBuffer. This CL removes this and uses
shared buffer pool to allocate a temporary staging buffer for readPixels
as needed and frees it immediately afterwards.
Bug: b/208323792
Change-Id: I65ddf9bf9f1f14578d9def63f5287cb1a4121dff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3354038
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
ad27d5d6
|
2021-12-21T11:22:30
|
|
Reland "Vulkan: Consolidate all vertex conversion buffers to shared pool"
This is a reland of cca412cd8b349b7281727c50f2a59d115fd90a05
Further inspection shows it was red-herring. The original CL does not
have the un-intended diff that I saw in the commit email. This is
try to reland the original CL without any modification.
Original change's description:
> Vulkan: Consolidate all vertex conversion buffers to shared pool
>
> There are various conversion buffers that holds converted vertex or
> element or index data. They are DynamicBuffer for now. This CL switches
> them to use the shared group buffer pool. With this change, all
> allocation is represented by a BufferHelper object instead of an offset.
> I am able to remove the offset arguments from a lot of APIs.
>
> Bug: b/208323792
> Change-Id: Ib611beb0c16cddbdd9ddf7b8961c439da9fa5180
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3352489
> Reviewed-by: Tim Van Patten <timvp@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Charlie Lao <cclao@google.com>
Bug: b/208323792
Change-Id: I90852ad38c2b9ac423800bb6854757bcc17cd166
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3370602
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
a61a7f59
|
2021-12-28T18:16:40
|
|
Vulkan: Use correct aspectMask
Update ImageHelper::stageSubresourceUpdateFromImage() to use the correct
aspectMask flags based on the image's format, rather than assuming only
color formats.
Additionally, only call ensureMutable() for sRGB textures that indicate
srgbDecode == GL_SKIP_DECODE_EXT.
Bug: angleproject:6852
Test: DepthStencilFormatsTest.DepthTextureRender
Change-Id: Iaf1f167612144f836c5574b0f561cc1b58c3cb6a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3360090
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
4e85bdd9
|
2022-01-06T17:06:25
|
|
Revert "Vulkan: Consolidate all vertex conversion buffers to shared pool"
This reverts commit cca412cd8b349b7281727c50f2a59d115fd90a05.
Reason for revert: There is accidental code merge bug left in.
Original change's description:
> Vulkan: Consolidate all vertex conversion buffers to shared pool
>
> There are various conversion buffers that holds converted vertex or
> element or index data. They are DynamicBuffer for now. This CL switches
> them to use the shared group buffer pool. With this change, all
> allocation is represented by a BufferHelper object instead of an offset.
> I am able to remove the offset arguments from a lot of APIs.
>
> Bug: b/208323792
> Change-Id: Ib611beb0c16cddbdd9ddf7b8961c439da9fa5180
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3352489
> Reviewed-by: Tim Van Patten <timvp@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Charlie Lao <cclao@google.com>
Bug: b/208323792
Change-Id: I18bba207d1d8bb76dff32d9855a744dba93bc6d6
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3370601
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
cca412cd
|
2021-12-21T11:22:30
|
|
Vulkan: Consolidate all vertex conversion buffers to shared pool
There are various conversion buffers that holds converted vertex or
element or index data. They are DynamicBuffer for now. This CL switches
them to use the shared group buffer pool. With this change, all
allocation is represented by a BufferHelper object instead of an offset.
I am able to remove the offset arguments from a lot of APIs.
Bug: b/208323792
Change-Id: Ib611beb0c16cddbdd9ddf7b8961c439da9fa5180
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3352489
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
fd014271
|
2021-12-16T20:44:42
|
|
Vulkan: Match chromaFilter to min/mag for YUV AHBs
From the VVL:
VUID-VkSamplerCreateInfo-minFilter VkCreateSampler:
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT
specifies that the format can have different chroma, min, and mag
filters. However,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT
is not supported for VkSamplerYcbcrConversionCreateInfo.format =
VK_FORMAT_UNDEFINED so chromaFilter needs to be equal to
minFilter/magFilter.
We don't know what the min/mag filters are when the AHB is imported, so
we need to update the YcbcrConversionDesc with the current min/mag
filter value before creating the VkSamplerYcbcrConversion when the
ImageView is created. Additionally, if the min/mag filters are updated
later, TextureVk::syncState() needs to recreate the ImageViews to ensure
the chromaFilter matches the new min/magFilters.
Test: atest android.media.cts.DecodeAccuracyTest#testGLViewDecodeAccuracy[0]
Test: ImageTestES3.SourceYUVAHBTargetExternalYUVSampleLinearFiltering
Bug: b/210526871
Change-Id: I95dbd9738f6e3fd0870e484518eee105e995f93a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3346394
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
abf17f01
|
2021-12-10T17:10:53
|
|
Metal: Support depth filtering queries for D32, D24S8
Port changes from https://bugs.webkit.org/show_bug.cgi?id=232071
Bug: angleproject:6779
Change-Id: Id2d7a0c215e4db072b8830aedd90b878f3817967
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331666
Reviewed-by: Gregg Tavares <gman@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
|
|
f13f440e
|
2021-12-15T15:11:05
|
|
Reland: Metal: Fix Webkit warnings in ANGLE build
Fix nullable warnings, unused functions
Add in additional function specification to FormatStringIntoVector
to correctly fix warning
Bug: angleproject:6781
Change-Id: I26af2d698f14d353832802aa7b5ce34c5a1f4b95
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3366796
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
|
|
7126c3a3
|
2021-12-23T16:58:25
|
|
Capture/Replay: Limit caps for QC/SwS
On Pixel 4 (Qualcomm), GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = 6, so
limit mState.mCaps.maxAtomicCounterBufferBindings to 6 to make traces
more portable.
For SwiftShader, MAX_SHADER_STORAGE_BUFFER_BINDINGS = 12, so limit
mState.mCaps.maxShaderStorageBufferBindings to 12 to make traces more
portable.
These limits affect collecting traces for Angry Birds 2
(com.rovio.baba).
Bug: angleproject:6848
Test: TracePerfTest.Run/*_angry_birds_2_launch
Change-Id: Ie8364c8b04d1b82655c4a95b3983f618f478e23c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3355555
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
0e49a3dd
|
2022-01-04T11:23:54
|
|
Vulkan: Add std::move support for BufferHelper
There are needs to support std::move for BufferHelpers in other CLs (See
crrev.com/c/3352489). Without this support, we can not store
BufferHelper into std::vector. This CL adds move support for
BufferHelper class.
Bug: b/208323792
Change-Id: I93f79490715750abc1bcedd41b683ad0c2460ebb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3366855
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
43b0e92b
|
2021-12-13T15:38:32
|
|
Vulkan: Consolidate mHostVisibleBufferPool and mMapInvalidate
BufferVk::mHostVisibleBufferPool is allocated when BufferVk::mBuffer is
not hostvisible and we need to map it. In that case
mHostVisibleBufferPool is allocated and data copied from mBuffer to it
and the pointer to mHostVisibleBufferPool is returned to user.
BufferVk::mMapInvalidateRangeStagingBuffer is used when map is called on
a small range. In this case we allocate memory for the small range of
buffer and return that intead of waiting for entire buffer for GPU to
finish. Also when BufferSubData is called, we also needs to allocate a
staging buffer and issue a copyBuffer from staging buffer to main
buffer. This CL consolidate all these three usage cases into one
mStagingBuffer. It removes mHostVisibleBufferPool and
mMapInvalidateRangeStagingBuffer from BufferVk class. This makes overall
logic of managing data consistency much simpler as well since we only
have two buffers: The main buffer storage mBuffer or mStagingBuffer. And
mIsStagingBufferMapped tracks if mStagingBuffer is the one actually
mapped to user or not so that at unmap time we know if we should flush
the data to mBuffer or not.
Bug: b/208323792
Change-Id: I4f0c79a2d86da1a43844ed2ba83ddeb7dd4a5c0b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3335216
Reviewed-by: Lingfeng Yang <lfy@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
cabc3b98
|
2021-12-30T14:33:31
|
|
Move atomic counter uniform range counter to executable.
This makes the code more consistent with the other ranges. It will
make way for future refactorings to moving more uniform code to
the executable.
Bug: angleproject:3570
Change-Id: Ie365c0e184039f813f19d3f38b401ad8a0b72120
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3359001
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e9e9a2c6
|
2022-01-04T20:14:48
|
|
Do not pass mInstance to vkGetInstanceProcAddr
for vkEnumerateInstanceVersion
Bug: angleproject:6869
Change-Id: Ifc93a067824c3467003a47bad240b3be10874ab0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3366038
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
beda2459
|
2021-12-09T14:24:08
|
|
Add support for GL_MESA_framebuffer_flip_y 2/*
This is a second CL that adds actual implementation
for GL_MESA_framebuffer_flip_y extension.
Also, some tests are added to verify the functionality.
Please note that bots do not support this extension yet,
and the tests were verified by running them locally.
Bug: chromium:1231934
Change-Id: Iea483aa13a298df6b5cf0b7b5ffb795a4666e3bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3329603
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Maksim Sisov <msisov@igalia.com>
|
|
c984dad5
|
2021-12-03T16:02:49
|
|
FrameCapture: Don't remove protection from shared pages.
Don't remove protection from pages that are shared when a
persistent coherent buffer storage is unmapped.
The shared page can still be relevant when the the other buffer is kept
and written to.
Add a PageSharingBuffers test that produces this behaviour.
Test: angle_end2end_tests --gtest_filter="BufferStorageTestES3.PageSharingBuffers/*"
Bug: angleproject:5857
Change-Id: I6927f25229d2dfe9f68ba9a993e9d3e994bc7ce0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3306623
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
cfc4db34
|
2021-11-04T16:54:15
|
|
Metal: Provoking vertex support for Metal DrawArrays
Add in provoking vertex rewrite support for
drawArrays command, enabling 6 dEQP tests.
GLES3/functional_rasterization_flatshading_line_loop
GLES3/functional_rasterization_flatshading_line_strip
GLES3/functional_rasterization_flatshading_lines
GLES3/functional_rasterization_flatshading_triangle_fan
GLES3/functional_rasterization_flatshading_triangle_strip
GLES3/functional_rasterization_flatshading_triangles
This patch adds a new shader to the Provoking
Vertex helper that generates draw commands for
all simple data types.
Fix bug in provoking vertex helper that caused
reused index buffers to suffer from allocation issues.
Also fix Provoking vertex for triangle fan generation
Bug: angleproject:5325
Change-Id: I7a1211dfcd99329868269ea0666eef1915d487b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3261635
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
|
|
0331738b
|
2021-12-29T14:47:32
|
|
Fix extension download script, and update data.
This includes the update to the NV 1660s, and Intel driver update,
and automatically gathered SwiftShader data.
Bug: angleproject:6853
Change-Id: I481918105fd0e0224a2e2ddf5175b38e97918195
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3360784
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a400e76d
|
2021-12-22T12:24:13
|
|
Vulkan: Don't expose MSRTT without VK_KHR_depth_stencil_resolve
Previously, ANGLE exposed the EXT_multisampled_render_to_texture
extension even if VK_KHR_depth_stencil_resolve was not available. This
was due to scarcity of drivers on the bots with support for this
extension and allowed partial testing.
This is no longer true. Additionally, this cleans up the expectations
because old and buggy drivers are now simultaneously filtered out.
Bug: angleproject:6845
Change-Id: I8c285a5fa5d9beeb98b48d8b056cdc8779cce6fd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3353895
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6f1c39b5
|
2021-12-16T16:10:49
|
|
Vulkan: Restore color attachment mask-related blend states
When we end up resetting blend state such as when changing to a
depth-only FBO and back, we can end up adding attachment states. They
need to be updated with the current GL blend state.
Bug: b/210543392
Bug: angleproject:6828
Change-Id: I3419acb8081eb7d662576a75382bb8684cc0d29f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3346320
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
|
|
0a28c6c6
|
2021-12-15T15:49:33
|
|
Capture/Replay: Capture some MultiDrawIndirect parameters
It seems some new tests were added that fail Capture/Replay.
Bug: angleproject:6180
Change-Id: I26ccc1e9defc7b7d66c7e26538df286230b47def
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3340945
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
5f53268c
|
2021-11-04T17:56:48
|
|
Capture/Replay: Gather Program sources directly from call
With CreateShaderProgramv the sources were collected from the
attached shaders, wich gave complications, because normally the
the shaders were detached right after program linking and a
different handling was needed when capture was enabled, handling
that let the replay tests fail.
To overcome this gather the shader source directly from the call
parameters instead of pulling it from the attached shaders.
Bug: angleproject:6180
Bug: angleproject:6659
Change-Id: I248c1aa0f58b61519b938fce1a77fb25dc0a7cfc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3262133
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
542f7d80
|
2021-12-22T19:36:27
|
|
Vulkan: Copy buffer data to correct cube map face
TextureVk::copyBufferDataToImage() was failing to set
region.imageSubresource.baseArrayLayer to the correct cube map face
value, causing every glTexSubImage2D()-type call using
GL_PIXEL_UNPACK_BUFFER to only copy to the
GL_TEXTURE_CUBE_MAP_POSITIVE_X face. In the case of PUBG Mobile, this
left all other faces with "random" data, resulting in corrupted
reflections on things like water, the airplane, etc.
Bug: b/194140619
Test: TextureCubeTestES3.CubeMapPixelUnpackBuffer
Change-Id: I93a9219ce098985f9f4b906f8fe2e05850fb8d43
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3354091
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
2ebd583e
|
2021-12-22T11:24:43
|
|
Android: Remove setenv from common path
In Android production stress testing, the setenv call was causing a
race condition. To fix, only use setenv in the paths that need it
as a performance optimization. Specifically, FrameCapture makes
use of it every frame.
Bug: angleproject:6822
Change-Id: I452f1ef8607ca9baf15d69246932c47454a3ce46
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3353893
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
2f3e6cc0
|
2021-12-13T17:40:18
|
|
Vulkan: Remove mShadowBuffer from BufferVk class.
The shadow buffer was initially designed to avoid synchronization in
glMapBuffer call while buffer itself is still busy. There are many
optimization done inside BufferVk::mapImpl that try to avoid wait for
GPU as much as we can by distinguish GPU write versus read, by detecting
map call read/write intention by checking access bit, and finally by
allocating a staging buffer to return a CPU friendly copy of data to
caller. This shadow buffer implementation also have known bugs that are
not keeping data in sync. With all these optimization added after
initial mShadowBuffer implementation, I believe we do not have a good
reason to still keep mShadowBuffer. And this has been disabled for
months in main branch. This CL removes this code path completely which
makes code a lot simpler.
Bug: b/208323792
Change-Id: Ie5999e38b6120a371ec2e969f196e4754ebd0f8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3313333
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
bc9d2d7d
|
2021-12-07T16:16:47
|
|
Vulkan: Consolidate BufferHelper's code paths into one
There are cases that BufferHelper may not sub-allocate from the pool.
For example, when buffer is created from external memory. Right now we
have two different code paths in the BufferHelper object and checking if
suballocation object is valid or not and pick different code path. This
CL consolidates both code path into one by making non sub-allocated case
also creates BufferSUbAllocation object and owns a BufferBlock object.
Bug: b/205337962
Change-Id: Iac82bdb0b69d424e4147b52d458ced6274e106a1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3322100
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
4114fe23
|
2021-11-20T22:05:56
|
|
Vulkan: Simplify transform feedback emulation logic
In [1], the program is transformed to not output transform feedback
logic when transform feedback is inactive. With that change, it's no
longer necessary to dedicate a driver uniform to indicate if transform
feedback is active.
[1]: https://chromium-review.googlesource.com/c/angle/angle/+/3294661
Bug: chromium:1209285
Change-Id: Ica725d0da08e2676f442fe6307962d367b443535
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3294702
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ab288fea
|
2021-07-09T13:02:08
|
|
Upgrade restricted traces. (Re-land)
Includes removing capture to temporary ResourceMaps,
and including all source files in the JSON.
Bug: angleproject:5133
Change-Id: I0508dd46a9f613a96ca3635f82b6904c0f2523a7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3345222
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c1f478fe
|
2021-12-20T12:37:33
|
|
Frame Capture: Allow for no FBO when running MEC.
Multi-context captures use the surfaceless context extension. That
was crashing MEC because we were assuming the context would have a
Framebuffer.
Bug: angleproject:5133
Change-Id: I6be12d332f4754f80c088d88973219327eca251a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3352084
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
eba2e620
|
2021-12-15T12:29:12
|
|
Capture/Replay: Fix uniform program indexing.
We were using the "native" version of the program ID in the update
call, which could overflow the bounds of our fixed-size program
maps. Instead use the captured (and upper-bounded) version of the
ID and only get the mapped ID when calling GetUniformLocation.
Bug: angleproject:6431
Bug: angleproject:6816
Change-Id: I807bd07c9dcff6ba5a50991e28b0a58d16f7bc63
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3345220
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1da7e3af
|
2021-12-21T15:55:38
|
|
Revert "Metal: Fix Webkit warnings in ANGLE build"
This reverts commit 6706799186683dd3733c4610de09d84721aa08c8.
Reason for revert: Includes pragma that disables a warning.
Original change's description:
> Metal: Fix Webkit warnings in ANGLE build
>
> Fix nullable warnings, unused functions
>
> Bug: angleproject:6781
> Change-Id: I063331e60d31a55b3cc9df0b41ace014d7d13659
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3343174
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Bug: angleproject:6781
Change-Id: Id5fce2afd0381030a974871b99e8adf075677bd1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3352086
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
eca427b2
|
2021-12-20T10:55:41
|
|
Vulkan: Add mutex to protect mVirtualBlock
mVirtualBlock could be accessed from multiple thread when
asyncCommandQueue is enabled, where the free call could come from the
submission thread. This CL adds a mVirtualBlockMutex in BufferBlock and
always take the lock when mVirtualBlock is been accessed.
This CL also adds ConditionalMutex class for the general usage that a
mutex is only used based on a boolean.
Bug: angleproject:6840
Change-Id: Ib647b4ff12ebfc08f2a70192d39f16e15a1fc5f5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3350798
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
c1598640
|
2021-11-30T23:44:30
|
|
Vulkan: Improve mid-RP clear warning message
One app does:
- Draw
- Draw
- Clear depth, then disable it
- Draw
In this case, the message generated for mid-RP clear, suggesting the
clear be done earlier is not meaningful as the previous draw calls did
use the depth/stencil image. The message now includes an alternative
suggestion to invalidate the depth/stencil image instead of clearing it.
Note that the app may still legitimately do multiple passes in one
render pass where depth/stencil is cleared in between, so the warning is
not applicable in all cases. It's still useful to notice issues in more
common scenarios.
Bug: angleproject:2472
Change-Id: I3abbecf8c83b7b856c2430675e69b1471e91c0c4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3308920
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
cf8ac00a
|
2021-12-20T11:57:25
|
|
Vulkan: Fix MSRTT w.r.t stencil-only unresolve
The stencil bit was being silently masked out in a bitset in
FramebufferDesc that tracked whether the framebuffer requires any
unresolve. If only stencil needs unresolving, this mask was zero,
leading to an incorrect framebuffer getting pulled from the cache.
A follow up change will add an ASSERT in BitSetT to catch such errors
in the future.
This issue was only reproducible on SwiftShader and AMD as the only
implementers of VK_EXT_shader_stencil_export.
Bug: angleproject:6840
Bug: angleproject:6324
Change-Id: I4f055982ebd75f621ec1e34b0d60eaa497c27b17
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3349979
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
aabfe874
|
2021-12-17T15:43:22
|
|
Metal: Use the context device to Texture::resize
Makes the resized texture to be attributed to the owner.
Bug: angleproject:6832
Change-Id: Ia1eae1bb6c9e83e23fae51121f88d9ce37dc948b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3347642
Reviewed-by: John Cunningham <johncunningham@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
34ea8111
|
2021-10-28T11:07:53
|
|
Reland "Vulkan: Don't expose MSRTT on SwiftShader"
This is a reland of fb77afd3c76301e11f5c7397d9a63d283f86036c
Original change's description:
> Vulkan: Don't expose MSRTT on SwiftShader
>
> Emulating this extension on SwiftShader is neither useful nor efficient
> (on the contrary, it hurts performance (which is true for all non-tiling
> architectures)). This extension was exposed purely to increase testing
> coverage, but is being disabled now as OOMs resulting from allocating
> the implict multisampled image is confusing Chrome. Note that
> SwiftShader exposes only a limited amount of memory.
>
> Bug: chromium:1263046
> Change-Id: Ia69b7fc63804169431885352a8f637a95ab08bd0
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251581
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: chromium:1263046
Change-Id: I88415f3c1a7532eda5473da6acbd22acf14ae11c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3260330
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
624e3c3d
|
2021-12-17T15:30:54
|
|
Fix dangerous use of AutoObjCPtr after ownership identity change
Metal new* methods create objects with +1 retain count.
AutoObjCPtr is intended to adopt this reference.
Otherwise, like before this patch, the AutoObjCPtr holds
object with +2 count. Before this patch, some but not all
call sites donated the extra retain count to autoreleasepool
"out of band", and as such the code did not leak that much.
Bug: angleproject:6831
Change-Id: I72bcbc712f2cadbcbc6148c6aedfa7e151314518
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3347641
Reviewed-by: John Cunningham <johncunningham@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4a148e9d
|
2021-12-20T13:39:48
|
|
Revert "Vulkan: Suppress VUID-vkCmdDraw-blendEnable"
This reverts commit 797ebdde9894b4411ed304a83fdaeb8d8a91fe56.
Reason for revert: The VVL bug has been fixed.
Original change's description:
> Vulkan: Suppress VUID-vkCmdDraw-blendEnable
>
> A new VVL causes failures in BlendIntegerTest.MRT*
>
> Bug: angleproject:6355
> Change-Id: If62b1a7934574acaeb95601d7fb0a61dc5d9c99a
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140159
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:6355
Change-Id: I769d34fada1c2db00513f9912ef178dcd1eb4ee9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3347648
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ede0b8b7
|
2021-12-17T14:35:47
|
|
Avoid ANGLE_MTL_AUTORELEASE inside ASSERT, it leaks on Release
Avoid ANGLE_MTL_AUTORELEASE inside ASSERT, it leaks on Release.
The create functions already return retained, instead of autoreleasepool
retained, so owning the reference via adopting AutoObjCObj is
as efficient as autoreleasepool on possible future ARC.
Thus use AutoObjCObj, that is safer than autoreleasepool with C++
and works towards being able to perhaps remove use of autoreleasepool.
Bug: angleproject:6830
Change-Id: I80f523d9a6846097a593fe94b5ea9715fa88ea15
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3347640
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: John Cunningham <johncunningham@apple.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
001221f0
|
2021-12-16T21:41:29
|
|
Metal: upstream fix from WebKit for texture leak.
Upstream fix by Kimmo Kinnunen for a leak of MTLTexture instances for
render targets from:
REGRESSION (r287068): [macOS arm64]
TestWebKitAPI.GraphicsContextGLCocoaTest.
UnrecycledDisplayBuffersNoLeaks is failing
https://bugs.webkit.org/show_bug.cgi?id=234356
The leak would happen through a temporary render pass descriptor that
would ref the render target texture. The descriptor was created
without an autoreleasepool in call stack.
Also fixes the error string leaks.
Bug: angleproject:6827
Bug: angleproject:6829
Change-Id: I07ec961886a9fb8caad6df334293358a175eaf15
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3346682
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
6c894e82
|
2021-11-04T14:49:41
|
|
Vulkan: Replace BufferVk::getBufferAndOffset() with getBuffer()
Now BufferHelper class already keeps offset information. There is no
reason for BufferVk to have that information any more.
Bug: b/205337962
Change-Id: I6e014fb480bfcd5018ef9231b0fb87a50021f179
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3266147
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
a93a3930
|
2021-12-08T20:36:07
|
|
Vulkan: Track enabled in VertexArray
Previously in sequences such as
glEnableVertexAttribArray(0)
glDrawElements()
glDisableVertexAttribArray(0)
glEnableVertexAttribArray(0)
glDrawElements()
the second glDrawElements() would always be called with dirty enable. On
some backends like Vulkan this could result in unnecessary pipeline
changes.
Bug: angleproject:6796
Change-Id: Ib44877b6030e8d0acede7cf5c591936ba3844b69
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3325208
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
|
|
83a670ab
|
2021-10-29T09:12:26
|
|
Vulkan: Implement BufferPool using VMA's virtual allocator
VMA's allocation calls used to be sub-allocating a pool of memory. What
we really want is sub-allocate a VkBuffer object. VMA recently added
support to expose the underlying range allocation algorithm via APIs,
which user can use it to sub-allocate any object. This CL uses that new
virtual allocation API to sub-allocate from a pool of VkBuffers.
In this CL we only switched BufferVk::mBuffer to sub-allocate from the
BufferPool object.
Bug: b/205337962
Change-Id: Ia6ef00c22e58687e375b31bc12ac515fd89f3488
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3266146
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
83679716
|
2021-12-14T19:02:48
|
|
Vulkan: Dirty vertex buffers if default attrib values changed
In the call_break_offline trace, attribute index 4 is disabled then
enabled before a draw. This redundant operation is currently not blocked
and makes it to the Vulkan backend, resulting in
handleDirtyGraphicsVertexBuffers. However, at the same time, we change
the default attrib value for index 3. Which makes
handleDirtyGraphicsVertexBuffers not redundant. We'll need to take into
account cases when other attribute indices are not dirty and yet the
default attrib value changes.
Bug: angleproject:6802
Change-Id: I4a3ec411aa42f73a209fd0f06976d7ef2d21e027
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331412
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Lingfeng Yang <lfy@google.com>
|
|
543f5750
|
2021-12-15T16:58:46
|
|
Vulkan: Disable protected memory for ARM
ARM driver reports protected memory feature support. But when we enable
the feature, even if the feature is not been used (i.e., no memory or
queue is created with protected bit), we still see quite large
performance drop, mainly due to excessive load/store unit activity. This
CL disables this feature on ARM platform until we can find a good
solution for it.
Bug: angleproject:6817
Change-Id: I57e8b3f568f3818080e56b5d6ae9d1623732d236
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3343671
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
c7446ac4
|
2021-12-16T16:00:08
|
|
Add support for GL_MESA_framebuffer_flip_y 1/*
LaCrOS, which is same as ChromeOS, relies on this
extension and uses that with WebGL content.
However, when LaCrOS uses ANGLE, the extension is
not exposed and the WebGL content is y-inverted as
direct scanout is always used.
There are two bugs - 1) ANGLE should expose the
extension so that direct scanout is possible
(this CL fixes the issue. 2) LaCrOS shouldn't rely
on the extension if it's not available (a bug to
be fixed in Chromium).
This particular CL consists of autogen files with
framebufferParameteriMESA &&
getFramebufferParameterivMESA in Context
marked as UNIMPLEMENTED. And also unimplemented
validation.
Bug: chromium:1231934
Change-Id: Id617846b0412f579df5b4ace6cb33c1ec6d403df
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3343492
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Maksim Sisov <msisov@igalia.com>
|
|
6e5fd816
|
2021-12-15T18:31:13
|
|
Support more ImageLayout in ConvertImageLayoutToGLImageLayout
Bug: chromium:1264439
Change-Id: I35938a65981edf495bd9aafb8bfb17aa3ec9a66c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3341640
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
b26bb13a
|
2021-12-15T15:46:00
|
|
Metal: Remove references to xfbActiveUnpaused uniform
Metal chooses a shader with or without support for transformfeedback
so there's no point in checking in the shader if it's enabled or
not.
Bug: angleproject:6823
Change-Id: Iacd26b1e55b311a7cc7987dcd8b2f8c0c8727d62
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3343179
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
c4d434b9
|
2021-12-15T22:57:13
|
|
Metal: Enable OES_fbo_render_mipmap
Bug: angleproject:6813
Change-Id: I643c114d7b37ca0532d2dda1964090a15e470842
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3342568
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
67067991
|
2021-12-15T15:11:05
|
|
Metal: Fix Webkit warnings in ANGLE build
Fix nullable warnings, unused functions
Bug: angleproject:6781
Change-Id: I063331e60d31a55b3cc9df0b41ace014d7d13659
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3343174
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
bda49325
|
2021-12-10T16:11:15
|
|
Add guards for 64 bit types on 32bit systems
Bug: angleproject:6785
Change-Id: Iff043a22d398f5a7a1a46ae3cc4d2de5a6e3797e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331639
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
89e11878
|
2021-12-06T09:42:46
|
|
Vulkan: Fix the UAF issue with BufferData
* Fixed the use-after-free issue with stale buffer handles
after calling BeginTransformFeedback.
* Added an observer for TransformFeedbackVk to update the
buffer handles when buffer's storage is changed and the buffer
update type is StorageRedefined.
* Added a function to TransformFeedbackVk::onDestroy() to
release the counter buffers in order to avoid crash due to
TransformFeedbackVk::end() not being called, e.g., as a
result of no glEndTransformFeedback() calls.
Bug: chromium:1274316
Change-Id: I8ed477f36e6ff89dd4764bb59af564c69efe33e2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3321789
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
ee1d3cf7
|
2021-12-10T12:29:16
|
|
Metal: Integrate Metal Binary Shader generation
Bug: angleproject:6801
Change-Id: I2eb7072ed342f2b4cb5d9ee50ca9db75c5c7df69
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331206
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
3e7e2758
|
2021-12-14T15:48:42
|
|
Metal: Fix macOS ANGLE build on Catalina (10.15) SDK
macOS Catalina does not have an enum for AppleGPUFamily6
In addition, platform includes for macOS 11.0
should use 110000, not 101600 (10.16)
Bug: angleproject:6814
Change-Id: I9c6a0587aa22fb2e58d02fcb1779060de2632963
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3340104
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
05a44dd2
|
2021-11-29T12:16:58
|
|
Vulkan: Set content undefined on eglSwapBuffers
* Invalidate the swap buffer content if the swap behavior is
EGL_BUFFER_DESTROYED.
* In that event, WindowSurfaceVk::getBufferAge() sets `age`
to 0 and returns with no errors.
* Unit tests in EGLBufferAgeTest.cpp updated to reflect this.
* Minor cleanup in the test file.
Bug: angleproject:6363
Change-Id: Ibab7ccb99c1be149588e6aad16bcc2d6dd989295
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3307776
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
5275f487
|
2021-12-14T21:03:54
|
|
Vulkan: Disable async command queue with Vulkan SCBs
There is currently a threading hazard with ContextVk::mCommandPool,
where ContextVk records to command buffers allocated from the pool while
the async command queue thread is using other command buffers allocated
from the same pool.
While experimenting with Vulkan SCBs, disable the async command queue
feature when using Vulkan SCBs. It is unknown whether async command
queue with Vulkan SCBs is even worthwhile; if it proves to be, we could
make ContextVk maintain multiple pools and rotate between them.
Bug: angleproject:6811
Change-Id: Iac2e9337b5b109b2c7cb359109afe6ee386e4c34
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3340018
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
feb599ad
|
2021-12-09T20:17:14
|
|
Invalidate EGL handles during eglTerminate
EGL 1.5 spec says -
Termination marks all EGL-specific resources, such as contexts
and surfaces, associated with the specified display for deletion.
Handles to all such resources are invalid as soon as eglTerminate
returns
Move EGL object handles to another set, tracking invalid objects,
during display terminate. Destroy these invalid objects during
eglReleaseThread
Bug: angleproject:6798
Test: EGLMultiContextTest.NegativeTestAfterEglTerminate*
Test: EGLMultiContextTest.RepeatedEglInitAndTerminate*
Test: Android CTS WrapperTest.testThreadCleanup
Change-Id: Ie160212c98367493e645d9d1c8260e7a30649386
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3329273
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
90c3038e
|
2021-12-14T16:46:13
|
|
Vulkan: Fix desc set updates with Vulkan SCBs
Since Vulkan SCBs are a command buffer in their own, we cannot aggregate
desc set updates to be done once after all the binds have been recorded.
This change makes sure that desc set updates are issued before bind, but
this problem could potentially also be solved with
VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT, by actually issuing the
writes at the end of the secondary CB, just before closing it.
Bug: angleproject:6811
Change-Id: I18e150b73a5881258679ba53a2d84acd2fc44edd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3338390
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
800c6971
|
2021-12-08T01:08:17
|
|
Modified buffer fallback format to smaller storage format
Bug: angleproject:6726
Change-Id: I475d99fc0143f265e66cc4f7aa13fa0de8745169
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3315916
Reviewed-by: Lingfeng Yang <lfy@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
e70a81b9
|
2021-12-14T13:41:28
|
|
Vulkan: Rectify typo introduced in 36fcf80b1f2a99
The method should have been updateYcbcrConversionDesc
Bug: angleproject:6732
Test: Texture2DTestES3.*Yuv*Vulkan
Change-Id: I67ab35ac07a6d751cbe3c3c29bdde21a5a7f5834
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3339605
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
76d42082
|
2021-12-14T09:30:24
|
|
Metal: ETC and ASTC are missing on M1
Platform guards are incorrect in mtl_utils.mm. We need to
account for macOS post 10.15, which now supports the apple
GPU family query.
Bug: angleproject:6809
Change-Id: Iae219a11ffe0ef0715681009aa24cbbc6fd2c61e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3338624
Reviewed-by: Gregg Tavares <gman@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
36fcf80b
|
2021-12-11T20:55:53
|
|
Vulkan: Consolidate SamplerYcbcrConversionCache
Now that SamplerDesc and ImageHelper have the fully qualified
description of a VkSamplerYcbcrConversion, we can lazy allocate
the conversion handle along with streamlining the interface to the
SamplerYcbcrConversionCache class.
Bug: angleproject:6732
Test: Texture2DTestES3.*Yuv*Vulkan
Change-Id: I7deaa0220031bc4c500d88021459017bf937218c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3333629
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
7b13a9ac
|
2021-12-09T18:37:59
|
|
Vulkan: Fix dynamic partial update buffer data issue.
add test case for dynamic update buffer data.
Signed-off-by: Hailin Zhang<hailinzhang@google.com>
Bug: b/207714894
Change-Id: I8c1e93d152847c3162c0e2dd49abe3d899c859a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3328869
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
|
|
32f572b7
|
2021-12-03T17:58:51
|
|
Support creating EGLImage from VkImage
Bug: chromium:1264439
Change-Id: I520182143e748f25b44d0725f3f171b7b33a85d8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3311131
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
7fc6c07c
|
2021-09-29T14:02:29
|
|
Capture/Replay: Update process for trace upgrading.
Includes changes to the retracing script.
Also includes documentation on how the process works.
Bug: angleproject:5133
Change-Id: I1acfe338f3fe0282a0461c314274c761ed04bd2f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3193418
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d4b8cd5e
|
2021-09-14T16:34:31
|
|
FrameCapture: Implement capture of coherent bufferstorages.
Track buffers with the GL_MAP_COHERENT_BIT_EXT access flag in a
CoherentBufferTracker on a per page basis using the
PageFaultHandler and protection functions from system_utils.
Check for dirty memory and capture it on draw calls.
Bug: angleproject:5857
Change-Id: Ib098f96952db7583d3e6517570c179e7754f54b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3168629
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
5b858acf
|
2021-12-09T14:22:14
|
|
Vulkan: Fix the offset issue in multiDrawIndirect
* In MultiDrawElementsIndirect, it resets the index buffer
offset (mCurrentIndexBufferOffset) to 0.
* Added a unit test for MultiDrawElementsIndirect to
make sure that the index buffer offset is reset properly.
* Updated the test program in MultiDrawIndirectTest to
include a multi-colored mode.
* D3D11 and Metal tests regarding the following functions
are disabled so more test coverage can be added:
* glMultiDrawElementsIndirectEXT
* glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE
Bug: angleproject:6751
Change-Id: I81bb7b3aa9b6ad8a9283dd50728ec6250c3668ad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3330737
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
42bd4fc2
|
2021-12-10T14:58:17
|
|
Metal: add ANGLE_metal_create_context_ownership_identity.
This Metal-specific EGL extension allows a given context
and the GPU resources it allocates to be associated with
a particular task ID on the system, for system-level
bookkeeping purposes.
Bug: angleproject:6795
Change-Id: I19ee0993564169b01c4a450e63dcfacd339b98b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3335172
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
1fc9b7c6
|
2021-12-08T14:10:36
|
|
EGL: Add queries for EGL_KHR_protected_content
Add surface and context query for EGL_PROTECTED_CONTENT_EXT
attribute.
Bug: angleproject:6693
Change-Id: Iad3d8d7e0db89414c44a0101c26cda6e60308e71
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3324963
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Brandon Schade <b.schade@samsung.com>
|
|
afca80a8
|
2021-12-09T17:48:49
|
|
Metal:Add debug info for shaders
This should fix the WEBGL_debug_shader_info CTS test
Bug: angleproject:6788
Change-Id: I89e18f94ea3199149c252355372648b5e328e1ed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3329204
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
f60b152c
|
2021-12-06T10:19:53
|
|
Frame Capture: Merge small frames into single sources.
By buffering up the replay functions before writing them out into
sources, we can reduce the number of replay files by a large
margin.
Bug: angleproject:5133
Change-Id: I0a556fd1a3a5f2dcc8a26b761e885c9b7e464cf5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3316200
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b7a42c88
|
2021-12-13T15:53:07
|
|
Vulkan: Remove VK_EXT_swapchain_colorspace check
We don't make use of this extension since
https://chromium-review.googlesource.com/c/angle/angle/+/3208689.
Bug: angleproject:2514
Change-Id: I8b8edf5006ac1c3eeeefcadbe77249a5a6a5dda7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3335070
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f40e83cb
|
2021-09-10T19:15:17
|
|
Reduced "rx::vk::kInFlightCommandsLimit" from "100" to "50".
The "100" value is too high and causes "S21 Adreno" block in
"vkQueueSubmit()". This is a temp solution.
Patch authored by Igor Nazarov <i.nazarov@samsung.com>
Bug: angleproject:6401
Change-Id: Ie7f9c8ef5311b17325640cae0f613ece768c0fa3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3165666
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ea03bf47
|
2021-12-03T08:48:50
|
|
Vulkan: fix crash when clearing stencil
Previously, we cast the originally-32-bit mask to 8 bits, and then
crashed ourselves in the assert.
Also optimize away the stencil based on 8 bit explicitly in the
frontend.
Bug: chromium:1275858
Change-Id: I0b03a17e72f5a4540b5c4605353eb1fde898057d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3315158
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Lingfeng Yang <lfy@google.com>
|
|
e8b186c9
|
2021-12-09T09:45:20
|
|
Frame Capture: Don't unmap regenned buffers in reset.
These buffers are deleted and recreated, so unmapping them gives
a "resource not mapped" error during replay.
Found when working on the "world_war_doh" trace.
Bug: angleproject:5133
Change-Id: Id1e6318c44a2a09fa643ef0a72f1d03d8396e5fb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3327862
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a24919e7
|
2021-12-09T10:04:25
|
|
Frame Capture: Clear array buffer binding in MEC.
This should allow us to properly reset buffer state when capturing
vertex attribute pointer state in the per-context (not shared)
setup function.
Also adds a missing replay state buffer binding update.
Fixes a state serialization difference in "badland".
Bug: angleproject:5133
Change-Id: I8509dbf7211726ff47f4e7e5ff86a0eb8726d75c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3327861
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a1b9eb68
|
2021-12-10T16:36:46
|
|
Replace IOSurfaceSurfaceEAGL.mm table with less strict padding
Bug: angleproject:6783
Change-Id: Id67f581af0742b47fc5ea38de616391e57b763de
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331641
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
194687e7
|
2021-12-06T13:40:24
|
|
Metal: Fix M1 and iOS synchronization for readPixels
ReadPixels does not implicitly flush context before reading
on iOS and macOS hardware due to shared memory. look for any pending
GPU Work, and flush the command buffer if needed.
Bug: angleproject:6803
Change-Id: I5688b031ecffcd7427263041d4e33ae256f68af6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3318592
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
|
|
2d6caae4
|
2021-12-10T17:25:58
|
|
Metal: Add maximum render target size validation
Bug: angleproject:6790
Change-Id: I4a7e7285e040cc68e4fc16bb653f6d1512f541c9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331671
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
cf9ab647
|
2021-12-10T15:42:36
|
|
Add early out validation in drawArraysCommon
Bug: angleproject:6791
Change-Id: I60de6806dae9c917c6db24a18f586e3b0aa2154e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331414
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
d97b1c4a
|
2021-12-10T16:27:08
|
|
Metal: Refactor restartRange cache
Bug: angleproject:6784
Change-Id: I8a2e1df2ac621415d75708c0bba16f8ca17b0ce6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331675
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
1642b4a3
|
2021-12-10T16:01:10
|
|
Metal: Fix Instanced Draw feature support on Simulator
Bug: angleproject:6786
Change-Id: I4c567bf2ec61df581ae0e8eeb1c36c7d37e15d04
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331637
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
2e669566
|
2021-12-09T18:21:02
|
|
Metal: Refactors from Webkit
Mostly renaming, typos, cleanup
bug: angleproject:6787
Change-Id: Ic71c296d7849244cae2ca29b264a10cb96bca612
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3329261
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
5068c040
|
2021-12-09T17:55:01
|
|
Metal: Merge changes to mtlPixelFormatTable
Bug: angleproject:6789
Change-Id: I9893093fdff1138fc8ae35ac4363201fa1e0b825
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3329206
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
4d0de3d2
|
2021-12-03T17:09:06
|
|
Update the arg types for glMultiDraw*IndirectEXT()
* Updated the auto-generated types for arguments "mode"
and "type" for glMultiDraw*Indirect and glMultiDrawIndirectEXT
functions to PrimitiveMode and DrawElementsType, similar to
the other glMultiDraw* functions.
Bug: angleproject:6770
Change-Id: If02a66b6fb2f81848ab6e43a6cd406d5956bf331
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3321792
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
933f066e
|
2021-12-10T15:04:53
|
|
Enable GL_ANGLE_texture_usage extension
This extension doesn't change ANGLE behavior with Vulkan backend,
since it is just a hint for ANGLE to optimize texture allocation.
Bug: angleproject:6771,chromium:1264439
Change-Id: Ie2411894a02bbcb0a5304c635f1f5648520ad22a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3329694
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
cc516f97
|
2021-12-10T02:48:54
|
|
Use STL container for vulkan memory allocator
There is a crash related to VMA containers, so switch to STL
containers to see if it can workaround the issue.
Bug: chromium:1266412
Change-Id: I8416e4b4a27588ac2d710a4ef7600cd91b080535
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3327744
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
3be551d7
|
2021-12-08T16:44:56
|
|
fix directUpdate buffer pointer issue.
inside mapWithOffset already add the mBufferOffset
Signed-off-by: Hailin Zhang<hailinzhang@google.com>
Bug: b/207714894
Change-Id: Ia400bccbef1abc756cd8155e93a775338a30e8b9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3325025
Reviewed-by: Lingfeng Yang <lfy@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
|
|
04110e4e
|
2021-12-01T14:06:03
|
|
Metal: Fix Intel backend fails with tall texture
Copied test from the WebGL conformance suite.
A 1x<MAX_TEXTURE_SIZE> texture fails on Intel in the Metal
backend.
This was fixed in WebKit so just applying that fix.
Bug: angleproject:6754
Change-Id: Id1cafb3b560f14630684d55b0e61cea4c7f33a6d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3311941
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
494a0ec2
|
2021-12-08T16:07:50
|
|
Vulkan: Append the actual buffer size when binding's size is 0
When app calls glBindBufferBase, the size of binding is set to 0. The
spec says the actual size should be size of buffer when buffer is been
referenced. But when we generate ShaderBuffersDescriptorDesc, we are
directly using binding's size. But the actual descriptor set has the
buffer's actual size. This causing the ShaderBuffersDescriptorDesc have
a false cache hit (because size is always 0) when the actual
descriptor set should be different.
This CL checks bindging.getSize() and if it is 0, we use the actual
buffer size.
Bug: angleproject:6792
Change-Id: I3e044dc5ff113b4fae1b5c7d5e78645c6e98edf8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3325024
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
9b23be91
|
2021-12-08T13:55:22
|
|
Frame Capture: Fix client buffers in MEC.
In some cases we would neglect to reset the currently bound array
buffer to "null" before capturing a client array buffer in MEC.
Noticed in the "badland" trace context setup.
Bug: angleproject:5133
Change-Id: I693edce763b449720a7f2123dcaf460854142e91
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3323683
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
16ce5226
|
2021-12-01T16:58:49
|
|
Vulkan: Re-enable RGB8 for pbuffers.
pbuffers support was removed from RGB8 EGL configs to prevent mismatched
surface formats for surfaces backed by external memory, since ANGLE
overrides RGB8->RGBA8 for all surfaces. However, ANGLE no longer
supports surfaces backed by external memory with the Vulkan backend, so
we can re-enable RGB8 for pbuffers.
Bug: angleproject:6651
Change-Id: I7d8b666ed5e3226f067479758f44d9041dcb67b0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3312361
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
55840e90
|
2021-12-03T15:24:00
|
|
Vulkan: Fix deferred flush vs UtilsVk
Take the following scenario:
1. Draw
2. Flush (this is deferred)
3. Get image view (this is retain()ed)
4. Pass view to a draw-based UtilsVk function
5. Flush
6. Delete image view
At step 4, UtilsVk may start a new render pass and use the image view
from step 3. Since the flush at step 2 is deferred, it will be
performed at this step, and so the serial of the image view is set to
the previous submission.
When step 4 uses this view, it doesn't retain it. Step 5 submits the
new command buffer using this image view.
At step 6, if the previous submission has finished, it will destroy the
view immediately even though it's in use by the new submission.
One solution could have been to make sure render pass closure
originating from UtilsVk doesn't incur a flush. However, due to the
current design where the render pass is immediately recorded in
RendererVk's primary command buffer, it's possible that an unrelated
context would perform the flush anyway.
This change makes sure instead that the render pass is closed before any
views are allocated/retained to be used by UtilsVk.
Bug: chromium:1272266
Change-Id: I5bdefb34e03c368511c4c174cf7965fda158d2b8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3315976
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|