|
54176f07
|
2022-12-08T15:58:05
|
|
Better support for "vulkan-null" backend in trace tests.
This allows running the "null" Mock ICD with the Vulkan
secondaries version, and allow you to specify "vulkan-null"
as an ANGLE back-end generally.
Bug: angleproject:7852
Change-Id: Id8c59a167345a6079bd71916ae6ef9c41a6039a7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4089449
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Jamie Madill <jmadill@chromium.org>
|
|
f7cf3226
|
2022-12-08T10:08:56
|
|
Capture/Replay: Only create active secondary contexts in MEC
This finalized the fix attempted in
b432c84c2b8cb6d20873e2b33b6684bee76db90d
Capture/Replay: Fix collecting the initialized contexts
Bug: angleproject:7858
Change-Id: Ie2bbcdb3f23fe4970ce3a9bb46df6f60fe6c8ab6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4084926
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
c9e7fd9c
|
2022-12-08T22:20:32
|
|
Revert "Skip AssignAssignmentToSwizzled on SwS Linux/Win"
This reverts commit 0f7471ff610f3de0a9ef7f28b4bfc4bbbf693dc1.
Reason for revert: Attempting a Revert to see if the tests are now fixed.
Original change's description:
> Skip AssignAssignmentToSwizzled on SwS Linux/Win
>
> Bug: angleproject:7863
> Change-Id: I9921e2e08834f793071ea07b211941bc8887b313
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4082150
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Bug: angleproject:7863
Change-Id: I341da5b2c51fe7f22fc1958680cb7a955ee10c7a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4090823
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
|
|
1193b664
|
2022-10-11T01:00:40
|
|
Vulkan: Use VK_EXT_pipeline_protected_access
This extension allows pipelines to be restricted to protected or
unprotected command buffers only.
Bug: angleproject:7714
Change-Id: Id07be4c2ffd7ca19b8b4a2a869828bc11e89e467
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3943535
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
7e378da9
|
2022-12-01T16:36:08
|
|
Vulkan: Remove synchronous commands from CommandProcessor
Some command tokens in CommandProcessor are doing synchronous calls. For
example, finishResourceUse() and waitIdle(). They are inserting a token
and then wait for CommandProcessor to drain. This CL removes these
commands from CommandProcessor and it just ask CommandProcessor to drain
and then call into mCommandQueue to finishResourceUse or waitIdle. This
is a minor clean up for now, but in future CL we will also avoid
waitForWorkComplete if the mUse has already been drained from
CommandProcessor.
Bug: b/261098465
Change-Id: I7672a9c0b1e477ea3537652cd83350aa97f7caa7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4072223
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
fa45eae4
|
2022-12-07T10:39:31
|
|
Vulkan: Remove QueryVk::hasUnsubmittedUse()
QueryVk has a list stashed query helpers and current queryHelper. The
mStashedQueryHelpers are always older than mQueryHelper. When we want to
check if all queryHelpers has been submitted or not, we really only need
to check the last one, which is mQueryHelper. There is no need to check
mStashedQueryhelper. This CL turns that check against
mStashedQueryhelper into an assertion inside finishRunningCommands.
Bug: b/261737134
Change-Id: I2369e6690c46bcd338d4bfcb679a77478d3fdb84
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4087321
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
28290e34
|
2022-12-08T16:11:55
|
|
Skip Texture2DTestES3.NonZeroBaseEmulatedClear/ES3_Vulkan on Win Intel
Bug: angleproject:7866
Change-Id: I747d30d9774e237f9733eed0e0007d0c10b553cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4088983
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
81a3c71e
|
2022-12-01T18:51:39
|
|
Enable tests on Win Intel Optiplex 7080 experimental bot
Suppress failing end2end tests and run single process
Suppress VUID-VkDescriptorImageInfo-imageView-06711
Bug: chromium:1349828, angleproject:7874
Bug: angleproject:7865, angleproject:7866, angleproject:7872
Change-Id: I18c9099af6635cf41f5368960dc1d35d9decc48c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4071925
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
|
|
f551faf7
|
2022-12-01T17:14:14
|
|
Use typed UAV loads for pixel local storage, when supported
D3D11.3 supports typed UAV/ROV loads on some hardware. Check for this
feature and use it when available.
I haven't been able to measure a meaningful performance difference from
this change, presumably because the bottleneck is memory bandwidth, but
it's simple and more consistent with the other backends.
Bug: angleproject:7855
Change-Id: I1713fc12842380ef1a685a6878948bc0293074c5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4072222
Commit-Queue: Chris Dalton <chris@rive.app>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
ca263d4a
|
2022-11-23T12:11:49
|
|
Vulkan: Remove UsedInRunningCommands
The only difference of UsedInRunningCommands() and hasUnfinishedUse() is
the latter excludes the case where it has not submitted yet. But all
usages are already checked if it has been submitted or not. This CL
removes UsedInRunningCommands and uses hasUnfinishedUse instead.
Bug: b/255414841
Change-Id: I94ef0b63a0c888219cffcdfcecfa0a095fee616b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4053262
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
583fc6a7
|
2022-12-07T16:21:36
|
|
Skip FramebufferExtensionsTest.ColorBufferHalfFloat on iOS
Bug: angleproject:7853
Change-Id: I25f2a37a64ac2445b4eb5eb567acf32834f5e55f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4085142
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
dad69cc7
|
2022-12-06T12:00:39
|
|
Suppress rgb_to_hsl_vertex test on Pixel 6
Bug: angleproject:7867
Change-Id: I2678c0db19fafb780245f818f365e88c7736c5ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4083524
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
384ce5cf
|
2022-11-29T14:18:34
|
|
Capture/Replay: Corretly reset the UnpackAlignment at end of MEC
Direcly setting the value doesn't set the relevant dirty state,
use the appropriate setter call instead. This fixes the reported
difference between the UnpackAlignment value stored in the trace
and the one recorded ruring validation for MEC.
Bug: angleproject:7564
Bug: angleproject:7180
Change-Id: Ic931cac9b7e33519e992ae55ee5cab2adb2958ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4063892
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
982755e0
|
2022-12-05T15:32:42
|
|
Suppress VUID-vkCmdDraw-None-06887
* Suppressed the following VVLs:
* VUID-vkCmdDraw-None-06887
* VUID-vkCmdDrawIndexed-None-06887
Bug: angleproject:7861
Change-Id: I15cdf934bd87b5d5219e69eebc9d339d4c180660
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4082149
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0f7471ff
|
2022-12-05T16:28:41
|
|
Skip AssignAssignmentToSwizzled on SwS Linux/Win
Bug: angleproject:7863
Change-Id: I9921e2e08834f793071ea07b211941bc8887b313
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4082150
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
3b57c2a8
|
2022-12-05T15:33:43
|
|
Add cmnt for VUID-vkDestroySemaphore suppression
Bug: angleproject:7729
Change-Id: I46d8afe9702b9263a776e9acfa9a3364b7184579
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4080592
Reviewed-by: Ian Elliott <ianelliott@google.com>
Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
2d87551d
|
2022-12-05T10:47:40
|
|
Vulkan: Make mLargestAllocatedIndex atomic
TSAN is complaining mLargestAllocatedIndex not thread safe. This CL
makes it atomic and make it mean " the largest queue index we have ever
allocated/seen" so that it will be thread safe. It is impossible to use
a queueIndex before it been allocated. But it is still possible that
some mUse still referencing a queueIndex after it is been released. The
only downside is that we may get into slightly less optimal code path
for GetBatchCountUpToSerials if we ever get into more than 64 queueIndex
and then get bellow 64 again, but that should not a real concern.
Bug: angleproject:7860
Change-Id: I4c99bae24e9d72298253e43f8d108444a8f46ebc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4080590
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bd79968a
|
2022-12-02T14:17:14
|
|
Vulkan: Make sure program's pipeline cache is created
The condition to create or use the program's pipeline cache has become
quite complicated. This change simplifies things by making sure the
pipeline cache is created if and when it's used, instead of guessing how
it will be used and pre-create it.
Bug: angleproject:7369
Change-Id: I7f3558e55f391da8c701e359d2f88d248c820de4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4076508
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8181c056
|
2022-11-22T15:34:48
|
|
Vulkan: Remove RenderPassSerial
RenderPassSerial was introduced to uniquely identify a
RenderPassCommands. With the work of per current context queue serial,
now every started RenderPassCommands already have a unique QueueSerial.
This CL removes RenderPassSerial and use renderPass's queueSerial
instead.
Bug: b/255414841
Change-Id: Id0a87319a9132cdb74aba195f1f05aa31454592b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4049966
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
87815de2
|
2022-12-01T00:00:00
|
|
Adjust GetFramebufferAttachmentParameterivBase validation
GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT state queries
should be allowed for ES 2.0 clients when floating-point
color buffer extensions are enabled.
Bug: angleproject:7853
Change-Id: I4a0a3b336e44648635233be54f598a3ab20cf717
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4071926
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3fedd435
|
2022-12-05T10:15:22
|
|
Overlay: Switch font to RobotoMono
Which has an Apache 2.0 license
Bug: b/260423572
Change-Id: Ibc4b664ddfe844be08ccbac57c27e81951940490
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4079268
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2031e215
|
2022-12-02T15:30:54
|
|
Fixes for Vulkan secondaries build.
Includes the defined name of the alternate library in every
build, so that platforms without Vulkan still have access to
the library name define.
Also fixes checks for the ANGLE driver in the tests to work
with the new secondaries enum. This will let developers run
trace tests with the vulkan secondaries library.
Bug: angleproject:6811
Change-Id: If3846d68e532238f0b1c1c506638867a23fb4357
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4076513
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
650f2274
|
2022-12-02T15:51:09
|
|
Vulkan: Remove fixed VVL errors
Bug: angleproject:7338
Change-Id: I4d2b05c5fd5ad505fda2089dbfa2119e8db8ac16
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4076515
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
0790a807
|
2022-12-01T23:58:36
|
|
Capture/Replay: Add ResourcesToDelete
For resources that are deleted but not recreated by the app,
we need to skip the delete call we've been making for
ResourcesToRegen. To support this, track which resources need
to be deleted.
We've gotten by without this for so long because most apps
will immediately recreate a resource after deleting it. When
they simply delete starting resources, we can't try to delete
them again.
Test: MEC of multiple apps
Bug: angleproject:4599
Change-Id: I226ba7887e2b7b31d4ce9a75d6a8d0a24f3f32ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4075486
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
f17cb883
|
2022-11-30T17:23:12
|
|
Vulkan: Add two tests for per context queue serial work
SubmittingOutsideCommandBufferTriggersEndRenderPass: This test is added
to test outside command buffer uploads that triggers endRenderPass works
properly.
CreateMultiSharedContextAndDraw: This test is added to test draw with
shared vertex buffer in the shared context group works properly.
Bug: b/255414841
Change-Id: I8b4f343fe220a9f0b7c6e042f4663e23ae6f4c9d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4064148
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
58d7ace2
|
2022-11-22T16:08:07
|
|
Vulkan: Add memory allocation log support in debug
* Added a memory tracker to the renderer object to keep track of the
memory allocations and deallocations in more detail.
* This feature is used for debugging only.
* To enable it, set angle_enable_memory_alloc_logging=true in GN args
(added in renderer/vulkan/BUILD).
* It is related to ANGLE_ENABLE_MEMORY_ALLOC_LOGGING in the code.
* The tracker are updated in the memory allocation tracking functions
if the feature is enabled. (The counter is always updated, even if
the feature is disabled.)
* At the end of a RendererVk object, it checks for and logs any
remaining allocated memory from MemoryAllocationType members.
* The data is stored in the map object "mMemoryAllocationTracker".
The key used for it is currently of type angle::BacktraceInfo.
* If angle_enable_unwind_backtrace_support is disabled, or not on
Android, the key is an empty object.
* MemoryAllocInfoMapKey is used as a key to access the allocation
information.
Bug: b/242641395
Change-Id: If701a4bdea2f8738a830ee47e0c7c5cdacf95b87
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4050103
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
66a7117a
|
2022-11-30T10:34:30
|
|
GLES1: Use less precision for color and tex coords
Per the GLES1 spec, color and tex coords are satisified by
half-precision floats.
Bug: angleproject:6644
Change-Id: Ia3f8e45d4c35557a25373f9ad572e87708bc2001
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4067803
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
2e5ca217
|
2022-11-18T10:44:49
|
|
Vulkan: Let each current context has its own QueueSerial.
This CL makes every current context has its own queueSerial. At context
creation time or when context becomes current, it allocates a QueueIndex
from renderer. When it becomes non-current, it releases QueueIndex for
others to reuse. This way we significantly reduces the max number of
QueueIndexs for reasonable usage. Each CommandBuffer has its own unique
QueueSerial and we use that to determine if a resource is being used by
the given CommandBuffer. The QueueSerial for RenderPassCommands is
deferred until renderPass starts, and when we generate queueSerial for
renderPassCommands, we also reserve a range of serials for
outsideRenderPassCommands so that we can do incremental submission of
outsideRenderPassCommands without need to close renderPassCommands. In
rare situation, if that reserved serials runs out, we also close
renderPassCommands to ensure the ordering of serials matches ordering of
command buffers.
With per current context queue serial, this CL is able to set resource
queue serial as it is being used. This CL completely removes usage of
ResourceUseList class since it was introduced due to deferred setSerial.
This CL also get rid of refCount from ResourceUse since there we no
longer add it to a ResourceUseList. With that, we also able to remove
SharedResourceUse class since access to ResourceUse itself is now thread
safe since we are able to make a copy of it when we add it to
GarbageList.
Because RenderPassCommands now has its own unique QueueSerial as it
encodes command, we can use it to detect if a resource is being used by
it or not, thus this CL also removes usage of CommandBufferID.
Bug: b/255414841
Change-Id: I36dcbeaa7bc996f04e6c04bf9ad44cd0d630f61a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4038096
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
db557905
|
2022-12-02T11:32:10
|
|
Vulkan: Fix -Wbitfield-enum-conversion
Bug: chromium:701384
Change-Id: I8c729934365c035a682e81467679fb7149864aac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4076505
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ec4629d6
|
2022-12-02T10:53:38
|
|
Android: set android:allowBackup="false" in manifset
This wasn't previously being set, and a partner pointed out that it
causes a security scan issue as explained in
https://stackoverflow.com/questions/12648373/what-is-androidallowbackup).
Bug: b/242671681
Change-Id: I17a0d9eec4ee7904ebb07bf934c7e2cdd8d61921
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4073982
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
aaee3c23
|
2022-11-30T14:24:13
|
|
Build and test ANGLE with Vulkan secondary CBs.
This will allow us to run tests with both permutations of
ANGLE (custom secondaries & Vulkan secondaries) in the same
build directory. It will also allow us to run these configs
as tests on our infra. This CL adds a few simple test to CI.
Bug: angleproject:6811
Change-Id: I053f8cc5bafc2a7ab7d0665da9301f0ba7f8417f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4067806
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b432c84c
|
2022-12-01T10:40:03
|
|
Capture/Replay: Fix collecting the initialized contexts
The main context initialization function will be emitted as
"Shared" and not based on the context number, so only add the
secondary contexts to the list of contexts that need additional
setup.
Fixes: b301b82235ca686d036a8d29380da22bb2060060
Capture/Replay: emit context setup for pre-MEC contexts only
Bug: angleproject:7805
Change-Id: I4ac770a303ac93a448c9b46bf8c4cd58900ddd54
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4068124
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7e1ed5f1
|
2022-12-02T02:32:40
|
|
Revert "Vulkan: Enable async pipeline cache sync by default"
This reverts commit c7414946b84410bfcc8705759a902577c13d9fc4.
Reason for revert: b/260752276
Original change's description:
> Vulkan: Enable async pipeline cache sync by default
>
> Bug: b/246683126
> Change-Id: I593650364250f8802e9f546ab9957cf1c30e596a
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031487
> Reviewed-by: Cody Northrop <cnorthrop@google.com>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: b/246683126
Bug: b/260752276
Change-Id: I0ebac7e46e213790ac39e4124e89feda76551011
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4074765
Commit-Queue: Solti Ho <solti@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
eafdf206
|
2022-12-01T12:33:11
|
|
Reset thread context during threadCleanup
Once thread cleanup is complete reset its mContext
member to nullptr. Running CTS tests in batches sometimes
exposes a bug where Thread::mContext is accessed after
Display::threadCleanup is complete.
Bug: angleproject:6723
Bug: angleproject:6798
Change-Id: Ie252954e60b5d4565697095939fd19d002dfccf3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4072208
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9bd9c1c2
|
2022-11-03T11:49:33
|
|
Workaround for AMD [[raster_order_group()]] bug
Metal [[raster_order_group()]] does not work for read_write textures on
AMD when the render pass doesn't have a color attachment on slot 0. To
work around this we attach one of the PLS textures to
GL_COLOR_ATTACHMENT0, if there isn't one already.
Bug: angleproject:7792
Bug: angleproject:7803
Bug: angleproject:7818
Change-Id: I7567ed28ed30c7e3ca23dc52778ed90f2fdff965
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4004529
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Commit-Queue: Chris Dalton <chris@rive.app>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
aa7bb157
|
2022-12-01T00:33:31
|
|
Include volk.h from a relative location
Previously it was always included from third_party/volk/
This change makes it easier to use an externally provided copy of
volk.
Bug: b/260093525
Change-Id: I60bdb0ee4f6f6293fce5198af438e9af8d84421f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4066872
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
938f4372
|
2022-11-30T15:30:23
|
|
Move trace_event into anglebase
This originates from Chromium's base/trace_event/ so it doesn't need to
be under a third-party folder.
Bug: b/260093525
Change-Id: Iab7a40569b6c1f91454f099c07bf51e3ce4b65df
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4068342
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c991eb22
|
2022-12-01T14:05:07
|
|
Move the anglebase folder up a level
This code originates from Chromium's base/ directory so it doesn't have
to be under a third-party folder.
Bug: b/260093525
Change-Id: I0bf6950095c685f36c5c237093980a64cf6e74f0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4068339
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Nicolas Capens <nicolascapens@google.com>
|
|
0d7a4884
|
2022-11-30T14:33:12
|
|
Use string_view to compute custom string hash
C++17 supports std::hash<string_view>, which can be used to compute a
hash for the custom sh::TString class.
This eliminates the dependency on smhasher.
Bug: b/260426695
Change-Id: I2f4044fea4e44396a5d798436ec02da22a37bed7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4066987
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Nicolas Capens <nicolascapens@google.com>
|
|
022b52f5
|
2022-11-30T14:58:01
|
|
Include xxhash.h from a relative location
Previously it was always included from src/common/third_party/xxhash/
This change makes it easier to use an externally provided copy of
xxhash.
Bug: b/260093525
Change-Id: I27c375c58ac3776a15d5d68483c235ece235b059
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4066278
Commit-Queue: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
8ee1b89f
|
2022-11-04T13:10:37
|
|
Refactor pixel local storage options
The various different PLS options were getting scattered and unruly. We
are also in need of more backend-specific PLS options that would be
difficult to add as-is. This CL refactors them into a single
"ShPixelLocalStorageOptions" struct that gets initialized all in one
place, and shared between the compiler and the backends.
Bug: angleproject:7279
Change-Id: Ic58dccb8d1ba350a0b6cc5848ce15bd687e30fad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4006715
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
a4db9477
|
2022-10-06T10:35:39
|
|
Implement pixel local storage with metal::read_write textures
Metal's programmable blending feature isn't available on non-Apple
Silicon, so on these devices we have to polyfill pixel local storage
using read_write textures, which can also be coherent if
raster_order_groups are supported.
This change leverages the existing PLS transformation to images, and
implements just enough shader image functionality in Metal to support
the pixel local storage usecase. Missing shader image features are
marked with UNIMPLEMENTED().
Bug: angleproject:7279
Bug: angleproject:7792
Bug: angleproject:7794
Bug: angleproject:7797
Bug: angleproject:7803
Change-Id: Ia96a714693d352d57351a1bae4f45437dde000e4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3993363
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
|
|
fa37af38
|
2022-07-12T22:47:22
|
|
Translator: Support SSO's built-in redeclaration
EXT_separate_shader_objects requires that gl_Position and gl_PointSize
be redeclared in the vertex shader. This is not adopted by GLES3.2, but
is nevertheless required to be supported if the shader enables this
extension explicitly.
Bug: angleproject:6590
Change-Id: I3428851ff9f00fb63573e4322bb62fe04bf0a095
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3757918
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
db67df60
|
2022-10-31T13:01:25
|
|
Metal texture cleanups
* Record the texture arguments' location in main() instead of inferring
their position based on an assumption that the texture pipeline comes
last.
* Fix one spot that was using mMainSamplerIndex that should have been
using mMainTextureIndex.
Bug: angleproject:7279
Change-Id: I53af0f016e52217c53d98b560011ffe958746cda
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3993362
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
2ecb3217
|
2022-11-28T15:24:39
|
|
Vulkan: Turn CPU throttling into fail safe
CPU throttling is moved back to after queue present instead of before.
Doing it before was a mistake, as the app had already recorded the
command buffers, there was no point in delaying its submission.
Proper throttling would have been moving the wait from after recording
commands (before present of frame i+2) to before recording (after
present of frame i+1). However, throttling is the responsibility of the
app and this change triggers throttling one frame later (after present
of frame i+2) as a fail safe.
Currently, CPU throttling is relied upon for acquire semaphore
recycling. If the two are untangled, CPU throttling can be removed.
CPU throttling can also be trivially weakened by increasing
kSwapHistorySize (currently 2).
Bug: angleproject:7268
Change-Id: Ib7a8be6f8e72c6b8589d4e8b5de7ceaf6a28bb8e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4060454
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
31c40936
|
2022-11-25T12:28:27
|
|
Vulkan: Rework present semaphore recycling
Present semaphores and old swapchains are now associated with a fence
for clean up. The fence is the one coming from the _next_ acquire of
the same image index.
See doc/PresentSemaphores.md for more details.
Bug: angleproject:7847
Change-Id: I16891ccf6df7ac39d8b17328aac35afc422eede0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4058286
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
90b4541c
|
2022-11-28T11:39:24
|
|
Vulkan: Pass signal semaphore by value to async thread
Otherwise the signal semaphore is pointing to whatever was passed in
from the main thread. Currently, this is ok because:
- For external semaphores, ensureNoPendingWork is called
- For surfaces, there's a fixed buffer of semaphores
However, an upcoming change passes a semaphore specified on the stack,
and the thread should not be referencing it.
Bug: angleproject:7847
Change-Id: I9a823214bde59b9d7ff23313694c1749a76e6b8e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4060453
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
7f4caaf5
|
2022-11-23T15:40:53
|
|
Vulkan: Fix VulkanPerformanceCounterTest.SubmittingOutsideCom
VulkanPerformanceCounterTest.SubmittingOutsideCommandBufferDoesNotCollectRenderPassGarbage
depends on the implementation detail on how we flush and submit
commands. The recent change crrev.com/c/4038095 fixes one issue that we
are now having one less submission on pixel 6 device. This CL adjust the
test to account for that.
This CL also changed to set mHasDeferredFlush to true only when there is
a started renderpass upon FBO bind.
This CL also opt in swiftshader into preferSubmitAtFBOBoundary feature
for test coverage and ease of debugging since ARM GPU (which enables
this flag) is not been tested on CI.
Bug: b/255414841
Change-Id: I295cec33a8ca257a5d5a98604b8c4c0c29e97cdf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4054101
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
2805e164
|
2022-11-29T15:16:42
|
|
Fix EGLImage related race condition crash
Bug: chromium:1383195
Change-Id: Ibd74126f19674dad9425d2c8f5b3a217cfd590e4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4062912
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
1434697f
|
2022-11-23T14:47:38
|
|
Add a vk feature flag to only enable precision match fixer on IMG
According to
https://gitlab.khronos.org/vulkan/vulkan/-/merge_requests/5273,
RelaxedPrecision does not need to match in the interface matching
rules. However, removing the precision match is causing triangle
clipping issues on IMG hardware. This change adds a feature
flag to only run the code path that applies precision match in
SpirV if the hardware is IMG.
This is a follow-up change to https://crrev.com/c/4049421.
Instead of adding back the code path that handles varying
precision mismatch for every hardware, only enabling the code
path if the vendor is IMG.
Test:
On Pixel6:
$ adb shell setprop debug.angle.feature_overrides_enabled
varyingsRequireMatchingPrecisionInSpirv
$ out/AndroidDebug/angle_end2end_tests
--gtest_filter="GLSLTest_ES3.MismatchPrecision*" --verbose
Bug: angleproject:7488
Change-Id: Ia0155f14d523195df2f47b852ed6642918270e2a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4054100
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
2de99d47
|
2022-11-17T12:19:35
|
|
Reset instance/device extensions in RendererVk::onDestroy()
RendererVk::initialize() adds a nullptr to the end of
RendererVk::mEnabledInstanceExtensions (presumably to ensure the
VK implementation crashes if it tries to read past?). If
RendererVk::onDestroy() fails to clear this nullptr, it can lead
to a crash when sorting the extension lists when the renderer
is re-initialized the second time.
Bug: b/249457381
Test: cvd start --gpu_mode=guest_swiftshader
Test: EGLDisplayTest.InitalizeTerminateInitalize/ES3_Vulkan_NoFixture
Change-Id: Ib24af11024cad6b28284f3a75cc862c48abec258
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4035646
Commit-Queue: Jason Macnak <natsu@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b301b822
|
2022-11-07T09:37:14
|
|
Capture/Replay: emit context setup for pre-MEC contexts only
When a context is made current for the first time it is added to
the shared context set. If this happens after the mid execution
capture has started, then the call to the context setup function
is created, but the according function implementations was not
emitted leading to compilation failure of the so created trace.
Since a context that was never current doesn't actually have any
setup that needs to be done when starting a MEC replay. Hence,
there is no need to emit the calls fot SetupReplayContextXX.
So track which context where actually in the shared context set
when MEC started, and only emit the according calls to the setup
functions.
Bug: angleproject:7805
Change-Id: I83f8714733ead5c0d71560013c360b5671f0822a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4008199
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
000b3bfa
|
2022-11-28T15:06:06
|
|
Vulkan: Init mLast***Serials from CommandQueue::initialize
Exposed by a recent test from Jason crrev.com/cl/4035646, If RendererVk
gets re-initialized, we can't rely on CommandQueue's constructor to do
initalization. We have to manually initialize mLastSubmittedSerials to 0
since destroy will set it to Infinite.
Bug: b/249457381
Change-Id: I90e654981fb821324cbfb177712f604b67ccc70c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4063046
Reviewed-by: Jason Macnak <natsu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b00fa5e5
|
2022-11-23T12:10:47
|
|
Vulkan: Pipeline graph dump vs pipeline libraries
The pipeline graph dump code is now made aware of partial pipelines.
Vertex input and fragment output pipelines are also output. As a
collateral, UtilsVk pipelines are also included.
Bug: angleproject:7369
Change-Id: I327fbd07b83ae42d27766847d70637ada04d86cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4051623
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
35d1736f
|
2022-11-28T09:27:06
|
|
Update enabled instance extenion handling
- Null terminating the instance extensions at the end of
initialize to potentially avoid having the nullptr interact
poorly with other initialization code that scans through the
enabled instance extensions.
- Ensure the enabled instance extension sort happens after all
desired instance extensions have been added.
Bug: b/249457381
Test: cvd start --gpu_mode=guest_swiftshader
Change-Id: I2a479065444ffdfd97ecbf281fe6a777e22d584c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4060238
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jason Macnak <natsu@google.com>
|
|
86a194c3
|
2022-11-24T00:00:00
|
|
Fix expected texture target for 3D blocks
ASTC 3D blocks are supported only for TEXTURE_3D targets.
Bug: angleproject:3675
Change-Id: I5fa2ee87666bd69272419dc1d604348f7376aa46
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4055649
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3cfdb191
|
2022-11-28T14:42:34
|
|
Change ninja path to third_party/ninja/ninja
It also removes `.exe` extension as it seems not necessary.
Bug: chromium:1338373
Change-Id: Ic94426771d56c54b8c03627cdff6dccccec1a267
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4060128
Auto-Submit: Junji Watanabe <jwata@google.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
541cdcbf
|
2022-11-23T15:44:53
|
|
Fix flakiness in EGL surface multithread tests.
This moves the surface acquisition to inside the scoped lock.
This should fix the flakiness we see on the linux-tsan-test
bot.
Bug: angleproject:7791
Change-Id: Idcc0f3c9d6e172b446f10c32bf6fb911fd887658
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4051622
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d5ce0b80
|
2022-11-23T12:16:46
|
|
Skip crashed test on Pixel6 due to a bug in precision matching fixer
We recently need to add back the code that
does spriv precision match fixer to help IMG
fix a triangle clipping issue. However, the
code added back is causing Pixel 6 to crash on
this test:
dEQP-GLES31.functional.shaders.linkage.es31.tessellation.varying.rules.internal_different_precision
We are skipping this test for now until we
add a feature to enable the code path on IMG only.
Bug: angleproject:7488
Change-Id: I0fb2738d2faabe2ca78077e0383af3d100c75b03
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4053100
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
71ead7b4
|
2022-11-20T15:56:42
|
|
Tests: Add Diablo Immortal trace
Test: angle_trace_tests --gtest_filter="*diablo_immortal*"
Bug: angleproject:7402
Bug: angleproject:7837
Change-Id: I7c7ccc0099707714213564740f58f04f7965a275
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4041134
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
6458178e
|
2022-11-18T11:39:16
|
|
Vulkan: Clean up flushCommandsAndEndRenderPass APIs
ContextVk::flushCommandsAndEndRenderPassWithoutQueueSubmit is calling
flushCommandsAndEndRenderPassImpl(QueueSubmitType::SkipQueueSubmit).
This is a bit odd and creates confusion and trouble with future CLs.
This CL removes QueueSubmitType and straight up the submission code and
removes some function that was doing little but to call another
function.
Bug: b/255414841
Change-Id: I0ed2122a98b0fc5b819fd331173bf6945d23ff8a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4038095
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7dd8478e
|
2022-11-17T10:11:02
|
|
Vulkan: Make ResourceUse::serial an FastVector of Serials
In preparation for per context queue serial, this CL makes
ResourceUse::serial a FastVector of Serial. Right now we still limited
to one serial index so that it still work the same way as before. This
CL adds necessary data type and change the function names to reflect
that tracking GPU progress needs a ResourceUse object instead of a
single Serial number.
Bug: b/255414841
Change-Id: Ic60cdf5ec8da45d1821f65a55947f5c553f65737
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4034548
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
0e12695c
|
2022-11-23T08:31:43
|
|
Suppress VUID-VkGraphicsPipelineCreateInfo-renderPass-06040
Bug: angleproject:7843
Change-Id: I013dd1d2942c7b9d340ae4e3c4124b592dc9b94b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4049765
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6384f76b
|
2022-11-16T21:47:04
|
|
Vulkan: Move PipelineCacheAccess to namespace vk
In preparation for a change that uses it in that namespace.
Bug: angleproject:7369
Change-Id: Icc75b8839d702fd3e6d3d00c1d8f81619cdd89cc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031150
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
11de5157
|
2022-11-14T14:48:33
|
|
Capture/Replay: Reset Shaders
We've been resetting Programs correctly, but not Shaders. This hasn't
been a blocker so far, but it has been identified as a performance
problem for traces that compile mid-trace. We're not getting cache
hits because the persistent blob cache is not updated until a shader
is deleted.
Part of the challenge here is ShadersIDs and ProgramIDs share a
ResourceIDType, so separating them requires a bit more tracking.
To fix, start tracking which ShaderProgramIDs are actually
shaders and emit the correct glDelete* command.
Test: diablo_immortal MEC
Bug: angleproject:7823
Change-Id: I934f6eee243ab9681dca5fdebdad33ba31457cf5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4029226
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
494640e5
|
2022-11-18T12:02:28
|
|
Capture/Replay: Make secondary contexts current during MEC
When replaying, the context is made current at the beginning of
the context setup function, and is still current when we hot the
validation point at the end of the setup function. When a context
is current is has a valid default framebuffer, and hence, during a
replay of the trace the context serialization will contain this
framebuffer. However, during MEC the secondary contexts were not made
current during capture, and hence they dind't have a default
framebuffer which resulted in a validation error.
Therefore, make the secondary contexts current when they are captured
during MEC to make sure we also capture the default framebuffer.
Bug: angleproject:7812
Change-Id: Iaccc4150e8a71a02286e772882fb150bef1d82a8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4037982
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3db679eb
|
2022-11-22T10:37:31
|
|
Revert "Vulkan: Remove useRelaxedPrecision" and "Vulkan: remove SpirvVaryingPrecisionFixer"
This reverts commit cb618b3d42d9013c48b5aa233efc4d80a9c4efa4
and commit 427086a9c7612da7325cb36054859a929c3727d5
Reason for revert: IMG reported that they need to keep the
"precision qualifier matching" feature to make triangle clipping
work properly, because the clipping needs to to know the decoration
in vertex shader output in order to sort the data correctly for
clipping.
Original change's description:
> Vulkan: Remove useRelaxedPrecision
>
> Bug: angleproject:7488
> Change-Id: I30ca3e2740d8810a01615ca778eb072d77ad34d9
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3856658
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Original change's description:
> Vulkan: remove SpirvVaryingPrecisionFixer
>
> Bug: angleproject:7488
> Change-Id: I957839bd8fbdf1cd849d5ed7e9edd65fd1a5f2cb
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780874
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Bug: angleproject:7488
Change-Id: I90b584cbc549a663bca734a59d135a1d1d5bcbfc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4049421
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
27727e50
|
2022-11-21T00:00:00
|
|
Fix ProvokingVertex typos
Aligned the parameter name with the upstream specs
Moved ValidateProvokingVertexANGLE to validationESEXT.cpp
Bug: angleproject:2829
Change-Id: I820a90c20ef0a1873640c933b1de52526cac7e70
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4043701
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
b2f55ec3
|
2022-11-14T16:07:19
|
|
Vulkan: Add memory allocation/deallocation counter
* Added a counter to the renderer object to keep track of the
memory allocations and deallocations per allocation type.
* The counters are updated with the functions onMemoryAlloc() and
onMemoryDealloc(), which can be added next to the allocation or
deallocation point.
* Currently used for buffer memory and image memory.
* Removed some of the redundant arguments from vk_helper and
suballocation functions.
Bug: b/242641395
Change-Id: I58b38f619df7bef0ba5fa3373a8db5aed0ef142c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4014164
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c5724a8d
|
2022-11-17T15:48:16
|
|
Vulkan: Retain mCurrentGraphicsPipeline if RP started
ContextVk::mCurrentGraphicsPipeline is created before renderpass
started. Right now we retain mCurrentGraphicsPipeline immediately. In
future CL of per context queue serial, renderpass will not have queue
serial until started, which means we can only retain pipeline object
after renderpass started. This CL moves the
mRenderPassCOmmands.retain(mCurrentGraphicsPipeline) call to renderpass
start time. This exposed a bug that ContextVk may have a dangling
mCurrentGraphicsPipeline pointer to an already destroyed object, if the
program has been destroyed. When ProgramExecutableVk::resetLayout()
calls ContextVk::onProgramExecutableReset () we early out because
executable no longer matches. This causes mCurrentGraphicsPipeline still
point to now deleted pipeline object. This CL fix this dangling pointer
bug by always clear mCurrentGraphicsPipeline to null in
ContextVk::onProgramExecutableReset() without checking if program
executable is the one gets reset.
Bug: b/255414841
Change-Id: I6d698c517d7a948b65c465eaaa59ea0bca24e2c8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4035107
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
fc1c8cd1
|
2022-11-01T00:00:00
|
|
Refactor validation of partial compressed texture uploads
Optimized ValidCompressedSubImageSize for valid usage
and simplified its control flow.
Fixed false negative validation when the replaced
image region does not fill the entire level but
nevertheless reaches the image boundaries.
Updated InternalFormat::getCompressedImageMinBlocks
to use IsPVRTC1Format helper function.
Fixed InternalFormat::computeCompressedImageSize for
3D compressed texture blocks.
Removed redundant checks from ValidateES3TexImageParametersBase.
Optimized IsPVRTC1Format helper function to be a constexpr.
Adjusted tests, added suppressions for Intel and Adreno.
Bug: angleproject:7473
Change-Id: I6fadce949785a35e2706b06eeb00e878aa3710a7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4037671
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
15c8a055
|
2022-11-22T13:31:39
|
|
GL: Only reset transform feedback varyings when necessary.
ProgramGL sychronizes all state before linking. This means setting the
transform feedback varyings to 0 when transform feedback is not used.
Skip this call to synchronize transform feedback varyings when it will
have no effect.
This is a speculative fix for crashes on IMG drivers. Some of the logs
mention glTransformFeedbackVaryings reading invalid memory.
Bug: chromium:1322820
Change-Id: Ib4ba9c6ea6f9ab8accb82f243472c4d4443b7fd5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4049420
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
37d6a9db
|
2022-11-18T17:42:21
|
|
Support versioned library names
Previously ANGLE_GLESV2_LIBRARY_NAME was expected to be the library name
without extension, and on Linux .so would be appended. This didn't allow
for building ANGLE as libEGL.so.1 and libGLESv2.so.2 as is common.
This change checks if the library name already contains a dot, and if so
doesn't append the platform specific extension suffix.
Bug: b/259282560
Change-Id: I81cda218180ae7fe6321e1ac7e4eff7257bf1493
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4038450
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Nicolas Capens <nicolascapens@google.com>
|
|
68b47e58
|
2022-11-16T10:46:59
|
|
Vulkan: Initial support for VK_EXT_graphics_pipeline_library
When available, this change uses VK_EXT_graphics_pipeline_library to
create pipelines. Currently, it is only used when
graphicsPipelineLibraryFastLinking is available. This restricts the use
of this extension to devices where monolithic pipelines are not any more
performant than linked libraries.
A future change adds support for other implementations by providing
async pipeline creation.
Bug: angleproject:7369
Change-Id: I1e3b7ac4aa56e75c7d6f4d0d5ea91cb0b862e581
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031489
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Steven Noonan <steven@valvesoftware.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1f69f580
|
2022-11-18T14:33:20
|
|
Perf tests: Add --fixed-test-time-with-warmup
Warmup trials combined with fixed-test-time was broken
recently. It was already fragile and only worked when
parameters were provided in the right order.
On Android we're relying on this combination to get steady
results without hitting thermal limits.
To address this:
- Add a new parameter that encapsulates the combination
- ASSERT that flags aren't provided in unsupported combinations
Test: python3 restricted_trace_perf.py --fixedtime 10
Bug: angleproject:7755
Change-Id: I56fce1f65d4f0538e623951163a9c8736cb3fb03
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4027282
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
202fcb8d
|
2022-11-21T15:05:13
|
|
TraceTest: Route EGLSync entry points through WGL
Test: diablo_immortal trace
Bug: angleproject:7402
Bug: angleproject:7839
Change-Id: I8897337bac38cb1923e58a9503de01454766158d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4044865
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
356b2a59
|
2022-11-18T18:50:03
|
|
Roll VK-GL-CTS from c4fe10a0c86d to 2db7b0a1c310 (7 revisions)
https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/c4fe10a0c86d..2db7b0a1c310
2022-11-18 tapani.palli@intel.com Fix for the string query tests on desktop GL
2022-11-18 aitor@lunarg.com Add tests for out-param aliasing against other variables
2022-11-18 cturner@igalia.com Fix a typo setupVertexInputStete -> setupVertexInputState
2022-11-18 rgarcia@igalia.com Improve failure error messages in format_feature_flags2 tests
2022-11-18 amber@igalia.com Add tests for linearly tiled images
2022-11-17 quic_mnetsch@quicinc.com Merge vk-gl-cts/vulkan-cts-1.3.4 into vk-gl-cts/main
2022-11-16 ziga@lunarg.com Merge vk-gl-cts/dev/VK_EXT_pipeline_protected_access into vk-gl-cts/main
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll
Please CC jonahr@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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: None
Tbr: jonahr@google.com
Change-Id: Ia91e36411440ba5fe572d0971b54ae6857bbeb9c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4037817
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
f37a32f0
|
2022-11-14T14:11:06
|
|
Remove DisplayGbm and SurfaceGbm.
The Gbm classes were used to emulate WindowSurfaces on ChromeOS for
testing. These emulated features are not used in any shipping
configuration and cause issues because ANGLE opens drm devices
uneccessarily.
Bug: chromium:1344962
Change-Id: If564e40744f7825035bbbd63c141b154c534ed72
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4023096
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Brian Ho <hob@chromium.org>
|
|
0c0bbcf5
|
2022-11-18T22:18:55
|
|
Revert "Vulkan: Only allocate default attribute if needed"
This reverts commit 85c98a92bb763452133bd7b4580d80625bb2c75d.
Reason for revert: This caused regression on pixel 6, https://ci.chromium.org/ui/p/angle/builders/ci/android-arm64-exp-test/1969/overview
Original change's description:
> Vulkan: Only allocate default attribute if needed
>
> mDirtyDefaultAttribsMask has all bits set when starts.
> ContextVk::handleDirtyGraphicsDefaultAttribs() is looping all dirty bits
> and try to allocate buffer for it, which means we are looping 16
> times when app starts. This CL changes to allocate a buffer only if used
> by program.
>
> Bug: b/258862506
> Change-Id: I2f0a75d1fe141c9ac3101088fdc4ce4f60b0c4ee
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4024544
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
> Commit-Queue: Charlie Lao <cclao@google.com>
Bug: b/258862506
Change-Id: Iff7d9c6d605613773f0b91a5539cefd6da6454eb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4038449
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: Charlie Lao <cclao@google.com>
|
|
8378032e
|
2022-11-15T11:47:55
|
|
Vulkan: Remove get API for mLastCompletedQueueSerial
In preparation for per context queue serial, this CL makes
mLastSubmittedQueueSerial and mLastCompletedQueueSerial private to
CommandQueue. Before this CL, we have a get function to return the last
submitted serial and last completed serial and passing these serials
around. This works because the serial is a single uint64_t number. With
per context queue serial, this will be an array of serials and there is
potential risk associated with access it from different threads. This CL
makes these serials private to CommandQueue and when you want to know if
GPU is completed with resource, you ask RendererVk/CommandQueue
directly. This way we can ensure they have thread safe access in the
CommandQueue (no lock is necessary, but all access will be restricted to
one class).
Bug: b/255414841
Change-Id: Ica565decce4a80588e0b447e179a2b634b55d7c3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4021676
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
95cfa687
|
2022-11-18T15:26:36
|
|
Revert "Map AHARDWAREBUFFER_FORMAT_R8_UNORM to GL_R8"
This reverts commit dcf3ab1228428b2f9d1449852e2359bad70e2dfe.
Reason for revert: Causing AOSP roll build failures:
https://android-review.git.corp.google.com/c/platform/external/angle/+/2308065?tab=checks
Original change's description:
> Map AHARDWAREBUFFER_FORMAT_R8_UNORM to GL_R8
>
> Bug: b/259551816
> Test: cvd start --gpu_mode=guest_swiftshader
> Test: atest librenderengine_test
> Change-Id: I874278fe50dd1b501c11c484c55ed91e67a7013b
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4034130
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: b/259551816
Change-Id: Iac19db493ecda89bc49d05cc34f5b51818e39737
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4035110
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
c7414946
|
2022-11-16T10:35:33
|
|
Vulkan: Enable async pipeline cache sync by default
Bug: b/246683126
Change-Id: I593650364250f8802e9f546ab9957cf1c30e596a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031487
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
81e9dc56
|
2022-11-04T00:00:00
|
|
Reland "Metal: Skip disabled draw buffers"
This is a reland of commit 4b084310d7bbb33631d58a461eb5814c12220926
Do not try to create a command encoder with no attachments
since it may crash some Metal drivers.
Do not reset pipeline descriptors.
Original change's description:
> Metal: Skip disabled draw buffers
>
> When creating render pass descriptors, do not
> assign textures to disabled color attachments.
>
> When creating pipeline descriptors, reset
> pixel formats of disabled color attachments.
>
> Exit early when MTLRenderCommandEncoder is not created.
>
> Added:
> * DrawBuffersTest.None
> * DrawBuffersTest.NoneWithDepth
> * DrawBuffersTest.NoneWithStencil
> * DrawBuffersTestES3.DrawWithDisabledIncompatibleAttachment
>
> Fixes:
> * conformance2/rendering/fs-color-type-mismatch-color-buffer-type.html
>
> Bug: angleproject:6430
> Change-Id: I7f650c761f757985b027388c350c01340a83fd51
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4003180
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Bug: angleproject:6430
Change-Id: I13977bd7ef32c4c85420706215b4f4d3a65629ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4030310
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
70cf2322
|
2022-11-16T10:25:07
|
|
Vulkan: Move async pipeline cache sync feature to backend
Bug: b/246683126
Change-Id: I194e488e04580cee7055c0674091f1228984edf9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031486
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Solti Ho <solti@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
386ef2ee
|
2022-11-17T13:16:27
|
|
Fix EGL validation of core robustness attribute.
Implement EGL validation of EGL_CONTEXT_OPENGL_ROBUST_ACCESS.
Previously, only the _EXT flavour was validated.
Note that EGLRobustnessTest was changed to only exercise the
core version.
Bug: chromium:1385480
Change-Id: I51f93d6cd344d073cd9656c9fff9636ca4eac99d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4030882
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
|
|
dcf3ab12
|
2022-11-17T09:52:36
|
|
Map AHARDWAREBUFFER_FORMAT_R8_UNORM to GL_R8
Bug: b/259551816
Test: cvd start --gpu_mode=guest_swiftshader
Test: atest librenderengine_test
Change-Id: I874278fe50dd1b501c11c484c55ed91e67a7013b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4034130
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7e7a47df
|
2022-11-16T21:29:20
|
|
Vulkan: Adjust logicOp dynamic state workaround
Bug: chromium:1379201
Change-Id: I355d0034de12e5aaf95c160efcace34ff7062337
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031149
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jie A Chen <jie.a.chen@intel.com>
|
|
91ee237f
|
2022-11-17T03:19:34
|
|
Revert "Metal: Skip disabled draw buffers"
This reverts commit 4b084310d7bbb33631d58a461eb5814c12220926.
Reason for revert: Crashing in webgl2_conformance_metal_passthrough_tests https://chromium-review.googlesource.com/c/angle/angle/+/4003180/comments/6e35ee21_38288238a
Original change's description:
> Metal: Skip disabled draw buffers
>
> When creating render pass descriptors, do not
> assign textures to disabled color attachments.
>
> When creating pipeline descriptors, reset
> pixel formats of disabled color attachments.
>
> Exit early when MTLRenderCommandEncoder is not created.
>
> Added:
> * DrawBuffersTest.None
> * DrawBuffersTest.NoneWithDepth
> * DrawBuffersTest.NoneWithStencil
> * DrawBuffersTestES3.DrawWithDisabledIncompatibleAttachment
>
> Fixes:
> * conformance2/rendering/fs-color-type-mismatch-color-buffer-type.html
>
> Bug: angleproject:6430
> Change-Id: I7f650c761f757985b027388c350c01340a83fd51
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4003180
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Bug: angleproject:6430
Change-Id: I485691bdcc4214ed6958f606591f23331bfbea53
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4032391
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Austin Eng <enga@google.com>
Reviewed-by: Austin Eng <enga@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
03e69803
|
2022-11-16T15:49:44
|
|
Fix a document error
This patch fixes an error of the document, which describes
the translation from uniform block to StructuredBuffer.
Bug: angleproject:7832
Change-Id: Ice98f41ce558a47a6c19983e24ddbd3ea435d59d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4029670
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
7fb1a25d
|
2022-11-16T11:40:55
|
|
Make BitSetT::Mask return a bit set
This allows a Mask function to be implemented for BitSetArray, which is
added in this CL. When using larger bitsets on 32-bit systems, the
current Mask implementation prohibits its use.
This is in preparation for a follow up change that uses Mask on such a
bitset.
Bug: angleproject:7369
Change-Id: If995d96ec1583a546f20bff277f3223e2f2490f5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031493
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b205207a
|
2022-11-16T14:39:00
|
|
Lock gpu clocks using nvidia-smi to avoid overheating
For now only applies to Windows Nvidia (GTX 1660) bots
where I tested this. Default clocks boost to 1800+
reporting 110W+ initial power usage which can't be dissipated by
the setup and and gpu quickly hits ~90C and enters aggressive
throttling. Locking to 1410MHz yield a much more modest 50~60W usage
with reasonable gpu temps in the 70C~80C range over long runs at
100% utilization.
Also log gpu temperature before/after running tests.
Bug: angleproject:7671
Change-Id: Id43bede3b1d6a445f8caee6bbbaa43f7f380199b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031495
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
2dde7357
|
2022-11-16T10:39:32
|
|
Vulkan: `const` render passes
Bug: angleproject:7369
Change-Id: I1ee1449bd8ea8c6a3e26e50a7f3734fad91dc911
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031488
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5ef24b26
|
2022-11-16T11:17:53
|
|
Vulkan: Limit logicOp dynamic state workaround to old mesa
Bug: chromium:1379201
Change-Id: I618507b118b4420793ec172f3ed1f0dddbb2ae86
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031492
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
3f9223b2
|
2022-11-15T20:31:55
|
|
Shader: Initialize mMaxComputeSharedMemory
Uninitalized values are causing retrace failures.
mMaxComputeSharedMemory is otherwise only set when the shader
is compiled.
Test: retrace_restricted_traces.py
Bug: angleproject:7815
Change-Id: I9884ac3c8550775d435d6fa7b11d7aebc63c14d5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4026669
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4b084310
|
2022-11-04T00:00:00
|
|
Metal: Skip disabled draw buffers
When creating render pass descriptors, do not
assign textures to disabled color attachments.
When creating pipeline descriptors, reset
pixel formats of disabled color attachments.
Exit early when MTLRenderCommandEncoder is not created.
Added:
* DrawBuffersTest.None
* DrawBuffersTest.NoneWithDepth
* DrawBuffersTest.NoneWithStencil
* DrawBuffersTestES3.DrawWithDisabledIncompatibleAttachment
Fixes:
* conformance2/rendering/fs-color-type-mismatch-color-buffer-type.html
Bug: angleproject:6430
Change-Id: I7f650c761f757985b027388c350c01340a83fd51
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4003180
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
2fa255da
|
2022-11-09T16:44:02
|
|
FrameCapture: Don't capture trailing zeros in shader strings.
This prevents C build errors like the following when
applications provide incorrect shader string lengths:
error: null character(s) preserved in string literal
Bug: angleproject:7402
Change-Id: Iac7bab58533d152c4b6ed525f0cbcbcb8a7c35ad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4020417
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
66fda678
|
2022-11-14T11:10:54
|
|
Capture/Replay: Delete buffer after test support for coherent
The buffer created to test coherent and persistzent mapping is
not used later, so it should be deleted.
Since this buffer is created and deleted before any VAO is created,
we also have to check whether a VAO exists before the buffer may
be detached from it.
Bug: angleproject:7814
Change-Id: I875f845e592325093dd90b48ba9cd3c7228fad47
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4023047
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
8028bffc
|
2022-11-14T16:45:07
|
|
Vulkan: Flatten GarbageAndSerial class
ObjectAndSerial templated class is only used by GarbageAndSerial. The
serial number here means queue serial. This CL simply flattens the
template class to GarbageAndQueueSerial to clarify the serial here is
the queue serial that tracks GPU completion.
Bug: b/259148812
Change-Id: I81e88a03ccffcf8fb632e3ac7dce886375dc51a5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4023098
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e6491c2f
|
2022-11-15T19:35:47
|
|
Revert "Add temporary logging of gold_session.Initialize stdout."
This reverts commit 05d86e06003bc9bcfdf62d769d6c6229e7680f5e.
Reason for revert: this helped caught an issue https://anglebug.com/7550#c6, but recent outputs seem normal so no longer needed
Original change's description:
> Add temporary logging of gold_session.Initialize stdout.
>
> Normally looks like:
> Loaded 1549 known hashes
> ...
>
> Suspecting that in failure cases it's going to result in something
> different.
>
> Bug: angleproject:7550
> Change-Id: I0190d4f679fc4161fc36a3008ba2e7d6d4764277
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3804752
> Commit-Queue: Roman Lavrov <romanl@google.com>
> Reviewed-by: Brian Sheedy <bsheedy@chromium.org>
Bug: angleproject:7550
Change-Id: I7c6e1569299ca4c834f29fcd01c3e707e373de16
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4024759
Reviewed-by: Brian Sheedy <bsheedy@chromium.org>
Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
Auto-Submit: Roman Lavrov <romanl@google.com>
|
|
9483002d
|
2022-11-14T16:01:15
|
|
Vulkan: Clean up submitFrame/submitCommands
ContextVK has two functions, submitFrame, and submitCommands.
ContextVk::SubmitFrame means to be frame boundary or FBO boundary,
usually refers to submission triggered by API, for example,
glFlush/glFinish or FBO switches. ContextVk::submitCommands was added
later to mean any kind of submission. It could be triggered by internal
logic, for example, when we think we have accumulated too much staged
updates. The odd thing is that ContextVk::submitFrame calls
ContextVk::submitCommands, which calls RendererVk::submitFrame. I
believe this is because when we introduced ContextVk::submitCommands, we
did not bother rename RendererVk's API. This CL renames
RendererVk::submitFrame and CommandQueue::submitFrame and
CommandProcessor::submitFrame to submitCommands to be consistent with
ContextVk's function names.
This CL also removes unused function ContextVk::isSerialInUse()
This CL also removes unnecessary vk:: namespace in CommandProcessor
Bug: b/259148812
Change-Id: If074e381168950143ad56a728f23caa298e5f355
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4027284
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|