| 
              
54409f2b
               | 
              
2025-09-22T15:00:59
               | 
              
               | 
              
cl/vk: Autogen image order and types
Adding ANGLE packed enums for image
order and types.
Bug: angleproject:447192713
Change-Id: I92950330cbaabc48b3c481d5ce3616a3c0030259
Signed-off-by: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6980531
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
f9685fdb
               | 
              
2025-10-07T07:47:14
               | 
              
               | 
              
Fix: Correct various license issues in README.chromium files
Bug: chromium:365320788
Change-Id: I1cb11330176d7a63d3aedee78aa5a5c15fcca595
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7015769
Auto-Submit: Jordan Brown <rop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
c4e942d6
               | 
              
2025-09-25T02:47:45
               | 
              
               | 
              
Tidy up some README.chromium files in Angle.
Backfills the Update Mechanism field for dependencies
and cleans up some of the other fields which are out of
date.
Bug: chromium:379934539
Change-Id: I9a952e905ce00c379c4d593dd67b7e0fc6f1794e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6981101
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
193e9cda
               | 
              
2025-09-25T15:26:39
               | 
              
               | 
              
Revert "Vulkan: Simplify/Fix DmaBufImageSiblingVkLinux import probing"
This reverts commit d917f77130e5194e82418f3bdaa2cd5b2af55c03.
Reason for revert: Google Meet Regression https://crbug.com/445863166
Original change's description:
> Vulkan: Simplify/Fix DmaBufImageSiblingVkLinux import probing
>
> Remove the multi-format probing logic in DmaBufImageSiblingVkLinux.
> Use the renderer’s base VkFormat and a single check with
> VkImageFormatListCreateInfo, instead of looping over mVkFormats with
> mutable/non-mutable combinations. This cuts down redundant queries
> and streamlines initImpl.
>
> Also, this CL fixes some issues occur when mapping DRM format into
> Vulkan backend formats.
> - Default to SampleOnly but prefer Renderable if the modifier properties
> exposes both sampling and rendering, since usage at import time is
> unknown.
> - Fix emulated-format handling issue by using getIntendedFormatID() and
> getActualImageFormatID() instead of deriving both IDs from VkFormat with
> GetFormatIDFromVkFormat() directly.
>
> Bug: angleproject:442313595
> Bug: angleproject:426475684
> Change-Id: Ia38d8e7901da10948a2c15eb284b055359dd4a2d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6904888
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: mohan maiya <m.maiya@samsung.com>
Bug: angleproject:442313595
Bug: angleproject:426475684
Bug: chromium:445863166
Change-Id: I530e9b363a2e25ec2325e3933a409d0aae9940c0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6986844
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Auto-Submit: Yuxin Hu <yuxinhu@google.com>
               | 
            
            
              
   
               | 
              
69745720
               | 
              
2025-09-23T11:16:21
               | 
              
               | 
              
[WebGPU] Implement texture copy from cpu reads.
This CL implements a slow path to copying from a
texture that reads data from the CPU. This path
is taken when the src and destination formats
differ.
Bug: angleproject:438268609
Change-Id: I5a81fbed5bbac68c48537d8c7a2fcc487c31e76e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6847147
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Auto-Submit: Liza Burakova <liza@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
fde13336
               | 
              
2025-09-21T14:38:09
               | 
              
               | 
              
Update documentation for ANGLE_AHB_FORMAT_*
Bug: angleproject:386749841
Change-Id: I235ac1abe7c0fc1e18751377e1a3953d81b507f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6970621
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
               | 
            
            
              
   
               | 
              
02b53738
               | 
              
2025-09-08T08:55:23
               | 
              
               | 
              
Trace/Replay: Fix context grouping issues
In tracing Harry Potter Magic Awakened, issues related to context
grouping were found affecting shader and program state. While these
objects are shared among all contexts, their state is not. This led to
race conditions in object lifetimes as well as incorrect states for
operations dependent on stader/program state.
Test: angle_trace_tests --gtest_filter=*harry_potter_magic_awakened
Bug: b/445208963
Change-Id: I8dbb22f72c917103f947cd34d088c4db0cd39731
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6950247
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
               | 
            
            
              
   
               | 
              
d917f771
               | 
              
2025-09-01T18:44:34
               | 
              
               | 
              
Vulkan: Simplify/Fix DmaBufImageSiblingVkLinux import probing
Remove the multi-format probing logic in DmaBufImageSiblingVkLinux.
Use the renderer’s base VkFormat and a single check with
VkImageFormatListCreateInfo, instead of looping over mVkFormats with
mutable/non-mutable combinations. This cuts down redundant queries
and streamlines initImpl.
Also, this CL fixes some issues occur when mapping DRM format into
Vulkan backend formats.
- Default to SampleOnly but prefer Renderable if the modifier properties
exposes both sampling and rendering, since usage at import time is
unknown.
- Fix emulated-format handling issue by using getIntendedFormatID() and
getActualImageFormatID() instead of deriving both IDs from VkFormat with
GetFormatIDFromVkFormat() directly.
Bug: angleproject:442313595
Bug: angleproject:426475684
Change-Id: Ia38d8e7901da10948a2c15eb284b055359dd4a2d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6904888
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
               | 
            
            
              
   
               | 
              
46d75031
               | 
              
2024-11-06T17:12:05
               | 
              
               | 
              
CL/VK: ConstantDataPointerPushConstant support
add compiler option "-module-constants-in-storage-buffer" to enable
Module-scope __constants to be collected into a single storage buffer
Bug: angleproject:442950569
Change-Id: I45b3776301a5cee8896cade71bce517dfad2eda2
Signed-off-by: hoonee.cho <hoonee.cho@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6916343
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
059734f9
               | 
              
2025-05-02T13:20:28
               | 
              
               | 
              
CL: Roll OpenCL headers, docs, CTS, loader
Updated OpenCL headers
and updated third_party sources accordingly.
- Updated OpenCL Headers from change 265df85
- Updated third_party/OpenCL-Docs
- Updated third_party/OpenCL-CTS and modified ninja build corresponding
to update
- Updated third_party/OpenCL-ICD-Loader and modified ninja build
corresponding to update
- When after updating OpenCL-Docs, entry-points for
clIcdGetFunctionAddressForPlatformKHR and
clIcdSetPlatformDispatchDataKHR (cl_khr_icd 2.0.0) are generated by
run_code_generation.py. Filled code returning INVALID_OPERATION error
in the entry-points.
- When after updating cl_ext.h, cl_khr_external_memory_dx is removed.
Deleted codes referencing cl_khr_external_memory_dx (e.q.,
CL_EXTERNAL_MEMORY_HANDLE_D3D11_TEXTURE_KHR)
Bug: angleproject:441956395
Tests-Passing: test_basic, test_api
Change-Id: I08e0b78abb5c0ff5f1ea693ea355893b1a6f765e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6915959
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
               | 
            
            
              
   
               | 
              
