|
4eed3a0c
|
2025-02-18T20:57:38
|
|
Vulkan: Remove EGL_WIDTH/HEIGHT from WindowSurfaceVk initialize
The EGL_WIDTH and EGL_HEIGHT are only applicable when
"EGL_ANGLE_window_fixed_size" is supported, which is currently only
exposed by D3D backends.
Bug: angleproject:40096349
Change-Id: I45886185d4740804709f274b70b73728b2a2e59d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6276201
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
91d0c56b
|
2025-02-18T20:00:00
|
|
Vulkan: Disable support for GL_EXT_YUV_target
... on vendors that don't have support for
nullColorAttachmentWithExternalFormatResolve
Bug: angleproject:386749841
Change-Id: I3437bf189bdfb40cba760143a442df13d6ebf8dc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6277811
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
cab0acdf
|
2025-02-19T16:22:07
|
|
Suppress dEQP ASAN failures
These block upgrading Clang to a new version that detects more problems.
Bug: b/395920316
Change-Id: Ie07d1fce240741f2572546c86e838f8b16c4950c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6281031
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
0f969b98
|
2025-02-18T07:48:03
|
|
Vulkan: Disable dynamic rendering for Samsung
Enable VK_KHR_maintenance5 iff VK_KHR_dynamic_rendering is enabled
Bug: angleproject:386749841
Change-Id: I60f949b2454dd43599516f051fa51f7378513cf5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6267100
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
d5a0d83a
|
2025-02-14T15:47:06
|
|
CL/VK: Fix addMemoryDependencies RAW barrier
Additionally, remove unused barrier insertion code
in processKernelResources().
Bug: angleproject:380188569
Change-Id: Id9f330410eecf45f94fe77bf072cf6601bd2a9e2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6271135
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
8c0ac979
|
2024-06-20T16:39:26
|
|
Vulkan: Setup compute only queue for OpenCL
Select compute only for OpenCL vulkan backend if
`angle_enable_cl_compute_only_pipe` is set to true in gn args.
And setting it as default for OpenCL.
Bug: angleproject:395045928
Change-Id: Ie1a53e629646dbd5ba332dd297a4c8b737070e95
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6244610
Reviewed-by: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f102ef02
|
2025-02-18T18:05:28
|
|
CL/Vulkan: Fix handling for NormalizedSamplerMaskPushConstant
* Fixes creation of normalized sampler for push constant
* CLSamplerVk should check if the sampler has not been created
Tests-Passing: OCLCTS.test_image_streams CL_FILTER_NEAREST 3D,
OCLCTS.test_image_streams max_images CL_FILTER_NEAREST 3D,
OCLCTS.test_image_streams use_pitches CL_FILTER_NEAREST 3D
Bug: angleproject:42266936
Change-Id: Ic70c55ad05f4babdd10b516e78a061bdb7aa2488
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6277809
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bc40362b
|
2025-02-18T13:24:31
|
|
Add line loop emulation for draw arrays
Bug: angleproject:383356846
Change-Id: I43f4835e17ecb2401418f77555fd70332612e1bf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6090912
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Liza Burakova <liza@chromium.org>
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
|
|
91deaea3
|
2025-02-13T13:57:37
|
|
Roll third_party/dawn/ 1eca38fa5..8119dbd27 (1982 commits; 30 trivial rolls)
https://dawn.googlesource.com/dawn.git/+log/1eca38fa5236..8119dbd27471
$ git log 1eca38fa5..8119dbd27 --date=short --no-merges --format='%ad %ae %s'
2025-02-12 zhuangxu Set MacOS deployment target to 11.0 when building with CMake
2025-02-12 dsinclair Revert "Remove stale WebGPU Compat CTS expectations"
2025-02-12 rharrison [tint][ir][fuzz] Add missing capability to tint::hlsl::writer::IRFuzzer
2025-02-11 shrekshao [Compat] Remove gles min31 end2end suppressions
2025-02-11 shrekshao [Compat] Fix toggle string for UseBlitForRG11B10UfloatTextureCopy
2025-02-11 rharrison [tint][ir][val] Add operand and result checks for MemberBuiltinCall
2025-02-11 rharrison [tint][ir][val] Check InstructionResult->Instruction is inst
2025-02-11 jrprice [node] Support subgroupMatrixConfigs query in dawn.node
2025-02-11 jrprice [vulkan] Enable subgroup matrix feature
2025-02-11 ynovikov Remove stale WebGPU Compat CTS expectations
2025-02-11 ynovikov Remove stale WebGPU CTS expectations
2025-02-11 dawn-autoroll Roll ANGLE from e746fb068fd3 to 19c5293e1347 (5 revisions)
2025-02-11 jrprice [metal] Enable subgroup matrix feature
2025-02-11 jrprice [dawn] Add SubgroupMatrixConfigs to adapter info
2025-02-11 kylechar Skip setting Vulkan object labels
2025-02-11 dsinclair [spirv-reader][ir] Add derivative operations.
2025-02-11 lehoangquyen D3D11: skip waiting on the fence that is owned by the same queue.
2025-02-11 dawn-autoroll Roll vulkan-deps from cd5e835851d1 to a88fd25a6a0d (8 revisions)
2025-02-11 dsinclair [spirv-reader][ir] Cleanup duplicate argument code.
2025-02-11 jrprice [dawn] Add feature for subgroup matrix extension
2025-02-11 dsinclair [spirv-reader][ir] Add support for `OpAny`.
2025-02-11 dsinclair [spirv-reader][ir] Add support for `OpAll`
2025-02-11 dsinclair [spirv-reader][ir] Add support for `OpBitReverse`.
2025-02-11 cwallez [tint] Make type::BindingArray use ArrayCount
2025-02-11 rharrison [tint][ir][val] Add additional checking to builtin calls
2025-02-11 dsinclair [spirv-reader][ir] Support `OpBitFieldUExtract`.
2025-02-11 lehoangquyen D3D11: return error if D3D feature level < 11.0
2025-02-11 shaoboyan Dawn Native: Setup ClampFragDepth offset in Vulkan Backend
2025-02-10 dawn-autoroll Roll ANGLE from c4caed5f649d to e746fb068fd3 (8 revisions)
2025-02-10 gman Compat: Fixup Device Limits
2025-02-10 dsinclair [spirv-reader][ir] Support `OpBitFieldSExtract`.
2025-02-10 dsinclair [spirv-reader][ir] Support `OpBitFieldInsert`.
2025-02-10 brandon1.jones Add Missing Synchronization For D3D12 Shared Buffers
2025-02-10 ynovikov Skip more textureSample tests on WebGPU CTS compat Android
2025-02-10 cwallez [dawn][frontend] Fix error message when @group > maxBindGroups
2025-02-10 dawn-autoroll Roll SwiftShader from 5017ce3c800e to 720189cae847 (1 revision)
2025-02-10 titouan Include tint fuzzers in high-end fuzzer build.
2025-02-10 dsinclair [spirv-reader][ir] Support `OpBitCount`.
2025-02-10 dawn-autoroll Roll ANGLE from 38aa0780bb36 to c4caed5f649d (28 revisions)
2025-02-10 jrprice [spirv] Require Vulkan Memory Model when fuzzing subgroup matrices
2025-02-10 jwata infra: Add project property to $build/siso
2025-02-10 dawn-autoroll Roll vulkan-deps from b4c8dd090b72 to cd5e835851d1 (1 revision)
2025-02-09 ynovikov Skip textureSample tests on WebGPU CTS compat Android
2025-02-09 dawn-autoroll Roll vulkan-deps from dbe0a14ab512 to b4c8dd090b72 (1 revision)
2025-02-08 ynovikov Remove stale WebGPU Compat CTS expectations
2025-02-08 ynovikov Remove stale WebGPU CTS expectations
2025-02-08 ynovikov Generalize Linux NVIDIA WebGPU CTS expectation
2025-02-07 dawn-autoroll Roll vulkan-deps from c32804ca5a39 to dbe0a14ab512 (9 revisions)
2025-02-07 shrekshao [Compat] fix glsl name collisions between stages for handle
2025-02-07 shrekshao Compat suppress min es31 failure tests
(...)
2024-08-15 rharrison [tint][ir][val] Improve checks on Returns
2024-08-15 petermcneeley [tint] Minor follow-up fix for insert before
2024-08-15 dawn-autoroll Roll ANGLE from 2003e06230b1 to 83ca89e58cef (6 revisions)
2024-08-15 dsinclair Allow marking expectations as INVALID.
2024-08-15 bsheedy Suppress additional Linux/NVIDIA failures
2024-08-15 chouinard Generate missing hlsl e2e tests
2024-08-15 petermcneeley [tint] MSL texture array negative integer clamp
2024-08-15 dsinclair Remove the CTS cache code
2024-08-15 amaiorano Generated missing tint e2e tests for ir.dxc.hlsl
2024-08-15 jiawei.shao Tint: Add validations on the type of `clip_distances`
2024-08-15 dawn-autoroll Roll ANGLE from 6fddb18d77a3 to 2003e06230b1 (6 revisions)
2024-08-15 jiawei.shao Tint: Add WGSL extension and built-in variable `clip_distances`
2024-08-15 jiawei.shao Remove `DeviceBase::ForceSetToggleForTesting`
2024-08-15 jiawei.shao Rename `BufferBase::GetUsage` and `BufferBase::GetUsageExternalOnly`
2024-08-15 bsheedy Suppress 16" Macbook failures
2024-08-14 rharrison [tint][ir][val] Check swizzles are well formed
2024-08-14 chouinard [tint] Implement quadSwapX, Y and Diagonal
2024-08-14 amaiorano [hlsl] Emit mip level 0 for storage textures
2024-08-14 amaiorano Regen ir.fxc.hlsl files
2024-08-14 jrprice [benchmark] Add --check-stale option
2024-08-14 dawn-autoroll Roll vulkan-deps from c297ee8a1d20 to 7660e21e64db (3 revisions)
2024-08-14 amaiorano Fix DXC roll
2024-08-14 dawn-autoroll Roll ANGLE from 5967afe70699 to 6fddb18d77a3 (3 revisions)
2024-08-14 dneto [tint] validate clamp const low <= const high when first arg is runtime-eval
2024-08-14 chouinard [tint] Implement quadBroadcast
2024-08-14 dawn-autoroll Roll ANGLE from fdd26da99a12 to 5967afe70699 (6 revisions)
2024-08-14 jrprice [benchmark][msl] Flatten bindings
2024-08-14 jrprice [benchmark] Split generated shaders into multiple lines
2024-08-14 jiawei.shao Don't check adapter nullability in the constructor of DeviceBase
2024-08-14 jrprice [benchmark] Generate map directly
2024-08-14 jrprice [benchmark] Convert SPIR-V when generating header
2024-08-14 jrprice [benchmark] Check in the generated header
2024-08-14 jrprice [benchmark] Remove spv_reader and wgsl_writer deps
2024-08-13 enga Add DeviceGetAdapter and AdapterGetInstance to client_side_commands
2024-08-13 jrprice [benchmark] Don't convert SPIR-V to WGSL at init
2024-08-13 rharrison [tint][ir][val] Check disards in validator
2024-08-13 chouinard [tint] Implement subgroupShuffleXor, Up and Down
2024-08-13 senorblanco Fix texture-only arg in combine samplers transform.
2024-08-13 jrprice [spirv] Remove ast_generate_bindings
2024-08-13 dawn-autoroll Roll vulkan-deps from 77d583f37170 to c297ee8a1d20 (3 revisions)
2024-08-13 jrprice [tint] Remove the quantizeToF16 AST polyfill
2024-08-13 jrprice [spirv] Remove AST backend
2024-08-13 jrprice [loopy] Switch to IR version of SPIR-V backend
2024-08-13 shrekshao [Compat] Use @size attribute for glsl pad struct
2024-08-13 jrprice Reland "[tint][benchmark] Generate depfile for inputs"
2024-08-13 jrprice [spirv] Move E2E expectations to default paths
2024-08-13 jrprice [spirv] Remove AST E2E expectations
2024-08-13 jrprice [tint] Only allow --use-ir with WIP IR backends
2024-08-13 dawn-autoroll Roll ANGLE from f8fc8ac36280 to fdd26da99a12 (4 revisions)
2024-08-13 dawn-autoroll Manual roll vulkan-deps from a5d4d42457c3 to 77d583f37170 (8 revisions)
Created with:
roll-dep third_party/dawn
Bug: angleproject:396213611
Change-Id: I124bbd59dccd14d8609c37ef62ccdd4455897b2c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6270256
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
bace6371
|
2025-02-17T15:14:37
|
|
Tests: Add Brotato ANGLE trace
Test: angle_trace_tests --gtest_filter=*brotato
Bug: b/397185288
Change-Id: I3d89d4b073b56efeede42abf5b0f44f8e9bd221a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6277708
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
51d2561b
|
2025-01-29T11:11:50
|
|
Vulkan: Enable a few features for Samsung
Enable the following features for Samsung -
1. enableAdditionalBlendFactorsForDithering
2. forceSampleUsageForAhbBackedImages
Bug: angleproject:386749841
Change-Id: I9e822b884ea4e44af38c2d2dd95c67b020b94f98
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6207669
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bf9f69fc
|
2025-02-14T11:57:14
|
|
CL/Vulkan: Add support for LiteralSampler
The support for LiteralSampler in clspv is enabled through the SPIR-V
non-sementic clspv reflection instructions - LiteralSampler [1].
Setting the utility functions to process
these instructions.
Bug: angleproject:394767574
Change-Id: I47aa03dac050f723d2e3f2a7f9c6c1756e7ac9cf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6239519
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Austin Annestrand <a.annestrand@samsung.com>
|
|
bef478f5
|
2025-02-11T10:44:48
|
|
Set system settings to A14 until edge to edge is fixed
Bug: b/389208485
Change-Id: Ic70cfd7135a5cbc1f14656246835476dadad8034
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6254737
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Auto-Submit: Brian Johnson <hibrian@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
2ba1f129
|
2025-02-11T15:27:16
|
|
Vulkan: Avoid storage reallocation in UpdateDescriptorSetsBuilder
UpdateDescriptorSetsBuilder::mDescriptorBufferInfos and
mDescriptorImageInfos will keep grow to a few hundreds of entries and
that grow will end up with data copy and patching mWriteDescriptorSets.
There is no requirement that entire vector of mDescriptorBufferInfos
andmDescriptorImageInfos must be continuous. The only requirement is
that when allocDescriptorBufferInfos(count) is called, the count of
entries must be continuous. This CL uses a queue of vectors so that when
we need to allocate new storage we just add another vector and allocate
out of the new vector. This avoids all related data copy.
Similar thing applies to mWriteDescriptorSets. The only thing I added
for mWriteDescriptorSets is that I try to grow the first vector big
enough to hold all of the entries for next submission to minimize the
vkUpdateDescriptorSets call.
Bug: b/293297177
Change-Id: Ief417ace8c8f7b477a1962505e9487bf31bae2ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6253675
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
7afa2345
|
2025-02-12T11:45:59
|
|
Vulkan: More std::vector storage fix for TransformFeedbackVk etc
PersistentCommandPool::mFreeBuffers switched to use std::deque since
there is no need to be continuous storage
TransformFeedbackVk::mBufferObserverBindings restored storage before
calling emplace_back in a loop. We could use std::array, but this works
as good.
Bug: b/293297177
Change-Id: Id658216d3d4d25ee1d5cb4ccb8f1a4499b18c38d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6259279
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
367541f5
|
2025-02-05T16:45:13
|
|
Capture/Replay: Add multi-capture support to tracer
Multiple captures can now be grabbed by setting the trigger
value to the desired framecount and then resetting it to
zero to trigger a new capture. Captures will be saved in the
current capture.out_dir directory and this should be changed
between captures to keep traces separate.
Note that this feature will not work with apps using
persistent coherent memory, and in these cases the tracer
will exit, preserving the initial, valid trace.
Bug: b/394107532, angleproject:42263521
Change-Id: I9d31d19ec6c3736dbda356405eb91fba2dd5a8d7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6258503
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
c8dc7c08
|
2025-02-13T16:35:05
|
|
CL: Fix typo in cl::BitField's exclude() routine
Ignored passed "other" param.
Bug: angleproject:42266936
Change-Id: Ia616bc7e2d1bfbdd39ed22221157b6aca5529ed2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6265705
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
064449af
|
2025-02-13T14:02:33
|
|
Vulkan: Fix race condition with foreign image transitions
Bug: b/395155346
Bug: b/395513429
Bug: chromium:394148453
Change-Id: Ie6bcd74d8b6c8fdc37af0a0fbd29c0a7a96d0ec1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6265924
Reviewed-by: Jason Macnak <natsu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
93656e2d
|
2025-02-11T12:06:17
|
|
Vulkan: Reserve storage for ShaderInterfaceVariableInfoMap::mData
To avoid data copy associated with vector storage reallocation, reserve
enough space based on data gathered from app traces.
Bug: b/293297177
Change-Id: I573fc89bd1c8590d9cfb72f576751c94f83720cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6253674
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
3d29a799
|
2025-02-11T10:05:35
|
|
Vulkan: Reserve enough storage for ImageHelper::mSubresourceUpdates
Most app specify textures from level 0 to level N, which works against
std::vector storage grow scheme (which grows in size of 1,2,4,8,16).
This CL simply reserve space for 12 mipmap levels to accommodate for
most used texture sizes.
Bug: b/293297177
Change-Id: I44818ed7ee436c73ab7ff146972f122ae9f08f33
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6253673
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
c8049a47
|
2025-02-12T13:21:56
|
|
Tests: Add Tower of Fantasy trace
Test: angle_trace_tests --gtest_filter="*tower_of_fantasy"
Bug: b/389808881
Change-Id: I16a4ab0c12c18d2feb9df41cb0ba5667adb1f161
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6258901
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Mark Łobodziński <mark@lunarg.com>
|
|
7014e9ec
|
2025-02-12T16:42:40
|
|
Further suppress dEQP-GLES2.functional.fragment_ops.blend on WGPU
Only blend.*constant_alpha* were previously suppressed,
but many other tests are flaky on Mac Intel.
Bug: angleproject:370690274
Change-Id: I8618c6251956308fa06fe2739eff5050c9578f2c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6258051
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
|
|
688f328f
|
2025-02-12T06:55:55
|
|
Revert "Suppress ImageTestES3 on Pixel 6 Vulkan"
This reverts commit ef2ef107242781000ebe2f4f11839ea233aae01b.
Reason for revert: should be fixed by
https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/9418
Original change's description:
> Suppress ImageTestES3 on Pixel 6 Vulkan
>
> ImageTestES3.ClearYUVAHB
> ImageTestES3.RenderToYUVAHB
>
> Report on Pixel 6 Android 14:
> VUID-VkSubpassDescription2-nullColorAttachmentWithExternalFormatResolve-09336
>
> Suppress temporarily while VUID is being fixed.
>
> Bug: angleproject:395223719
> Change-Id: I52c7fea1058b522badbbd3be5050a01b099d15a7
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6243416
> Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Bug: angleproject:395223719
Change-Id: I22b6ccde6444990d31b95771f067a31669ac3aa1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6258049
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7ed5575f
|
2025-02-11T16:21:56
|
|
Tests: Skip monopoly_go on Linux/Intel
* Skipped this trace on Linux/Intel due to failure on the perf bot.
Bug: angleproject:385226328
Change-Id: If1d741fb681027865409c16ebe736c5ce8516ac1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6254465
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
f8493aaa
|
2025-01-29T15:31:40
|
|
FrameCapture: Fix framebuffer setup for multiple contexts
In some traces we're seeing garbage in Context specific setup for
framebuffers. It seems the context is being lost in the final bind.
For instance, we see this bad sequence in SetupReplayContext2:
glGenFramebuffers(1, (GLuint *)gReadBuffer);
UpdateFramebufferID2(2, 2, 0);
glBindFramebuffer(GL_FRAMEBUFFER, gFramebufferMapPerContext[2][2]);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
GL_TEXTURE_2D, gTextureMap[50], 0);
glGenFramebuffers(1, (GLuint *)gReadBuffer);
UpdateFramebufferID2(2, 3, 0);
glBindFramebuffer(GL_FRAMEBUFFER, gFramebufferMapPerContext[2][3]);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
GL_TEXTURE_2D, gTextureMap[50], 0);
glBindFramebuffer(GL_FRAMEBUFFER,
gFramebufferMapPerContext[2863311360][0]);
Note the very large number in the last line. That is supposed to be
a context number!
This is due to a missing call to set the context for that instruction.
It was added in one spot, but was needed in several.
With the fix in this CL, we get the correct context:
glGenFramebuffers(1, (GLuint *)gReadBuffer);
UpdateFramebufferID2(2, 2, 0);
glBindFramebuffer(GL_FRAMEBUFFER, gFramebufferMapPerContext[2][2]);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
GL_TEXTURE_2D, gTextureMap[50], 0);
glGenFramebuffers(1, (GLuint *)gReadBuffer);
UpdateFramebufferID2(2, 3, 0);
glBindFramebuffer(GL_FRAMEBUFFER, gFramebufferMapPerContext[2][3]);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
GL_TEXTURE_2D, gTextureMap[50], 0);
glBindFramebuffer(GL_FRAMEBUFFER,
gFramebufferMapPerContext[2][0]);
Test: Capture apps that set up multiple contexts
Bug: b/371985732
Change-Id: Id12d7f0ec0ec9a2cdc2b4bfeca08faf9b8b7e775
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6217081
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Mark Łobodziński <mark@lunarg.com>
|
|
cfa03e75
|
2025-02-03T11:56:01
|
|
Replace .toList() with .collect()
.toList() was introduced to android in api level 34, which is newer
than angle's min_sdk_version. This was found during an android lint
update.
Replace it with .collect(Collectors.joining(",")).
Bug: b/394096385
Test: Presubmits
Change-Id: I053adfa7f8e1d6d9758413f789115eee7d66fd7a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6226327
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
19c5293e
|
2025-02-11T10:28:41
|
|
Tests: fix Swiftshader test instantiation logic
Tests should not be disabled when IsSwiftshaderDevice(), for example
running ANGLE builds without Swiftshader on cuttlefish which has
Swiftshader set up as the GLES driver.
Bug: angleproject:42266725
Change-Id: Id7155c0dfef84a775e558cfc84eb241b727a93a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6253838
Auto-Submit: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c0d806b4
|
2025-02-10T23:01:33
|
|
CL: OpenCL support for ANGLE Capture/Replay
Implementation of OpenCL Capture/Replay tool in ANGLE.
Brief notes about the change:
- Most meaningful changes for the capture process are
made in src/libANGLE/capture/
- Most meaningful changes for replay are made in
util/capture/ and src/tests/perf_tests/
- Many autogenerated files are changed/added to allow
the capture of OpenCL objects & calls
- The following applications were captured/replayed:
benchmark_model, GeekBench Compute, GeekBench ML,
AI-Benchmark, various OCL CTS tests
- End2end test added to capture_tests.
CapturedTestCL.MultiFrameCL/ES3_Vulkan
Bug: angleproject:383841335
Change-Id: I55fdaa6cd6c7ba740aaa2351e4d29050059d6d1d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6102105
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
cfb430c8
|
2025-02-10T13:19:05
|
|
Remove angle::ErrorStream helper
Most uses of the helper either use just the code or a fixed string,
which compiles to a few instructions. Using this helper adds 200+ bytes
of assembly to each use, due to the unneeded instantiation of
ostringstream which allocates a buffer etc. The combined effect of this
CL on an Android perf build is ~12KB (0.2%) reduction in size.
The cases where the message is actually formatted are converted to an
explicit use of ostringstream. Removing the helper so that the new code
is explicit about the intent to use ostringstream, or an alternative way
to format the message.
Discovered accidentally while looking into size reduction due to
__builtin_unreachable()
Semi-automated code change, risk of copy-paste mistakes should be
minimal.
Bug: angleproject:394129077
Change-Id: I47c2642d750d31416b08a1cfa435d5463c294e35
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6250078
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
e746fb06
|
2025-01-23T13:23:30
|
|
WebGPU: Implement blending
Constant alpha is not handled yet. It needs to be emualted or added
to WebGPU.
Bug: angleproject:370690274
Change-Id: I5f8402f74ab08345b2f02c18e2d43fa39b2479a7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6194554
Reviewed-by: Liza Burakova <liza@chromium.org>
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
9e86d8c0
|
2025-02-05T16:31:22
|
|
Vulkan: Fix VVL due to memory map range
VVL: VUID-VkMappedMemoryRange-size-01390
* Updated BufferBlock::map() so the device memory uses the actually
allocated buffer size.
* To flush and invalidate a mapped memory range (non-coherent), the
memory size is now aligned with nonCoherentAtomSize from the physical
device limits.
* Added an assert to make sure that the mapped size is within the
allocated buffer size range.
* Unskipped ExternalBufferTestES31 cases for Pixel6, except one case
which seems to take a long time and result in timeout.
* BufferDoesNotLeakAHB
Bug: angleproject:394685081
Change-Id: Iddfb45997fed53c5ee99938d9bb57b670550b9a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6238059
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
869dde72
|
2025-02-07T15:44:12
|
|
Remove code paths for invoking the offline Metal compiler
We experimented with invoking the Metal shader compiler directly to
create cacheable shader libraries but the project did not show useful
gains.
It is currently all dead code, remove it.
Bug: b/391990604
Change-Id: I6d13278d1a27d8b3ae961a0846f31292f2506b23
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6245258
Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
883f6246
|
2025-01-22T16:36:26
|
|
Add validation for eglSetDamageRegionKHR
Although this is not mentioned in spec, n_rects in eglSetDamageRegionKHR
should be a valid value. It doesn't make sense if it's less than 0.
Refine the validation in ANGLE and also add end2end test.
Bug: angleproject:395482390
Change-Id: Idbde839be85bac927486b7613005f25d54c3d5f5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6242903
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d252425d
|
2025-02-06T14:51:36
|
|
Vulkan: Check source image usage flags in copy paths
... instead of the format feature flags. If the source of the copy is
has external format (allowed with glCopy[Sub]TextureCHROMIUM), the
format feature checks are unable to query the format features. However,
the image usage flags already have the required information (whether the
image can be copied from, sampled from, etc).
Bug: chromium:383056998
Change-Id: I2ba8820751eb526ef497a8be724193276fd46160
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6238265
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
ae84e067
|
2025-02-10T19:31:37
|
|
Vulkan: Use correct feature in queryAndAdjustSurfaceCaps()
Check "supportsSurfaceMaintenance1" feature instead of
"supportsSwapchainMaintenance1", because `VkSurfacePresentModeEXT`
structure requires "VK_EXT_surface_maintenance1" extension and not
"VK_EXT_swapchain_maintenance1". Some platforms may expose one but not
the other, causing inconsistent `GetMinImageCount()` calculations and
swapchain recreation on each frame if "perFrameWindowSizeQuery"
feature is enabled.
Bug: angleproject:42267111
Change-Id: Id17bec8017799a7c175e6a4b03583665faf5dddd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6249841
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0026006d
|
2025-02-10T12:03:40
|
|
Vulkan: Fix missing barrier between dispatch calls
When storage images are used, ANGLE accidentally did not mark the images
as being written to, so subsequent barriers were not produced when
necessary.
Bug: angleproject:352610491
Bug: b/394611669
Change-Id: Idd3e6aa6b90212605594240a533ebaec66850ea9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6249459
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
c4caed5f
|
2025-02-10T06:17:01
|
|
Revert "UNREACHABLE -> __builtin_unreachable() in release clang builds"
This reverts commit 7370bb573dd8b37006d409fc8917ff49912dd75a.
Reason for revert: issue identified by fuzzer crbug.com/394980074
Original change's description:
> UNREACHABLE -> __builtin_unreachable() in release clang builds
>
> This enables compiler optimizations such as reducing the amount of
> branching, see anglebug.com/394129077#comment1
>
> Reduces .so size in an Android perf build by 0.4%. I spot checked a few
> differences and saw less branches (this will be causing a different
> behavior in UNREACHABLE branches) as well as more functions getting
> inlined (likely due to compiler heuristics due to less branches)
>
> Bug: angleproject:394129077
> Change-Id: I23411ca7a49d3daf2a0621bfcc0b2523d4db4f5a
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6231111
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Charlie Lao <cclao@google.com>
> Commit-Queue: Roman Lavrov <romanl@google.com>
Bug: angleproject:394129077
Bug: chromium:394980074
Change-Id: I7398d86c692e5c50ac1185c30e2053eb87f9bd70
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6248417
Auto-Submit: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ef2ef107
|
2025-02-09T10:53:00
|
|
Suppress ImageTestES3 on Pixel 6 Vulkan
ImageTestES3.ClearYUVAHB
ImageTestES3.RenderToYUVAHB
Report on Pixel 6 Android 14:
VUID-VkSubpassDescription2-nullColorAttachmentWithExternalFormatResolve-09336
Suppress temporarily while VUID is being fixed.
Bug: angleproject:395223719
Change-Id: I52c7fea1058b522badbbd3be5050a01b099d15a7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6243416
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
aef40167
|
2025-02-07T13:42:34
|
|
Vulkan: Account for padBuffersToMaxVertexAttribStride
... when evaluating maxTextureBufferSize
Bug: angleproject:391002353
Test: KHR-GLES31.core.texture_buffer.texture_buffer_max_size
KHR-GLES32.core.texture_buffer.texture_buffer_max_size
Change-Id: I7f59d642ed5af87fdb0c683189da88b0a70a1122
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6244611
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b5584cfd
|
2025-02-05T15:14:52
|
|
ValidTexLevelDestinationTarget should add external related cases
GL_TEXTURE_EXTERNAL_OES is not documented in OES_EGL_image_external
spec, but we consider that to be an omission in the spec.
Bug: angleproject:394380758
Change-Id: Idb5523c173ae0a5910af97639dadff3c5adf9fdf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6232504
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
ffb7575c
|
2025-02-07T10:25:22
|
|
Vulkan: Reserve reasonable amount storage for GarbageObjects
Based on data collected from app traces, set the initial storage enough
to accommodate most of the usage cases.
For ContextVk::mCurrentGarbage, the problem is that after the
collectGarbage call, it lose the capacity value, so next time it end up
with 0 and slowly grow the capacity again. This CL always keeps the
capacity after the collectGarbage call.
Bug: b/293297177
Change-Id: I70deccd879311aebe6ea3bbf4ecf5c54a74ef584
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6244922
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
3dcd143c
|
2025-02-06T15:06:02
|
|
Vulkan: Reduce GL_EXT_texture_storage_compression related overhead
Most of apps not using fixed rate compression extension, but we are
getting into all these logic that checking for vulkan driver's support
of compression rate. This CL adds a check in TextureVk::initImage(), so
that it only goes down that logic if
mState.getSurfaceCompressionFixedRate() is not
GL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT. This means for all existing
app traces we have, we should not go down these logic any more.
This CL also made TextureVk::getFormatSupportedCompressionRatesImpl()
and ImageHelper::getCompressionFixedRate() out of TextureVk and
ImageHelper class given they are not accessing the data member at all.
Bug: b/293297177
Bug: angleproject:352364583
Change-Id: Ib5eebf54172f194d7c65c2d2d751326b7923403f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6239523
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f6c5db26
|
2025-02-06T13:28:03
|
|
Vulkan: Reserve enough storage for GLRates
Bug: b/293297177
Change-Id: Ie42dd646f7a4f5b0710058fc1612148c1d650e03
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6231517
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
6eb9789e
|
2025-02-06T11:59:31
|
|
Vulkan: Reserve enough storage for mSwapchainImages
Investigation shows that when running traces in back to back mode,
mSwapchainImages end up with max size of 6 or 7. This CL reserve the
enough capacity (8 to be power of 2) so that no storage reallocation
related data copy will occur. Similar storage is reserved for
mSwapchainImageBindings as well.
Bug: b/293297177
Change-Id: I1e216b6eaeed72554a20d27963b797b00ca5fd07
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6240592
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
2ab36882
|
2024-09-16T14:28:49
|
|
CL/VK: Add fillBuffer staging/transfer routine
Bug: angleproject:377545840
Change-Id: I90f6896f96af25d7776a36595930b81af8c1141b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6237414
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
ffbcd15e
|
2025-01-06T16:07:02
|
|
CL: Update event creation routines
Move backend construction after frontend construction
completes. This avoids potential undefined behavior
if backend construction tries to access members of
half-constructed frontend object.
Add virtual onEventCreate routine for any actions that
need to be performed after cmd event has been created.
Additionally, this also fixes incorrect timestamp values
when queue profiling is enabled for the VK backend.
This was due to a missed event association to the
cmd queue.
Bug: angleproject:377942756
Change-Id: I0a2f0390cc04f94143d1801ad71e06f63785f3ce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6149055
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Gowtham Tammana <g.tammana@samsung.com>
|
|
eaf06ea7
|
2025-02-06T13:58:07
|
|
Vulkan: Bugfix in resolvePrecisionMismatch(...)
Early-return if a varying is not active in either the front or back
shader
Bug: angleproject:386749841
Test: GLSLTest.MismatchedInactiveVarying*
Change-Id: Ie0c6dfd6616afcb94bec043d36d4f8188df8abb3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6239031
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
9f8d7cc2
|
2025-01-23T13:27:19
|
|
WebGPU: Stream incompatible vertex and index data.
Support reading back index and vertex buffers to stream incompatible
source data. For now this includes:
* Non-multiple-of-4 stride vertex data
* Stride not a multiple of the type size
* Unsigned byte indices
Fix fallback formats so that all GLES formats have a fallback.
Fix CopyToFloatVertexData writing the alpha channel as Float32One
with a static_cast which converted Float32One (an integer) to a
float instead of bit-casting.
Bug: angleproject:368602384
Change-Id: I7eb1ba7ad1ec4292060c18de22f5948136cbb0a3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6194556
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
49ca2e22
|
2025-02-07T09:58:12
|
|
Vulkan: vkQueueWaitIdle on device loss
On device loss, a driver bug was encountered when cleaning up resources
if vkQueueWaitIdle is not called.
Bug: chromium:371512561
Change-Id: Ib0d4f317a15a1788f0cf206842cb1e7bf6936d96
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6244337
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
0790b50d
|
2025-02-07T11:15:11
|
|
Android: Sleep after orientation change in EGL test
In each of the EGLPreRotation* tests that change dislay orientation,
we have a sleep that gives the Android device time to react.
A new test was added that didn't include the sleeps and is causing
flaky asserts based on how it got sharded for testing.
This CL adds the sleeps, mirroring other tests.
Test: EGLPreRotationSurfaceTest.CheckSurfaceCapabilities
Bug: angleproject:395110957
Change-Id: If2a959d69ba4f4b4ed0f6a6fbffb94762174966d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6244919
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d4083c79
|
2025-01-31T15:06:36
|
|
Metal: Make ObjCPtr available to all modules
Move ObjCPtr implementation to src/common/ObjCPtr.h,
angle::ObjCPtr so that it's available also outside libANGLE.
Bug: angleproject:393263506
Change-Id: I8ecd5632c7ae33ef4b409fc820fad229e91bc0ab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6219318
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
4e5f2ca3
|
2025-01-31T14:30:05
|
|
Metal: Rewrite AutoObjCPtr as ObjCPtr
Rewrite without WrappedObject base class, the base class only
convolutes things and does not help. This way the class can be
moved upwards in the software layers in subsequent commits.
Fix the class so that it can be used with ObjCPtr<T> and ObjCPtr<id<P>>
signatures, to resemble other smart pointers.
Remove the Auto prefix, ObjCPtr should be relatable to other smart
pointers such as unique_ptr.
Bug: angleproject:393263506
Change-Id: Ia5a5728514b7f9182c2ec8380c04716e8b9d2351
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6219317
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
e9cda7f6
|
2025-02-06T08:01:49
|
|
Roll VK-GL-CTS from 48e7f3020f52 to 1177f7b7d556 (5 revisions)
https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/48e7f3020f52..1177f7b7d556
Includes manual merge to remove GN reference to deDefs_kc_cts.h
2025-02-04 lorenzo@khronosgroup.org Remove all references to KC-CTS and
GTF
2025-02-04 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.4.1
into vk-gl-cts/main
2025-02-04 elima@igalia.com Add VK_KHR_video_maintenance2 tests
2025-02-04 lorenzo@khronosgroup.org Update external sources and use
Vulkan 1.4.307
2025-02-04 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,cnorthrop@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
Tbr: cnorthrop@google.com
Change-Id: I881df1f09ca98c892a485c5a8368c3f6eda390f5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6237566
Reviewed-by: Solti Ho <solti@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
c24468c9
|
2025-02-06T19:04:19
|
|
Fix "fallthrough annotation in unreachable code" in release d3d builds
The same issue I ran into in https://crrev.com/c/6231111 but on d3d
Bug: angleproject:394129077
Change-Id: I90faa01fa66c514162a1d5e4cbe56a2bfd85085e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6237859
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Auto-Submit: Roman Lavrov <romanl@google.com>
|
|
7263989e
|
2025-02-06T13:20:14
|
|
Vulkan: Fix VUID-vkBindBufferMemory-buffer-01444
Some platforms issue a VVL error regarding memory allocation for an
external buffer. It seems to be due to the fact that the memory is not
allocated as a dedicated memory for the buffer, whereas the buffer
requirements (as reported in vkGetBufferMemoryRequirements2()) show
that it requires a dedicated memory. This causes an issue when binding
the buffer to the memory.
This change explicitly sets the dedicated memory information for the
external buffer, so the memory is regarded as dedicated and be able
to be bound to the buffer without errors.
* Added VkMemoryDedicatedAllocateInfo when calling to allocate memory
for the external buffer (InitAndroidExternalMemory()).
* Appended this structure to the extra allocation info via pNext.
* Unsuppressed VUID-vkBindBufferMemory-buffer-01444.
Bug: angleproject:394598758
Change-Id: I0d952cea204e528c23859c74909dbbb0751d0b65
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6239029
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
0ef55535
|
2025-02-06T15:40:28
|
|
FastVector::resize_down never increases capacity
Note: this function is currently only called by SPIR-V code generation
In particular, SpirvTransformer::transform() was bloated
8896 -> 9756 bytes due to ensure_capacity() getting fully inlined.
After https://crrev.com/c/6236800 this makes a much smaller difference
but this still probably makes sense as before this CL the only
difference between resize() and resize_down() was an assertion.
Bug: angleproject:394848869
Change-Id: If55a41d67e26a9bc1a30cb0012d1958faa734cc8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6238266
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fb563c3e
|
2025-02-06T15:29:14
|
|
FastVector capacity increase is a function call
FastVector::ensure_capacity() gets inlined in many places, but capacity
increase is a rarely needed case. Move code to increase_capacity and
make it a function call.
This reduces the size of a release Android .so by ~14KB.
Bug: angleproject:394848869
Change-Id: Iefb5fe894d8c8eaba2d251502925de453290bc31
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6236800
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
1675d47f
|
2025-01-31T10:05:03
|
|
Metal: Remove incorrect AutoObjCPtr construct on T &&
The T && constructor and operator= were incorrectly marked up as
"ownership transfer", clearing the source. However, there is no
ownership transfer in the assignment, and the call sites only work
due to the T source holding is never unretained directly.
Consider correct sequence (T is NSMutableArray *):
NSMutableArray *obj = [[NSMutableArray alloc] init];
AutoObjCPtr<NSMutableArray *> myHolder = std::move(obj);
[obj release];
Since the construct was retaining, the correct operation would need
a release on the original raw obj-c pointer. However, the T &&
constructor would clear out the raw obj-c pointer, and thus calling
release on the original pointer would not be possible.
Remove the T && constructor, and use just normal T constructor.
There's no ownership transfer when constructing AutoObjCPtr -- it is
a retaining operation. The constructor does need T &&,
raw obj-c objects are just passed normally as pointers, T.
Call sites keep their std::move()s, which are no-ops. When
functions accepting obj-c pointers get changed to accepting
AutoObjCPtrs, the move will start actually transferring the ownership.
Bug: angleproject:393263506
Change-Id: I5847f2ec98ab372343d0d2559c92dee9a327e126
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6219316
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
60a9320c
|
2025-02-06T14:31:43
|
|
Move unlikely path of MakeLengthOp to a function call
This function gets inlined many times, adding 96 bytes of assembly to
each caller such as angle::spirv::WriteStore etc.
In total, this CL reduces Android release .so size by ~14KB
Bug: angleproject:394848869
Change-Id: Ief364116fd9b881f9c0dfefb1ca5005282bf57ba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6236799
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7370bb57
|
2025-02-04T13:19:37
|
|
UNREACHABLE -> __builtin_unreachable() in release clang builds
This enables compiler optimizations such as reducing the amount of
branching, see anglebug.com/394129077#comment1
Reduces .so size in an Android perf build by 0.4%. I spot checked a few
differences and saw less branches (this will be causing a different
behavior in UNREACHABLE branches) as well as more functions getting
inlined (likely due to compiler heuristics due to less branches)
Bug: angleproject:394129077
Change-Id: I23411ca7a49d3daf2a0621bfcc0b2523d4db4f5a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6231111
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
38aa0780
|
2025-02-05T10:01:12
|
|
Roll vulkan-deps from 430dae9cea66 to 4d67b5012a2f (34 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/430dae9cea66..4d67b5012a2f
Manual suppression for new VVL errors:
VUID-vkBindBufferMemory-size-01037
SYNC-HAZARD-WRITE-AFTER-READ for vkCmdCopyBuffer
Also rolling transitive DEPS:
https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/0549c7127c2fbab2904892c9d6ff491fa1e93751..39766a06679bf5e4bc1e0339136f1b6a519fcec5
https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/c1c4712c75bc123dac21daea5dfffd416e103e59..5728a66537b23986135f50c465fcb282b0434da4
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/04b4a204aa501992ae85a207be1e200e195c98e1..9d07794bc955101c79cbd260233fcc65b9951cfc
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers/+log/39f924b810e561fd86b2558b6711ca68d4363f68..234c4b7370a8ea3239a214c9e871e4b17c89f4ab
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader/+log/0508dee4ff864f5034ae6b7f68d34cb2822b827d..fde0f9718bd60b49cf8efc80d3fb7a093c309ac0
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/c3dc948b0b960b3a01506b57a15ecee2a9e31bf2..e9d5ff418fd29381205b7617170a6d556bc6a10e
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,cnorthrop@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: b/394598758
Bug: b/394598470
Tbr: cnorthrop@google.com
Change-Id: Id968b54695b441eb4d21a63c23885eda0f567b9a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6233954
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
4ce8b71e
|
2025-02-05T08:06:09
|
|
LSC updating angle License ids
This is based on the existing id and the license file provided.
Bug: b/358504615
Change-Id: I0f0956806f27f8bfed6589157b583d159a25a3d0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6232605
Owners-Override: Jordan Brown <rop@google.com>
Auto-Submit: Jordan Brown <rop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
483be92c
|
2025-02-05T14:03:00
|
|
CL/VK: Cleanup old non-uniform restriction in CLDeviceVk
Bug: angleproject:42267085
Change-Id: I5499324c89d0358c12b6ce2f6f0015547730fc8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6235928
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
93e99da3
|
2025-02-05T11:23:50
|
|
Vulkan: Fix bugs with varying precision fixer
This transformation creates new variables and turns the original ones
Private. There were a few bugs where some transformations referred to
the replaced id (larger than the original index bound) and had wrong
look up (where e.g. they would cache something based on the original id,
then try to look it up with the replaced id).
This change makes it such that where needed, both the old and new ids
are given to the various transformations, so they can look up with the
old id, but output instructions with the replaced id.
Bug: angleproject:386749841
Bug: b/394299327
Change-Id: Ie6b3c3445c440417cbbffdd849a036abfc504fe2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6235664
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
bab3f9ab
|
2025-01-30T14:30:16
|
|
CL/VK: Cosmetic kernel arg updates
- Move POD argument buffer init to kernel-init
- Remove unused CLKernelVK members/types
- Switch inside of setArg loop
- Rename kernel members that best aligns to their resources
Bug: angleproject:42267001
Change-Id: I837ceeceaf1ff903b67b7f100298d4a3159b97d7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6220895
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
9c82e55a
|
2025-01-16T17:47:41
|
|
Vulkan: Make VkEvent for Buffer work with more general usage
Before this CL, BufferHelper::mCurrentWriteAccess and
mCurrentReadAccess, mCurrentWriteStages, mCurrentReadStages still track
all accesses, regardless if it is tracked by RfCountedEvent or via
PipelineBarrier. This is okay for very limited usage case, but becomes
fragile when expand the event for general usage case. The problem is
that you can not correctly tell which bits in mCurrentReadAccess is for
pipelineBarrier and which is for Event, since event and pipeline barrier
could have the same VkAccessFlags. Similarly problem exist for
mCurrentWriteAccess. The reliable way is actually track pipeline barrier
access and VkEvent access completely separately. This CL changes
mCurrentWriteAccess, mCurrentWriteStages, mCurrentReadAccess and
mCurrentReadStage to only contain bits that not tracked by VkEvent. For
this reason, RefCountedEventWithAccessFlags wrapper class is added to
wrap mCurrentWriteEvent and its associated VkAccessFlags.
Bug: angleproject:360274928
Change-Id: I057484f0c3baa2739d56c3a75889eb88a647a65a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6210683
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
82e25a32
|
2025-02-03T15:07:33
|
|
Make all " < 0" error messages consistent
Use the form:
Error is due to reason: <error message>
Bug: angleproject:392938089
Change-Id: I9e72858cf76a46ab874ffc211afdae1eb93ca05d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6225600
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
da837830
|
2025-01-30T15:37:56
|
|
CL: Fix device queue query validation for 3.0
Was missing 3.0 check for device queue size.
Since device queue support is optional for
3.0, device queue query (CL_QUEUE_SIZE) needed
device queue support. Adding validation check
for that here.
Bug: angleproject:42267011
Change-Id: Ibc1d7e00f78df01f131f69047b1390b02b5fa780
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6220894
Reviewed-by: Gowtham Tammana <g.tammana@samsung.com>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
fb118e41
|
2025-01-22T13:26:31
|
|
Vulkan: Always defer acquireNextSwapchainImage() call
This change is a preparation before the follow up EGL_WIDTH/EGL_HEIGH
eglQuerySurface rework.
There is no need to acquire initial swapchain image after surface
initialization. Skipping ANI may speed-up apps startup in some cases.
The operation is also removed from swap (in case of out-of-date
swapchain) for consistency and as a preparation for the follow up
change.
Change also enables "perFrameWindowSizeQuery" for NVIDIA on Windows
because of the "SurfaceDimensionsChangeAndFragCoord" test failure.
Test fails because `vkQueuePresentKHR()` does not return
`VK_ERROR_OUT_OF_DATE_KHR` when presenting old image size after the
window resize, even despite that surface caps currentExtent has already
new size. Issue is not permanent, and may "fix" itself if add few
empty swap buffers before starting the test or do ANI in the initialize
(which one will work depends on GPU).
Above issue is observed on the driver 546.01 (currently used by bots).
Old 531.68 and new 566.36 does not have this issue (tested on
RTX 3060 Laptop). The 546.01 driver, however, fails on that same
system even on the base CL (without this change).
Bug: angleproject:153329980
Bug: angleproject:42264593
Change-Id: I261e1f573a6b892f1ba4282dd17f17289c2f4184
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6182599
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bee34ea7
|
2025-01-30T18:39:00
|
|
Metal: Remove redundant AutoObjCObj template alias
Some members were held with AutoObjCObj<T> and some with
AutoObjCPtr<T *>. Use the latter.
Bug: angleproject:393263506
Change-Id: I9d8d56e9ffe3281d5e9087de7959249cbb4b9bd4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6216872
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
81412e88
|
2025-01-30T16:46:26
|
|
Metal: Avoid using retainAssign()
Use more native C++ name for assign: operator=.
Bug: angleproject:393263506
Change-Id: Ia31a79fbb15474ba754034338340ef5c3ed6e8ec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6216871
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
49e2b5e2
|
2025-01-31T15:52:39
|
|
Support compiling without GetProcAddress
Move GetProcAddress implementation next to the proc array. This way
it is possible to not compile the implementation.
Bug: angleproject:393513311
Change-Id: Ic9c9022ee74a7619bec25f1481fd9da68b14b119
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6219320
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
9c6af5ce
|
2025-02-04T22:50:01
|
|
Vulkan: Fix crash in SPIR-V transform with varying precision fix
Bug: angleproject:386749841
Change-Id: I5743eb049dde6c8a093b175e857251bad9b2bc9a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6232948
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
aa94da02
|
2025-02-04T12:41:36
|
|
Revert "Vulkan: Bugfix in SPIRV entrypoint transformation"
This reverts commit 9975e80b9d98a2158ae859b3f4eff7340baa540d.
Reason for revert: Crashes on platforms with varyingsRequireMatchingPrecisionInSpirv
Original change's description:
> Vulkan: Bugfix in SPIRV entrypoint transformation
>
> Perform varying precision fixer transformation before
> other shader-stage-specific transforms that could
> potentially modify the interfaceList.
>
> Also enhance EXTBlendFuncExtendedDrawTest by enabling
> additional config with VaryingsRequireMatchingPrecisionInSpirv
> feature enabled
>
> Bug: angleproject:386749841
> Change-Id: Ife4a2f932415296f1565527e50a2b8646cd7697d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6207741
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Change-Id: I07064136f962a7d73ce5c80289da300d474faa22
Test: professional_baseball_spirits trace
Bug: b/394299327
Bug: angleproject:386749841
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6227993
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
c2cb1603
|
2025-02-03T18:21:10
|
|
Perf tests: change fps limiter method to timestamp based
Instead of using previous frames, target start_time + N * delta.
This will result in a smoother playback when there is no hiccups. In
case of a big hiccup, replay will be catching up by submitting frames
without sleeps until it hits the timestamp, then submit at the target
rate again.
Bug: b/376300037
Change-Id: I481f1325867d53e911acd2d381bfda4c94adefc6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6226746
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
6808ef83
|
2025-02-04T10:57:18
|
|
Tests: suppress -Wunused-private-field warning
The latest version of Clang warns about an unused member variable in
es31fSRGBDecodeTests.cpp. Suppress it for now.
Bug: chromium:393942204
Change-Id: Ic03c2f8f2710ff3ccf44c102d1fd991bc4d1d380
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6226805
Auto-Submit: Hans Wennborg <hans@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
c6a8faf6
|
2025-02-03T15:00:07
|
|
Mark error strings as *, not []
Partially revert "Mark error strings as inline constexpr".
Try to fix the reported 100kb+ size regression on Linux builds.
Bug: angleproject:392938089
Change-Id: Id40f8820ff096497fc75165b23e520f96725e18a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6225599
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
b32a808d
|
2025-02-03T17:35:59
|
|
Re-enable EXT_multi_draw_indirect on the Vulkan backend.
Update limitations before evaluating extension support
Bug: angleproject:355645824
Change-Id: If34c0d5791443841798fd85a2d396b8b6cbbe837
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6226331
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
29e20d52
|
2025-01-29T15:58:04
|
|
Vulkan: Use single VkEvent to track depth/stencil and color attachment
Right now ANGLE uses two VkCmdSetEvent calls to synchronize color and
depth attachments in a render pass, one for color attachment and another
for depth/stencil attachment. This is inefficient. ARM engineers
confirmed combining both into one event with a combined stage mask
(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT |
kAllDepthStencilPipelineStageFlags) should not negatively impact
performance. This CL merges depth/stencil related events into color
attachment. The benefit of this is that for most render passes, you will
see one less VkEvent which translates to reduced overhead.
Bug: b/393150736
Change-Id: I0808b4dfd0b91efaaa2af649fef8bb02abbb3039
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6187980
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
957bafb5
|
2025-01-30T11:49:41
|
|
Infra: Print stdout for TIMEOUT cases
Bug: angleproject:392929827
Change-Id: I47625474e4ce9253a4cf275ea027290a6a2fbc33
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6207671
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
56d796a9
|
2025-01-31T09:13:30
|
|
CL/VK: Fix max read/write image arg limits
Modifies how CL_DEVICE_MAX_READ_IMAGE_ARGS,
CL_DEVICE_MAX_WRITE_IMAGE_ARGS,
and CL_DEVICE_MAX_READ_WRITE_IMAGE_ARGS are set.
Temporarily accounts for the backend Vulkan driver
reporting a meaningless value (ex: UINT_MAX).
Bug: angleproject:391414842
Change-Id: I7d0ca865d3a516b22dc34849e4dc0a3a83e778c9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6187613
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a04cb42a
|
2025-01-30T16:26:44
|
|
Metal: Remove autorelease use from libANGLE parts
Use adoptObjCPtr() instead of AUTORELEASE to make all code uniform
and more easy to reason about.
Bug: angleproject:393263506
Change-Id: I15ea7e29784bcbe6bee6341fe288b340db813538
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6216870
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
e87d87f8
|
2025-01-29T22:23:27
|
|
CL: Add NDRange region chunk max GWS clamp
Some implementations provide a value for
maxComputeWorkGroupCount that goes beyond
uint32_t when multiplied by local work size
(to get the max global work size).
This change clamps product to UINT32_MAX
if that case occurs.
Bug: angleproject:42267085
Change-Id: Ide87ef7be473c52db23c16ebf1e44a7fdcaf3081
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6217421
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
44b5f0a5
|
2025-01-06T16:01:28
|
|
OpenCL: Pass in options to the CTS tests
In the case where options are specified, pass them down to the CTS
tests.
New tests with options for copy_images, fill_images and bruteforce are
added.
The changes in `angle.json` file are autogenerated by running
`python3 scripts.run_code_generation.py`
Bug: angleproject:388319897
Change-Id: I1c7e133d8df00e008857b652132b45975f61a08e
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6153935
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Austin Annestrand <a.annestrand@samsung.com>
|
|
c0b224c3
|
2025-01-31T12:20:00
|
|
Re-enable EXT_base_instance on the Vulkan backend.
Vulkan has native support for the base instance draw calls and does not
go through the emulation paths.
Bug: angleproject:355645824
Change-Id: I370ece42cffff6df5b1c070d637c20e071598de7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6216375
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
65c07386
|
2024-12-04T16:17:49
|
|
Vulkan: Limit dyn vertex input state WA on QCOM
* Limited the workaround for dynamic vertex input state so it is
enabled on the later version in which it has been fixed.
Bug: angleproject:381384988
Change-Id: I71db843e4ce247691dae2c7d0db32678d12492be
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6072407
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
433d14e0
|
2025-01-28T17:05:32
|
|
CL/Vulkan: Submit an empty command on command buffer reset
On resetting the command buffer, the queue serial associated with it
wont get signalled leading to causality issues. Instead submit an empty
command to maintain queue serial timelines.
Bug: angleproject:392934330
Change-Id: I53996b295d2744b58487e483dd45918e48f58c83
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6207673
Reviewed-by: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e6115fdd
|
2025-01-27T19:37:25
|
|
Vulkan: Fix and simplify Wayland window resize
The `doDeferredAcquireNextImage()` may only be called with
`forceSwapchainRecreate == true` argument when in
`ImageAcquireState::NeedToAcquire` state. In any case, method must not
be called when state is `ImageAcquireState::Ready`.
Instead of adding state check to the
`WindowSurfaceVkWayland::getAttachmentRenderTarget()` method, this
change removes this method entirely, since calling
`doDeferredAcquireNextImage()` is not required (as well as the
`mResided` member). The `WindowSurfaceVkWayland::mExtents` will be
compared with the current extent in the `checkForOutOfDateSwapchain()`
since "perFrameWindowSizeQuery" feature is enabled for Wayland.
Bug: angleproject:40096815
Change-Id: I31608d52ba72305cbb31220f21829ad18f9d2ce7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6203062
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c411081f
|
2025-01-30T15:18:20
|
|
Metal: Remove RenderUtils mtl::Context base
RenderUtils is not using mtl::Context error
handling for anything.
Bug: angleproject:392938089
Change-Id: I1ef86db8f03ff34bb54726a0aad31d07fb1b44ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6218788
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
2567dc4f
|
2025-01-30T11:20:57
|
|
CL/VK: Add spv validation for program build
Bug: angleproject:42266976
Change-Id: I529395cba2d935cd6117c9c18fefd9a27903e2a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6216570
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
fb2ae3fb
|
2024-11-26T16:23:52
|
|
CL/VK: Missing ext check in reflection parser
When parsing "spv::OpExtInst", we also need to
check for "ext_inst_type" to be clspv reflection type.
Otherwise we might end up parsing bogus/non clspv
ext type instructions.
Bug: angleproject:42266976
Change-Id: Iab115f44890ce83fea09fb39be24b45ee2fa827b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6216569
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
7d37d970
|
2025-01-30T13:47:59
|
|
Make error messages end in a dot
Some messages had dot and some not.
Fix by adding dot to all error message string literals.
Best effort, for free form string literals, check ANGLE_CHECK invocation
sites only.
Bug: angleproject:392938089
Change-Id: Idedc3fe1d1e186fb91b5e54407df87f6830995a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6218460
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
1df10f8a
|
2025-01-29T14:50:21
|
|
Unsuppress VUID-VkImageViewCreateInfo-pNext-01585
* Updated ImageHelper::DeriveCreateInfoPNext() to check the usage flags
as well.
* If the image uses the storage bit, the format list should not be
added to it as pNext. Otherwise, if the count is not zero, it
expects the format used in its image view to be one of the stated
formats and will result in a VVL if this is not the case.
Bug: angleproject:42264452
Change-Id: I789ec5a9751366029929c4c25a942056df13b9ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6216381
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
eb0e72e0
|
2025-01-30T09:50:27
|
|
Mark error strings as inline constexpr
Some WebKit build configurations are seeing duplicated strings. A global
constexpr implies static, which allows that each compile unit gets its
own instance. A global inline constexpr guarantees that the instance
address evaluates same for all address takers. This should guarantee
that the strings are not duplicated.
Use char[] instead of char * to guarantee that referencers would get
the length.
Bug: angleproject:392938089
Change-Id: I5652ed8807d5052abe41671f4a0005905fe8d30b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6218459
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0549137f
|
2025-01-30T13:15:09
|
|
CL/VK: Fix cmd queue deadlock on clFlush
Issue was that app-thread held mCommandQueueMutex
for clFlush duration. App-thread notifies the queue-thread
via "mHasWorkSubmitted" condition-variable.
Queue-thread later calls finishQueueSerial(), and
that routine tries to recursively grab mCommandQueueMutex.
This change avoids this by unlocking app-thread before
it notifies the queue-thread
(also takes capture of QueueSerial before unlocking).
Bug: angleproject:375231041
Change-Id: I71e0c9f9455a86b97acbc88107b0edbc05ce33a8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6194198
Commit-Queue: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
439dfe5e
|
2024-12-12T00:37:13
|
|
CL/Vulkan: Add options passed to clspv compiler
* Passes rte mode and image feature macros options
to clspv compiler
* Adds image feature macros device reported cl features
Tests-Passing: OCLCTS.test_compiler features_macro,
OCLCTS.test_samplerless_reads,
OCLCTS.test_image_streams,
OCLCTS.test_basic image_param
Bug: angleproject:42266936
Change-Id: Ifd2b2c49a525ba3ee4be572de004fd317b0ff1ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6089949
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Rafay Khurram <r.khurram@samsung.com>
|
|
9d934912
|
2025-01-09T11:31:42
|
|
Vulkan: Use VkEvent to track transform feedback buffer write
This CL adds event tracking into BufferHelper class: mCurrentWriteEvent
is used to track the write event and mCurrentReadEvents is used to track
all different reads from the buffer. Since you can have multiple
different reads accumulate over time, read events are an array of
EventStage and the actual VkAccessFlags per event is tracked in
mCurrentReadEventsAccessFlags. Note that this is specifically designed
to allow pipelineBarrier and eventBarrier to co-exist. If
mCurrentReadStages contains more bits than mCurrentReadEvents, the
remaining bits will be using pipelineBarrier. Similarly if
mCurrentWriteStages contains more bits than mCurrentWriteEvent, the
remaining bits will be using pipelineBarrier. A heuristic tracking is
also added to track the buffer writes over a period of time. Right now
we will opt buffer into VkEvent if the buffer ever written by transform
feedback in the heuristic tracking window. This could be expanded in
future if we found more usage pattern that would be benefit from using
VkEvent.
Also note that DrawIndirect and VertexInput will be using the same
VkEvent to track. It still will be using different VkAccessFlags since
the access flags comes from buffer instead of event.
Bug: angleproject:360274928
Change-Id: I027ffed8a0fbff7f280f42cf70564b8a3f243d69
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6085490
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
03019646
|
2025-01-29T10:36:38
|
|
Vulkan: Fix invalidate of emulated format followed by more draws
If invalidating a color image with emulated channels, a clear is
automatically staged so the emulated channels don't contain invalid data
later. This is problematic with deferred clears; the clear marks the
framebuffer attachment as dirty, and the next command causes
`FramebufferVk::syncState` to pick the clear up as a deferred clear.
This is normally correct, except if the following command is another
draw call; in that case, the render pass does not close, yet the clear
is cached in `mDeferredClears`. When the render pass later closes, it
undoes the invalidate and attempts to remove the clear from the image...
but it does not exist there anymore (it's in `mDeferredClears`). Next
usage of the image then clears it, undoing the draws after invalidate.
In this case, the simplest approach is to close the render pass right
away here. Note that it is not possible to make
`FramebufferVk::syncState` avoid picking up the clear in
`mDeferredClears`, not apply the clear, _and_ keep the render pass open;
because future uses of the image (like with |glReadPixels|) will not
trigger `FramebufferVk::syncState` and the clear won't be done.
Bug: angleproject:353167428
Change-Id: Ie677bd12d9f11953cdcd5e4c374b59c4f63e7456
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6214331
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5325904b
|
2025-01-29T14:43:35
|
|
Metal: Simplify error checking
Use normal ANGLE_CHECK, ANGLE_CHECK_GL_ALLOC, ANGLE_CHECK_GL_MATH
when appropriate.
Use ANGLE_MTL_CHECK for checking Metal NSError return value.
Remove mtl::ErrorHandler::handleError variant that responds to NSError.
Uses "Internal error." that occur due to implementation bugs. Binary
size is already expended with __FILE__ et al to disambiguate the
location. The descriptions were not actionable for the API client and
sometimes wrong cut-and-paste.
Bug: angleproject:392938089
Change-Id: If9525d3d1610d5bc757855053600d78d2a1526c3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6211841
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
5798be5e
|
2025-01-13T07:45:11
|
|
FrameCapture: Fix framebuffer bindings in MEC
While capturing an app, I was crashing on the line reading
replayState.getReadFramebuffer()->id()
That's because replayState did not have a read framebuffer
bound, and we dereferenced nullptr. replayState is a default
state that we've created and we're modifying to make it *look*
like apiState.
We should be updating replayState to match the framebuffers
bound in apistate. In this case state*Framebuffer is read from
apiState and is the value we want to propagate.
AFAICT these have been incorrect since they landed in the
initial implementation, but the code is complex:
https://chromium-review.googlesource.com/c/angle/angle/+/1689329
Test: Tower of Fantasy capture
Bug: b/389808881
Change-Id: Ibf7bc56cd385c34139676c5813926f756bb38f42
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6174746
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Mark Łobodziński <mark@lunarg.com>
|