|
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>
|
|
84b17554
|
2024-11-18T16:42:47
|
|
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>
|
|
c7a43ec8
|
2024-10-28T12:26:05
|
|
Capture/Replay: Track framebuffers by context
Some game titles treat framebuffer objects as shared. Framebuffer
objects are now tracked per-context to avoid conflicts.
Test: angle_trace_tests --gtest_filter=TraceTest.limbo --offscreen
Bug: b/371985732
Change-Id: I34ae5b54d569eec75ad86b7b363f7a84d56d955c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5973639
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
05b58737
|
2024-11-04T13:52:09
|
|
CL: Add CL command execution status to the enum list
Adding the CL command execution status enums to the auto enum generation
list - packed_cl_enums.json.
The execution status are defined as cl_int in the CL api, and as such
they are not packed at the entry points -
entry_points_cl_autogen.{h,cpp}, and are left to be used at the
implementation layer.
The following files are autogeneration through `run_code_generation.py`
script.
- scripts/code_generation_hashes/packed_enum.json
- src/common/PackedCLEnums_autogen.cpp
- src/common/PackedCLEnums_autogen.h
Bug: angleproject:37997556
Change-Id: Ia00fc12ef02e3882d47a1ad18cd6c11ce6bf63dc
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6004062
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d30d81d0
|
2024-11-06T16:08:28
|
|
[code health] Remove underscores from test names in ANGLE (1/N)
In the GoogleTest framework, underscores are not
allowed. [1] ANGLE has underscores in many test
names, and those should be changed.
At the same time, add a comment to a test case
according to the requirements of the Presubmit
check.
````
***************
ANGLE requires a comment describing what a test does.
***************
````
[1]
https://github.com/google/googletest/blob/main/docs/faq.md#why-should-test-suite-names-and-test-names-not-contain-underscore
Bug: angleproject:377543127
Change-Id: I90e634bd985ca518eca43e2c919a3a8bca91a55b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5997835
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Auto-Submit: Ho Cheung <hocheung@chromium.org>
|
|
11d73f1d
|
2024-11-04T20:31:57
|
|
Revert "spirv::Print without ANGLE_ENABLE_ASSERTS -> compile error"
This reverts commit be9e63ad090dc4b86eae08ad8f9f4c9f1a18a6a4.
Reason for revert is to fix build error in "CLProgramVk.cpp" if build
with `dcheck_always_on = false`.
Since https://crrev.com/c/5898609, `spirv::Print()` is now always
defined, so no liker error if `ANGLE_ENABLE_ASSERTS` is not defined.
Bug: angleproject:370557215
Change-Id: I983b57987eb63f601a75e90646c24b9cd16170a7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6003012
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
a05a0e15
|
2024-09-25T22:33:36
|
|
Validate PLS shaders against context state
Add shader introspection for PLS uniforms and validate that they match
context state during draw calls.
Bug: angleproject:40096838
Change-Id: I76cdf8add03de8f8b0b3e772c15c0087c1d97e98
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5893962
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
6b9d3762
|
2024-08-22T15:29:00
|
|
Vulkan: Optimize full texture clears
Currently, a full texture clear (glClearTexImageEXT()) is treated as
a special case of a partial clear (glClearTexSubImageEXT() with image
dims as the input). However, it can be further optimized by treating
it as a clear update.
* For full clears from EXT_clear_texture, the clear update path is
taken.
* It leads to a more optimized path, including the usage of the
following APIs:
* vkCmdClearColorImage()
* vkCmdClearDepthStencilImage()
* It uses the following enum: ClearTextureMode
* If a partial clear uses the extents for the entire image, it is
treated as a full clear.
* Updated the method to determine if a texture is renderable in
clearSubImageImpl().
* Added perf counter: fullImageClears
* Added new unit tests
* Single 3D texture full clear (Clear3DSingleFull)
* 2D RGB SNORM clear (Clear2DRGB8Snorm)
* Added Vulkan perf counter test for 2D and 3D color image clear.
* Updated the related skipped tests on Pineapple.
Bug: angleproject:42266869
Bug: angleproject:375425839
Change-Id: I12ef3002dee190d7f8f43204f7d3f76e05d0b54f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5806207
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ddbfae96
|
2024-10-10T18:30:55
|
|
Manual roll vulkan-deps from e8e61a227e2c to b8d6ceadf45d (8 revisions)
Manual roll requested by ynovikov@google.com
https://chromium.googlesource.com/vulkan-deps.git/+log/e8e61a227e2c..b8d6ceadf45d
Also rolling transitive DEPS:
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers/+log/a62b032007b2e7a69f24a195cbfbd0cf22d31bb0..50bc4debdc3eec5045edbeb8ce164090e29b91f3
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/4310fd4edae21d711ab31f5183704ad320329419..fcf994a619608c2bdb505189f6e325b1a6b4f294
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/61037741e4d8ccdb8c7b761bc726ab87cc11496d..9553b9751916c06ea6f6a78236397450bc76bd32
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,ynovikov@google.com on the revert to
ensure that a human
is aware of the problem.
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://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: ynovikov@google.com
Change-Id: Ie07afc8447e73678f6fb9772a3477def5f120117
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5923803
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
|
|
492cf265
|
2024-09-27T13:44:22
|
|
Stubs for GL_blob_cache_angle
Bug: chromium:370538323
Change-Id: Ib56b28c24305db8931f382b16a24975b7277fa7e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5900760
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b16d105f
|
2024-10-03T10:25:32
|
|
Remove Desktop GL front-end support
For Desktop GL applications, please use Zink!
Bug: angleproject:370937467
Change-Id: Ie734634bb62a2e98c80e1b32d8b3d34624da3c04
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5905428
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
55980dbd
|
2024-06-07T13:45:23
|
|
common: Improve/fix spir-v utils
This change improves the handling of macroed-sections of the code.
Also, fixed some typos.
Bug: angleproject:370557215
Change-Id: I437b8c4d835dada4554569c72ef7100568c6be48
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5898609
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
435bd0a9
|
2024-10-02T16:37:06
|
|
ssci: use canonical date format
Bug: chromium:370881022
Change-Id: Ie8a310b11517fd1be7f95f246bcb9cfe48d95791
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5903336
Auto-Submit: Jiewei Qian <qjw@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8469debb
|
2024-09-04T20:04:10
|
|
Vulkan: Add dual slots in CompressAndStorePipelineCacheVk()
Change fixes following problem:
Currently, each call to `CompressAndStorePipelineCacheVk()` stores
chunks in order, starting from 0. This overrides previously stored
chunks. In case of app termination (kill) in the middle of this
process, the entire cache data will be corrupted, since it will
partially contain chunks from the new and old caches.
Solution:
In order to fix this problem, this change introduces `slotIndex` into
the `chunkCacheHash` calculation. Slot index is managed by
`vk::Renderer::getNextPipelineCacheBlobCacheSlotIndex()` method, which
will alternate between 0 and 1 when "useDualPipelineBlobCacheSlots"
feature is enabled, and always 0 otherwise.
Additionally, chunk storing order is reversed: last chunk is stored
first and the first (0 chunk) - last. This is done because 0 chunk is
the first that is loaded in `GetAndDecompressPipelineCacheVk()` and used
as indication that there is data in the cache. Writing it last, ensures
that other chunks will be also available.
When "useDualPipelineBlobCacheSlots" is enabled, each call to
`CompressAndStorePipelineCacheVk()` will use slot index opposed to the
slot that is stored in the cache, avoiding damaging existing data. After
writing all chunks for a brief moment there may be 2 instances of the
data. However, data for the previous slot will be immediately erased
(by writing 1/0-sized blobs) starting from the 0 chunk.
To control if erasing of old pipeline cache data will be erased by using
0-sized or 1-sized blobs blobs, added
`useEmptyBlobsToEraseOldPipelineCacheFromBlobCache` feature.
The `GetAndDecompressPipelineCacheVk()` function will iterate over each
available slot index checking only 0 chunk until data is found.
In case of the OpenCL API, features will always have following values:
- "useDualPipelineBlobCacheSlots" -> false
- "useEmptyBlobsToEraseOldPipelineCacheFromBlobCache" -> true
Note: this solution requires 2X pipeline cache size space in the blob
cache to work as expected, otherwise it will exacerbate other problem:
When blob cache is full, but still allows to store the current
pipeline cache data, storing next chunk may trigger eviction of
already stored items. Depending on the blob cache implementation,
eviction process may choose to evict chunks from the current pipeline
cache data. As the result: blob cache will not contain all chunks.
The above problem will be addressed in the follow up CL.
Bug: angleproject:4722
Change-Id: I2920bc3d89263280cdfe0466446fca26415e2b25
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5756576
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
44b6203c
|
2024-09-02T16:23:44
|
|
Add new functions defined in VK_KHR_Synchronization2 extension
Add vkCmdPipelineBarrier2 and vkCmdWriteTimeStamp2.
The other functions introduced in VK_KHR_Synchronization2
are not being used at the moment.
Bug: b/356985874
Change-Id: I4f8b432aee9b11debcb8abe8b3089f88ad7a069b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5832709
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
1b4d6185
|
2024-09-12T09:18:46
|
|
Vulkan: Cleanup sRGB related code
Image and image view code is littered with sRGB related enums, even
in places that don't deal with sRGB. Remove sRGB related parameters
from initLayerImageView and getLevelLayerDrawImageView methods, which
now assume default values. Add dedicated methods that allow overriding
sRGB state values.
Also introduce ColorspaceState struct that consolidates all sRGB
related states, this will be used in follow up changes to track
and infer colorspace of image views
Bug: angleproject:40644776
Change-Id: Ifb366db48043e376f9ff6c30c852c44dd96562a1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5860808
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
c9d55051
|
2024-09-06T10:56:07
|
|
Vulkan: Consolidate dirtyRanges before vertex conversion
Detect two ranges overlap or are continuous and merge them. This reduces
number of dispatch calls as well as avoids redundant conversion.
Bug: b/357622380
Change-Id: I06b73a1e9fd573d79af985b247f4d66bf97f756e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5851642
Auto-Submit: Charlie Lao <cclao@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
10d56e63
|
2024-09-06T10:56:07
|
|
Vulkan: use mEntireBufferDirty if range covers entire buffer
Detect the dirtyRange covers entire buffer and set mEntireBufferDirty
instead of add range into mDirtyRanges. This will get into a much
simpler code path that will not have any redundant conversion. This also
removes quite big portion of overlapped ranges cases without much of
overhead.
Bug: b/357622380
Change-Id: Iedaa3662a6fc52257e71d39ab75baddf6ad3e41b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5840476
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Charlie Lao <cclao@google.com>
|
|
d886a0fb
|
2024-08-29T00:00:00
|
|
Metal: Remove unused platform macros
ANGLE_APPLE_AVAILABLE_XCI and
ANGLE_APPLE_AVAILABLE_XI are
no longer used.
Bug: angleproject:360147119
Change-Id: I872fbe994a352673a6e9ad6468f0141c3ed98694
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5823423
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
24a3d30d
|
2024-08-28T14:33:49
|
|
Possibly fix FixedQueue.ConcurrentPushPopWithResize flakiness
Queue may be empty when `enqueueThreadFinished` become true.
Bug: b/302739073
Change-Id: Idb636e3f87c1217520a9e68a69e749f5bcac4d0f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5823039
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
b512e42d
|
2024-08-20T15:12:19
|
|
Reland: Metal: Fix availability for kIOMainPortDefault
Remove ad hoc deprecation disables for
kIOMasterPortDefault.
macCatalyst kIOMainPortDefault available 15.0,
less than minimum 15.6. Remove the ifdefs.
Reland: Guard macOS specific unittests with compile guards.
The patch changes the tested function to be macOS only.
Bug: angleproject:360147118
Change-Id: Icbcc811a066995e742825a364fc5f0b5a27a59bc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5816832
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
b52f281a
|
2024-08-20T00:00:00
|
|
Metal: Remove unused and obsolete availability macros
* Both usages of ANGLE_APPLE_AVAILABLE_XC are obsolete.
* ANGLE_APPLE_AVAILABLE_CI and ANGLE_APPLE_AVAILABLE_I
are unused.
* iOS and tvOS SDK version ranges are supported without
redefinitions.
* Mac Catalyst is defined in the supported SDK versions.
Bug: angleproject:360147119
Change-Id: I8e7730c31f73c03d491373a0a5d316432513d8a2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5817148
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
790e0162
|
2024-08-09T17:11:38
|
|
Vulkan: Add dirty range to VertexConversionBuffer class
Previously, ConversionBuffer only has a boolean indicates it is dirty or
not. This CL adds mDirtyRange to it to indicate which range of data has
been modified. The existing dirty boolean has been changed to
mEntireBufferDirty so that all the current code will still work. Right
now mEntireBufferDirty is always set when we mark it dirty, which means
entire buffer gets converted. mDirtyRange has not been used to reduce
the data to be converted. Right now the range is always being merged to
the existing range and not actually being used in this CL. It will be
used in the next CL.
Bug: b/357622380
Change-Id: Ibfa702b29011f4e26c511d5db85c07cbf2a4aefb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5778347
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
36f7e03a
|
2024-08-21T13:49:10
|
|
Revert "Metal: Fix availability for kIOMainPortDefault"
This reverts commit a712626e940cbd3ff6f279a6e838362392a3fd1d.
Reason for revert: breaks iOS
https://chromium-review.googlesource.com/c/chromium/src/+/5802272
https://ci.chromium.org/ui/p/chromium/builders/try/ios-simulator/2048194/overview
Original change's description:
> Metal: Fix availability for kIOMainPortDefault
>
> Remove ad hoc deprecation disables for
> kIOMasterPortDefault.
> macCatalyst kIOMainPortDefault available 15.0,
> less than minimum 15.6. Remove the ifdefs.
>
> Bug: angleproject:360147118
> Change-Id: I2ccc08814e267984ff53275cc2886e2bfa8d4c2a
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5797149
> Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Bug: angleproject:360147118
Change-Id: Iab3e8d1dece4866732ecbebab4c83f274b99e034
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5803985
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
|
|
25237423
|
2024-08-20T15:22:32
|
|
Metal: Remove ifdefs for primitive topology class
MTLPrimitiveTopologyClass availability iOS 12.0, minimum runtime
15.0. Remove the ifdefs.
Hardcoding ANGLE_IOS_DEPLOY_TARGET is dangerous, likely it has never
been correct. Remove. Should use __IPHONE_OS_VERSION_MIN_REQUIRED.
Bug: angleproject:360147118
Change-Id: I43d7a364fa0237af1ee1f546015ae884fc373b15
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5797141
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
a712626e
|
2024-08-20T15:12:19
|
|
Metal: Fix availability for kIOMainPortDefault
Remove ad hoc deprecation disables for
kIOMasterPortDefault.
macCatalyst kIOMainPortDefault available 15.0,
less than minimum 15.6. Remove the ifdefs.
Bug: angleproject:360147118
Change-Id: I2ccc08814e267984ff53275cc2886e2bfa8d4c2a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5797149
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
e0f790c0
|
2024-08-20T12:08:40
|
|
Metal: Use present APIs for Metal availability
Use non-deprecated APIs for checking Metal backend
availability.
macCatalyst and macOS needs MacFamily2
Availability:
- macOS 10.15, minimum runtime 10.15
- macCatalyst 13.1, minimum runtime 16.5
iOS, minimum runtime 15.0, can always use the backend.
Bug: angleproject:360147118
Change-Id: Id0b70c81bc8b54a22b94ba514aab148b202d58ef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5797053
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
57a3e9a7
|
2024-08-15T00:00:00
|
|
Prevent compilation with unsupported Apple SDK versions
Bug: angleproject:360147119
Change-Id: Ie9924cb49ffa729d454a2869a2d19d957500bd10
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5793513
Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0bb0a886
|
2024-08-08T17:05:27
|
|
Drop .{ANGLE_REVISION} from ANGLE version when revision == 0
This can happen when git revision is unavailable, such as in rolls to
Android. Instead of using
ANGLE 2.1.0 git hash: ...
use:
ANGLE 2.1 git hash: ...
This applies to GL_VERSION, version we see in logcat etc.
Bug: b/348044346
Change-Id: Iaef13025922cf0a1a9c2c1e556b9e9fe2a1aae01
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5774120
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
aaf39d92
|
2024-07-23T17:56:56
|
|
FrameCapture: fix (nil) showing up in linux-trace capture
Without this we get the generic fallback ostream << value which
apparently works differently across platforms and produces (nil) on
Linux but something compile-able on Windows.
Bug: angleproject:42264614
Change-Id: I2bce988b661cf65ba0651d78081aaf3240d87d52
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5736060
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
b20cd34d
|
2024-07-18T10:03:17
|
|
Add build flag for a "dma_buf" Android build
Add angle_android_dma_buf gn flag, defaulting to false. When
enabled:
- Enables a "linux-like" build of ANGLE while using the Android
toolchain, by making the OS detection logic define PLATFORM_OS_POSIX
but not PLATFORM_OS_ANDROID.
- Makes ANGLE default to using Vulkan backend, and
- Enables DMA-BUF based external image support.
This allows setting up GL framebuffers backed by DMA-BUFs, enabling
rendering without full Android graphics stack. See the bug for details.
Bug: b/353262025
Test: treehugger
Test: Build the entire CL chain with the new Soong config flag enabled
Test: run the system, attach debugger to eglGetDisplay(), see
Test: DisplayVkOffscreen getting instantiated
Change-Id: I584f9491b188f730f4ee9630173cc486ae7e8908
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5729841
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
85264808
|
2024-07-18T09:53:14
|
|
tls.h: check ANGLE_USE_ANDROID_TLS_SLOT to define GL TLS
The definitions of ANGLE_ANDROID_GET_GL_TLS() macro were guarded by
ANGLE_PLATFORM_ANDROID, but the use by ANGLE_USE_ANDROID_TLS_SLOT.
This change makes it so both definition and the use use the same macro.
Additionally, make libGLESv2/global_state.h include common/tls.h when
ANGLE_USE_ANDROID_TLS_SLOT is defined, even if ANGLE_PLATFORM_ANDROID is
missing. This will enable the use of Android TLS in builds that use
bionic on systems that are not full Android (see bug for details).
The change is supposed to have no impact on existing code.
Bug: b/353262025
Test: treehugger
Change-Id: I4406aa4642c4a589a53dd8e0ff6c41234942901b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5729840
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
3fe6cae1
|
2024-07-16T00:00:00
|
|
Fix gl::roundToNearest on x86
* Ensured that (0.5 - 1 ULP) is rounded to zero
* Skipped std::copysign for unsigned return types
Bug: angleproject:352963106
Change-Id: I803030a630229af187bcf1f6c71b6cb68962cc45
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5713472
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3540f8e8
|
2024-07-15T00:00:00
|
|
Fix gl::floatToNormalized for negative inputs
Bug: angleproject:352963106
Change-Id: If353ff4126c6203ef6c1267d2b5c85b927964f15
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5710508
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
faae3c32
|
2024-07-15T16:12:38
|
|
Add necessary MSAN include when ANGLE_WITH_MSAN
Tentative fix for https://crrev.com/c/5706150
__msan_scoped_disable_interceptor_checks() is defined in that header,
and was presumably pulled in transitively previously.
Bug: angleproject:42266508
Change-Id: If64b213f01e98fef6bbed15b2f071bd8032e4987
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5709949
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Roman Lavrov <romanl@google.com>
|
|
06921c61
|
2024-07-08T12:13:40
|
|
vulkan: filter out devices with insufficient API version
We weren't taking the version into consideration inside
ChoosePhysicalDevice, but RendererVk really cares about that and will
error out if the selected device doesn't meet the minimum API version
requirements.
Frontload some of that API version check work in ChoosePhysicalDevice,
giving it the opportunity to find a device that matches the
requirements.
Bug: angleproject:351866412
Change-Id: I471e93b03eca5e18e98202f9848ba0fd1b55d5a8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5686556
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Steven Noonan <steven@uplinklabs.net>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
df90bbc5
|
2024-07-12T18:04:53
|
|
Refactoring: move angle::HashMap and HashSet to own header
Underlying abseil includes pull in a large set of headers
Bug: angleproject:42266508
Change-Id: Icee47143a8a59bb0795a054b67c0aa4ddcfca4d4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5704137
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
eda67d7e
|
2024-07-11T11:16:08
|
|
Avoid including fstream from angleutils.h
SaveFileHelper is mostly useful for / specific to FrameCapture,
so move it there.
The other couple of uses just write a string.
Bug: angleproject:42266508
Change-Id: Ia1dcd4531f9d5671f40611a1887dcfe7c5dbc1ef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5696025
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
f7620039
|
2024-07-10T10:21:11
|
|
Vulkan: Prepare syncval suppressions for dynamic rendering
Removing mentions of vkCmdBeginRenderPass and such.
Bug: angleproject:42267038
Change-Id: Ibba2c15249b154fb11b116ef75ee6f20e08e4d00
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5691343
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
7d461b21
|
2024-07-10T14:11:53
|
|
Revert "Vulkan: Use VK_KHR_dynamic_rendering[_local_read]"
This reverts commit c379ff48043a47e444c388c45270db40d3172d50.
Reason for revert: Regresses CPU perf and memory when _not_ using DR
Original change's description:
> Vulkan: Use VK_KHR_dynamic_rendering[_local_read]
>
> Bug: angleproject:42267038
> Change-Id: I1f4eb0f309992a9c1c287a69520dadf5eff23b26
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5637155
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
> Reviewed-by: Charlie Lao <cclao@google.com>
Bug: angleproject:42267038
Change-Id: I3865f0d86813f0eeb9085a92875a33bd449b907f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5691337
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e208994a
|
2024-07-09T13:43:54
|
|
Add a note about std::aligned_alloc caveats
Doesn't seem worth touching:
* MSVC remains a special case
* aligned_alloc adds a constraint on alloc size
Bug: angleproject:352054650
Change-Id: I20caaf96e70898001c2b9aa698446cfe4803ea0e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5688795
Auto-Submit: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
21fc5e87
|
2024-07-09T09:30:23
|
|
Move loadimage SSE includes/defines out of common headers
Including x86intrin.h from common headers appears to be making the
"include analysis" tool unhappy. Doesn't look like we actually need it,
the only possibly relevant place I could find is the loadimage SSE
implementation - but even that wasn't enabled outside of Windows
anyways.
It is not clear there is a need for the ANGLE_USE_SSE define in other
places, at least not at this point. The current implementation also
appears to be only for Windows. Move all related code to where it is
used - loadimage implementation.
Bug: angleproject:42266508
Change-Id: I1eac1510e7515cb6cc85c0332f5de91e0494d3da
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5688790
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c379ff48
|
2024-06-10T22:01:57
|
|
Vulkan: Use VK_KHR_dynamic_rendering[_local_read]
Bug: angleproject:42267038
Change-Id: I1f4eb0f309992a9c1c287a69520dadf5eff23b26
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5637155
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
6c6975af
|
2024-07-05T12:28:54
|
|
Manual roll vulkan-deps from 5fdd3da87369 to 17d345a0f23d (10 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/5fdd3da87369..17d345a0f23d
Also rolling transitive DEPS:
https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/704107fda3827377f00e57dff0c21da019bff4ae..5939e32b87487fa9c72ab336ebfcc5ae26d9ab6d
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers/+log/2acb319af38d43be3ea76bfabf3998e5281d8d12..41a8eb27f1a7554dadfcdd45819954eaa94935e6
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/973e791a9ac122f903c2796349a538b278cbe29b..216574bedb80d439c2533d161e7ea7897504bbb6
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/afeb91d6d2110717b8c842081eff410617aed1ef..96fb5396040477fbbffdc1b4439dea9447f59d80
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 abdolrashidi@google.com,angle-team@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: abdolrashidi@google.com
Change-Id: I2e1c6204e675eb8e70ed68dbe13b912bd6ffce6e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5678939
Commit-Queue: Roman Lavrov <romanl@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
fcf3a1c0
|
2024-07-02T16:33:28
|
|
GL: Allow shader compilation with cached translated source
Write the translated shader source when serializing shaders. This does
not increase the size of the shader cache because Vulkan only uses the
compiledBinary field.
Spawn a ShaderTranslateTask for loading shaders so the GL backend can
compile the shader on the native driver.
Bug: angleproject:350779978
Change-Id: I14413a7ca2a0d99653a1082f2c8b4a94cf58626a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5672740
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
397eb7c8
|
2024-06-29T00:22:42
|
|
Vulkan: Easier to read SPIR-V disassembly
Bug: angleproject:349994211
Change-Id: I9d8da4a9fa336e1f5ecdfa39c33959ecebb2c6ea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5667081
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b954755f
|
2024-07-02T00:00:00
|
|
Release all memory allocated in TCompiler::compile
Ensured that single-page allocations
from compile jobs are released to OS.
Fixed: angleproject:350528355
Change-Id: I5a0d9fd7dbc065f4b4127ceecb3fd6538eb8948d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5673352
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
3813e805
|
2024-06-21T14:29:55
|
|
Add env var/property control of API dump layer
Layer is now included with all debug/assert builds or when
specified through GN arg.
VK_VULKAN_API_DUMP_LAYER on desktop, or for android set
debug.angle.enable_vulkan_api_dump_layer to 1.
Also included some renaming since layers other than
validation are supported.
Bug: angleproject:8623
Change-Id: I2bb976dede53712f781a531d0c4f3ce4d33f052c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5649937
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
0b888d50
|
2024-06-13T11:32:53
|
|
Add KHR_blend_equation_advanced_coherent
* Added this extension to registry_xml.py.
Bug: angleproject:42262258
Change-Id: I2d69982b9ec876e3c21346039ed78aa21b1a1896
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5634379
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
e3087128
|
2024-06-19T17:44:52
|
|
Tighten FixedVector access asserts
FixedVector has a size(), the out-of-bounds check is made tighter to
make sure elements beyond size() (but still within the static array) are
not accessed.
Bug: angleproject:42267038
Change-Id: I46decb4262207bd7f1446e257e7196768345a4fe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5639342
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
92148c2c
|
2024-06-17T11:13:46
|
|
GL: Implement GL_EXT_clear_texture.
This extension is useful because it allows clearing textures without
changing the framebuffer. Chrome uses this on Android when it's
available.
Bug: angleproject:347047859
Change-Id: I765d9991c4549b3655446d9f51847d1095792dbd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5631810
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
37b2487b
|
2024-05-03T09:55:04
|
|
Add LunarG api dump layer to ANGLE vulkan back-end
Bug: angleproject:8623
Change-Id: Ia4dbd5915c5fe918cd65e09b468e0b8d094522f7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5601070
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
ba341ef8
|
2024-06-18T13:21:42
|
|
Add Revision: fields to third parties
Bug: chromium:347134201
Bug: chromium:347135533
Bug: chromium:347136084
Bug: chromium:347136140
Bug: chromium:347861251
Bug: chromium:347862586
Change-Id: I82794c4868b92bb747f376d7da93701589f6d144
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5639873
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d193d51b
|
2024-06-17T22:46:08
|
|
Replace issue ids post migration to new issue tracker
This change replaces anglebug.com/NNNN links.
Bug: None
Change-Id: I8ac3aec8d2a8a844b3d7b99fc0a6b2be8da31761
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5637912
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2d8e15f8
|
2024-05-31T14:25:12
|
|
Add stubs for GL_QCOM_tiled_rendering
Bug: angleproject:343900918
Change-Id: I77d742949565ebfecb5f4446db3510af4f94033c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5588629
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
65f8dc8e
|
2024-06-12T17:01:54
|
|
Vulkan: Remove traces of VK_MSRTSS_GOOGLEX
Devices that shipped this unreleased extension should have long been
updated to VK_MSRTSS_EXT
Bug: angleproject:4836
Change-Id: I23736ebf28afd4a6f3b5b0d5a6417b3e7564c293
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5627575
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
8042ebdc
|
2024-05-31T17:06:56
|
|
Add OES_tessellation_shader
Bug: b/344030760
Change-Id: I49c5dd870a09cd6b43beea13c70b8c1a4266875b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5595610
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
5b4eae44
|
2024-06-06T00:00:00
|
|
GL: Do not set layer params for non-layered image bindings
Some drivers do not ignore them and
image access behaves incorrectly.
Bug: angleproject:344950165
Change-Id: I4e369d093bc61f7ebef8fb1058bf2475605c729c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5610693
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c60e247e
|
2024-06-04T17:40:26
|
|
Make LinkedUniform.getElementComponents() fully inline-able
Before this CL, getElementComponents() calls into
GetUniformTypeInfoFromIndex() which cannot be inlined as it
uses kInfoTable from uniform_type_info_autogen.cpp.
That table is fairly large however, so this CL adds the
elementComponents part of that structure
to an inlinle GetUniformElementComponents() function.
This allows to fully inline LinkedUniform.getElementComponents()
which significantly simplifies clampUniformCount() assembly code,
to the point where this leads to a (small but) measurable
performance improvement in driver_overhead_2 trace despite
getElementComponents _never actually getting called_ (because count
is always == 1 and clampUniformCount returns early). This appears
to be caused by a side effect of the function call, where clang
generates prologue and epilogue instructions that are still
executed on the fast path when the function is not getting called
(even if ANGLE_LIKELY is added or code rearranged).
Bug: b/335295728
Change-Id: If8f2068b098576246ab90ffbacd5a520cc843f49
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5597885
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ce6232fc
|
2024-05-21T11:15:51
|
|
Add KHR_robustness
* From the spec, there are some differences between KHR_robustness
and EXT_robustness (already in use). In this CL, the following are
addressed:
* Updating the EXT suffixes
* Changing EXT to KHR for GLES
* Removing EXT for GL
* Adding GLGetnUniformuivKHR (no equivalent in EXT)
* Added GL_KHR_robustness to the list of extensions.
* The API implementations seem to be already in place.
* Validation functions will be updated in a follow-up CL.
Bug: angleproject:42262244
Change-Id: Ibbc1bc11ec08ac756f4a03d11f51ba1268d037a5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5555984
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c53b3405
|
2024-05-25T02:50:27
|
|
Vulkan: Use OpCopyLogical with SPIR-V 1.4
When shaders copy structs and arrays, this instruction saves a lot of
churn in the SPIR-V.
Bug: angleproject:342316794
Bug: angleproject:343218484
Change-Id: I698a8d8ee8c15113e40602a0f4953726bc9a84f7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5570152
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
9620d4d3
|
2024-05-23T16:12:52
|
|
Vulkan: Emit SPIR-V 1.4 where available
In preparation for optimizations possible for SPIR-V 1.4. This change
makes ANGLE output SPIR-V 1.4 if supported, and SPIR-V 1.3 otherwise.
It handles the following differences between the two versions:
- OpEntryPoint in SPIR-V 1.4 includes all global variables, as opposed
to SPIR-V 1.3 where only the Input and Output variables are listed
- Storage buffers use a dedicated storage class in SPIR-V 1.4
Bug: angleproject:342316794
Change-Id: I157ed46449ff2d0f14d284b883b4ddc1b4b46fd1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5565224
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d3d96a37
|
2024-05-24T14:43:12
|
|
Add 'angle_always_log_info' option
This allows outputting `INFO`-level logs and up, without having to
trudge through the mountain of output that gets enabled by
`angle_enable_trace`.
Bug: angleproject:343190307
Change-Id: I88d4f0b48951f1c7cbdda4fce8ce309a25f43e3c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5569092
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
98402f33
|
2024-05-23T10:23:29
|
|
Vulkan: Explicitly set SPIR-V version
Bug: angleproject:342316794
Change-Id: Ide73e3d8b167a932338419cb9da3ea358058ebeb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5564203
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b71fe1c5
|
2024-05-16T15:10:09
|
|
Flatten vulkan-deps.
Sub-repos will be now checked out in third_party directly,
instead of under third_party/vulkan-deps.
Bug: chromium:341002187
Change-Id: Ia1c10ce5e7865c164b29bdcabb6ab8a7e4ae35b7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5545577
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
0ac0603e
|
2024-05-14T00:00:00
|
|
Fold nested std::max calls
When a maximum of three values is needed,
an initializer list with all three values
is more readable than two std::max calls.
Fixed: angleproject:8695
Change-Id: I073ea1af07b215610c85981eea03f6e73107bce6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5541974
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
49317d73
|
2024-05-10T16:11:59
|
|
Prepare resource map for being potentially thread-safe
Resource maps are used for both shared and context-private resources.
Context-private resource maps do not need any locking. Once glBind* and
similar commands are made free of the share group lock, the resource map
of the corresponding type must be made thread safe, especially for look
up.
This change adds the ability to the resource map to be either thread
safe or not, based on the type of the resource it contains. Currently,
only a test type (unsigned int) is thread safe (used in unit tests).
This is achieved by a combination of the following:
- For resource maps that need a lock, the flat part of the map has an
initially reasonable size, but is _never_ reallocated. This makes
access to that part of the map lockfree.
- The hash-map that contains large ids is always protected by a mutex.
Follow up changes will start enabling thread-safety for resources as
their corresponding glBind command is made lockless.
Bug: angleproject:8667
Change-Id: Ia4ffffee41f021d833d31f296bc883bf12f1135f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5527771
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a70ef7fc
|
2024-04-25T14:19:50
|
|
Add EGL_ANGLE_no_error for disabling EGL validation.
Chrome makes many small EGL calls that can have proportionally
expensive validation.
Bug: angleproject:8434
Change-Id: I4f4d0e6eff64839f76a0f7bf48e5c94b8df9d809
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5491459
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c3a1cae4
|
2024-04-15T14:58:55
|
|
Use angle::SimpleMutex everywhere in libGLESv2
Only cases left that use std::mutex are:
- Share group and the context ErrorSet mutexes as they need try_lock()
- Anywhere mutexes are used in conjunction with std::condition_variables
(as they explicitly require std::mutex)
Bug: angleproject:8667
Change-Id: Ib6d68938b0886f9e7c43e023162557990ecfb300
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5453294
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9aa6d3da
|
2024-04-26T11:34:10
|
|
Add trim support to MemoryBuffer
There are usecases where we need a MemoryBuffer to be trimmed to a
smaller size. In such cases there is no need to perform a resize,
which would trigger a reallocation. Instead just update
MemoryBuffer's size.
Bug: angleproject:4722
Change-Id: I5b6cca121977903ffa7663591eaec62f6ffda97a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5513269
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
be9e63ad
|
2024-05-02T16:04:25
|
|
spirv::Print without ANGLE_ENABLE_ASSERTS -> compile error
Currently a link error as we have a declaration but no definition
Bug: b/338429767
Change-Id: I06175356613c410c8d7652b28b09636244f8b717
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5513002
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
04825894
|
2024-05-02T11:17:33
|
|
Vulkan: Turn SPIR-V limitations to crash instead of security bug
The input shader can be made complex in a number of different ways,
resulting in instructions with a length higher than what can fit in
SPIR-V (i.e. 16 bits). Ideally, the translator would catch such complex
usage early on and gracefully fail compilation. However, as a safety
net, this change makes sure such a case is detected when the SPIR-V
instruction is being generated and turned into a crash. This makes sure
such bugs are no longer security bugs.
Bug: chromium:335613092
Change-Id: I5c0693ac1ead5af04977417f10572018f8aa72bc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5510722
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2d1bb3e1
|
2024-04-15T00:58:07
|
|
CL: Replace Spinlock with angle::SimpleMutex
Bug: angleproject:8667
Change-Id: I9b53da920ea743d77c76793522cef826ecc62813
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5446559
Reviewed-by: Austin Annestrand <a.annestrand@samsung.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4109a90e
|
2024-04-16T17:31:11
|
|
LinkedUniform: avoid frequent GLenum -> index conversion
Certain functions such as getElementComponents() are frequently called
in driver_overhead benchmark, causing repeated GLenum -> index
conversion of the uniform type which shows up in profiling
(driver_overhead_2 trace)
Change LinkedUniform.pod.type to LinkedUniform.pod.typeIndex storing the
UniformTypeInfo index with conversion helpers.
Bug: b/335295728
Change-Id: Iae5cd58f4e2703589d23b8e52991fc4b97c5fb08
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5458741
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
00fa9af9
|
2024-04-18T10:55:34
|
|
Disable the BasicNoOpMutex test
It's flaky by nature, and the flake rate turned out to be much higher
than anticipated (i.e. it cannot be ignored).
Bug: b/335541479
Change-Id: Ic29c549aa761230e1d8aa8156c66e78aae939e53
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5463920
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
97cb3eb8
|
2024-04-16T10:25:49
|
|
Split ASSERT and logs into separate header
This is because SimpleMutex.h wants to ASSERT, which was defined in
debug.h. That file has a function that returns a reference to a mutex
that would eventually be changed to SimpleMutex.
The circular dependency cannot be resolved with a forward declaration
with SimpleMutex being defined with `using`.
Bug: angleproject:8667
Change-Id: I9a3acb6d07c6702048b47a72d8411b0fc2166922
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5458631
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d9d583bf
|
2024-04-15T00:24:47
|
|
Implement a lock/unlock-only mutex based on futex
Pthread mutexes are expensive due to their numerous features. When a
mutex only needs to support lock and unlock, its implementation can be
much simpler. The implementation in this change is "inspired" by a
similar mutex in mesa.
Expected uses of this mutex are:
- Allowing some OpenGL calls to avoid the share group lock and instead
lock the specific shared object they operate on.
- Replacing SpinLock in the OpenCL implementation (spin-lock in user
space is a bad idea [1])
- Generally anywhere we use std::mutex just to do lock/unlock
Tests based on patch authored by Igor Nazarov <i.nazarov@samsung.com>
[1]:https://www.realworldtech.com/forum/?threadid=189711&curpostid=189723
Bug: angleproject:8667
Change-Id: I52278c9d19616338c499bbcef6684746caead6ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5446558
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f4d3041a
|
2024-04-13T22:37:11
|
|
Remove double-serialization for glGetProgramBinary
The applications get the binary length first, and then get the binary
itself. Prior to this change, ANGLE was serializing the program binary
twice.
What's more, if the blob cache is enabled, ANGLE serialized the program
binary yet another time for that.
With this change, the program binary is serialized only once. If the
application queries the program binary, serialization is done the first
time needed, is cached and then discarded as soon as the binary itself
is returned.
Bug: angleproject:7393
Change-Id: If6e3011097ca4d4a1cdcd2dcc23496901196d999
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5448090
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
08d9d5cc
|
2024-04-12T16:04:34
|
|
Vulkan: VK_EXT_validation_features was deprecated
and is replaced with VK_EXT_layer_settings. This allows all VVL settings
to be controlled programmatically. See more detail in
https://vulkan.lunarg.com/doc/sdk/1.3.280.0/windows/khronos_validation_layer.html
Bug: angleproject:5290
Bug: b/334183919
Change-Id: I7dce52711260ee874bbd70bc0d351e5aa840dffa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5450954
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d9943e44
|
2024-04-09T23:53:48
|
|
Remove Program::syncState
The last bit of responsibility still left in Program::syncState was to
wait for post-link tasks for the sake of EGLBlobCacheTest tests. A new
extension, GL_ANGLE_program_binary_readiness_query is created so that
the wait can be done in the test itself.
This extension is ultimately useful for applications as well, so they
can avoid blocking the CPU by calling glGetProgramBinary prematurely.
Bug: angleproject:8297
Change-Id: Ied6b755cb9b060198f82c7948bfd03441435a578
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5440302
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
c0386ad4
|
2024-04-05T11:56:17
|
|
AsyncWorkerPool releases shared_ptr<Closure> before notifying
Parallel compile (MainLinkLoadTask, Program::LinkingState)
is dependent on destructor getting called before the event is notified
Repro: https://crrev.com/c/5425924
More details on the parallel compile case, provided by syoussefi@:
"""
A race condition caused the worker pool to sometimes be destroyed from a
worker thread instead of the main thread.
The race condition triggered in the following scenario:
- The MainLinkLoadTask holds on to the worker pool
- This is necessary for the main task to spawn further tasks
asynchronously
- The reference to the worker pool in MainLinkLoadTask is released by
its destructor
- The worker thread dequeues a task (i.e. MainLinkLoadTask) to execute
and holds a reference to it.
- Once the task is run by the worker thread, the worker thread signals
its completion
- (1) At this point, the scope holding the reference to the task
closes and the task is released. However, this is done after
signaling the task's completion.
- On program destruction, the program ensures that all its tasks are
complete
- This uses the signal coming from the worker thread
- (2) On display destruction, the worker pool is destroyed
(by dereferencing it through the shared_ptr)
- The destructor of the worker pool waits for the worker thread, with
the expectation that this wait is done in the main thread.
The race condition led to the assert firing when (2) was done before
(1). Because the task is already signaled complete, the main thread
considers it done and goes ahead with the destruction of the display.
However, until the scope of the worker thread closes, the task itself
is still not destroyed. Since the task is holding a reference to the
worker pool, that prevents the worker pool from getting destroyed too.
Once the display is destroyed, the worker thread closes its scope,
causing the task to be destroyed. In turn, this leads to the worker
pool itself to be destroyed. On destruction, the worker pool would wait
for the worker thread to end which is a deadlock. Fortunately, this was
caught earlier with an ASSERT that wanted to ensure destruction happens
on the main thread.
In this change, the worker thread ensures it releases the task before
signalling it complete, avoiding this issue. Other possible solutions
would have been:
- Release the worker pool from MainLinkLoadTask as soon as the subtasks
are scheduled
- Explicitly call a "destroy" method on the pool, instead of relying on
the destructor to clean up.
"""
Bug: angleproject:8661
Change-Id: I37c9bc8e8f05bce4062d794df449cc3d2c80a093
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5428806
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
17facd2b
|
2024-03-13T10:14:59
|
|
Fix CreateDirectory name clash with Windows headers.
CreateDirectory is a windows macro to CreateDirectoryA/W. This caused
conflicts with the newly added CreateDirectory function which also
internally called CreateDirectory with the wrong arguments.
Bug: angleproject:8571
Change-Id: I596a4c2d711537e92e5e8b53b8eea2ab6b3ca7ab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5369333
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
bc633ad7
|
2024-01-18T12:24:40
|
|
OpenCL/Vulkan: Implement compile and link routines
Enables the following OpenCL APIs for the Vulkan Backend:
clCompileProgram
clLinkProgram
Bug: angleproject:8571
Change-Id: Ide7d2911922347055051537c9c70b83be4e24575
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5341375
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c55c8ad2
|
2024-03-05T15:42:28
|
|
extension XML cleanup
Add a bunch of missing extensions, commands, enums, and aliases to the
extension XML files. These were missing when I generated a GL loader
from the XML.
Additionally, removing the unimplemented ANGLE_timer_query
specification.
Bug: angleproject:8432
Change-Id: I55b7393a313070719200c150a91b1751206ca2cb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5347156
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Auto-Submit: Steven Noonan <steven@uplinklabs.net>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
74af31ad
|
2024-02-28T00:00:00
|
|
GL: Add ClearsWithGapsNeedFlush workaround
Enabled on older Adreno drivers to avoid
clear/draw race conditions in certain cases.
Fixed: angleproject:8374
Change-Id: Ifc30f66ece562027ae4dd7672fcb121f91ec4696
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5335662
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0ad73958
|
2024-03-04T11:17:36
|
|
Deduplicate and fix ConstStrLen implementations
Move multiple implementations to one angle::ConstStrLen. Some of the
implementations were partially incorrect, too.
Fixed: angleproject:8569
Change-Id: I760c173a5b75932f4ae2fabcc4916329247d3cb5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5332384
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a971e5b4
|
2024-02-28T17:13:38
|
|
Account for zero vector axes in Mat4::Rotate(...)
When the axis passed in to the Rotate function is (0, 0, 0), normalizing
that vector will result in NaN values. Prevent this by returning an
identity matrix and early out instead.
Bug: angleproject:2306
Tests: MatrixBuiltinsTest.RotateAxisZero
Change-Id: I65fd0b9944885daf56a4a35201d424e7f0aa9ba6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5333834
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cd63c5d4
|
2024-02-21T14:36:57
|
|
Fix build failures targetting iOS 17.4
Add ifdefs to not use deprecated APIs.
Bug: chromium:40254930
Change-Id: Id2155e5014558d0c62654cec01ee32119123037c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5315376
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
a6616081
|
2024-02-16T17:22:33
|
|
Add missing include
The _byteswap* functions are declared in stdlib.h on Windows. Until
recently, libc++ would provide that as part of some other header, but
that changed in recent versions.
Bug: chromium:325103513
Change-Id: Ie4240a3e0eab4421d9ad60f7e4f6f2f8754d47ce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5300975
Auto-Submit: Hans Wennborg <hans@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
|