352900dd
               | 
              
2025-09-08T11:54:22
               | 
              
               | 
              
Fix BitSetArray::bits for 32 bit
Which was causing compilation issue on some platforms.
Bug: b/439073246
Change-Id: I6863f28af3fa5364b7739f2ff61520c9e775752d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6925089
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
e9a30817
               | 
              
2024-10-28T14:54:38
               | 
              
               | 
              
Vulkan: Support vulkan physical addr in vk_helpers
- Add extraAllocationInfo for physical addressing
  in AllocateBufferMemory/AllocateImageMemory
- Add getDeviceAddress which calls vkGetBufferDeviceAddressKHR
  API to get device address
In CL, All the physical addressing supports are enabled when the
runtime flag "supportsPhysicalAddressing" is set.
Bug: angleproject:442950569
Change-Id: I1658062b3f031b3d55923937947cece0c1b67d67
Signed-off-by: hoonee.cho <hoonee.cho@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6916340
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
               | 
            
            
              
   
               | 
              
e2f7d0e1
               | 
              
2025-09-05T00:26:50
               | 
              
               | 
              
Fix a type error on 32-bit platforms.
FileStreamSeek was incorrectly typed to always take a 64-bit integer,
but fseeko takes off_t, which is 32 bits on 32 bit platforms.
This results in the following error:
error: implicit conversion loses integer precision:
'long long' to 'off_t' (aka 'long') [-Werror,-Wshorten-64-to-32]
  580 |     return fseeko(stream, offset, whence);
      |            ~~~~~~         ^~~~~~
Bug: chromium:425527533
Change-Id: I2fe2596accd33bf41db2dbed2df9a23c3fcd3871
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6918314
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Matt Stark <msta@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
               | 
            
            
              
   
               | 
              
8bae2565
               | 
              
2025-08-22T14:38:23
               | 
              
               | 
              
Vulkan: Improve VertexArrayVk::syncState
VertexArrayVk::syncState often time shows up the biggest single API in
simpleperf. For example, in tower_of_fantasy it is 7.9% of all CPU time
in libANGLE. This function also uses macros which made it hard to debug.
This CL removes the usage of macros which makes code much easier to
handle. The other real problem is that we are repeatedly calling
syncDirtyAttrib() function for disabled attributes. This CL breaks the
dirty bits into bindingDirtyBits and bufferDataDiryBits and
attribDirtyBits. Only attribDirtyBits will end up doing the actual state
sync. All other dirty bits will just turn them into attribDirtyBits.
Also disabled attributes will be looped separately. This simplification
makes it impossible to have duplicate state syncs since we only call
sync*Attrib at the end of function.  By splitting syncDirtyAttrib into
syncDirtyEnabledAttrib/syncDirtyDIsabledAttrib/syncNeedsConversionAttrib,
we also moved the if check from syncDirtyAttrib (which is called within
for loop) to syncState.
With this CL, simpleperf shows this function has reduced from 7.9% to
5.9%.
Bug: b/439073246
Change-Id: I99b5ff0b34a5992e31541d2e9cd81ff5c9dda716
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6876527
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
               | 
            
            
              
   
               | 
              
f8ce4a01
               | 
              
2025-08-26T18:18:54
               | 
              
               | 
              
Add src/common/unsafe_buffers.h
Allow for line-by-line control of unsafe buffers warnings.
Bug: b/436880895
Change-Id: I609d60c83611037f39d541d5b8c9aba98a6656a7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6886308
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Tom Sepez <tsepez@chromium.org>
               | 
            
            
              
   
               | 
              
2d28e33f
               | 
              
2025-08-28T23:50:51
               | 
              
               | 
              
Avoid some large copies in range-based for-loops
Avoid copies as detected some time ago by a clang compiler plugin,
typically this indicates a missing & in the range-based for-loop.
-- For the vector initialize code, see https://godbolt.org/z/4PWseve5P
   as to why I think a copy-assign is more efficient than a copy-
   construct followed by a move-assign.
Bug: b/415953694
Change-Id: I2cf9f713277d811127834235507ee075c4a72956
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6898417
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Tom Sepez <tsepez@chromium.org>
               | 
            
            
              
   
               | 
              
cf28f60d
               | 
              
2025-08-26T19:25:22
               | 
              
               | 
              
Avoid c-style string arguments to writeFile().
Demonstrate how std::string_views can be used to make code simpler
and safer, since all the callers already have std::strings.
Bug: b/436880895
Change-Id: I0f9d4d95925e684c83eb10c2a1fbab22df55c2d8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6886033
Auto-Submit: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
e842b5f8
               | 
              
2025-05-06T14:38:27
               | 
              
               | 
              
CL/Vulkan: Zero-copy support added for CL Buffers
- Used VK_EXT_external_memory_host and VK_KHR_external_memory extensions
- Added interfaces to CLBufferVk class for validating zero-copy ability
- Added logic in CLBufferVk::create to use zero-copy if eligible
- Added new HostExternalMemory class to provide utility functions
- Added VkPhysicalDeviceExternalMemoryHostPropertiesEXT for querying
Tests-Passing (having usage of CL_MEM_USE_HOST_PTR):
  - ocl_cts.test_api
  - ocl_cts.test_basic
  - ocl_cts.test_buffers
  - ocl_cts.test_mem_host_flags
Bug: angleproject:441471275
Change-Id: I296e709a4f67911dcd6d0ae89750e8e0262625f4
Signed-off-by: Shyam Manohar <s.manohar@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6892624
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
               | 
            
            
              
   
               | 
              
e9214c63
               | 
              
2025-08-26T13:53:52
               | 
              
               | 
              
Update trace event header to allow unsafe buffers
* Updated the following file to allow unsafe buffers:
  trace_event.h
  * This is to prevent errors when the following GN flag is enabled:
    angle_enable_platform_trace_events
Bug: b/436880895
Change-Id: Iefb5ab6ab07259580b569760816fe9ad1a833161
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6885893
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
a02670d6
               | 
              
2025-08-26T20:41:16
               | 
              
               | 
              
Move unsafe buffers inside header guard macros
While this is exactly opposite of what Chromium has chosen to do,
there is an issue with clang-format trying to indent preprocessor
directives four spaces relative to include guard. This is because
Angle's .clang-format file specifies IndentPPDirectives: AfterHash
but Chromium's does not. The current placement is sufficient to
throw off clang-format's guard detection since the guard macro no
longer covers the entire file.
Bug: b/436880895
Change-Id: Ic6b99c8cef6213939cdf9b42af8730e1eb423065
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6885892
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
25390156
               | 
              
