|
a1665d2f
|
2024-05-10T00:15:31
|
|
Reland "Document thread-unsafe iterator access to resource maps"
This is a reland of commit d1bb6ed8399dd12e79484f30f9e9ded95c25625a
The crash was due to another issue (disabling EGL validation in
Chrome)
Original change's description:
> Document thread-unsafe iterator access to resource maps
>
> By using a proxy type, everywhere resource maps are iterated are clearly
> marked as not being thread safe. In most cases, only destruction and
> capture/replay iterate over these maps, which means thread safety is not
> an issue (or is externally enforced).
>
> The only case where iterators are used in the presence of other contexts
> is with ANGLE_request_extension, which is changed to explicitly require
> the application to ensure thread safety. In practice, the user is
> Chrome which already guarantees this.
>
> Bug: angleproject:8667
> Change-Id: I7af13c6433b6955d9c36f9088b3aa4c065e1cfc1
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5526428
> Reviewed-by: Charlie Lao <cclao@google.com>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Bug: angleproject:8667
Change-Id: Id539cabac01df5f242150f6684222577003eef3f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5531278
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
df2e7bd7
|
2024-05-10T19:48:34
|
|
Vulkan: Handle the case that VkEvent failed to create.
If VkEvent failed to create, we can still fall back to pipeline barrier.
This CL changes RefCountedEvent::init to return boolean. Also when it
fail, this CL did an immediate garbage clean up in case it will free up
more event from garbage list and then retry again.
Bug: b/336844257
Change-Id: I28251849a92d1785701c55eb028a8fed63cfc372
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5532869
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
3b470cf5
|
2024-05-13T12:43:25
|
|
Move PPO executables to ProgramExecutable
This will allow to recursively deal with PPO uniforms
Bug: angleproject:8666
Bug: b/335295728
Change-Id: Iadc2d009937fb5e8a39b070674ef5d67c9f0fb19
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5532715
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
0044f4d1
|
2024-05-13T00:29:30
|
|
Metal: fix IOSurface's render targets invalidated by max level change.
This CL fixes a bug in the following tricky situation:
- Client binds an IOSurface to a texture.
- Previously this would internally intialize the texture's max level
to the default value 1000.
- Client changes the texture's max level to 0.
- Client attachs the texture to FBO 1.
- Client binds FBO 1 and clear it.
- This triggers TextureMtl::getAttachmentRenderTarget() that
initializes the RenderTargetMtl of the texture.
- Client binds FBO 0 and sample the texture.
- Previously this could trigger TextureMtl::onBaseMaxLevelsChanged()
which would invalidate the texture's RenderTargetMtl.
- Client binds FBO 1.
- Client blits FBO 0 to FBO 1.
- This will set DIRTY_BIT_COLOR_BUFFER_CONTENTS_0 in FBO 1.
- Client calls glFlush to restart render command encoder.
- Client issues a draw call.
- DIRTY_BIT_COLOR_BUFFER_CONTENTS_0 would cause FrameBufferMtl to
re-initialize RenderPassDesc from invalid RenderTargetMtl.
- A new render encoder would be created from the invalid
RenderPassDesc.
- the draw call would be encoded to a render command encoder without
any valid color attachment.
The fix in this CL is that when we bind an IOSurface to a texture, the
texture's max level will be automatically set to 0. This will avoid its
RenderTargetMtl from being invalidated if users explicitly change the
max level to 0 in future.
Note: this is not a foolproof fix for every scenario concerning the
base/max level in IOSurface bound/or immutable textures. We will fix
them in future CLs.
Bug: b/335353385
Change-Id: I3a2da6991764f22393178f40c1d7bbe60503cba4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5531388
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
|
|
82ddb33b
|
2024-05-10T00:00:00
|
|
Metal: Do not separate vector and matrix constants
Do not create temporary variables for already
folded constant vector and matrix values.
This reduces register usage and partially fixes
MSL compilation errors caused by matrices
present in constant initializers.
Bug: angleproject:8691
Change-Id: Iedfabadd9b7bcb2e6e1e08a5ad39f48305365747
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5533925
Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
4e887491
|
2024-05-11T18:08:03
|
|
Revert "Document thread-unsafe iterator access to resource maps"
This reverts commit d1bb6ed8399dd12e79484f30f9e9ded95c25625a.
Reason for revert: Checking to see if it's the reason
for crbug.com/339948886
Original change's description:
> Document thread-unsafe iterator access to resource maps
>
> By using a proxy type, everywhere resource maps are iterated are clearly
> marked as not being thread safe. In most cases, only destruction and
> capture/replay iterate over these maps, which means thread safety is not
> an issue (or is externally enforced).
>
> The only case where iterators are used in the presence of other contexts
> is with ANGLE_request_extension, which is changed to explicitly require
> the application to ensure thread safety. In practice, the user is
> Chrome which already guarantees this.
>
> Bug: angleproject:8667
> Change-Id: I7af13c6433b6955d9c36f9088b3aa4c065e1cfc1
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5526428
> Reviewed-by: Charlie Lao <cclao@google.com>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Bug: angleproject:8667
Change-Id: I1245c9e57dfeb27a7f0e5718b1455614c70bc0dc
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5532187
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d1bb6ed8
|
2024-05-10T00:15:31
|
|
Document thread-unsafe iterator access to resource maps
By using a proxy type, everywhere resource maps are iterated are clearly
marked as not being thread safe. In most cases, only destruction and
capture/replay iterate over these maps, which means thread safety is not
an issue (or is externally enforced).
The only case where iterators are used in the presence of other contexts
is with ANGLE_request_extension, which is changed to explicitly require
the application to ensure thread safety. In practice, the user is
Chrome which already guarantees this.
Bug: angleproject:8667
Change-Id: I7af13c6433b6955d9c36f9088b3aa4c065e1cfc1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5526428
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
4cacc66e
|
2024-05-09T16:08:58
|
|
Remove unused ResourceMap::find
Bug: angleproject:8667
Change-Id: I0d0c00337895b247a1f0536f5072fdcf12b7de1e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5527560
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
1202055c
|
2024-05-09T11:25:38
|
|
Vulkan: Updates to perf counters
1. don't reset pipeline cache hit / miss counters after every frame
2. bugfix in LinkTaskVk::getResult(...)
3. accumulate counters in WarmUpTaskCommon::getResultImpl(...)
Bug: angleproject:8297
Change-Id: I39d7e1a438d78e2e353c5cf8246fb24fb3cfefea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5529942
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
394e8767
|
2024-05-08T15:18:37
|
|
WebGPU: Fix accumulating mCurrentColorAttachments.
mCurrentColorAttachments was not being cleared so multiple clear
operations would have incorrect color attachments.
Comparing against the previous RenderPassDescriptor also compared
the same color attachment memory since the same scratch buffer was
used to generate the new descriptor.
Bug: angleproject:8582
Change-Id: I9026007607941b92856728b421bc43812195ca57
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5526978
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Liza Burakova <liza@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>
|
|
2ecfc5a1
|
2024-05-03T18:29:12
|
|
Issue 8644: Deeply nested iterator declarations can crash
Avoid stack overflow crash when parsing nested iterators (especially
`while` statements).
Limits the number of nested iterator statements to `mMaxStatementDepth`
(defaults to 256).
Bug: angleproject:8644
Change-Id: I9b0fd2ab456c3cdd731b41ab97f495ae4dc0b0bb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5519169
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
Auto-Submit: Scott M <mscott@apple.com>
|
|
36cd4c1f
|
2024-05-08T12:27:22
|
|
Adding basic readPixels.
This change adds to methods in ImageHelper to read texture data.
It also implements FramebufferWgpu::readPixels to get the parameters
and read the texture data from an ImageHelper that's stored in
mRenderTargetCache.
Bug: angleproject:8653
Change-Id: I349ed8a0ae3d8d0e187c658f3402c4f8cac23eb8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5441353
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Liza Burakova <liza@chromium.org>
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
|
|
6a6192c8
|
2024-05-08T08:42:24
|
|
Tests: Add native to EGLPrintEGLinfoTest
For comparisons, it is useful to run the EGLPrintEGLinfoTest
against native drivers.
Test: angle_end2end_tests --gtest_filter=EGLPrintEGLinfoTest.*/ES3_2_EGL
Bug: b/337554150
Change-Id: If7c94296fbbd9f3057449d54581f334a37e59216
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5525656
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
071e1e83
|
2024-05-08T10:33:49
|
|
EGL: eglCreateSyncKHR uses a return value for the tail call
eglCreateSyncKHR was duplicated in two lists for using a tail
call and needing a return value tail call.
Bug: angleproject:8434, chromium:338902974
Change-Id: I9dffeaec3468e4ea3f5ed7d885e9ef418e8d8da5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5525854
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1dc83614
|
2024-05-07T14:54:06
|
|
Suppress experimental Linux/Intel failure
Adds a test skip for a flaky test that was accidentally omitted when
enabling the Linux/Intel experiment.
Bug: angleproject:8683
Change-Id: I28dea9cb9617f5b8e4cb26d4626a5472608ac398
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5523916
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Brian Sheedy <bsheedy@chromium.org>
Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
|
|
1d0ef518
|
2024-05-07T16:56:43
|
|
Fixing glClear tests.
This CL makes a few changes to fix up the basic glClear test
RGBA8Framebuffer, as well as adding a test that uploads a
texture before clearing a RGBA8 framebuffer.
It moves the wgpu::RenderPassDescriptor(RPD), as well as helper
methods for comparing RPDs from the context to the framebuffer.
The color attachments that are created in when FramebufferWgpu::clear
is called are also stored in the framebuffer now as well.
This CL also changes texture creation to use the RGBA8Unorm format
instead of RGBA8Uint format. It also adds the wgpu viewFormats
parameter to an ImageHelper. Future formats support is still TBD.
Bug: angleproject:8582
Change-Id: Idfc4182eb4d6de8a771f2f91d337564ee71df010
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5503549
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Commit-Queue: Liza Burakova <liza@chromium.org>
|
|
e29d643e
|
2024-05-07T13:40:18
|
|
Vulkan: Fix missing per-present-mode query
... if VK_EXT_surface_maintenance1 is supported but
VK_EXT_swapchain_maintenance1 isn't. The code mistakenly made the
appropriate query conditional to the presence of swapchain_maint1
instead of surface_maint1. On devices where surface_maint1 was
available but swapchain_maint1 wasn't, this caused a VVL error that is
now fixed.
Bug: angleproject:8680
Change-Id: Ide9a87f0e50887572f693d741d5476361320ea19
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5522756
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3d04180c
|
2024-05-02T17:30:02
|
|
Vulkan: Add a dedicated garbage list for RefCountedEvents
Previously each individual RefCountedEvent is wrapped into a
GarbageObject. That is the reason behind RefCountedEvent being a
subclass from WrappedObject, since vk::GetGarbage call requires garbage
object is a subclass of WrappedObject. This CL adds a new garbage list
dedicated for RefCountedEvents, named mRefCountedEventGarbageList. With
this new change, we no longer limited by the vk::GetGarbage requirements
since it no longer called for RefCountedEvents. RefCountedEventCollector
is a vector of RefCountedEvents and every time a RefCountedEvent needs
to be released, it adds into the collector. Then the event collector
entire thing is treated like a garbage object and gets ResourceUse
tracked and added into mRefCountedEventGarbageList. This list gets
walked and cleaned when GPU is completed. This CL is also a preparation
for later CLs that adds event recycle support.
Bug: b/336844257
Change-Id: I4eff69b66922dfe5521b6994f240e967ff3726bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5516458
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
5b9e7f20
|
2024-05-06T14:50:44
|
|
Vulkan: Release mCurrentEvent before oneOff surface image copy
In ImageHelper::copySurfaceImageToBuffer and
ImageHelper::copyBufferToSurfaceImage, which get called from
lockSurface, we are doing a one off submission to do the data copy
between image and buffer. Surface image may have a current event set
earlier, but we do not have a garbage collector to collect it. This will
crash in barrierImpl when we try to add mCurrentEvent to the garbage
collector. This CL releases mCurrentEvent so that it will fall back to
pipelineBarrier. Since this is not on performance critical code path,
the impact should be acceptable as well.
Bug: b/336844257
Change-Id: Ib85c3038657a1845e86286cdb5f52247c2b9eb73
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5519173
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
f3089d1d
|
2024-05-07T00:14:53
|
|
Metal: fix UBO data update undetected between draw calls.
This CL fixes an issue where an UBO was updated between two draw calls.
This would internally allocate a new metal buffer however ContextMtl
didn't know that hence it didn't rebind with new buffers.
Bug: b/338348430
Change-Id: I3d8ce22921811e49ae1b8016ae4a20d770f6f372
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5515858
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
|
|
62eb8fbe
|
2024-05-06T07:22:15
|
|
Vulkan: Switch to using zlib::crc32_z for CRC generation
A CRC is generated to validate blobs that are compressed / decompressed.
There was a custom CRC generator being used, switch over to using
zlib's crc32_z(...)
Also increment kPipelineCacheVersion's version since both the header
and structure have been updated.
Data collected with dEQP test suite -
1. egl
size of blob - 74022 bytes
ComputeCRC16 - 0.001683 sec
zlib::crc32_z - 0.000008 sec
2. gles2
size of blob - 8709119 bytes
ComputeCRC16 - 0.130268 sec
zlib::crc32_z - 0.000625 sec
3. gles3
size of blob - 20308078 bytes
ComputeCRC16 - 0.433155 sec
zlib::crc32_z - 0.002547 sec
4. gles31
size of blob - 11041841 bytes
ComputeCRC16 - 0.192512 sec
zlib::crc32_z - 0.000452 sec
Bug: angleproject:4722
Change-Id: Iaa7026c9c8a748b446ef2320e584a2937336c7b4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5518595
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
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>
|
|
a951e0e0
|
2024-05-05T23:29:33
|
|
Metal: add test for active blit/compute & render encoder mistracking.
The bug was already fixed but we need to add the test to avoid the issue
from resurfacing in future.
Bug: angleproject:8685
Change-Id: Ia10c0954ef39b20b1d891389b7e7a1c81cdc758d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5514529
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
|
|
58742dfb
|
2024-05-05T12:46:11
|
|
Use trim() instead of resize()
... when decompressing a blob, this prevents a reallocation and copy.
Bug: angleproject:4722
Change-Id: Iedc20cb9a41feb754c7f48188e01ab73c5c03c15
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5517530
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
251067ed
|
2024-05-03T22:36:11
|
|
Metal: don't break render pass when uploading a texture.
Bug: b/337214693
Change-Id: Ib2dc77c364a72f2973cbc3882f6125bffbc0a11b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5514948
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
|
|
9ccb9b41
|
2024-05-03T22:23:03
|
|
Metal: fix incorrect tracking if blit & render encoder coexist
Currently mtl::CommandBuffer tracks only one active command encoder.
However this tracking is wrong if a blit/compute encoder is created
without ending the current render encoder. Blit/compute and render
encoders are allowed to coexist because the actual rendering encoding is
deferred.
The bug would happen for e.g. if:
- There is an active render encoder.
- ContextMtl::getBlitCommandEncoderWithoutEndingRenderEncoder() is
called.
- In this case, active encoder will be set to the blit encoder.
- Later when blit encoder is ended, tracked active encoder would be set
to null even though it should be the render encoder.
This CL fixes the bug by tracking separate active blit/compute & render
encoders.
Bug: angleproject:7643
Bug: angleproject:8685
Change-Id: I9893402ecd4c0388aa0153acdb2be04315563086
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5514184
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
|
|
28d4c3eb
|
2024-05-03T13:00:03
|
|
Vulkan: Remove BarrierType argument from ImageHelper::barrierImpl
Originally I passed the barrierType argument into barrierImpl function
to force pipelineBArrier in a few edge cases. Notably when we do a
oneoff submission. In that case if we have an event that is pending
setEvent call, and we will end up inserting a waitEvent call on an event
that has not yet set, which is bad. But this really won't not happen.
This CL removed BarrierType from the API and added a few assertions in
the caller to ensure we do not have a valid event when doing a oneoff
submission (if there is a pending setEvent, mCurrentEvent will be
valid).
Bug: b/336844257
Change-Id: I7161b844fc1f36993cf7ff6c90a070d9f92930cc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5512878
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
ef8d9f10
|
2024-05-01T11:52:04
|
|
Vulkan: Use DEVICE_ONLY VkEvent when available
VK_KHR_synchronization2 adds device only event. Since we are not using
host operations on the event, this CL adds
VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR bit when create VkEvent for
RefCountedEvent.
Bug: b/336844257
Change-Id: I0528b7f45b0da162daa228aea2adf5ce06b5fd6b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5503644
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
5eb3bca0
|
2024-05-01T11:47:34
|
|
Vulkan: Minor cleanup
Bug: b/336844257
Change-Id: I8d93c6dd814a666debf9990d151cad79c45469f1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5503645
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
4880a6c2
|
2024-05-03T14:43:20
|
|
Enhance VulkanPerformanceCounterTest coverage
Enable additional config with PadBuffersToMaxVertexAttribStride feature
Bug: b/271915956
Change-Id: I5fe27781fc51cdf477d5c2f453ad05a211788739
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5512875
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d30e4772
|
2024-02-02T14:13:33
|
|
Vulkan: Add VkCmdWaitEvents for image barriers
This CL add EventBarrierArray (sister class of PipelineBarrierArray)
that accumulates the event barriers instead of pipeline barriers.
ImageHelper::barrierImpl and ImageHelper::updateLayoutAndBarrier has
been updated to have a code path that inserts waiting event to
EventBarrierArray. PipelineBarrier code path is still kept and is also
used when event is invalid or under certain situation as a fallback
method from waitEvent. After we generate barrier (regardless it is
pipelineBarrier or eventBarrier, we always release
ImageHelper::mCurrentEvent. When next barrier/layout call is made, if we
see mCurrentEvent is invalid, we always fallback to pipelineBarrier.
This way it is safe that if somehow we did not (intentionally or
accidentally) insert a new event between two barrier calls, we will not
end up with second barrier call wait for old event which creates
synchronization hazard. With this approach, second barrier will use
pipelineBarrier which is still safe.
In this CL the useVkEventForImageBarrier feature flag is still disabled,
so no events are created and thus pipelineBarrier is still used.
Bug: b/336844257
Change-Id: Idaf5a7200b85f901eae5d376543f189d21522022
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5263701
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ead98ed9
|
2024-05-02T14:04:14
|
|
Implement basic texture upload.
This change modifies ImageHelper's methods to upload textures to
fix webgpu API calls, as well as fully implements uploading texture
data via TextureWgpu::setImage for RGBA8 formats.
Bug: angleproject:8457
Change-Id: I1c5be3d79ad996a709086ca7157cca6229a336ce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5398002
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Commit-Queue: Liza Burakova <liza@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
81c2b6e7
|
2024-05-03T08:12:18
|
|
Vulkan: Account for padBuffersToMaxVertexAttribStride
... in BufferVk::shouldRedefineStorage. For vendors that require
additional padding, redefine storage iff the padded size is greater
than existing buffer size.
Bug: b/271915956
Change-Id: I2acf2bb32f85b71bcfdba6919974dd2922ee787b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5512870
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
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>
|
|
97aaad3a
|
2024-04-20T19:27:13
|
|
Vulkan: Pack DescriptorSetLayoutDesc layout
Use angle::FastVector instead of arrays to further compact
DescriptorSetLayoutDesc layout
Bug: angleproject:8677
Tests: VulkanDescriptorSetLayoutDescTest*
Change-Id: I5bb7b2ebf0aa5aba3d7c47c45384788245dce3dc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5470362
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
a96e9197
|
2024-04-25T10:35:02
|
|
Vulkan: Add RefCountedEvent class and VkCmdSetEvent call
This CL defines RefCountedEvent class that adds reference counting to
VkEvent. CommandBufferHelper and ImageHelper each holds one reference
count to the event. Every time an event is added to the command buffer,
the corresponding RefCountedEvent will be added to the garbage list
which tracks the GPU completion using ResourceUse. That event garbage's
reference count will not decremented until GPU is finished, thus ensures
we never destroy a VkEvent until GPU is completed.
For images used by RenderPassCommands, As
RenderPassCommandBufferHelper::imageRead and imageWrite get called, an
event with that layout gets created and added to the image. That event
is saved in RenderPassCommandBufferHelper::mRefCountedEvents and that
VkCmdSetEvents calls are issued from
RenderPassCommandBufferHelper::flushToPrimary(). For renderPass
attachments, the events are created and added to image when attachment
image gets finalized.
For images used in OutsideRenderPassCommands, The events are inserted as
needed as we generates commands that uses image. We do not wait until
commands gets flushed to issue VkCmdSetEvent calls. A convenient
function trackImageWithEvent() is added to create and setEvent and add
event to image all in one call. You can add this call after the image
operation whenever we think it benefits, which gives us better control.
(Note: Even if forgot to insert the trackImageWithEvent call, it is
still okay since every time barrier is inserted, the event gets
released. Next time when we inserts barrier again we will fallback to
pipelineBarrier since there is no event associated with it. But that is
next CL's content).
This CL only adds the VkCmdSetEvent call when feature flag is enabled.
The feature flag is still disabled and no VkCmdWaitEvent is used in this
CL (will be added in later CL).
Bug: b/336844257
Change-Id: Iae5c4d2553a80f0f74cd6065d72a9c592c79f075
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5490203
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
e4a12a67
|
2024-05-02T13:25:53
|
|
Vulkan: Dynamic depth test + static depth write
When depth test changes in such a situation, the static state is still
affected (because we mask depth write with depth test) so the graphics
pipeline still needs to be invalidated.
Bug: b/336386662
Change-Id: Iebba79ffd7d6fa3962a5b20c27efcca3aa35b10a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5511602
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
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>
|
|
e5606471
|
2024-04-25T14:48:53
|
|
Start Linux/Intel experiment
Bug: chromium:41496254, angleproject:8680, angleproject:8682
Bug: angleproject:8683
Change-Id: I1956ac642969cae0c17fff87388e899237b9df2d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5491789
Auto-Submit: Brian Sheedy <bsheedy@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
|
|
44bdc2af
|
2024-04-23T19:43:29
|
|
restricted_trace_perf: Write summary for single renderer
For use when generating spreadsheets focused on Vulkan.
Previously the script would exit without generating a
CSV file unless there were two renderers to compare.
Test: restricted_trace_perf --renderer vulkan
Bug: b/317411251
Change-Id: Ic9872599edb38c738112265b1ce7f252cf3f966a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5508315
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
caebfea1
|
2024-04-24T16:58:39
|
|
Vulkan: Make PipelineBarrierArray a class
Right now PipelineBarrierArray is just a
angle::PackedEnumMap<PipelineStage, PipelineBarrier>. To make iterate
over barrierArray faster we added mPipelineBarrierMask. They are not
encapsulated well. This CL makes PipelineBarrierArray a class which
internally tracks mPipelineBarrierMask bits. We also moved
pipelineBarrier related code into this class. This is a preparation for
the later CL that we will have a EventBarrierArray so that the
pipelineBarrier and eventBarrier are better separated.
Bug: b/336844257
Change-Id: I6002e3fdd584d5a63587f68f13a260b417b3db32
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5484711
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1bb1ee06
|
2024-04-29T15:27:36
|
|
GL: Sync unpack state for glCompressedTexSubImage3D
Unpack state is supposed to be ignored for compressed tex image calls
but some drivers use it anyways and read incorrect data.
Texture3DTestES3.PixelUnpackStateTexSubImage covers this case.
Bug: chromium:337766133
Change-Id: Ic11a056113b1850bd5b4d6840527164a12849a22
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5498735
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bb6a5724
|
2024-04-29T16:01:47
|
|
Use vendor ID to check QCOM device for tests
* In angle_test_instantiate, IsQualcomm() will now use the vendor ID
as well.
Bug: b/331271522
Change-Id: Ifb26034516a007472fb2a54f34f332e34b46a365
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5499382
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
950afec4
|
2024-04-30T09:38:43
|
|
Vulkan: Add VK_KHR_synchronization2 feature flag
This CL adds VK_KHR_synchronization2 feature flag and enables the
feature if exists.
Bug: b/336844257
Change-Id: I201768e32c997125472c6a005c4635141441451e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5499379
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
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>
|
|
6658d5e8
|
2024-04-25T13:51:43
|
|
Tests: Add Modern Combat 5 trace
Test: angle_trace_tests --gtest_filter=*modern_combat_5
Bug: b/330861486
Change-Id: I54b22010fdb5be6d1113f4dd6561848b44a413cc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5501770
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
|
|
298b8739
|
2024-04-15T13:58:01
|
|
Vulkan: Restrict the ContextVk dependency in CommandBufferHelper
Updating the interfaces that have no need for ContextVk state and
instead passing in the vk::Context.
Bug: angleproject:8544
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Change-Id: Id3b72d9eabb7d1d6ee89c46cdc24a23da9e32b5c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5492319
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b839e05b
|
2024-04-29T14:35:42
|
|
GLSL: Hardcode emulated atan functions
These emulated atan functions are generated for every compiled shader,
the string generation is particularly costly for small shaders (>30%
of total compile time). Instead just hardcode the emualted functions,
there are only 4.
Bug: angleproject:8434
Change-Id: I3f8b7cc9709ca132fae19953c23d02e54538d4e7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5498516
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
1064b38d
|
2024-04-24T14:41:59
|
|
Vulkan: Move ImageLayout define to earlier in vk_helpers.h file
This is the preparation for the later CL. Later in the CL I need to
define something like "angle::PackedEnumMap<ImageLayout,
RefCountedEvent>" to use in CommandBufferHelperCommon. So I need
ImageLayout to be defined earlier. No actual changes involved other than
moving the code around for easier code review.
Bug: b/336844257
Change-Id: I0a2553ef3aebf4b00d1798e2117fe6ed32ac172d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5484675
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4929e1df
|
2024-04-24T14:09:59
|
|
Vulkan: Add feature flag for using event for image barrier
This is preparation CL that adds a feature flag for using VkEvent for
image barriers.
Bug: b/336844257
Change-Id: I01a7d779e16e2c259ddd05dca7338b3b18c30ba7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5484708
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
038ad6c7
|
2024-04-23T13:23:04
|
|
EGL: Use unlocked tail calls for surface, sync and img calls
EGL surface and sync calls can be expensive to do while holding the
global lock on EGL. They are safe because the parameters are captured
by value and the underlying EGL driver is also thread safe.
EGL image creation also tends to be expensive and is called freqently
by Chrome.
Bug: angleproject:8434
Change-Id: I7e554fe2e3700d98469de267f7bbff1e96358c78
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5478229
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
978cf07b
|
2024-04-25T14:35:14
|
|
Suppress failures on Pixel 6 AP1A.240405.002
Bug: b/336847261
Change-Id: I501f64e22536418715369742f5ec760e23aa2c14
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5489759
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
44ce5887
|
2024-04-11T16:37:27
|
|
Allow the backend to do resource init for framebuffers.
The frontend framebuffer would loop through attachments which needed to
be initialized and call initializeContents on them individually. For
the GL backend this is inefficient because each of these resources is
bound to a scratch framebuffer and cleared when the entire original
framebuffer could have been cleared at once.
The frontend now accumulates a set of attachments that need to be
cleared and sends it to the FramebufferImpl. The default
FramebufferImpl does the old logic of calling initializeContents on
each attachment. FramebufferGL has an optimized path to clear the
whole framebuffer if possible.
Bug: angleproject:8642
Change-Id: I574cd03307794a6c7b2666976784e4d4dca1d08c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5448552
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
a0b721bc
|
2024-04-23T17:08:58
|
|
Vulkan: Optimize DescriptorSetLayout with no bindings
There is no need to unpack bindings of DescriptorSetLayoutDesc and call
into vkCreateDescriptorSetLayout when there are no bindings. Insert a
placeholder vk::DescriptorSetLayout into DescriptorSetLayoutCache. This
reduces the number of Vulkan handles created and can be reused across
multiple pipelines that have DescriptorSetLayoutDesc with no bindings.
Bug: angleproject:8677
Change-Id: Ifc0d199697a95f3a5c037fd85520220a512d7949
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5483308
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
2eed792c
|
2024-04-15T01:09:57
|
|
Vulkan: Use angle::SimpleMutex with async command queue
This change lets ANGLE test the waters with angle::SimpleMutex with
functionality that is currently mostly exercised by tests.
Bug: angleproject:8667
Change-Id: Icf3a021da1f0a2e1c9235ed518bcb9e378b09cfa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5446560
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
acb8b33f
|
2024-04-16T14:08:34
|
|
Vulkan: Enable 8/16 bit storage buffer extensions
The support for 8bit and 16bit storage buffers are exposed via
VK_KHR_{8,16}bit_storage vulkan extensions. Add checks for these
extensions and enable them if present.
The changes in FeaturesVk_autogen.h in the change are generated by
running the run_code_generation.py script.
Bug: angleproject:8676
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Change-Id: Idcda416e3eb6a735e021cd5bb0a182af341e9a16
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5491781
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b74de557
|
2024-04-24T14:35:17
|
|
Vulkan: Add a feature related to shader subsets
On vendors that support VK_EXT_graphics_pipeline_library the shaders
subset of the pipeline can either be combined into a single pipeline
or can be decoupled into separate pipelines. Upcoming optimizations
require the ability to distinguish between the two options.
Add a feature declaring support for only the combined variant.
Bug: angleproject:8601
Change-Id: I44fb828d972ca6ebba5549819ce8e41645683e14
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5484673
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d9a00875
|
2024-02-21T16:57:43
|
|
Metal: Override internal format of images
Add support for overriding the internal format when binding Metal
textures to EGL images.
Fixed: angleproject:8552
Change-Id: I364a88a2e608e462c5216c92927679814ab91ca5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5310305
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
89caa0e1
|
2024-04-23T15:32:52
|
|
Cleanup: replace DirtyObjectType check with constexpr generator
Static assert was meant to avoid kDirtyObjectHandlers getting out of
sync, but it doesn't achieve that goal as it's just comparing values
with ints which is confusing.
Replacing with constexpr generated std::array. C++20 allows to easily
validate that all values are set by _not_ default-initializing
`handlers`. C++17 makes it trickier, addeded static_assert on an
additional static constexpr bool (silly but I can't find a more concise
way)
Bug: angleproject:8666
Bug: b/335295728
Change-Id: Idf9bbd087d09d5ba253a7587ce0503cae3fcf3a7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5478231
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
884dc380
|
2024-04-24T16:46:01
|
|
EGL: Make eglGetCurrent(Context|Surface|Display) lockless.
These functions access only egl::Thread state.
Bug: angleproject:8434
Change-Id: I3dd6cd1f4fd145613f0be824e4f6e13815422997
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5485526
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c62c0c25
|
2024-01-24T17:29:45
|
|
CL/VK: Implement initial enqueueRead/WriteBuffer
Bug: angleproject:8638
Change-Id: I1d5b3b15fab24ce35c243a3eb27bcac2104d7f5d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5409250
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
6cfb5931
|
2024-03-13T12:31:40
|
|
CL/VK: Implement marker and barrier cmds
Adding in last remaining marker and barrier cmds:
clEnqueueMarker
clEnqueueBarrier
clEnqueueMarkerWithWaitList
clEnqueueBarrierWithWaitList
Bug: angleproject:8634
Change-Id: I67e03e379c3f9e40a31bcba34ea85e2739cc97b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5406617
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
04329fe0
|
2024-01-24T12:51:05
|
|
CL/VK: Implement wait APIs
This commit implements:
clWaitForEvents
clEnqueueWaitForEvents
Bug: angleproject:8633
Change-Id: I873310ab11dfac08c165dc36be2400a35be48878
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5406616
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
e3a58b25
|
2024-04-11T09:33:55
|
|
FrameCapture: Support deferred linking of shaders
Modern Combat 5 creates and attaches programs and shaders but
defers compiling and linking until needed. Added support in
the tracer for this corner case and updated CapturedTest
to exercise this behavior as well.
Test: angle_end2end_tests --gtest_filter=CapturedTest.MultiFrame/ES3_Vulkan
Bug: b/334030316
Change-Id: Ib7fdf0fe25b11cdb3df33d50e49501f3a51e9510
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5449599
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
37d2277b
|
2024-04-23T20:00:04
|
|
Vulkan: Disable dynamic state on JM based Mali
Latest Vulkan driver causes a number of issues on this GPU.
Bug: b/336411904
Bug: b/336847261
Change-Id: I34a4842ba501c5f71c8b9c7d97c2bb215b30d7be
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5484709
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
47fc356b
|
2024-04-09T11:20:07
|
|
GCC: move warm up tasks out of anonymous namespace
GCC anonymous namespace is set per file. So forward declaring in the
anonymous namespace of .h will not be valid in the .cpp file.
Bug: chromium:40565911
Change-Id: I10bd94f035761602d69e59a94dfde5dc774a6776
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5475346
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d2e5eeef
|
2024-04-23T17:47:03
|
|
Vulkan: UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout
Supress the above VVL error.
What happened is that the test creates a single buffer context. Since it
only has one buffer for both render and present, we always immediately
put it in VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR. Then when we render to it,
we got the above VVL error. According to vulkan spec
6) What should the layout of the shared presentable image be?
RESOLVED: After acquiring the shared presentable image, the application
must transition it to the VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR layout
prior to it being used. After this initial transition, any image usage
that was requested during swapchain creation can be performed on the
image without layout transitions being performed.
And we always include VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT usage flags
when creating swapchain images, so this should be okay.
Bug: b/336652255
Change-Id: I8a04f94c9a7b6dcc1818697f45630cb0a6ee8811
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5479840
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
c74d2634
|
2024-04-19T12:19:51
|
|
Vulkan: Update mSurfaceCaps with per-present mode caps.
Vulkan spec says "The per-present mode image counts may be less-than or
greater-than the image counts returned when VkSurfacePresentModeEXT is
not provided". Riht now we are using the generic surfaceCaps information
which has smaller minImageCount. This triggers VVL error
VUID-VkSwapchainCreateInfoKHR-presentMode-02839.. This CL updates
mSurfaceCaps and mMinImageCount with per-present mode caps and create
swapChain with proper minImageCount.
Bug: angleproject:8672
Change-Id: I6061d2db8e98032dcb2c3225f2976013a99336a9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5467850
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
6fe8a399
|
2024-04-22T18:11:30
|
|
Metal: Fix rewritten out variables with underscores
Fix compilation in case of output variables start with underscores.
Make name emission always emit MSL name ANGLE_{name}, so that GLSL `_e`
and `e` cannot clash. This regressed in angleproject:8558.
Bug: chromium:335744344
Change-Id: Ibae4dba4a24888acc1461582e69d48218ba11176
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5473412
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
2905a6a6
|
2024-04-19T15:09:41
|
|
Vulkan: Fix read pixel to cached non-coherent memory
The bug here is that when we use cached non-coherent memory for image
read, we must wait until DMA to finish before calling invalidate().
Otherwise CPU pre-fetching might end up populate the cache line again
with old data between invalidate and DMA and causes CPU reads get the
stale data from cache. This CL moves invalidate() call after we wait for
copy to finish and removes requireCachedBitForStagingBuffer feature
flag.
Bug: b/335937565
Bug: b/315836169
Bug: b/324953979
Change-Id: Ie8a1854e17a5fe9c534c5102b2e0d51bd35c131a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5468597
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
36ae4553
|
2024-04-21T05:18:17
|
|
Vulkan: Remove unnecessary member from ProgramExecutableVk
Bug: None
Change-Id: I896cd67c0ca41d146d8f1cd5494404bbd30b8264
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5469555
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
23b8a833
|
2024-04-19T18:03:17
|
|
Suppress VUID-VkSwapchainCreateInfoKHR-presentMode-02839
Breaks experimental Pixel 6 Android U bot
https://ci.chromium.org/ui/p/angle/builders/ci/android-arm64-exp-test/4979/overview
Bug: angleproject:8672
Change-Id: I2968dd1ed4ed7e2bc636d762b6d1fb884733a264
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5466741
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
|
|
cc770518
|
2024-03-28T18:05:00
|
|
CL/VK: Implement flush & finish
Bug: angleproject:8632
Change-Id: I139e463c0b1c947cee68e65c40503e52f01e988b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5406615
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c75b03ad
|
2024-04-18T16:09:48
|
|
Vulkan: Remove duplicated fallback entry in vk_format_map.json
Bug: b/335496851
Change-Id: Id5fe805a15ae4fa4b09ffbf05fcf7b6d3d79b1ab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5463921
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
d4abe622
|
2024-04-03T17:46:38
|
|
CL/VK: Implement enqueue NDRangeKernel & Task
Adding support for:
clEnqueueNDRangeKernel
clEnqueueTask
Bug: angleproject:8631
Change-Id: If57002be3ea00a55215e89ca47ab8fe9a422c6e7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5406614
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
48132950
|
2024-04-17T17:05:07
|
|
Vulkan: Optimize DescriptorSetLayoutDesc layout
Separate out immutable samplers into its own array so we can remove
padding from PackedDescriptorSetBinding which reduces the size of that
struct from 16 bytes to 4 bytes.
Bug: angleproject:2462
Change-Id: I79d1ab584178202c9b7f34b0c7926edced4e21a8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5464162
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
80c8b6f0
|
2024-04-17T10:06:45
|
|
Revert "Vulkan: Only enable DS dynamic state if there is DS attachment."
This reverts commit 471b50407d7d1c22491d066df77060cb8b9b2f89.
The reverted change does not correctly handle UtilsVk functions, leading
to validation failures. UtilsVk could be made to not set dynamic state
when the depth/stencil attachments are missing, but instead the change
is reverted because:
- The original issue that prompted this is easily fixable (and fixed in
this change)
- Disabling depth/stencil dynamic state is not necessarily a performance
improvement; every time a pipeline in such a render pass is bound, the
driver would have to make sure to no-op the relevant state change if
static, which is also costly. Instead, dynamic state may need to be
set only once in the entire render pass.
Bug: b/223456677
Bug: b/315353258
Bug: angleproject:8242
Change-Id: I8282b87857d6b9285dbcf307c3c6ecf69df5fadb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5462079
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
d0b01c81
|
2024-04-17T14:40:10
|
|
Remove duplicated fallback entry in vk_format_table_autogen
Bug: b/335496851
Change-Id: Iff6a095aaffac099779b093e02b1a818b510dc0a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5464161
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Yuxin Hu <yuxinhu@google.com>
|
|
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>
|
|
6861da63
|
2024-04-17T15:52:27
|
|
Vulkan: Don't cache staging buffers on PowerVR
Seeing flakiness in simple tests. Narrowed it down to cached
coherent memory. There is likely something ANGLE is doing wrong
but broaden the workaround until it is root caused.
Test: angle_end2end_tests
Bug: b/315836169
Bug: b/324953979
Change-Id: I15e50781f746ffb24b0a12b1e28df04a3822b556
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5464283
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
b2aad1bb
|
2024-04-17T06:12:14
|
|
Vulkan: Track valid descriptor set layouts
Instead of looping through kMaxDescriptorSetLayoutBindings in
`DescriptorSetLayoutDesc::unpackBindings` track valid descriptor set
layouts in `DescriptorSetLayoutDesc::update`
Bug: angleproject:2462
Change-Id: I1ca2ba72875d9306b6059b14cde39c5d16250be6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5464160
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
d71b8ee0
|
2024-04-17T10:00:27
|
|
Vulkan: Fix dynamic depth/stencil in UtilsVk when unused
Dynamic state still needs to be set even if depth/stencil test is
disabled.
Bug: angleproject:8151
Bug: b/323708819
Change-Id: Ic470fabd84c71b026152b6bee2e6a2c803514106
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5462059
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
03c88d33
|
2024-04-17T03:03:17
|
|
Revert "Vulkan: Suppress VUID-VkSwapchainCreateInfoKHR-pNext-07781"
This reverts commit 99ac37cf7bad44d43f0c18da0410bde1073b62ea.
Reason for revert: Fixed upstream
https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/7851
Original change's description:
> Vulkan: Suppress VUID-VkSwapchainCreateInfoKHR-pNext-07781
>
> Only failing on windows x86. Unknown if ANGLE bug, VVL bug, or an
> inherently racy check as it happens only in the window resize tests.
>
> Bug: angleproject:8668
> Change-Id: I0f928883647a4dc701d58e2df99e647e1397c773
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5453692
> Reviewed-by: Roman Lavrov <romanl@google.com>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:8668
Change-Id: I8831b5011ed3a7f5bf48af25f8933d50b5c4e1ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5459521
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
e92b8e8d
|
2024-04-16T13:27:19
|
|
Manual roll VK-GL-CTS from 491cfc2dbec9 to b529676d0523 (1 revisions)
https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/491cfc2dbec9..b529676d0523
2024-03-29 yuxinhu@google.com Move external/openglcts/data into a new
subdirectory
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll
Please CC angle-team@google.com,syoussefi@google.com on the revert to
ensure that a human
is aware of the problem.
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: None
Change-Id: I5e07217cca190ec243f1b700348cde0384dbf052
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5457892
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1264c9cc
|
2024-04-16T13:22:16
|
|
Manual roll VK-GL-CTS from caf989d22e07 to 393ca590ec21 (5 revisions)
https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/caf989d22e07..393ca590ec21
2024-03-29 marcin.hajder@mobica.com Port KC-CTS tests to VK-GL-CTS
(transform_feedback3), PART 4
2024-03-29 marcin.zajac@mobica.com Test depth with
VK_EXT_fragment_density_map
2024-03-29 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.3.8
into vk-gl-cts/main
2024-03-28 skr@nvidia.com Consider layer index when retrieving decoded
frame
2024-03-26 rgarcia@igalia.com Share test configuration between case and
instance in EDS tests
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll
Please CC angle-team@google.com,syoussefi@google.com on the revert to
ensure that a human
is aware of the problem.
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: None
Change-Id: I562b77d2dab2e949a2562c1bb0e655e1ed8bb5df
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5459012
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: 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>
|
|
6557da03
|
2024-03-22T05:49:59
|
|
Implement TextureWgpu::getAttachmentRenderTarget()
Most of this is copied from TextureVk::getAttachmentRenderTarget() with
parts removed to make it simpler to start.
Need to check what happens when running a clear test.
Bug: angleproject:8582
Change-Id: Ia3b1f057add7714c7b192af1a3bf0edb41ccb649
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5388077
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
041b0a4d
|
2024-04-15T13:42:17
|
|
Begin initializing caps for webgpu
Bug: angleproject:8457
Change-Id: Idde0673297ec675a13bd3e4fd4d220ec47392153
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5391987
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Liza Burakova <liza@chromium.org>
|
|
2218db2b
|
2024-04-10T13:41:17
|
|
Add error callback for webgpu device
Bug: angleproject:8547
Change-Id: I9946311a1f93cc5f49fb0e17e65c92789bdb3b6a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5443428
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Liza Burakova <liza@chromium.org>
Reviewed-by: 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>
|
|
24ba48eb
|
2024-04-13T23:07:11
|
|
Do not cache program binary in blob cache redundantly with app
If the application has specified the GL_PROGRAM_BINARY_RETRIEVABLE_HINT
hint, let the application itself cache the program binary and skip
ANGLE's implicit caching. This saves time in serializing the binary,
and memory and disk space storing these binaries.
If the application sets the hint, but does not actually restore the
binary, they will suffer instead. This change also adds a perf warning
for applications that retrieve the binary without setting this hint.
Bug: angleproject:7393
Change-Id: I05aa880a31fa2fbbd61447c257c990a57137e1e8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5448089
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
99ac37cf
|
2024-04-15T09:38:07
|
|
Vulkan: Suppress VUID-VkSwapchainCreateInfoKHR-pNext-07781
Only failing on windows x86. Unknown if ANGLE bug, VVL bug, or an
inherently racy check as it happens only in the window resize tests.
Bug: angleproject:8668
Change-Id: I0f928883647a4dc701d58e2df99e647e1397c773
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5453692
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e229afad
|
2024-04-12T16:15:42
|
|
Vulkan: Disable setting_sync_queue_submit
In this CL we basically ignored all SyncVal errors from VkQueueSubmit.
https://chromium-review.googlesource.com/c/angle/angle/+/5137081 But
this validation is still enabled. This validation is super slow right
now (tracked by
https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/7285).
There is no need to waset bots time to do this validation and then
ignore its result.
Bug: b/316013423
Bug: b/334183919
Change-Id: I1f6c53f484c088e684d2686422f33539b31b8b7a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5450955
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: 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>
|
|
67fc293a
|
2024-04-05T13:25:12
|
|
WebGPU: Add shader translation and program linking stubs.
Add a TranslatorWGSL which outputs the same translated shaders every
time.
Implement the compile and link tasks.
Bug: angleproject:8662
Change-Id: I62bbd6c528e1d671d0f4becc38f15f1eceb0336c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5428807
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
|
|
5e790bfb
|
2024-04-11T14:58:58
|
|
Remove unnecessary D3D include
Bug: b/329414677
Change-Id: If96e10f3762fe849485f52783565658889491c97
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5444810
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|