|
b5809efa
|
2025-01-16T17:56:47
|
|
Delay eglSwapInterval() effect until swap
... and fix resetting effect of `eglSwapInterval()` call by changing
the `EGL_RENDER_BUFFER` attribute, and resetting desired shared present
mode when calling `eglSwapInterval()`.
Bug: angleproject:390333526
Change-Id: I473c7d4c5929e2179bbcd378b3695d10213644de
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6169922
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
f231d94b
|
2025-01-13T14:58:16
|
|
Vulkan: Add kBufferMemoryBarrierData to mirror image
Right now we only maintain a mapping from EventStage (which is a value
of VkPipelineStageFlags) to VkPipelineStageFlags for images. For next CL
we need to indicate if use VkEvent is preferred or not for a given
PipelineStage access. This CL expands kPipelineStageFlagBitMap (and
renamed to kBufferMemoryBarrierData) to contain both the
VkPipelineStages and EventStage to indicate if VkEvent should be used or
not, similar to kImageMemoryBarrierData but a lot simpler. Right now it
all set to EventStage::InvalidEnum which means will use pipelineBarrier.
This will change in next CL.
This CL also does some clean up:
A few BufferHelper related functions changed argument from ErrorContext*
to Context*, mainly because of BufferHelper::release() now takes
Context* as argument so that we can recycle events within context's
share group without lock.
ImageLayoutToMemoryBarrierDataMap is added to replace
angle::PackedEnumMap<ImageLayout, ImageMemoryBarrierData>
kEventStageAndPipelineStageFlagsMap is removed.
InitializeEventAndPipelineStagesMap is now using kImageMemoryBarrierData
directly to construct mEventStageToPipelineStageFlagsMap. As result of
this, EventAndPipelineBarrierHaveMatchingStageFlags is also removed
since InitializeEventStageToVkPipelineStageFlagsMap already ensures
this.
Bug: angleproject:360274928
Change-Id: Idb74f3e4120ca9a04b8eccb7ed034aa769024bf9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6172763
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
e0cbdbb5
|
2025-01-15T14:08:45
|
|
CL/VK: Enable dispatch region chunking
This change does two things:
- Allow non-uniform workgroup size
- Dispatches that go beyond VK workgroup count limit
Bug: angleproject:42267085
Change-Id: I1f2da93252e466b811273ee34d9d38e454f11686
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6180550
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
95635ef0
|
2025-01-23T16:30:41
|
|
CL/VK: Implementation of Compute Pipeline Cache.
Implemented ComputePipelineCache, hash map from OpenCL and
OpenGL compute state vectors to compiled pipelines. Implemented
ComputePipelineDesc, a tightly packed description of the current
compute state.
Compute Pipeline State includes the specialization constants,
Pipeline Options (Protected, Robust).
Updated-by: Austin Annestrand <a.annestrand@samsung.com>
Bug: angleproject:391672281
Change-Id: I88944dc169d194d1b2c75747769d7346b041fa75
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6191437
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
1161ac8e
|
2025-01-23T13:25:01
|
|
WebGPU: Implement no-op gl_PointSize
Support writing to the gl_PointSize builtin but do not pass it to the
next shader stages.
Bug: angleproject:392604862
Change-Id: I845a3edeb0ce8e7ea41a5e96e5f3b443100f2cbf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6194555
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
|
|
d9128ff4
|
2025-01-28T09:43:58
|
|
Clean up Galaxy expectations for A/S23 and S24 Exynos/QC
Split A23 and S23 into separate lists
GALAXYS24EXYNOS for S24 Exynos ("International")
GALAXYS24QUALCOMM for S24 Qualcomm
Bug: angleproject:359904354
Bug: b/338429767
Change-Id: If9c1f184df6c6f15e3b5d5af3a7e1310cb445984
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6207255
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
fa0de0dd
|
2025-01-27T17:32:49
|
|
restricted_trace_perf: Support --fps-limit
Simply passes the flag and value through.
Test: restricted_trace_perf.py --fps-limit 30 ...
Bug: b/376300037
Change-Id: I344492944babed33edcbdae6b2906795d31715e4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6204802
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
0878d854
|
2024-10-29T12:24:22
|
|
CL/Vulkan: Query spv version from renderer
Query the SPV version to be used by the clspv from the Vulkan renderer
and set it up accordingly.
Bug: angleproject:361717757
Change-Id: I6b1497120c21402386cb52a751970830e5cd7f3e
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5973716
Reviewed-by: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7fe2a36c
|
2025-01-24T19:47:01
|
|
Vulkan: Parse Samsung Vulkan driver version
Use driver version instead of API version to disable
imageless framebuffer feature
Bug: angleproject:386749841
Change-Id: Ia7bf06210224d399d60d6c1000c4fb8179f1239c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6199891
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
2e36e947
|
2025-01-16T15:12:22
|
|
CL/VK: kernel's arg.handle update properly when setArg
Fix arg.handle to be an underlying CL object type.
Bug: angleproject:390488741
Change-Id: I8a9d3981a46f17e9af906f0e345c17585a332b30
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6180553
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Austin Annestrand <a.annestrand@samsung.com>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
885a8060
|
2025-01-24T12:27:10
|
|
WebGPU: Implement depth/stencil test.
Force the compare function to Always when depth or stencil tests are
disabled.
Bug: angleproject:392604945
Change-Id: I67265b2e5eabe8e9fc3d1222140ee1b6a7c5cefa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6198040
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
|
|
bec97bbb
|
2025-01-23T13:29:04
|
|
WebGPU: Flip Y for ReadPixels
ReadPixels results are upside down. Flip the results in the PackPixels
functions.
TODO: Re-evaluate if this needs to be default-FBO only once more tests
are running.
Bug: angleproject:42267090
Change-Id: Ia5e5ee218de2e754f5de02a826f664d2f71efb76
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6194557
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0f75fc3d
|
2025-01-20T14:10:41
|
|
Vulkan: Transition foreign images to the FOREIGN queue on submit
Vulkan's interaction with AHB and dmabuf images is through the FOREIGN
queue family. When ANGLE uses these images, it must take ownership of
the images by doing a queue family ownership transfer (QFOT) away from
the FOREIGN queue family and into the graphics queue family used by the
Vulkan backend.
Prior to this change, ANGLE would do the QFOT away from FOREIGN once
such a foreign image is imported into an EGL image. Afterwards, usage
in ANGLE works correctly. What ANGLE did not handle is when a foreign
entity wants to use these images _after_ ANGLE has used them.
For the above to work correctly, ANGLE must do a QFOT back into FOREIGN
before the image can be used by the foreign entity. Unfortunately,
EGL does not provide a clear point for this hand-off to happen. ANGLE
has no choice then to proactively transition the images back into
FOREIGN at some point "just in case".
For some native drivers, this hand-off to FOREIGN can be quite frequent.
For example, on Android for most vendors there is no actual layout
transition between graphics and FOREIGN queue families (the actual data
layout is the same), so a cache flush/invalidate at strategic points
(such as the end of the command buffer) is sufficient as equivalent to
transition to FOREIGN (and another at the beginning of the command
buffer as equivalent to transition from FOREIGN).
As a layer over Vulkan's formalism, ANGLE is less lucky; it has to
enumerate exactly which image is being transitioned to and away from
FOREIGN. Transitions away from FOREIGN are in principle easy. As long
as the image is marked as being in the FOREIGN queue family, it will
automatically transition to the graphics queue family on first use.
In this change, when a foreign image is transitioned out of the FOREIGN
queue, it's added to a list of images to be transitioned back to FOREIGN
at submit time. Once submission is done, the image may or may not
actually be used by a foreign entity, but ANGLE cannot know that. The
next time the image is used in ANGLE, it is transitioned out of FOREIGN.
Verifying correctness with multi-threading is tricky, and relies on GL's
requirement that access in one context is followed by a synchronization
and rebind in another context before it can be used there. This means
that the image's transition to FOREIGN (at the end of one submission)
naturally happens before the transition back from FOREIGN (at the
beginning of the next submission). Because the set of images to
transition is tracked in the context, submissions in other contexts
don't interfere with the above logic.
The situation can be more complicated with one-off submissions, but
fortunately, no such usage of foreign images is present.
Another wrinkle is simultaneous usage of the image as read-only in two
contexts. According to GL, this is not a hazard and requires no
synchronization. However this is broken in ANGLE even for non-foreign
images (see http://anglebug.com/42266349), because as what _seems_ like
read-only usage of the image from GL's point of view (like sampling from
the image), there are associated write operations from Vulkan's point of
view (image layout transitions and QFOT). This change does not attempt
to address this corner case.
Bug: angleproject:42263241
Bug: angleproject:42262454
Bug: angleproject:390443243
Bug: chromium:382527242
Change-Id: Idd4ef1fecfa3fccf1a4063f1bddb08d28b85386b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6184604
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
47c64ce2
|
2025-01-24T16:15:26
|
|
Vulkan: Fix driver version parsing
Bug: chromium:371512561
Change-Id: I469c4ae71613fdfdfd7e58602b5a7262342acba7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6199184
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
8c298ec9
|
2025-01-12T22:53:32
|
|
Vulkan: Use surfaceless queries with headless EGL configs
Bug: angleproject:389342064
Change-Id: If5ec101f5ef5135febe3fe12d5c309fe2a35f07c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6169254
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d7ea4b2c
|
2025-01-06T20:40:48
|
|
Vulkan: Use syncval extra properties for error suppression
Bug: angleproject:391284743
Change-Id: I594a70e7d06f1d73647407dbac1afece666a7c5c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6180310
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d926d80d
|
2025-01-16T09:53:35
|
|
CL/VK: Fix enqueueFillImage & enqueueMapImage lock and waitlist
Fix in enqueueFillImage and enqueueMapImage.
Semantically should be using scoped lock and processWaitlist()
instead of enqueueWaitForEvents().
Bug: angleproject:390387802
Change-Id: I86173a079aa7fdd54a8b7158ec8214147cfb7cd2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6179619
Reviewed-by: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b5c12605
|
2025-01-22T13:44:13
|
|
CL: Limit max work size/offset to UINT32_MAX
Set a hard limit of UINT32_MAX on work item/offset for OpenCL's
clEnqueueNDRangeKernel cmd for all backends (simplifies handling).
Bug: angleproject:42267067
Change-Id: Ied1685609b3818e4c3a366a03770dc361198639c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6191436
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
adb52e06
|
2025-01-23T17:36:44
|
|
Avoid unnecessary copy ctor calls of gl::DepthStencilState
That object has a user defined copy ctor to copy padding
(https://crrev.com/c/783990). This together with copying instead of
using a reference results in a function call (which just wraps memcpy)
Bug: b/383305597
Change-Id: Ia92e726a887bd12ab14c1ca53f79c0b13b57a199
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6194695
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
54b69688
|
2025-01-21T11:28:59
|
|
Vulkan: Add max memory allocation size limit check
During memory allocation, we should make sure that the attempted
allocation size does not exceed the maximum allowed size. Failure to
do so may result in validation errors.
* Added the following object to the renderer: mMaintenance3Properties
* It holds the following device property: maxMemoryAllocationSize
* Inline renderer function: getMaxMemoryAllocationSize()
* Buffer and image allocation sizes will now be checked with the
function above.
* In case of exceeding the maximum allocation size, a device OOM
error is returned after issuing a warning:
* MemoryAllocationTracker::onExceedingMaxMemoryAllocationSize()
* Removed the suppression for the test failing due to this issue.
* Removed the maxMemoryAllocationSize VVL skip targeted for MockICD.
* Suppressed tests on S22 that now fail due to exceeding this limit:
* KHR-GLES[31/32].core.texture_buffer.texture_buffer_max_size
Bug: angleproject:391002353
Change-Id: Id271066bd872c80344ef8531653afda3e6b40a93
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6187981
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
c3f9109e
|
2025-01-09T17:22:41
|
|
Vulkan: Change EventMaps from struct to class
For better encapsulation, this CL turns struct EventMaps to class
RefCountedEventArray.
Bug: angleproject:360274928
Change-Id: Ie28996fdb95d5a830399e6fa6cd5602f403e8725
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6164698
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c7ad15e3
|
2025-01-23T13:37:28
|
|
Vulkan: de-duplicate ImageHelper::barrierImpl and barrierImplOneOff
barrierImpl is renamed to recordBarrierImpl barrierImplOneOff renamed to
recordBarrierOneOffImpl barrierImpl contains all the common logic
between recordBarrierImpl and recordBarrierOneOffImpl.
Bug: angleproject:390443243
Change-Id: I01ce9ea3f1f0acb30fe0efcdd20bd1caaa248a7c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6195570
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
fbd230f5
|
2025-01-23T12:59:06
|
|
Vulkan: Split ErrorContext into ErrorContext and Context
ErrorContext continue to be context for error handling. vk::Context is
added to serve as common base class for ContextVk and CLContextVk.
Bug: angleproject:390443243
Change-Id: Ifac0b1d2d714ce610693ce60a35459c6c9cddf1a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6191438
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c1214ec2
|
2025-01-22T14:22:56
|
|
Vulkan: Rename Context to ErrorContext
In preparation for adding another Context (derived by GL and CL
contexts), which includes logic that pertains to command recording (such
as barrier tracking).
Bug: angleproject:390443243
Change-Id: Idf495b62e63fb9aa901a2f16447fdaf3c2acd90b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6191248
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
92cc4e02
|
2025-01-22T16:07:00
|
|
Vulkan: Fix incorrect initial RP layout for shared present
Renderpass was using `ImageLayout::ColorWrite` as initial layout for the
SharedPresent image. Vulkan validation did not detect errors because of
limitations (or bug?): once command buffer with barrier is submitted,
layers no longer track the current layout, and therefore skip the check.
In other words, it seems like VVL only track layout transitions within
a command buffer.
Transition to `ImageLayout::SharedPresent` currently performed using
one-off command buffer, which is always immediately submitted. This is
the reason why VVL was ignoring the error for so long.
Bug was discovered in `EGLSingleBufferTest.AcquireImageFromSwapImpl`
during local testing, where one-off command buffer was replaced with
outside RP commands. Other tests were still working fine, because they
are using `glClear()` in the very first flush - no renderpass in the
first submission, and so VVL can't track the layout once it is used in a
renderpass in the second submission.
Bug: angleproject:42262606
Change-Id: I19404b5be706e54e53890c2fec9cb4796296c698
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6182598
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
2d71b6b7
|
2025-01-23T16:56:02
|
|
Suppress dEQP failures on S22
dEQP-GLES31.functional.geometry_shading.instanced.geometry_output_different_32_invocations
dEQP-GLES31.functional.geometry_shading.instanced.geometry_output_different_max_invocations
KHR-GLES31.core.geometry_shader.primitive_counter.*
KHR-GLES32.core.geometry_shader.primitive_counter.*
Bug: angleproject:386749841
Change-Id: I41f399ab914d000d6b606170b6d191b61840eec8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6194732
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
55f421f6
|
2025-01-22T13:47:29
|
|
CL/VK: Add missing ArgumentWorkgroup case
Missed nop-case when processing kernel resources
during enqueueNDRangeKernel
(avoids false-reporting of UNIMPLEMENTED during routine).
Bug: angleproject:42267067
Change-Id: I0785ab94769fcb9b28ca0ff86d8104cc95056e5d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6191435
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
40267ddc
|
2025-01-14T12:51:00
|
|
Vulkan: Add bufferWrite for multiple shader stages
This is mostly a clean up CL. When a buffer is used in multiple shader
stages, it was inserting barrier multiple times by calling bufferWrite
in a loop. This creates unnecessary barrier against one shader stage to
another shader stage. This CL adds a multiple shader stages version of
bufferWrite that takes "const gl::ShaderBitSet &writeShaderStages" as an
argument, in consistency to bufferRead. Otherwise this creates a problem
in future CLs where we use VkEvent to track the write and you end up
with WAW of the VkEvent that has not submitted.
Bug: angleproject:360274928
Bug: angleproject:42262235
Change-Id: I923dc9df39318d337f67f4fa0f6a68f336df24f7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6180948
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
51cdae04
|
2025-01-21T18:41:15
|
|
Update dEQP-GLES2.functional.shaders.random* test expectations
Most tests have been fixed with the latest qualcomm drivers,
except 1 test is still failing:
dEQP-GLES2.functional.shaders.random.all_features.fragment.39.
Bug: b/328156792
Bug: b/338287961
Change-Id: Ib2ff74c6ae7e9f39958617fb8d00b9b1f89878ad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6188697
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
0acd0a17
|
2025-01-21T18:31:32
|
|
Remove fixed dEQP-EGL.functional.*pbuffer tests from skip list
These tests pass with latest ANGLE version d9c0aa4aff.
Bug: b/330906568
Bug: b/328156792
Bug: b/332784194
Change-Id: Ib42fe3cfb22f3f7a1bd84609f927cc47613a4920
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6188696
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
9867010e
|
2025-01-21T18:17:37
|
|
Remove fixed dEQP renderbuffer test from skipped test list
Test passes with the latest ANGLE version d9c0aa4aff.
Bug: b/328156792
Bug: b/333959262
Change-Id: I231feb43af69a1dab877fd3d3bd915b73d56d4b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6187619
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
fd94ce5b
|
2025-01-21T18:05:41
|
|
Update the deqp blend equation advanced test expectations on qualcomm
Some of the dEQP-GLES31.functional.blend_equation_advanced* tests
are fixed by the latest qualcomm drivers.
There are 9 remaining tests still failing. Update the expectation file
with these 9 tests.
Bug: b/328156792
Bug: b/345581214
Change-Id: I995b0f8a14d18f8ed4d1cdd27c334bdb09387d97
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6187617
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
e5a4924e
|
2025-01-21T17:42:50
|
|
Remove fixed dEQP copy texture tests from skipped test list
Tests passed with the latest qualcomm drivers.
Bug: b/347306270
Bug: b/328156792
Change-Id: I8d6c0cb04d13635a91b0d774c56d8f3f72bc0e4c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6187616
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
308cfc62
|
2025-01-13T14:54:18
|
|
Do not reset buffer age after query
The spec doesn't mention that we need to reset the
buffer age if no rendering after last call of eglQuerySurface
to query EGL_BUFFER_AGE_KHR. Age was also reset after first time
of query. Remove it to align with spec. New end2end test is
also added.
Bug: angleproject:391039188
Change-Id: I00c96e3a71ea2c9abcb86ebaf520243408dedd52
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6185135
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
1d25be59
|
2025-01-09T11:09:22
|
|
Vulkan: Pass Context instead of Renderer to BufferHelper APIs
This is preparation CL for later CL. In later CL we need to access
context argument in BufferHelper's barrier related functions. release()
also preferred to have context argument so that the events can be
recycled within share group. Because of this, a lot of functions has to
propagate back to pass context as argument instead of renderer.
Bug: angleproject:360274928
Change-Id: I13e930666eeeefbcff7b542d0e3126f3b07ce286
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6164686
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
680ff1f4
|
2025-01-22T19:17:40
|
|
Suppress flaky end2end test on Linux NVIDIA Vulkan
ClearTextureEXTTestES31Renderable.Clear2DArray
ClearTextureEXTTestES31Renderable.ClearCubeMap
ClearTextureEXTTestES31Renderable.ClearCubeMapArray
Bug: angleproject:362486580
Change-Id: I4254a4c28cb0b201d9e94511d5ddc8cce975d1c6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6190629
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
4be68add
|
2025-01-22T18:24:24
|
|
Skip OcclusionQueriesTest.WrongSkippedQuery
Fails on Win Intel UHD 770 Vulkan
Bug: angleproject:388144480
Change-Id: Iee4bbae63991bb7d678bdd0777b45647322f3843
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6191327
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
|
|
90e3f6bd
|
2025-01-17T23:10:55
|
|
executable path has non-ASCII characters, metal not available
On ARM64 MacOS 15.0.x, Metal Shader with
newLibraryWithSource didn't work if the executable path
contains non-ASCII characters.
Bug: chromium:389559087
Change-Id: I0482c01e2a11973f56c712b36062ed78f3cecf9f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6174286
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
|
|
d8a95bf7
|
2024-12-19T17:35:05
|
|
Vulkan: Protect OneOff commands recording with pool mutex
Bug: angleproject:384940864
Change-Id: I518c54ae4b0fc5da0e58d330f8c531bc8d65529e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6108843
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
3734b432
|
2025-01-21T14:24:42
|
|
Suppress some clear tests on Linux/Intel/GL
* Suppressed the following tests on Linux/Intel/OpenGL due to
observed flakiness on the bots:
* ClearTextureEXTTestES31Unrenderable.Clear3D
* (ismatch in output values)
* ClearTextureEXTTestES31Renderable.Clear2DArray
* (FBO status is shown as incomplete)
Bug: angleproject:384967031
Change-Id: I46e23e95619c6836b03edf6a52514b138f1542dc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6182634
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
a5016e31
|
2025-01-17T17:50:27
|
|
Vulkan: Fix typos found by gerrit spellchecker
Bug: angleproject:360274928
Change-Id: Idbffd7a4609f28d161bd0a11ace817856dcd750c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6182930
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0afc3323
|
2025-01-21T12:46:28
|
|
Add fast path to ValidCap for most frequent cases
glEnable/Disable are commonly called with the ones that are now on the
fast path. GL_POLYGON_OFFSET_FILL seems slightly less common but still
frequent enough to be inlined.
This noticeably reduces the number of function calls in DO2 trace
as well as branch predictor load (confirmed by cpu counter stats from a
mobile device), and just this change appears to improve wall_time a bit.
Bug: b/383305597
Change-Id: I8fa42de64d79f6638b312891f440d796dd95c57c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6184086
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e06a8369
|
2025-01-21T14:56:09
|
|
Tests: fix IndexConversionPerfTest using unaligned offset
Breaking Win perf bots since https://crrev.com/c/6151227
Bug: angleproject:385264236
Change-Id: I807b9823b5e1dfb12ec4ee7fe48d6addd568c224
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6187621
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
0554e7f0
|
2025-01-09T10:05:12
|
|
Vulkan: Resume render pass queries when render pass reactivates
Bug: angleproject:388144480
Change-Id: Ibcf3b247f347705feed4aa43d237406ccb142704
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6185098
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
801993bc
|
2025-01-18T21:48:41
|
|
handle Qualcomm's mixed vendor IDs
This is a weird situation. Up until Qualcomm had a native Vulkan driver
for Windows (with the Snapdragon X series chips), the only vendor ID
observable on Windows was 0x4D4F4351. This was reported through DXGI,
device manager, etc.
But with their native Vulkan driver, they now report 0x5143 as well:
VkPhysicalDeviceProperties:
---------------------------
apiVersion = 1.3.295 (4206887)
driverVersion = 0.807.0 (2150789120)
vendorID = 0x5143
deviceID = 0x36334330
deviceType = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
deviceName = Qualcomm(R) Adreno(TM) X1-85 GPU
pipelineCacheUUID = 0eba4509-4351-0000-0000-010c05430000
And yet, DXGI still reports 0x4D4F4351. Cool, huh?
Let's teach IsQualcomm to understand both vendor IDs to ensure the
device is correctly detected as a tile-based renderer in the Vulkan
backend.
Bug: angleproject:390866623
Change-Id: I9170c30262ace269498f066e922a279c7e981de6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6183621
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Steven Noonan <steven@uplinklabs.net>
|
|
c7cfbbc9
|
2025-01-20T22:31:42
|
|
Check if the GLES resources are bound to EGL image
Per spec, The resource that will be used to create egl image
must not itself be an EGLImage sibling, so validation for the
resource in this case should be include.
Bug: angleproject:388310036
Change-Id: I2b47e3de4f92beca7ff7a80383a7598c79fdedb0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6170833
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0c9ce8c7
|
2023-09-08T21:34:07
|
|
Trace-based testing app
Modifying angle_trace_tests app to run traces automatically on
invocation and dumps fps information. Also, compares the screenshot with
the golden images if provided and dumps the histogram of image diff.
Golden image naming format: <trace_name>_golden.png
- Run traces
- Capture screenshot
- Record FPS value
- Record image diff histogram
Bug: b/270421213
Doc: doc/StandaloneBenchmark.md
Change-Id: I42b8d229e1e358d48887f29f2424b9e771093ce9
Commit-Queue: Shashank Sharma <shawshanks@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6072349
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Auto-Submit: Shashank Sharma <shawshanks@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
a0e36ad5
|
2025-01-20T00:00:00
|
|
Vulkan: Fix image bindings for non-layered textures
Layer index must be ignored if the texture
does not have multiple layers or faces.
Fixed: angleproject:344950165
Change-Id: I4b402ee28d365f0459f980e01488828c80c93527
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6185849
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
8bf7d458
|
2025-01-20T09:37:25
|
|
Manual roll vulkan-deps from 476cafde9e9d to e8b712767b9e (8 revisions)
Manual roll requested by syoussefi@google.com
https://chromium.googlesource.com/vulkan-deps.git/+log/476cafde9e9d..e8b712767b9e
Also rolling transitive DEPS:
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/321692686b64873ccf4972754e36185697993e21..b9d5ced92ac454caf526c3b80d5105a1f38878ce
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader/+log/35a851d182cdebef408493b9a82ba212d1a2629c..1586f33d6d79eb9ffa5963ce4f70423986b95d8a
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries/+log/2fe3a7791dc9c34a581dc45522ab9b4363b4f321..7b23ba7a5f86936a8d783baf64a77c38977d6890
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/a80bafccd11d2b4e44dee21c530da49b41083682..1ce4b30307301d20d58040e088eb57c5ea8bb6ad
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
angle-team@google.com,geofflang@google.com,syoussefi@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://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: None
Change-Id: I297016b55854913ceda6cc4afb80f67eafe65e26
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6183654
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
16d8325f
|
2025-01-16T13:30:07
|
|
Vulkan: Make WindowSurfaceVk::setAutoRefreshEnabled thread safe
Bug: angleproject:379762019
Change-Id: I20feb72c4777a8dbd2058ced8a958d08b6c218ab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6175131
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
23ab7dbe
|
2025-01-17T14:18:32
|
|
Add likely and inline hints to getActiveLinkedProgram
I noticed that getActiveLinkedProgramPPO gets inlined in some of the
functions in Context.cpp, when we intended this to be a fallback path.
Explicitly mark PPO as noinline and the base call as inline to
minimize dependency on compiler heuristics (there seem to be
differences in assembly between implicit and explicit inline).
Bug: b/383305597
Change-Id: I2889a61efd4f653e842ce7089d54c51508a37491
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6180084
Commit-Queue: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Roman Lavrov <romanl@google.com>
|
|
0dabfe5a
|
2025-01-16T16:00:51
|
|
Tests: Supplement EXT_clear_texture tests
* Added negative tests in ClearTextureEXTTest.Validation.
* According to spec, divided format lists into color renderable and
unrenderable two sets.
* Bind the renderable format texture as a color attachment to test
EXT_clear_texture.
* Sample the unrenderable format texture then call glDraw to test
EXT_clear_texture.
Bug: angleproject:384967031
Change-Id: I71d77ef57772fbb5b174929e9ac2892e7dc3215f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6108999
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
aa6a9fae
|
2025-01-16T17:18:59
|
|
Vulkan: Selectively enable input attachment usage bit
Add VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT iff
supportsShaderFramebufferFetchDepthStencil feature is enabled.
Also, add noncoherent qualifier in a few FramebufferFetchTest
Bug: angleproject:352364582
Change-Id: I09c54a8d738b5cb4cbcf2716cdbff0c0ec9e31cf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6181497
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6793c5ee
|
2025-01-16T13:46:48
|
|
Vulkan: Simplify WindowSurfaceVk::mMinImageCount tracking
`mMinImageCount` is updated in the `WindowSurfaceVk::createSwapChain()`
method when "VK_EXT_surface_maintenance1" is enabled, which makes
updates outside of this method irrelevant. This CL removes all these
updates and makes update in `createSwapChain()` unconditional.
The `mMinImageCount` is now only accessed in the
`checkForOutOfDateSwapchain()` method outside of the `createSwapChain()`
method (without this check `mMinImageCount` might be a local variable).
Shared present mode and "forceContinuousRefreshOnSharedPresent" handling
is moved just before swapchain creation to properly handle cases when
"VK_EXT_surface_maintenance1" is disabled.
Bug: b/289274676
Change-Id: I963eab2dfbbb3ebf563183c47167cfd4b60e2f38
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6175130
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fc33f0a0
|
2025-01-15T11:23:25
|
|
Add a ReadPixels test for offset alignment check
An INVALID_OPERATION error is generated if a pixel pack buffer object
is bound and data is not evenly divisible by the number of basic
machine units needed to store in memory the corresponding GL data
type from table 8.4 for the type parameter. Add a test for this.
Bug: angleproject:352963094
Change-Id: I81eda446df5ff29da1326a1f75f5d5aa0825aafd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6170763
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
ab7457db
|
2025-01-14T11:55:06
|
|
Move ResourceMap mHashedResources access to functions
Follow up to https://crrev.com/c/6169263
https://chromium-review.googlesource.com/c/angle/angle/+/6169263/comment/43a79fa6_2a24673c/
Moves mHashedResources access out to function calls as this is a
fallback that is supposed to be hit very rarely. This makes the likely
branch (flat map accessors/modifiers) smaller so they can be easily
inlined without adding much bloat. I also moved flat map resize to a
function call as it is fairly rare and makes calls and malloc.
This further reduces aarch64 .so size by ~12KB (0.2%) and hopefully
improves locality a bit (perf tests inconclusive)
Also inline Sampler access in ResourceManager which now uses these
small inline accessors.
Bug: b/383305597
Change-Id: I013eeb27bf619cc9549a977ab92173e799a1466a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6174944
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
59ae5b97
|
2025-01-02T10:50:42
|
|
CL: Enable cl_khr_3d_image_writes
OpenCL C has __opencl_c_3d_image_writes feature and CL Runtime in
ANGLE has image formats supporting 3d image write.
Tests-Passing: OCLCTS.consistency_3d_image_writes
Bug: angleproject:387234392
Change-Id: Ibb3712845ddddd33f0d770129c9b203d19658e19
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6137931
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
810c19fa
|
2025-01-02T15:19:51
|
|
CL/VK: NonSemanticClspvReflectionArgumentPodUniform support
Missing NonSemanticClspvReflectionArgumentPodUniform support,
which gets used when the number of POD arguments exceed the
limit of the maximum amount of push constants that can be used.
Bug: angleproject:384549637
Change-Id: Ia0e2ea141cfb2c41c492ff4b125a1547c380c1cb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6097413
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
fbb0f994
|
2024-10-17T17:24:19
|
|
CL/Vulkan: Add check for std430-ubo-layout option for clspv
To support 1byte vectors, clspv needs to add
std430-ubo-layout option.
Related ocl_cts: test_basic parameter_types
Bug: angleproject:387306730
Change-Id: Ic00db6fcb3bc69eac455b36c6772dd83111ac06c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6137320
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
efe31ab8
|
2024-11-29T14:49:29
|
|
Revert "Vulkan: Keep old VVL suppression until roll into Chromium"
This reverts commit b31f367a9ab885c0cd3b176b8bbcab05b380cc8a.
Reason for revert: No longer needed after vulkan-deps rolled into
chromium.
Original change's description:
> Vulkan: Keep old VVL suppression until roll into Chromium
>
> Bug: angleproject:336652255
> Change-Id: Id12e86862cde613cbf3c87557532b2bf23da1838
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6056751
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Bug: angleproject:336652255
Change-Id: I5287fb70ecbf53124b240a4f9e71cbcba66093c2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6058732
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
2f9047cd
|
2024-10-21T21:56:14
|
|
Add CHECK when MTLCommandBufferErrorOutOfMemory occurs
Bug: angleproject:374574265
Change-Id: I3c1f6cdf86f9ad73b10f1299f4bd4e348dffb001
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5947983
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
|
|
8ee72cc7
|
2025-01-13T13:44:31
|
|
WGSL: support matCx2 in uniforms
matCx2 in WGSL does not match std140 layout and so it needs to
be translated as array<ANGLE_wrapped_vec2, C> when in a uniform.
On use it needs to be converted to a WGSL-native matCx2.
This also includes the optimization of an array<matCx2> in a
uniform--when indexing into it, only the indexed element
will be converted to a native matCx2, instead of converting
the entire array and then indexing.
Bug: angleproject:376553328
Change-Id: I1d84471234b3d3cf4cf361ae89cb61675d5bf9a8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6157788
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
73e226cb
|
2024-10-17T16:37:52
|
|
Vulkan: Add check for uniform buffer standard layout feature
Add to check uniform buffer standard layout is supported.
Bug: angleproject:387306731
Change-Id: I543c46a6b504a4df7e9937365c9b28e6328f0619
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6137319
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f45b9951
|
2025-01-16T10:05:06
|
|
Inline ValidateUniformCommonBase
Same way as driver_overhead_2 based PGO does it. It makes sense as the
function is small and only has a few callers.
This happens to reduce .so size by ~10KB due to
ValidateProgramUniform* (ES31) changes: clang no longer inlines
ValidateProgramUniformBase into those and it becomes a function call -
but a call in the same translation unit instead of a call into
ValidateUniformCommonBase in another unit. Seems like we get the same
number of calls but better locality.
Perf imact difficult to estimate due to effects of section layout
changes but I do see an improvement when comparing PGO builds,
disabling this optimization for an affected function
then re-enabling it with this CL.
Bug: b/383305597
Change-Id: Ib76d33d01b165049335e61c007ee79bec53219c5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6175711
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
38b3f123
|
2025-01-16T06:55:15
|
|
Vulkan: Enable preferDriverUniformOverSpecConst for Samsung
Bug: angleproject:386749841
Change-Id: I8e99efe01e1e9152371384d1bf5645b444438c62
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6179075
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
062f1fc1
|
2024-12-17T22:22:04
|
|
Vulkan: Use waitFenceUnlocked to finish one command Batch
Using `CommandBatch::waitFence()` in finish one command Batch is no
longer necessary, since `mQueueSubmitMutex` remains locked, preventing
adding new commands when `kInFlightCommandsLimit` is exceeded.
The `Locked` suffix is removed from `finishOneCommandBatchLocked()`
since it is now accepts the `lock` (similarly to `waitFenceUnlocked()`)
and may temporarily unlock it.
Test: angle_end2end_tests --gtest_filter=EGLSyncTest.BlockingOnSubmitCPUThrottling/*
Bug: b/362604439
Change-Id: I8f39d7b2e6f1b9ce8ed4aa8875375769211572e7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6098256
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
0cfea380
|
2025-01-15T10:46:54
|
|
Rename sh::TSpan as general purpose angle::Span
Span abstraction is useful for making buffer manipulation more
consistent. The commit makes the Span available to all code until
std::span can be used.
Bug: angleproject:389951202
Change-Id: Id0c6b54bb6e75d3cc4e85af854d9e61b66906752
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6170997
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b4cb17b8
|
2025-01-15T10:08:39
|
|
Roll VK-GL-CTS from 9509eb274dfe to 962460e9975c (9 revisions)
https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/9509eb274dfe..962460e9975c
2025-01-10 javed@igalia.com Add tests for input assembly primitive stat
with tess
2025-01-10 piotr.byszewski@mobica.com Fix promoted extension tests not
running correctly
2025-01-10 ziga@lunarg.com Fix supported sample count check in
draw_copy_resolve tests
2025-01-10 marcin.zajac@mobica.com Fix validation error in api tests
2025-01-10 nikolaysmirnov@google.com Add
multiple_render_targets_overdraw test
2025-01-10 gleese@broadcom.com gen_framework.py: Fix some alignment
2025-01-10 gleese@broadcom.com Update amber version to the latest
upstream
2025-01-10 rgarcia@igalia.com Test varying tessellation state in
Indirect Execution Sets
2025-01-10 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.4.1
into vk-gl-cts/main
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll
Please CC angle-team@google.com,geofflang@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://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: angleproject:390138123
Change-Id: I6b653b347550d4a7d4f75e3ce1a0f7bf20e0d0cb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6175280
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
28fbe4a5
|
2025-01-15T10:12:05
|
|
Docs: Fix CIPD link
For whatever reason, markdown wasn't resolving the link.
Bug: None
Change-Id: I27848b0ddbd579c7faf5832119d6521113dfea13
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6172575
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
3675ca04
|
2025-01-07T17:59:30
|
|
Vulkan: Bugfix for xfb GL_SEPARATE_ATTRIBS mode in PPO case
The new executable state transformFeedbackBufferMode should hold
the result of the link.
An end2end test is added.
Bug: angleproject:385662281
Change-Id: I52398ad9a9fe76344b94dac787cae7141924d1dc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6156277
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
de5286fa
|
2025-01-14T10:59:17
|
|
Add missing include to MemoryBuffer.cpp
Details can be found here -
https://chromium-review.googlesource.com/c/angle/angle/+/6135238/11#message-d271191140cfc29498701cbbb5ee8c6dc20349d0
Bug: angleproject:386749841
Change-Id: I428a61bafcc2d65d7538e0d1c28ebe39ad40b7fa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6169566
Reviewed-by: Brian Johnson <hibrian@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
4c1354d9
|
2025-01-03T14:41:27
|
|
Make sure the AHB is not corrupt when bound to egl image
The AHB bound to egl image could be corrupt or not a valid
ANativeWindowBuffer, it should be validated when creating
egl image.
Bug: angleproject:387226848
Change-Id: Iefc5506746ceaad92d16b02d5c0838156eee2f9d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6126739
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0501d32f
|
2024-12-23T18:02:54
|
|
Draw call with un-aligned index buffer should be checked
Bug: angleproject:385264236
Change-Id: I1ff7e93bf4b9ea9020e82f3558e4157b74cb7078
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6151227
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d9c0aa4a
|
2025-01-09T18:08:08
|
|
Reland "Roll third_party/glmark2/src/ ca8de51fe..2054465f6 (77 commits)"
This is a reland of commit 68b594e859f036b01974f78f8ddca8c419bc8ce3
Includes fixes to glmark2Benchmark.cpp to parse updated output.
Original change's description:
> Roll third_party/glmark2/src/ ca8de51fe..2054465f6 (77 commits)
>
> https://chromium.googlesource.com/external/github.com/glmark2/glmark2/+log/ca8de51fedb7..2054465f6f7c
>
> $ git log ca8de51fe..2054465f6 --date=short --no-merges --format='%ad %ae %s'
> 2024-04-25 alexandros.frantzis Use std::filesystem throughout the codebase
> 2024-04-25 alexandros.frantzis android: Build native code with C++17
> 2024-04-25 alexandros.frantzis Doc: Recommend meson for building win32 flavors
> 2024-04-25 alexandros.frantzis github: Build win32 flavors with msvc in CI
> 2024-04-25 alexandros.frantzis github: Build win32 flavors with mingw in CI
> 2024-04-25 alexandros.frantzis include/getopt: Always use non-const char array to avoid MSVC errors
> 2024-04-25 alexandros.frantzis libmatrix: Add utility function to get idle time
> 2024-04-25 alexandros.frantzis libmatrix: Add utility function to get process times
> 2024-04-24 alexandros.frantzis libmatrix: Add utility function to get the number of processors
> 2024-04-25 alexandros.frantzis libmatrix: Use C++ std::chrono instead of clock_gettime
> 2024-04-25 alexandros.frantzis libmatrix: Use C++17 std::filesystem instead of dirent
> 2024-04-25 alexandros.frantzis Build: Add support for win32 flavors in meson
> 2024-04-24 alexandros.frantzis libmatrix: Provide a copy of the va_list to __android_log_vprint
> 2024-04-13 kode54 NativeStateX11: Fix WM_DELETE_WINDOW handling
> 2024-02-15 alexandros.frantzis NativeStateWayland: Explicitly destroy all Wayland resources at shutdown
> 2024-02-15 alexandros.frantzis Explicitly release GL related resources at shutdown
> 2023-06-03 prlw1 src/meson.build: add x11 dependency to glx
> 2024-02-07 timchen021 Fix memory leaks using smart pointers
> 2024-01-12 daniel.levin Add missing includes in scene-collection.h
> 2023-11-01 alexandros.frantzis GLVisualConfig: By default don't care about the stencil config component
> 2023-11-01 alexandros.frantzis Options,GLStateEGL,GLStateGLX: Add option to require a good visual config
> 2023-07-26 abs GLStateEGL,GLStateGLX: Change failure to get a "good" visual config to warning
> 2023-11-01 alexandros.frantzis libmatrix: Add Log::warning() function
> 2023-05-20 prlw1 meson.build: fix build and avoid sigsegv
> 2023-05-03 ofourdan NativeStateX11: Add winsys option for position
> 2023-01-19 alexandros.frantzis Build,Doc: Update files for 2023.01 release
> 2023-01-19 alexandros.frantzis NativeStateMir: Remove Mir/mirclient support
> 2023-01-03 alexandros.frantzis ResultsFile: Support storing results in an XML file
> 2023-01-03 alexandros.frantzis ResultsFile: Support storing results in a CSV file
> 2023-01-03 alexandros.frantzis Options,ResultsFile: Add option to set the results file
> 2023-01-03 alexandros.frantzis Introduce infrastructure to support saving results to a file
> 2023-01-03 alexandros.frantzis CanvasGeneric: Store individual info elements in separate strings
> 2023-01-03 alexandros.frantzis MainLoop: Store indivitual result values in separate strings
> 2023-01-03 alexandros.frantzis Scene: Remove trailing ':' from scene info string
> 2023-01-04 alexandros.frantzis SceneTerrain: Silence unused variable warning
> 2022-12-21 pierre-yves.mordret NativeStateGBM: Lock and release the front buffer on flip
> 2022-12-21 alexandros.frantzis MainLoop,Scene: Support reporting shader compilation time
> 2022-12-20 alexandros.frantzis MainLoop,Scene: Add busy percentage in CPU time results
> 2022-12-20 alexandros.frantzis MainLoop,Scene: Support reporting CPU time results
> 2022-12-20 alexandros.frantzis Options: Introduce option to specify benchmark results to show
> 2022-12-20 alexandros.frantzis Scene: Update elapsed times when a benchmark finishes
> 2022-12-19 alexandros.frantzis Scene: Introduce struct to keep track of elapsed time
> 2022-12-15 alexandros.frantzis Scene: Introduce infrastructure for more complex scene stats
> 2022-12-15 alexandros.frantzis Scene: Move common preparation logic to Scene::prepare
> 2022-12-13 alexandros.frantzis Scene: Introduce non-virtual methods to prepare and finish a scene for benchmark
> 2022-12-08 alexandros.frantzis GLVisualConfig: Support specifying the config id in --visual-config
> 2022-12-08 alexandros.frantzis libmatrix: Support prefix dependent input conversions from string
> 2022-12-08 alexandros.frantzis GLStateEGL,GLStateGLX: Fail if no suitable config is found
> 2022-12-08 alexandros.frantzis GLStateEGL,GLStateGLX: Don't limit the configs passed to our selection mechanism
> 2022-12-08 alexandros.frantzis GLVisualConfig: Penalize configs with components smaller than requested
> 2022-11-16 alexandros.frantzis github: Build x11-gl-egl flavor in CI
> 2022-11-14 rilian-la-te build: Add x11-gl-egl flavor
> 2022-11-10 alexandros.frantzis GLStateGLX: Support multisampled configs
> 2022-11-10 l.stach GLStateEGL: Support multisampled configs
> 2022-11-10 l.stach GLVisualConfig: Add multisampling support
> 2022-09-02 120989324 Add missing newline at end of log messages
> 2022-11-10 alexandros.frantzis NativeStateDRM,NativeStateGBM: Support configuring the DRM device
> 2022-11-10 alexandros.frantzis Options: Support passing window system specific options
> 2022-04-23 nunes.erico NativeStateGBM: Add GBM offscreen backend
> 2022-07-07 wuqianhai SceneJellyfish: Fix memory leak
> 2022-07-07 wuqianhai SceneRefract: Fix texture leak
> 2022-07-07 wuqianhai SceneIdeas: Fix texture leak
> 2022-06-14 Martin.Jansa waflib: fix compatibility with python-3.11
> 2022-05-12 jeffy.chen NativeStateDRM: Honor visual configuration
> 2022-05-13 alexandros.frantzis GLStateEGL,GLStateGLX: Use SwapInterval 1 for FIFO swap mode
> 2022-04-15 alexandros.frantzis NativeStateDrm: Implement swap interval 0
> 2022-02-14 alexandros.frantzis github: Run apt-get update to get latest packages
> 2022-02-14 alexandros.frantzis CanvasGeneric,CanvasAndroid: Display surface config info
> 2022-02-14 alexandros.frantzis Options: Support --version command line argument
> 2022-02-14 alexandros.frantzis libmatrix: Add missing <utility> include
> 2022-02-10 hillma libmatrix: avoid -Wimplicit-fallthrough
> 2021-12-23 alexandros.frantzis Build,Doc: Update files for 2021.12 release
> 2021-12-23 alexandros.frantzis NativeStateDrm: Fix crash when we can't become DRM master
> 2021-09-30 jf android: Fix benchmark parameter edition
> 2021-08-30 alexandros.frantzis Use highp precision modifier only on GLES
> 2021-08-30 alexandros.frantzis GLStateEGL: Support EGL versions < 1.4
> 2021-04-11 maahiuzeon Fix model loading on big endian.
>
> Created with:
> roll-dep third_party/glmark2/src
>
> Bug: chromium:40263312
> No-Presubmit: true
> Change-Id: Ifee506badac67ff5af57605994daff01278c6d56
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6162277
> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
> Auto-Submit: Takuto Ikuta <tikuta@chromium.org>
> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Test: angle_perftests --gtest_filter="*GLMark2Benchmark*"
Bug: chromium:40263312
Change-Id: I54d8982cb37e488f80b7511ad0111d1ff111f004
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6174747
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bbc0d702
|
2024-12-27T07:44:01
|
|
Vulkan: Add entry points to lock the Vulkan queue
... which can be retrieved via EGL_ANGLE_device_vulkan. Otherwise the
application is unable to use the VkQueue that is retrieved out of ANGLE
from other threads (such as Chromium's DrDC feature).
Bug: chromium:380295059
Change-Id: Ife80f54440777486f72fc61697a68fb0c2b2d0f7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6116046
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ac7a85f4
|
2025-01-10T17:24:48
|
|
Vulkan: Replace copy image view with same read view in setStorage
1.Introduce a share flag in ImageViewHelper.
2.Update the share flag when copy view is same as read image view.
3.Only return read view when copy view is same read one.
Bug: angleproject:387392704
Change-Id: I6a3a9ca043ba16cdeb430cce53d40197618a0d44
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6147667
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
65513240
|
2025-01-03T17:26:55
|
|
Fix initializing output variables
... by compiling a list of TVariables instead of names that are later
looked up. The latter results in wrong symbols being initialized when
the output variables are shadowed.
Bug: chromium:376738756
Bug: chromium:377553431
Change-Id: I76b9688c035476c547ac73cff380629161210406
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6143374
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ae12ef68
|
2025-01-13T16:17:17
|
|
Vulkan: default to VK_FILTER_LINEAR for YUV DmaBuf
Follow YUV AHB to default to vk::kDefaultYCbCrChromaFilter.
Bug: b/388836383
Change-Id: I8883e9c40aa69bd41bec0449d63ac23fe6dadca6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6173191
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Chia-I Wu <olv@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
e510bb61
|
2025-01-08T09:56:39
|
|
Check offset alignment for ReadPixels
An INVALID_OPERATION error is generated if a pixel pack buffer object
is bound and data is not evenly divisible by the number of basic
machine units needed to store in memory the corresponding GL data
type from table 8.4 for the type parameter.
Bug: angleproject:352963094
Change-Id: I057ed0997313daffbb31d19c94e408b600fce03b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6155815
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fe76d70b
|
2025-01-10T14:41:06
|
|
Vulkan: Enable 16-bit norm support for tex buffers
According to the spec for EXT_texture_norm16, it enables texture
buffers to support the following additional formats:
* GL_R16_EXT
* GL_RG16_EXT
* GL_RGBA16_EXT
All of the above are unsigned short normalized values.
* Updated validation to support the aforementioned formats in texture
buffers in case of support for the norm16 extension.
* Updated AdjustViewFormatForSampler() to also support norm16 values.
* Added the condition for advertising textureNorm16EXT that the 16-bit
UNORM formats above should have the buffer feature bit for texture
buffer support: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
* Added support check for renderSnormEXT after textureNorm16EXT,
since the check for former currently uses the support for latter
as a parameter.
* Added unit tests to draw using a texture buffer with norm16 formats.
* Added TextureBufferTestBase in order to test the API calls in the
extensions and the core ES 3.2 version, which the following suites
are derived from:
* TextureBufferTestES31 (existing)
* TextureBufferTestES32 (new)
* Extended the tests to similar 8-bit formats.
Bug: angleproject:381313704
Change-Id: I49157e8c2c9b5438eaf8d56c1932d12e56489318
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6169006
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
f094a81e
|
2025-01-07T14:08:11
|
|
restricted_trace_perf: Add screenshot support
This update allows users to capture screenshots when
using restricted_trace_perf.py.
* Two new optional arguments are added. If either is set, a screenshot
will be captured.
--screenshot-dir (host directory to write screenshots, default CWD)
--screenshot-frame (specify desired frame, default is 1 or KeyFrame)
* If screenshots are requested, we create a temp dir
on the device, pull the screenshot, then delete the dir
* The screenshot is renamed during pull to reflect the
renderer that created it. Otherwise they are all named
"native" since we convince the platform to use its default
driver, allowing calls to go through the EGL loader.
Test: restricted_trace_perf.py --screenshot-dir ~/Screenshots --screenshot-frame 2
Bug: b/377325803
Change-Id: I5be7a1e2f9f557668bff51349654c8c4e093b47a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6154857
Commit-Queue: Roman Lavrov <romanl@google.com>
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
f72428bb
|
2025-01-10T22:24:07
|
|
Vulkan: Fix MSAA swapchain resolve out of render pass
.. vs the optimization that transitions the swapchain image to
PRESENT_SRC as part of the render pass.
When the swapchain image is the resolve attachment, its layout is
decided when the render pass is closed (or through manual calls to
finalizeImageLayout()). If the render area forbids the swapchain image
from becoming the resolve attachment, it must be resolved after the
render pass.
Prior to this change, the swapchain image was still marked for
transition to PRESENT_SRC by the render pass. This is inefficient, as
the following out-of-render-pass resolve would have to transition the
image back out of PRESENT_SRC. Nevertheless, this also had a bug
exposed by an ASSERT in the dynamic rendering path:
* Before the out-of-render-pass resolve, the image layouts are
forcefully finalized.
* The code in finalizeImageLayout() checks which image is being
finalized; if the image is not any of the ones in the render pass, it
was silently ignored.
* The image marked for transition to PRESENT_SRC
(mImageOptimizeForPresent) is not separately checked, as it is
expected to be an attachment as well.
The code that optimized the final render pass always marked the
swapchain image for optimization, even if it was not going to become the
resolve attachment. This change makes sure this optimization is done
only if the image is definitely an attachment of the render pass.
Bug: angleproject:389048224
Change-Id: I9f451d2698944111ac96bd97fefd6efa23859b7f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6168388
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
b3af2e86
|
2024-12-31T08:51:37
|
|
Enhance MemoryBuffer API
Add support for -
1. reserve - users can reserve sufficient capacity upfront to
minimize subsequent reallocations due to resize
2. append - to append data from a source so user doesn't need to
track offsets explicitly
Bug: angleproject:386749841
Tests: MemoryBufferTest*
Change-Id: Ibf2a3228d5a00ed34a7e0c5e3eb185e42677d676
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6135238
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b5b2612e
|
2025-01-13T12:36:39
|
|
Tune branching in getProgramResolveLink()
Hinting the likely/unlikely branches in related calls. Notably,
mShaderProgramManager->getProgram() has a flat resource array and a
fallback to a absl::flat_hash_map. As observed in driver_overhead_2
trace based PGO builds, the fallback gets un-inlined by PGO (presumably
due to being hit rarely) and becomes a function call. Regular builds
without the tuning in this CL inline flat_hash_map implementation,
increasing the code size / worsening locality for a fallback case.
This change makes the Context::useProgram() aarch64 assembly
in regular builds very close to the driver_overhead_2 based PGO,
and the code size goes down from 576 to 256 bytes.
The total reduction of the .so size is 36KB (0.6%), likely due to
all the cases where the inlining is avoided by hinting.
There appears to be a ~1% perf improvement in driver_overhead_2
trace wall_time in my tests on a couple of Android devices. Hard to tell
if this is due to the improved code locality or some other aspect of
the change in assembly.
Bug: b/383305597
Change-Id: I85c02cc74a56e7074086965e8d31018bd9ee0040
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6169263
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
cfe87e34
|
2024-12-16T16:29:39
|
|
Add multisample support for glCopyImageSubDataEXT
As GL_TEXTURE_2D_MULTISAMPLE/GL_TEXTURE_2D_MULTISAMPLE_ARRAY
been introduced by GLES3.1, glCopyImageSubDataEXT should support
those types.
Bug: angleproject:381727390
Change-Id: Ib3571ea38dc8d8ceb1bc9ad0c8a6e04d28b0ec33
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6146194
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
4c60a308
|
2024-12-30T15:35:07
|
|
Change default return value for eglDupNativeFenceFDANDROID
According to EGL spec, eglDupNativeFenceFDANDROID should
return EGL_NO_NATIVE_FENCE_FD_ANDROID when there is error.
However, ANGLE just returns 0 as default value. Now overload
the default return value to EGL_NO_NATIVE_FENCE_FD_ANDROID.
Also, a end2end test is added.
Bug: angleproject:385190296
Change-Id: I214efdeb3ad583989fab5e2244c82cb7295f8b67
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6146195
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
28270609
|
2025-01-09T18:08:40
|
|
Vulkan: Fix clear texture for unrenderable internalformat
Checking whether the texture is renderable or not depends on the output
texture's format. If the output format is unrenderable, while format and
type indicate the input format as renderable, the clear texture should
still go into the unrenderable path.
Bug: angleproject:385190304
Change-Id: I2963caad4996547a0aa27fcc37033ca95e2fa21e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6134267
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
0a207b65
|
2025-01-10T12:01:01
|
|
Vulkan: Assert size of GraphicsDriverUniformsExtended is within limits
ANGLE updates driver uniforms using push constants, ensure size of
ANGLE's driver uniform struct is within Vulkan spec's guaranteed limit
of 128 bytes.
Bug: angleproject:386749841
Change-Id: Iaa5ca8a46865a804b4c854ba27448bf4b6546646
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6164689
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
5f6be593
|
2024-12-30T09:35:16
|
|
CL: Add check for 2d image creation from buffer
CL_INVALID_OPERATION must be returned when creating a 2d image from the
buffer if cl_khr_image2d_from_buffer is not supported.
Tests-Passing: OCLCTS.test_api consistency_2d_image_from_buffer
Bug: angleproject:384765581
Change-Id: I431188b9c1d1881cf755058a8b8ca5741d17652d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6102106
Commit-Queue: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c289b30f
|
2025-01-09T12:49:27
|
|
WGSL: Add test for failure case of uniform struct rewrites.
Using a uniform struct outside of the uniform address space fails
if we've rewritten any of the member types and want to assign to
that member.
E.g. this line of GLSL, assigning to a member of a struct used in
the uniform address space:
privUnis.x = float[3](1.0, 1.0, 1.0);
Produces this WGSL warning:
ERR: DisplayWgpu.cpp:295 (operator()): Error: 2 - message: Error while parsing WGSL: :50:63 error: expected ')'
(ANGLE_Convert_ANGLE_wrapped_float_ElementsTo_float_Elements((_uprivUnis)._ux)) = (array<f32, 3>(1.0f, 1.0f, 1.0f));
This adds a test and suppresses it on WGSL.
Future design options:
https://docs.google.com/document/d/17Qku1QEbLDhvJS-JJ9lPQAbnuZtLxWhG-ha5eCUhtEY/edit?tab=t.0#bookmark=id.r89s1r69tl77
Bug: angleproject:376553328
Change-Id: I57304e9d2a889d00ac4fa02f265198ce3d78e7e2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6165290
Reviewed-by: Matt Denton <mpdenton@google.com>
Commit-Queue: Matt Denton <mpdenton@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
|
|
b1a0d60f
|
2025-01-08T15:10:41
|
|
WGSL: Fix accidentally overloaded functions
Small-stride arrays in uniforms with the same element type, but
different array sizes, would cause the WGSL generator to produce
conversion functions with the same name but different array sizes.
This CL puts the array size in the name of the function to
avoid overloading, which is unsupported in WGSL.
Bug: angleproject:376553328
Change-Id: I446e91ccb9da2872c88f1a4e05283aacc9d6f8b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6160334
Commit-Queue: Matt Denton <mpdenton@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Matt Denton <mpdenton@google.com>
Reviewed-by: Liza Burakova <liza@chromium.org>
|
|
2de256cb
|
2024-12-30T17:26:38
|
|
Change some error type in eglCreateImageKHR
Following the spec, for eglCreateImageKHR, if target is
EGL_LINUX_DMA_BUF_EXT and attribute value is not expected,
then EGL_BAD_ATTRIBUTE should be returned. However, ANGLE would
return EGL_BAD_PARAMETER. Now change these error handlings to
return EGL_BAD_ATTRIBUTE. Also, a end2end test is added.
Bug: angleproject:387892107
Change-Id: I73ecfc3da273c0fb5ac362e451fd186209f1a52b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6146196
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c10f5e3f
|
2025-01-08T10:04:39
|
|
Debug: Allow forcing GL_VERSION string
Similar to forcing renderer and vendor, useful for debug.
Bug: b/388459021
Change-Id: If00128369cf26069708e8db06c5e17b7ad0bdb58
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6157784
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Auto-Submit: Cody Northrop <cnorthrop@google.com>
|
|
3772d47e
|
2024-12-11T00:25:37
|
|
CL/Vulkan: Allocate descriptor sets under lock
The descriptor pool must be externally synchronized as per the vulkan
spec, as such acquire a lock when allocating descriptor sets from it.
Bug: angleproject:383999367
Change-Id: I98448770681ad39dae0dc7e413e28ec7dfa89f87
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6099129
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
06380dbc
|
2025-01-10T09:04:52
|
|
Add const missed in crrev.com/c/6153395
Mutability makes Chroimum's "android-binary-size" unhappy
Bug: b/383305597
Change-Id: I523bc92056962cef9a6f1e76d732ad1953bd46c7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6166761
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
3226a3df
|
2024-12-13T14:06:55
|
|
Reland: vulkan: add EGL_ANGLE_platform_angle_vulkan_device_uuid
Implement the ability to select a specific device and driver combination
through a few new selection criteria:
VkPhysicalDeviceIDProperties::deviceUUID
VkPhysicalDeviceIDProperties::driverUUID
VkPhysicalDeviceDriverProperties::driverID
Earlier version had problems due to a test build issue. Per syoussefi@,
going to rework the test into a separate CL so that we get the core
change merged.
Bug: angleproject:351866412
Change-Id: I0a3f4f1a2154a06bf6286a037c9ad4834ef4dda2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6165286
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Steven Noonan <steven@uplinklabs.net>
|
|
db833869
|
2025-01-08T06:14:22
|
|
Vulkan: Return cached width and height for eglQuerySurface
eglQuerySurface will return extents as of the most recent eglSwapBuffers
call
Bug: angleproject:153329980
Test: EGLPreRotationSurfaceTest.CheckSurfaceCapabilities*
Change-Id: Ifc9e84ed92bdc645afd12814a3a5539cc8b55da3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6158264
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
19ef77a2
|
2025-01-09T15:37:34
|
|
Validate glEGLImageTargetRenderbufferStorageOES renderbuffer
glEGLImageTargetRenderbufferStorageOES changes the renderbuffer.
Avoid crashing if there is no renderbuffer bound.
Bug: angleproject:388616184
Change-Id: I05eacb7a5907d2ca9cde8e91aa7814daa3008c71
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6163503
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f64fef25
|
2024-06-07T12:18:18
|
|
CL/Vulkan: Protect clspv compiler calls
The clspv compiler uses llvm backend to perform source code
transliteration, and the llvm parser used is non-rentrant. So protect
the clspv compiler call with a mutex.
Bug: angleproject:361717757
Change-Id: Ib10d6d165307594bed607d5e794b0ef92c3c894b
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6092035
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3b092269
|
2025-01-09T08:54:00
|
|
Revert "vulkan: add EGL_ANGLE_platform_angle_vulkan_device_uuid"
This reverts commit 96abb2c3d9e296ae12e50e0026bf5d3a7b925e7e.
Reason for revert: breaks rolling into Chromium
https://chromium-review.googlesource.com/c/chromium/src/+/6158098
Original change's description:
> vulkan: add EGL_ANGLE_platform_angle_vulkan_device_uuid
>
> Implement the ability to select a specific device and driver combination
> through a few new selection criteria:
>
> VkPhysicalDeviceIDProperties::deviceUUID
> VkPhysicalDeviceIDProperties::driverUUID
> VkPhysicalDeviceDriverProperties::driverID
>
> Bug: angleproject:351866412
> Change-Id: Ia6716aaed658d2563612d8b5d81287df97b57462
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5686557
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Auto-Submit: Steven Noonan <steven@uplinklabs.net>
> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:351866412
Change-Id: Ic7cf9dcf6a950556cc44f5920498db429c866340
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6164164
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|