2025-08-21T00:13:19
               | 
              
               | 
              
Suppress unsafe buffers on a file-by-file basis in src/ [1 of N]
In this CL, we suppress many files but stop short of actually
enabling the warning by not removing the line from the
unsafe_buffers_paths.txt file. That will happen in a follow-on
CL, along with resolving any stragglers missed here.
This is mostly a manual change so as to familiarize myself with
the kinds of issues faced by the Angle codebase when applying buffer
safety warnings.
-- Re-generate affected hashes.
-- Clang-format applied to all changed files.
-- Add a few missing .reserve() calls to vectors as noticed.
-- Fix some mismatches between file names and header comments.
-- Be more consistent with header comment format (blank lines and
   trailing //-only lines when a filename comment adjoins license
   boilerplate).
Bug: b/436880895
Change-Id: I3bde5cc2059acbe8345057289214f1a26f1c34aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6869022
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
616a341b
               | 
              
2025-08-26T13:56:40
               | 
              
               | 
              
Vulkan: Set EGL_NATIVE_VISUAL_ID for EGL_KHR_platform_gbm
Spec requires EGLConfig on GBM platform to report a GBM color format in
EGL_NATIVE_VISUAL_ID. Previously this field was left unset. This change
ensures compliance by assigning the appropriate GBM color format.
Bug: angleproject:7829
Change-Id: I6c5a23374824c444e0de0b6592ea31eb855722e4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6882716
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
51cffa97
               | 
              
2025-08-13T14:23:51
               | 
              
               | 
              
Implement EGL_NV_context_priority_realtime
In this extension, new attribute value EGL_CONTEXT_PRIORITY_REALTIME_NV
is accepted for EGL_CONTEXT_PRIORITY_LEVEL_IMG. In ANGLE,
this extension should depend on VK_EXT_global_priority and
VK_EXT_global_priority_query. The implementation of creating device
queue is also modified for this new attribute value. New end2end
test is added to check if this new attribute works.
Bug: angleproject:397474813
Change-Id: I68316fe371f5a495dbc78b106fc89787be18e086
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6857673
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
8ef76b6a
               | 
              
2025-08-04T12:34:17
               | 
              
               | 
              
CL/Vulkan: cl_khr_external_memory extension (pt.2)
  - Make this extension visible if Vulkan implementation support
    features supportsExternalMemoryFd and/or
    supportsExternalMemoryDmaBuf
  - Implemented APIs clEnqueueAcquireExternalMemObjectsKHR and
    clEnqueueReleaseExternalMemObjectsKHR
  - Updated clCreateBufferWithProperties to handle external memory
    file descriptor.
Bug: angleproject:378017028
Change-Id: I1751982c8e9b2cd07b7e251cc54db5dcd1bcda20
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6843980
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
6c160cad
               | 
              
2025-08-04T12:32:36
               | 
              
               | 
              
CL/Vulkan: cl_khr_external_memory extension (pt.1)
  - Make this extension visible if Vulkan implementation support
    features supportsExternalMemoryFd and/or
    supportsExternalMemoryDmaBuf
  - Implemented APIs clEnqueueAcquireExternalMemObjectsKHR and
    clEnqueueReleaseExternalMemObjectsKHR
  - Updated clCreateBufferWithProperties to handle external memory
    file descriptor.
Bug: angleproject:378017028
Change-Id: Idff08808bc0227b5f98b84c2086b68541665146d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6785087
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
               | 
            
            
              
   
               | 
              
da5a5628
               | 
              
2025-08-11T10:53:06
               | 
              
               | 
              
bitset_utils: Fix GCC shift-count-overflow warning
GCC triggers a -Werror=shift-count-overflow when kDefaultBitSetSize
is 64, due to the constructor compiling a branch with `value >>= 64`.
Although this path is never executed at runtime, GCC still inspects
the code and emits the warning as an error.
Refactored the constructor to:
- Move common reset() into a single place
- Split initialization into initFromValue<S>() overloads
  enabled only for S < 64 or S >= 64 via std::enable_if_t
- Avoid generating any shift code when S >= 64
This change ensures GCC does not instantiate invalid shift operations
and keeps the initialization logic cleaner.
BUG: angleproject:438226513
Change-Id: I1ed0b42540f1bfce469d5738757045bc6d92ac61
Signed-off-by: Sungyong Choi <sywow.choi@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6845475
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
               | 
            
            
              
   
               | 
              
6b03372e
               | 
              
2025-08-13T08:58:35
               | 
              
               | 
              
Fix GCC -Wconversion-null error in WriteParamValueReplay
Replace insertion of NULL with the string literal "NULL" to prevent
GCC -Wconversion-null.
BUG: angleproject:438226513
Change-Id: I7048bc43f282d94e72a5e090176c805d2baa5b06
Signed-off-by: Sungyong Choi <sywow.choi@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6845483
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
               | 
            
            
              
   
               | 
              
806c80ec
               | 
              
2025-08-14T13:41:58
               | 
              
               | 
              
Add a new ShaderVariable struct property
Add a new ShaderVariable struct property isTransformedFP16FloatUniform.
This property will be set by compiler when the corresponding shader
variable data type in shader code is transformed from 32 bit to
16 bit. The property value be later passed to LinkedUniform so that
the frontend knows if it should transform the data from 32 bit to 16
bit before writing to memory, and if it should transform the data
from 16 bit to 32 bit after reading from memory.
This change is no op.
Bug: angleproject:405795981
Change-Id: Iaae15baa8ab9f7c3295071fa1e1ab04752bd69bb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6852396
Auto-Submit: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
7ad67712
               | 
              
2025-08-13T16:33:03
               | 
              
               | 
              
CL/Vulkan: Enable cl_khr_integer_dot_product extension
 - Enabled extension string and corresponding opencl_c features
 - Updated packed_cl_enums.json with three new enums
 - Enabled support for this extension in function clGetDeviceInfo
 - Add support for CL_DEVICE_OPENCL_C_FEATURES API query through
    clGetDeviceInfo corresponding integer_dot_product extension
 - Updated vk_features.json with new ANGLE Feature
    supports_shader_integer_dot_product
 - The changes in autogen files are generated by running the
    run_code_generation.py script
Tests-Passing:
ocl_cts: test_integer_ops integer_dot_product
ocl_cts: test_compiler features_macro
VK-GL-CTS:dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.*
          dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.*
          dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.*
          dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.*
          dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.*
          dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.*
Bug: angleproject:433980939
Change-Id: Iae7a7753d0556beeb85c254c61a37a0d047df058
Signed-off-by: Hareesh Karada <hareesh.k@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6785089
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
5fb77159
               | 
              
2025-08-12T15:21:25
               | 
              
               | 
              
Add stubs for GL_ARM_texture_unnormalized_coordinates
Bug: angleproject:352345942
Change-Id: I05e2b0c83f07bfe35eb58fc657b834f6253d4cb9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6839660
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Shufen Ma <Shufen.Ma@arm.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
               | 
            
            
              
   
               | 
              
bafe39e2
               | 
              
2025-07-14T16:07:51
               | 
              
               | 
              
Vulkan: Use BindIndexBuffer2 when available
  This Vulkan API becomes available with VK_KHR_maintenance5. In
addition to the original args, it also takes the index buffer size.
* Added the necessary functions to use the following API:
  vkCmdBindIndexBuffer2KHR()
* handleDirtyGraphicsIndexBuffer() now uses this API if maintenance5
  is available.
Bug: angleproject:394337110
Change-Id: I9a650ac5a033b449da05e0c226e2cfb6df74a75c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6735725
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
               | 
            
            
              
   
               | 
              
2ef85c24
               | 
              
2025-07-09T17:13:52
               | 
              
               | 
              
Vulkan: Add support for GL_EXT_fragment_shading_rate
Add support for GL_EXT_fragment_shading_rate.
Bug: angleproject:420310117
Change-Id: I7b368afc45baf8551c222b2569991269117d385b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6726817
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Panfeng Hou <panfeng.hou@arm.com>
Reviewed-by: Charlie Lao <cclao@google.com>
               | 
            
            
              
   
               | 
              
7181239d
               | 
              
2025-04-04T14:13:58
               | 
              
               | 
              
Add long ANGLE traces feature
Enables very long Android captures by swapping binary
data chunked buffers to/from disk.
Bug: b/425728227
Change-Id: I539f72590eece03cfc69d42fc34be9825a9ff1fe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6476924
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
               | 
            
            
              
   
               | 
              
b7582680
               | 
              
2025-02-24T18:04:32
               | 
              
               | 
              
Reland: GL: Allow untranslated shaders to pass through on GLES
Add an EGL extension EGL_ANGLE_create_context_passthrough_shaders which
uses the NULL translator and passes the original shader to the driver.
The parser is still used for shader reflection.
Always enable the null compiler backend. It has almost no binary size
cost and is now potentially used when the null ANGLE backend is not
enabled.
Bug: angleproject:398857482
Change-Id: Id528189ccbbacb1c444eacb151baadfda9fcc04b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6488609
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
dd6a1a2c
               | 
              
2025-07-24T10:02:04
               | 
              
               | 
              
Roll vulkan-deps from 0b8bda098b9a to b7374531e4a2 (9 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/0b8bda098b9a..b7374531e4a2
Also rolling transitive DEPS:
  https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/597e427cce3fc97a8455b26aba1a1189546717c3..192b610c89300a30221b8909bf71dcb12cd3c92d
  https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers/+log/c8ad050fcb29e42a2f57d9f59e97488f465c436d..de1807b7cfa8e722979d5ab7b7445b258dbc1836
  https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/8cf1bf9bb922e33135e6e343a566764015da2dc6..04d4deab5d608af8fbe418c422734a73555589c3
  https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/dad479f6294df6c7a706964c489926be943a8baf..4cf7390eb853a54e7f9ae1c948ac09995ed8b8e5
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,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
Tbr: syoussefi@google.com
Change-Id: Iff95f0d257f10922a681697549f833092622f395
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6782918
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
               | 
            
            
              
   
               | 
              
b3986258
               | 
              
2025-07-14T14:47:02
               | 
              
               | 
              
Include <utility> in PoolAlloc to fix gcc builds
std::exchange needs #include <utility>.
Bug: angleproject:429513168
Change-Id: I61e323055cb70545bda883c8bcfb103dcede5136
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6734441
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
               | 
            
            
              
   
               | 
              
c03b2d59
               | 
              
2025-07-15T14:18:28
               | 
              
               | 
              
common: Fix include for std::exchange
This is to fix error in
https://ci.chromium.org/ui/p/chromium/builders/ci/linux-modules-compile-fyi-rel/41761/overview
Bug: chromium:40263312
Change-Id: I4d37bd92370b80856571cdd97144b61f8477f362
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6734419
Auto-Submit: Takuto Ikuta <tikuta@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
93b659f9
               | 
              
2025-07-04T12:35:29
               | 
              
               | 
              
Remove PoolAllocator push/pop feature
PoolAllocator would manage a stack of memory pools upon client
calling push() and pop(). This made the code unnecessarily complicated.
The feature was only used with nesting of one, to mark the memory
unused after a shader compile.
Fix by removing the push/pop feature. Instantiate PoolAllocator in
places the previous push() was and uninstantiating instead of previous
pop().
This removes the feature where the PoolAllocator would hold on to
the allocated memory in order to reuse it. This is seen as a
progression: the allocator is held by the compiler, the compiler is
held by the shader and each shader typically see only one compile.
Thus the free pages were just leaking unused until the shader was
destroyed. Instead, destructing the PoolAllocator instead of pop()
will donate the memory back to platform/OS, where it is likely
more useful.
To preserve existing Vulkan behavior, add PoolAllocator::reset()
which would mark the memory unused but leave them reserved for the
PoolAllocator.
Removes UB where PageHeader::nextPage would be accessed after
~PageHeader.
Bug: angleproject:429513168
Change-Id: I21e58b46e0887380db3a2cab5ce22f0042cfae9e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6701153
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>
               | 
            
            
              
   
               | 
              
41a5b397
               | 
              
2025-07-09T09:17:10
               | 
              
               | 
              
Vulkan: Fix checking if fds are identical
This helps to decide whether it's really disjoint or not.
Bug: angleproject:426480610
Change-Id: I8ec9b352195ab16a7e11d2dab30e98138d9f5a6c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6658648
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
30a1cbc9
               | 
              
2025-07-03T13:00:05
               | 
              
               | 
              
Vulkan: Separate out descriptor set for uniform buffers
Bug: angleproject:426412564
Change-Id: Icdbb1e634fc543714d1e3b9cdba0530d400cb153
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6705153
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
               | 
            
            
              
   
               | 
              
2269011c
               | 
              
2025-06-30T14:08:11
               | 
              
               | 
              
Remove BitSet::to_ulong and BitSetArray::to_ulong
BitSet::to_ulong() is a bit redundant with bits(), and has a risk of
losing upper bits on windows platform where unsigned long is 32 bit.
This CL removes the usage of it and replaced with bits().
BitSetArray::to_ulong() method only captures up to 64 bits, all other
bits are dropped silently which is wrong. This CL fix this and serialize
it as a vector of uint64_t. BitSetArray::to_ulong() is removed in this
CL.
Bug: angleproject:42264163
Change-Id: I663b2cdacc0e930ee616e333131e831ec124a9d4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6691283
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
               | 
            
            
              
   
               | 
              
d28c6adf
               | 
              
2025-06-19T09:41:26
               | 
              
               | 
              
Modernize for macOS 12
macOS 12 is the minimum OS requirement, so remove the "main port"
workaround and do other modernization.
Bug: b/40250210
Change-Id: I9638014732f0589fc6171c0fe617b3c563f00c28
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6655558
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
ad7f595d
               | 
              
2025-06-19T18:20:15
               | 
              
               | 
              
Set src/common/base "Update Mechanism"
Bug: chromium:419410757
Change-Id: Ib2a980edd6e7c9b9790c31c8fb6002d58da4a08f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6650800
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
               | 
            
            
              
   
               | 
              
9a436772
               | 
              
2025-06-04T16:47:51
               | 
              
               | 
              
Vulkan: Add entry points for GL_EXT_fragment_shading_rate
Bug: angleproject:420310117
Change-Id: I8a8efad6cad810b2cb0b600106f6496070495605
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6620340
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
               | 
            
            
              
   
               | 
              
23097376
               | 
              
2025-06-03T22:26:05
               | 
              
               | 
              
Update src/common/base's README
Bug: chromium:378273323
Change-Id: Iaa40abac52fdb2d5f8e3a65333d589097cb98834
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6617103
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
4c964bc7
               | 
              
2025-05-15T00:00:00
               | 
              
               | 
              
Roll third_party/OpenGL-Registry/src/ 5bae8738b..200cea403 (74 commits)
https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry/+log/5bae8738b23d..200cea4030cb
Additional changes:
* Removed obsolete workarounds for mismatching
  signatures between CreateShaderProgramvEXT
  and CreateShaderProgramv.
* Aligned GL backend bindings for GL_OVR_multiview
  entry points with the specs.
* Updated include/GLES2/gl2ext.h.
Bug: angleproject:409484297
Change-Id: Ifbb63dcc4bad312b22a368455a121e088b346fab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6596941
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
392dc591
               | 
              
2025-05-15T00:00:00
               | 
              
               | 
              
Remove GL_CHROMIUM_sync_query
Fixed: angleproject:420627279
Change-Id: I26dac7c55a7cf6b04121658144e1387be65d2569
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6593552
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
3e9a1375
               | 
              
2025-04-30T16:03:03
               | 
              
               | 
              
Fix unique object duplication warning
Clang has a `unique-object-duplication` warning that warns about objects
which are supposed to be unique (like static- or thread-local
variables), but may be accidentally duplicated across shared libraries
when they have hidden visibility.
This CL addresses instances of that warning by:
1. Ensuring that on non-windows systems, objects that need to be
   exported are unconditionally given "default" visibility
2. Satisfy the compiler by marking everything as default visibility when
   building a static library, since visibility only matters for shared
   libraries
3. Mark functions with static or thread local variables as exported.
Bug: chromium:368047728
Change-Id: Ic60265353bf2b0af2cd1fef884bfa85038e0db02
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6502093
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
3cf7a604
               | 
              
2025-05-17T19:39:08
               | 
              
               | 
              
WebGPU: Add extensions for importing external textures
Add EGL_ANGLE_device_webgpu which exposes the adapter and device used
by ANGLE internally.
Add EGL_ANGLE_webgpu_texture_client_buffer which allows importing
external WGPUTexture handles if they share the same device as ANGLE
(queried from EGL_ANGLE_device_webgpu).
Bug: angleproject:418022112
Change-Id: I0683d36b84a0f8e0e9b68a5ec0d3aa8b7a95152c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6553063
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
86ce0f0e
               | 
              
2025-04-24T00:00:00
               | 
              
               | 
              
Add EXT_multi_draw_arrays stubs
Bug: angleproject:414506477
Change-Id: Idc3ca950b88c9632268922ec7a311936916c2a43
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6522405
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
ae70513d
               | 
              
2025-04-18T00:00:00
               | 
              
               | 
              
Remove NamedBufferStorageExternalEXT entry point
OpenGL ES does not support DSA.
Bug: angleproject:407932145
Change-Id: If5f544de2b43e05888415a4fc805ad6065d4408b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6495409
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
cdcf6a63
               | 
              
2025-04-22T10:19:33
               | 
              
               | 
              
Add R10X6G10X6B10X6A10X6 support on angle
Bug: angleproject:409355677
Change-Id: I8115ca73a038360f673552532e9d9b87ff846867
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6438114
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
               | 
            
            
              
   
               | 
              
49d0a332
               | 
              
2025-04-08T16:07:17
               | 
              
               | 
              
Vulkan: Remove ring buffer allocators
* Removed the ring buffer allocator functionality from ANGLE:
  angle::RingBufferAllocator
  * Also removed the related common files.
  * (Pool allocators will be used at all times.)
* Removed the placeholder functions from the pool allocator.
* Removed the following BUILD flag:
  angle_enable_vulkan_shared_ring_buffer_cmd_alloc
* Removed redundant line from ContextVk.
Bug: b/410036490
Change-Id: I368fb93a66ddfd192018b09f65004a32339abd5a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6442640
Reviewed-by: Igor Nazarov <i.nazarov@samsung.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
5dd05578
               | 
              
2025-04-14T07:34:57
               | 
              
               | 
              
Revert "GL: Allow untranslated shaders to pass through on GLES"
This reverts commit 4e77552b86a89b449ada6d6c18f84285f5812b1d.
Reason for revert: breaks ChromeOS and fuzzers
Bug: angleproject:398857482
Original change's description:
> GL: Allow untranslated shaders to pass through on GLES
>
> Add an EGL extension EGL_ANGLE_create_context_passthrough_shaders which
> uses the NULL translator and passes the original shader to the driver.
> The parser is still used for shader reflection.
>
> Bug: angleproject:398857482
> Change-Id: I7c5fcc318c7e11931f78c08dcbf4764bf77d397d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6297527
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Bug: angleproject:398857482, angleproject:410423936
Bug: chromium:410114655, chromium:410100607, chromium:410121218
Bug: chromium:410052365, chromium:410290507, chromium:410178288
No-Presubmit: true
Change-Id: I45b01960637a1cda05d21a7df6d07465f6a8f5e9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6448984
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>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
               | 
            
            
              
   
               | 
              
4e77552b
               | 
              
2025-02-24T18:04:32
               | 
              
               | 
              
GL: Allow untranslated shaders to pass through on GLES
Add an EGL extension EGL_ANGLE_create_context_passthrough_shaders which
uses the NULL translator and passes the original shader to the driver.
The parser is still used for shader reflection.
Bug: angleproject:398857482
Change-Id: I7c5fcc318c7e11931f78c08dcbf4764bf77d397d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6297527
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
78048112
               | 
              
2025-01-15T15:13:14
               | 
              
               | 
              
Fix IndexRange::vertexIndexCount calculation
Use only one loop.
Avoid redundant primitive restart index parameter.
Avoid calling GetPrimitiveRestartIndexFromType() because the algorithm
relies on the value being numeric_limits<T>::max().
Fixes a bug where primitive restart case would process the value
after first primitive restart twice, once in both for loops. This would
result in incorrect vertexIndexCount.
Fix by removing IndexRange::vertexIndexCount, and instead using
IndexRange::mCount == 0 to signify empty range.
Bug: angleproject:401284933
Change-Id: Ifaeb9949f2e852fb7c5ef80bc47f72bfabba21a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6333541
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
               | 
            
            
              
   
               | 
              
1593390b
               | 
              
2025-04-07T11:22:21
               | 
              
               | 
              
Increase ANGLE_LIKELY/UNLIKELY probability to 99.99%
I can't find the exact value for clang, but according to GCC docs
__builtin_expect probability is assumed to be only 90%. When we actually
bother to use ANGLE_LIKELY we mean "almost always", so this value can
be much higher. Setting to 99.99% because lower values don't seem to
trigger the optimization below (at least 99.9% doesn't)
__builtin_expect already enables some optimizations such as moving
unlikely branches (e.g. cold function calls) out of the primary flow.
Increasing the probability enables more aggressive optimizations such as
making those function calls store/load registers only in the rare
cases when this call is made - which allows the rest of the caller to be
made more efficient by not having to handle these register changes.
Example:
stur w4, [x29, #-0xc]
stur x8, [x29, #-0x8]
str x3, [sp, #0x8]
stp w2, w1, [x29, #0x18]
bl 0x356fdc <_ZNK2gl7Context25getActiveLinkedProgramPPOEv>
ldp w2, w1, [x29, #0x18]
ldr x3, [sp, #0x8]
ldur w4, [x29, #-0xc]
ldur x8, [x29, #-0x8]
Bug: b/383305597
Change-Id: I077f4f2cb90cfb8282409d12adcb02c3302e7761
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6437572
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
eb52b568
               | 
              
2025-03-28T00:00:00
               | 
              
               | 
              
Remove unsupported 1D and DSA entry points
OpenGL ES does not support 1D textures,
removed TexStorage1DEXT.
OpenGL ES does not support DSA, removed
EGLImageTargetTextureStorageEXT.
Added an explicit command blocklist.
Added hashes for *_vulkan_secondaries_* def files.
Fixed: angleproject:407932145
Change-Id: Iec34fa475f34a0fa832a49223c51ff1f87b1915d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6426049
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
               | 
            
            
              
   
               | 
              
05c491e1
               | 
              
2025-03-15T11:56:07
               | 
              
               | 
              
Vulkan: Optimize GraphicsDriverUniforms update
Unless RP is closed there is no need to dirty GraphicsDriverUniforms
when the program executable changes.
Bug: angleproject:386749841
Test: VulkanPerformanceCounterTest.NoUpdatesToGraphicsDriverUniformsOnProgramChange*
Change-Id: Id02e8a17de93e2b73103666fc6cc62ce3cdd8f43
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6358315
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
292bb458
               | 
              
2025-03-14T12:17:49
               | 
              
               | 
              
Cut MAX_COLOR_ATTACHMENTS_WITH_ACTIVE_PIXEL_LOCAL_STORAGE_ANGLE
Since the number of real devices that support framebuffer fetch, but do
not support draw_buffers_indexed, is effectively zero,
MAX_COLOR_ATTACHMENTS_WITH_ACTIVE_PIXEL_LOCAL_STORAGE_ANGLE is an
unnecessary complication. These hypothetical devices can fall back on
shader images or just not support pixel local storage at all.
This closes the door for WEBGL_shader_pixel_local_storage to ever be
implemented on top of the ES2 extension that inspired it all,
EXT_shader_pixel_local_storage, but WebGL can just use framebuffer fetch
instead, or maybe even EXT_shader_pixel_local_storage2 some day.
This dramatically simplifies the WEBGL_shader_pixel_local_storage
extension.
Bug: angleproject:40096838
Change-Id: I9c51f2ce000620f883cb7917d4e8618c8e9ee803
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6354657
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
               | 
            
            
              
   
               | 
              
19e45680
               | 
              
2025-03-18T12:50:52
               | 
              
               | 
              
Disable timestamp call from AddTraceEvent for Android platform
Android platform's addTraceEvent ignores the timestamp arg, so there is
no reason to make this call (and it shows as the hotspot).
Behind a new define to avoid breaking this in Chromium Android builds
where the timestamp is actually used.
Bug: angleproject:404542398
Change-Id: I0f5eea31feb6838c3e62949fcd2947145be4ebf5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6368277
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
               | 
            
            
              
   
               | 
              
3676ac1f
               | 
              
2025-03-10T17:18:33
               | 
              
               | 
              
Add checks for invalid cases “a[]” and "a[a]" in array parsing
Returns empty outSubscripts vector for a[]
Adds GL_INVALID_INDEX to outSubscripts for a[a]
Bug: angleproject:401979815
Change-Id: Ie18e9bbbec2b15cac69ae048b81f14ab13439400
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6339329
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Mavis Deng <mavis.deng@arm.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
5b343e8f
               | 
              
2025-03-11T11:35:08
               | 
              
               | 
              
Vulkan: Remove support for Stadia
Bug: angleproject:42262714
Change-Id: Icae5fe828fe4e0bcd287d297df1bc586708ef86e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6344390
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
               | 
            
            
              
   
               | 
              
ae567733
               | 
              
2025-02-26T19:09:14
               | 
              
               | 
              
Vulkan: Make use of VK_EXT_device_fault if exists
  This Vulkan extension, if available, can provide further details
about the device in case of VK_ERROR_DEVICE_LOST.
* Added the following ANGLE feature: supportsDeviceFault
  * It shows whether the extension VK_EXT_device_fault is supported
    and that the deviceFault bit is enabled on the physical device.
* Added the Vulkan entry point for the following function:
  * vkGetDeviceFaultInfoEXT
* Added the following to the renderer:
  * mFaultFeatures (device feature)
  * retrieveDeviceLostDetails(); to log information regarding the
    following if the appropriate support is available:
    * Address faults
    * Vendor-specific faults
    * Vendor binary dump (logged in hex format)
    * Added RetrieveDeviceLostInfoFromDevice() to vk_renderer.cpp
      to be used in Renderer::retrieveDeviceLostDetails().
* Updated ContextVk::handleError() to try to retrieve more info in
  case of DEVICE_LOST.
Bug: b/399478440
Change-Id: If8d8e04001dabbe775c023f9922c44ef2205317e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6305888
Reviewed-by: Charlie Lao <cclao@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>
               | 
            
            
              
   
               | 
              
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>
               | 
            
            
              
   
               | 
              
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>
               | 
            
            
              
   
               | 
              
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>
               | 
            
            
              
   
               | 
              
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>
               | 
            
            
              
   
               | 
              
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>
               | 
            
            
              
   
               | 
              
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>
               | 
            
            
              
   
               | 
              
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>
               | 
            
            
              
   
               | 
              
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>
               | 
            
            
              
   
               | 
              
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>
               | 
            
            
              
   
               | 
              
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>
               | 
            
            
              
   
               | 
              
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>
               | 
            
            
              
   
               | 
              
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>
               | 
            
            
              
   
               | 
              
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>
               | 
            
            
              
   
               | 
              
96abb2c3
               | 
              
2024-12-13T14:06:55
               | 
              
               | 
              
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>
               | 
            
            
              
   
               | 
              
1a8d7712
               | 
              
2025-01-06T12:44:00
               | 
              
               | 
              
Inline common cases of PackParam<BufferBinding>
This appears to improve frame time by ~0.8% in some of my
driver_overhead_2 tests on a mobile device.
Default implementation is FromGLenum<BufferBinding>
https://crsrc.org/c/third_party/angle/src/common/PackedGLEnums_autogen.cpp;drc=0bb109aa3311f35bf0b51bcda3d7e095048168c8;l=106
and has 15 cases. This CL avoids the call for 3 of those cases,
most common ones according to frequency of glBindBuffer arg
in our trace cpp files.
This mapping adds compare/branch instructions for each case, hence
inlining increases the caller a little. In this case the increase is
about 60 bytes. With the total of 23 callers (GL_*Buffer* exports), this
increase the .so size by ~1.3KB. Just inlining the function would yield
higher bloat and wouldn't prioritize the common cases.
Bug: b/383305597
Change-Id: Icc205fd46fb8ef195c8ffaf67f9cd5194d1d1a5d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6148838
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
               | 
            
            
              
   
               | 
              
00756ced
               | 
              
2024-12-26T01:23:08
               | 
              
               | 
              
Vulkan: Fix build on some compilers
Bug: angleproject:352690896
Change-Id: Ia31fef4a3179db08d7fa9f402067c0a9aaf23ffc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6114509
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
               | 
            
            
              
   
               | 
              
db3a88fd
               | 
              
2024-12-19T09:15:50
               | 
              
               | 
              
Add missing include
Bug: angleproject:42262955
Change-Id: If0e075d1f291321e3a265d1d68b9d813f8559d68
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6110804
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Johnson <hibrian@google.com>
Auto-Submit: Roman Lavrov <romanl@google.com>
Reviewed-by: Solti Ho <solti@google.com>
               | 
            
            
              
   
               | 
              
b7d6605a
               | 
              
2024-12-17T09:17:20
               | 
              
               | 
              
Rename GC and CL dispatch threads to <16 chars
Current names too long (there is a 15 char pthread limit),
they just gets ignored. Add an assert.
Bug: angleproject:42262955
Bug: angleproject:375231041
Change-Id: If26c98b709524b9c072f26759b98f81fe0d4367d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6096873
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Roman Lavrov <romanl@google.com>
               | 
            
            
              
   
               | 
              
c0ee7b20
               | 
              
2024-12-12T16:49:40
               | 
              
               | 
              
Swap getWidth() and getHeight() if the swapchain is 90 emulate rotated
When checking if we need to recreate swapchain, we should swap
the getWidth() and getHeight()
if Is90DegreeRoration(mEmulatedPreTransform) is true. This is because:
When creating swapchain, if Is90DegreeRoration(mEmulatedPreTransform) is
true, we store swapped mSurfaceCaps.currentExtent.width and
mSurfaceCaps.currentExtent.height in getWidth() and getHeight(),
but we use the original mSurfaceCaps.currentExtent.width and
mSurfaceCaps.currentExtent.height to create the swapchain.
On next acquire, to check if the swapchain property changes,
we should swap getWidth() and getHeight() if
if Is90DegreeRoration(mEmulatedPreTransform) is true, otherwise we
are recreating swapchains when width and height are unchanged.
Bug: b/382006939
Change-Id: I1cbe9da2ff5e76602a90963514d2d0d5fbf677e7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6090199
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
               | 
            
            
              
   
               | 
              
00d9ef8f
               | 
              
2024-12-13T11:59:29
               | 
              
               | 
              
Inline GetUniformTypeInfoFromIndex
A very small function call on hot path, highlighted by PGO profile data
from driver_overhead_2. Makes driver_overhead_2 1~2% faster
on Pixel 8 (measured with shared context lock off).
Bug: b/335295728
Bug: b/383305597
Change-Id: I36e58b42b06c72c8f4c282110c85bb5130ced8d0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6094283
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
fb743105
               | 
              
2024-11-26T14:37:39
               | 
              
               | 
              
Add stubs for EGL_EXT_surface_compression
This patch adds stubs for EGL_EXT_surface_compression to
ANGLE, including new API eglQuerySupportedCompressionRatesEXT and
adding EGL_SURFACE_COMPRESSION_EXT in EGLQuerySurface and
EGLCreateWindowSurface/EGLCreatePlatformWindowSurface.
Bug: angleproject:375496226
Change-Id: I1962a11e8e3e5eb2cd5b13c5ba0f685781dfd015
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6073354
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
f5196a27
               | 
              
2024-11-29T00:00:00
               | 
              
               | 
              
Fix normalizedToFloat for signed types
* Ensured that INT_MIN is converted to -1.
* Fixed max value computation when the
  input bit width is not type-aligned.
* Cleaned up D24X8::ReadDepthStencil
  to match the updated semantics.
* Added tests for all variants.
Fixed: angleproject:352963106
Change-Id: I8b9f60d3364331567ad3b55276666bb416c3c6ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6072233
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
               | 
            
            
              
   
               | 
              
74609065
               | 
              
2024-11-27T16:09:44
               | 
              
               | 
              
Vulkan: Fix finishOneCommandBatchAndCleanupImplLocked
Fix the `finishOneCommandBatchAndCleanupImplLocked()` to always do
cleanup regardless if there is something to finish. This method is
designed not only to free space in `mInFlightCommands` but also to
cleanup already retired commends (in `mFinishedCommandBatches`) and
renderer's garbage. In case if `mInFlightCommands` is empty cleanup was
skipped - which is incorrect.
Change removed `Impl` from the name since it is already have `Locked`.
The `finishOneCommandBatchAndCleanup()` is updated to simply call the
locked version with the mutex lock held.
Change also improved `FixedQueue` assertions (always check that
`mSize <= mMaxSize`).
Bug: b/280304441
Change-Id: I67bd7c35b164b84e9c07306a5bf48b0adefdfa5e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6055419
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
a504b6a2
               | 
              
2024-11-25T15:59:05
               | 
              
               | 
              
Support GL_OES_required_internalformat
Enable GL_OES_required_internalformat GLES extension.
Bug: angleproject:364069034
Change-Id: Ia57548469abff189472aa20b13ca99179c45f2c0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6038448
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Panfeng Hou <panfeng.hou@arm.com>
               | 
            
            
              
   
               | 
              
5951cac9
               | 
              
2024-12-04T04:37:50
               | 
              
               | 
              
Update xxHash metadata
Populating version as 0.8.2 based on:
https://github.com/Cyan4973/xxHash/commit/0f2dd4a1cb103e3fc8c55c855b821eb24c6d82c3
Bug: chromium:365320508
Change-Id: Ieec25b6fafc32c98bc29efb1e6c32a5933f30af9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6069746
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jiewei Qian <qjw@chromium.org>
Auto-Submit: Jordan Brown <rop@google.com>
Reviewed-by: Jordan Brown <rop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
0bb109aa
               | 
              
2024-11-28T00:00:00
               | 
              
               | 
              
Fix validation for 2D multisample array textures
* Fixes:
  * TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY query must
    be rejected if the functionality is not enabled.
  * GetInternalFormativ must accept TEXTURE_2D_MULTISAMPLE_ARRAY
    on unextended OpenGL ES 3.2 contexts.
  * Added validation to the OpenGL ES 3.2 TexStorage3DMultisample
    entry point.
* Cleanups:
  * Removed OES suffix from the enum conversion.
  * Incorrect extension name in the error message.
  * Do not create a 2D multisample array zero texture object
    if the backend does not support the functionality.
  * Replaced redundant FramebufferTexture validation with an assertion.
  * Do not allocate texture binding vectors for 2D multisample array
    textures if the backend does not support the functionality.
  * Aligned the 2D multisample array texture target assert in
    RecordBindTextureTypeError with the actual error condition.
Fixed: angleproject:381270278
Change-Id: Idbbc86e2efe1bbc25d9570d515b67c1a32255d99
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6063068
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
da292057
               | 
              
2024-12-03T10:20:17
               | 
              
               | 
              
Update third party metadata
Bug: chromium:378273470
Bug: chromium:365321119
Bug: chromium:365320508
Bug: chromium:378273216
Change-Id: Ie24f00112a8f04ff9acdf6e4618b79e082529636
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6062488
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
               | 
            
            
              
   
               | 
              
d57b1d30
               | 
              
2024-11-28T11:09:53
               | 
              
               | 
              
Vulkan: Support GL_OES_required_internalformat
Only export 'GL_OES_required_internalformat' in GLES extension.
Bug: angleproject:364069034
Change-Id: I6198b7b79fc2853c7585ebff183016ee110a25e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6055198
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
5d3d299d
               | 
              
2024-11-25T16:35:51
               | 
              
               | 
              
Expose the required GLES1.0/1.1 extensions in ANGLE
Exposed below extensions:
GL_OES_texture_mirrored_repeat
GL_OES_blend_subtract
Bug: angleproject:380704155
Change-Id: Ib095f9bfaabda92bb2c588d633f1512e118f066e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6038450
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
3b3783bc
               | 
              
2024-11-18T16:42:47
               | 
              
               | 
              
Reland "Possibly fix FixedQueue.ConcurrentPushPop flakiness"
This is a reland of commit 84b175546ec95af14b6a85def7d5b2e81ae5a88a
Reverted CL increased flakiness because of incorrect `ASSERT`
expressions present in the original code and which should have been also
corrected. The fix itself had no new issues.
This CL additionally fixes these `ASSERT` expressions.
Suspected source of flakiness in both tests is the possibility to call
`q.pop()` while `q.empty()` is true. Original fix added check for
`enqueueThreadFinished` to break from the loop.
New fix instead of checking for `enqueueThreadFinished` to break from
the loop, checks if `q.empty()` is true. This change allows processing
already pushed values even if the enqueue thread already finished. It is
applied to both tests.
Additional changes not related to fixing the flakiness:
- `std::time()` replaced with `angle::GetCurrentSystemTime()` because
  `std::time_t` may be integer (Android) while `timeOut` is double. This
  is confusing. For example, if set `timeOut = 0.5` - actual timeout
  will still be one second.
- fix enqueue thread to actually reach the maximum capacity.
- improve dequeue thread to prevent updating to the same of greater
  capacity.
- add extra `ASSERT` checks.
- make code in both tests consistent with each other.
Original change's description:
> Possibly fix FixedQueue.ConcurrentPushPop flakiness
>
> Queue may be empty when `enqueueThreadFinished` become true.
>
> This is same as the previous fix for `ConcurrentPushPopWithResize`:
>     https://chromium-review.googlesource.com/c/angle/angle/+/5823039
>
> Change also removes always true expressions from the
> `ConcurrentPushPopWithResize` test.
>
> Bug: b/302739073
> Change-Id: I82ee294208d918b7007d85b2cd90e2642fc1e54f
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6030517
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: b/302739073
Change-Id: I8f3840326f3fceed044fa188245772a5ff7b638d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6038334
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
               | 
            
            
              
   
               | 
              
d81d29e1
               | 
              
2024-11-19T15:53:16
               | 
              
               | 
              
Revert "Possibly fix FixedQueue.ConcurrentPushPop flakiness"
This reverts commit 84b175546ec95af14b6a85def7d5b2e81ae5a88a.
Reason for revert: more flakiness seen on Pixel 6 and Samsung S22
Original change's description:
> Possibly fix FixedQueue.ConcurrentPushPop flakiness
>
> Queue may be empty when `enqueueThreadFinished` become true.
>
> This is same as the previous fix for `ConcurrentPushPopWithResize`:
>     https://chromium-review.googlesource.com/c/angle/angle/+/5823039
>
> Change also removes always true expressions from the
> `ConcurrentPushPopWithResize` test.
>
> Bug: b/302739073
> Change-Id: I82ee294208d918b7007d85b2cd90e2642fc1e54f
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6030517
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: b/302739073
Change-Id: Iefd994d5a69d2f4add13485d586384814e5e3dd5
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6033739
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
               | 
            
            
              
   
               | 
              
8a2b60b2
               | 
              
2024-11-06T17:13:16
               | 
              
               | 
              
Add stubs for GL_EXT_texture_storage_compression
Bug: angleproject:352364583
Change-Id: I607c19c0c9bec7f0e3dd325e44b42e73f826b61c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5998012
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
               |