|
53abcf15
|
2022-10-25T15:26:44
|
|
Vulkan: Bug fix in supportsTimestampSurfaceAttribute
Move the initialization of "vkGetPastPresentationTimingGOOGLE"
and the assert check to after vkDevice creation.
Bug: angleproject:7489
Change-Id: I1ef50d64af3bea44a182be95dd182532b2c60d36
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3979994
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a41c6173
|
2022-10-16T08:28:53
|
|
Simplify trace test names.
Originally we had a lot of conditionally enabled test configs
in angle_perftests, that we enabled behind a flag because the
total runtime would be too large if we left everything enabled.
This CL switches to using a single test set, one for each
trace, and using a the same command-line API we use in dEQP
and the ANGLE samples to pick a single configuration. This
makes it easier to pick exactly what configurations you want
from the command line.
Because we only run one configuration each time, we don't need
to specialize the test name to include the configuration info.
We can also simplify TracePerfTest -> TraceTest since these
tests are run for both perf and correctness.
Old name: TracePerfTest.Run/vulkan_trex_200
New name: TraceTest.trex_200
Example for tests that don't use default arguments:
Old args: --enable-all-trace-tests
Old name: TracePerfTest.Run/native_offscreen_trex_200
New args: --use-gl=native --offscreen
New name: TraceTest.trex_200
Bug: angleproject:7755
Change-Id: Id93cf5725eff2e2c6b3b14804bc2902f38306e7e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3966535
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
adde4265
|
2022-10-19T23:33:48
|
|
Vulkan: Separate pipeline cache query and insertion
In preparation for VK_EXT_graphics_pipeline_library usage, the query and
insertion functions of the graphics pipeline cache are separated. This
will allow the implementation using VK_EXT_graphics_pipeline_library to
query the monolithic pipeline cache, and if a pipeline is not found,
create it through the pipeline library caches.
Bug: angleproject:7369
Change-Id: Iebf7669ae3ea95e180646198c4861cc59d67e580
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963854
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
5c0b329e
|
2022-10-19T16:59:58
|
|
Vulkan: Clean up rotation spec const update
Update during makeCurrent was done by invalidating the program, and then
at pipeline creation time the spec const was updated. This is changed
so that makeCurrent updates the spec const directly, and avoid
invalidating the pipeline.
Also removes spec const usage calculation, as it's unused.
Bug: angleproject:7369
Change-Id: I79444ce4173c4db9c6800fb02afd9e8447a25f82
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963853
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
c6390143
|
2022-10-12T09:57:55
|
|
Vulkan: Make compatible with GCC
Resolves below warnings occurred with GCC build.
1) deperecated-copy
Overriding an assignment operator without a copy constructor
caused the deprecated-copy warnings.
2) unused-function
3) parenthesis
Warnings occurred due to missing parenthesis around
some logical expressions, add them to quiet the warnings.
4) unused variable
5) 'maybe-unused' attribute ignored
Introduces 'ANGLE_MAYBE_UNUSED_PRIVATE_FIELD' macro to avoid
'attribute ignored' warning which is only occurred
with GCC because GCC doesn't warn about 'unused non
static data member' whereas Clang has Wno-unused-private-field.
Signed-off-by: Sungyong Choi <sywow.choi@samsung.com>
Bug: angleproject:7764
Change-Id: I8e7410a5ed8cb9b8f8b3202073d779fea63d6b75
Reviewed-by: Jeff Vigil <j.vigil@samsung.com>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963830
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7b4b56f0
|
2022-10-19T00:05:22
|
|
Vulkan: Missing output mask in GraphicsPipelineDesc
Currently, there's some program state used in creating pipelines
alongside what's in GraphicsPipelineDesc. This works because the
pipeline cache lives in the program executable.
With VK_EXT_graphics_pipeline_library however, we could create vertex
input and fragment output partial pipelines that are independent from
and are shared between multiple programs. To support this, any program
state that's necessary for pipeline creation should be part of the
GraphicsPipelineDesc structure.
This change places the state affecting fragment output in
GraphicsPipelineDesc.
Bug: angleproject:7369
Change-Id: I2e48fc9da220475e1b2ed376fc947ce13489610e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963652
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
f0e3d8f9
|
2022-10-18T13:51:31
|
|
Vulkan: Shader component type in GraphicsPipelineDesc
Currently, there's some program state used in creating pipelines
alongside what's in GraphicsPipelineDesc. This works because the
pipeline cache lives in the program executable.
With VK_EXT_graphics_pipeline_library however, we could create vertex
input and fragment output partial pipelines that are independent from
and are shared between multiple programs. To support this, any program
state that's necessary for pipeline creation should be part of the
GraphicsPipelineDesc structure.
This change places the state affecting vertex input in
GraphicsPipelineDesc. A follow up change will do the same for state
affecting fragment output.
Bug: angleproject:7369
Change-Id: Iccf691a1597d786efa1625f7b1c22f906201f2e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3964751
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
025504b9
|
2022-10-17T17:03:03
|
|
Pass worker pools to image load functions
In preparation for the ASTC decoder using threaded decoding.
Bug: b/250688943
Change-Id: I70d669bcb57b900dbb633304182e174aec362203
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3961339
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Greg Schlomoff <gregschlom@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fbd7d5fa
|
2022-10-17T17:20:09
|
|
Move thread pool classes to common/
In preparation for access by image_util files.
Bug: b/250688943
Change-Id: I24777269a5071eae9a60f939635d01ed7246461f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3961454
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b521be4c
|
2022-10-14T23:09:26
|
|
Vulkan: Decouple shader-set from pipeline caches
In preparation for VK_EXT_graphics_pipeline_library, where different
pipeline caches (for the complete pipelines and the shaders subset
partial pipelines) may create pipelines from the same shader set, the
pipeline caches are pulled out of ShaderProgramHelper. In an upcoming
change, ProgramExecutableVk will have more than one
GraphicsPipelineCache instance, both creating pipelines through the same
ShaderProgramHelper.
The pipeline creation methods in ShaderProgramHelper are now const.
This means a thread would be able to create pipelines using an object of
this class while the main thread creates other pipelines using the same
object, but in a different pipeline cache.
Bug: angleproject:7369
Change-Id: Ib8a76dedf1105ba9dfcad9e972157c92ba18e349
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3956944
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
09b079bb
|
2022-10-14T14:28:10
|
|
Vulkan: Move pipeline subset out of pipeline desc
This way, the same pipeline desc can be used to query multiple caches
with different subsets. This design requires the pipeline cache to be
templated, while the previous design required the desc to be copied (so
the subset bits would be different).
Bug: angleproject:7369
Change-Id: Id3fd92e6f9b059069952ff092a5c867e79287604
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3956940
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
eaa71709
|
2022-10-14T11:47:07
|
|
Vulkan: s/ContextVk/Context in pipeline creation
With VK_EXT_graphics_pipeline_library, pipeline creation may happen on a
thread. This change prepares the interface such that only a vk::Context
is needed, instead of ContextVk.
Bug: angleproject:7369
Change-Id: Ib7e9e7e140e27a4af71bffee069c88e3d7f47dfa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3956935
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e8f9355c
|
2022-10-13T16:51:32
|
|
Vulkan: Add forceWaitForSubmissionToCompleteForQueryResult flag
Add forceWaitForSubmissionToCompleteForQueryResult feature flag and
enable it for ARM.
Also force host wait if async submission is enabled.
Bug: b/253522366
Change-Id: Ie2d7373930f1a2b3fc761d2f8d2df8fa84983c54
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3954044
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
19fb11b6
|
2022-10-14T11:12:20
|
|
Vulkan: Merge warmed up compute cache into renderer
It was done for graphics, but was accidentally missing for compute.
Bug: angleproject:5881
Bug: angleproject:7629
Change-Id: I28a4c2e38b07b08e1636b443f2c0963130965ebb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3956496
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
8e644365
|
2022-10-11T11:47:55
|
|
Vulkan: Rearrange state specification for pipeline libraries
This change splits pipeline state setup based on whether the complete
pipeline is being created or only a subset of it. However, no partial
pipelines are yet created, that will be done in a following CL.
Bug: angleproject:7369
Change-Id: Ife34c4bc39641ab8f06e7c78502f95a6bc16d15d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3949917
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
94b45181
|
2022-10-12T14:54:14
|
|
Vulkan: Rearrange graphics pipeline desc bits
In preparation for use of VK_EXT_graphics_pipeline_library, the pipeline
state is split in three contiguous regions:
- Vertex input
- Pre-rasterization and fragment stages ("Shaders" for short)
- Fragment output
There is some state that affects both Shaders and Fragment output, which
is split and placed in between the two. This will allow the hash and
compare functions to eventually access each of those pipeline subsets as
a contiguous piece of memory.
Bug: angleproject:7369
Change-Id: Iedc4cf15ed6c7fed6ba93039889fbf5dd191e041
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3949914
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1119dfbd
|
2022-10-03T16:47:29
|
|
Vulkan: disable supportsHostQueryReset feature if func is null
This is try to clean up a old fix for chromium security bug
chromium:1273344 that in some bots we are seeing supportsHostQueryReset
feature enabled but vkResetQueryPoolEXT pointer is null. We fixed that
in crrev.com/c/3313382 that added a check of vkResetQueryPoolEXT AND
supportsHostQueryReset feature flag. This CL disables the feature flag
if vkResetQueryPoolEXT pointer is null so that other places we only need
to check feature flag.
Bug: b/250706693
Change-Id: I2d9f9726f081e21a37bbb0bb205003c390f2d32c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3929236
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
135022e4
|
2022-10-11T00:03:11
|
|
Vulkan: Create robust pipelines based on context state
Previously, pipelines were made robust based on whether any context in
the share group has so far been made robust. This means that pipelines
created on non-robust contexts would still be compiled as robust.
Inefficiency aside, this was buggy because robustness was not part of
the pipeline cache key, so if a pipeline was created as non-robust
first, then recreated in a robust context, it would reuse the non-robust
variant.
With VK_EXT_pipeline_protected_access, a similar situation arises for
context protected-ness. However, it is incorrect in that case to create
pipelines as protected unnecessarily.
This change makes pipeline robustness a part of the pipeline cache key,
in preparation for protectedness to be added similarly. Compute
programs may now generate multiple pipelines as a result too.
Bug: angleproject:7629
Change-Id: Ie95f10eff878f8c8b221c1018da44385c7aad15e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3943534
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
9b5fff82
|
2022-10-05T21:56:00
|
|
Vulkan: Emulate shader stencil export for MSRTT
The MSRTT emulation code had one corner case issue that could lead to
performance and memory inefficiencies. That is when stencil needs to be
unresolved and VK_EXT_shader_stencil_export is not supported.
This change adds a path to emulate VK_EXT_shader_stencil_export and
removes this inefficiency.
This should help Chromium on older Android devices that lack both this
and the recent VK_EXT_multisampled_render_to_single_sampled extensions.
Chromium frequently breaks the render pass (crbug.com/1336981), which
easily leads to this situation.
Bug: angleproject:4836
Change-Id: Ifceec43f7f3807b7e32f4b379edcd4351ae76414
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3935892
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
b1d699da
|
2022-10-04T15:27:51
|
|
Vulkan: Don't wait QueueSerial if supportsHostQueryReset enabled
In QueryVk::getResult() we are waiting for query's queueSerial to
complete, even though QueryHelper::getUint64Result() we are also using
VK_QUERY_RESULT_WAIT_BIT to ask vulkan driver to wait for result. Based
on the comment, the reason for that queueSerial wait is because "its
reset command may not have been performed by the GPU yet.". But if
mFeatures.supportsHostQueryReset is enabled, we use vkResetQueryPoolEXT
to reset the query, and this host reset is immediate, so there is no
need to wait for queueSerial in this case. This CL disables the wait
when host reset is enabled and relies on
vkGetQueryPoolResults(VK_QUERY_RESULT_WAIT_BIT) to do actual wait. This
should help performance on immediate renderer where the query result
might be available before renderpass completion.
Bug: angleproject:3965
Change-Id: Ibe61c289f1f3d1312e79ac80a2b5de23b90ef87c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3935444
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
76f377c5
|
2022-06-17T16:05:16
|
|
Vulkan: Break renderpass when switch from query to non-query
getQueryResult will wait for query result to be available, which means a
potential CPU bubble if the result is not yet available. On tiler GPUs
it will at least wait for renderpass to complete. Usually query enabled
draws are very tiny (usually just draw a point to see if it is occluded
or not), and query disabled draws are expensive. Some apps do issue a
glFlush when switch from query draw to non-query draw, but app like
dead_by_daylight does not issue such flush. In order to reduce the
bubble, this CL ends renderpass and issue a flush when we switch from
query enabled draws to non-query enabled draw so that the result will be
available much earlier, this reduce the CPU bubble. This result in
dead_by_daylight frame time improves from 5.45ms to 3.5ms (35%
improvement).
Bug: b/250706693
Change-Id: Ia3a32a9fb336e6f256809b3cad83f61a45415fb1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3931739
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
dbbfdd22
|
2022-10-06T13:39:20
|
|
Vulkan: Bug fix in GL_QCOM_shading_rate
Don't initialize "vkCmdSetFragmentShadingRateKHR" before
creating VkDevice as it leads to a nullptr assertion in
RendererVk::canSupportFragmentShadingRate. Separate out
instance and device function pointer initializations.
Bug: angleproject:7172
Change-Id: I55b5b41313857a2861a197f17d7f88b71aec907f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3938443
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c19ec948
|
2022-08-23T10:43:59
|
|
Vulkan: Implement imageless framebuffers
* Added the attachment image and create info objects to be used
for imageless framebuffers created in getFramebuffer().
* New helper class for framebuffers in RenderPassCommandBufferHelper:
MaybeImagelessFramebuffer, which includes a framebuffer object, if
the framebuffer is imageless, and the image views. This is to make
sure that the args for render pass begin info will be correctly set
up according to the status of the used framebuffer.
* Refactored the collection of attachments in getFramebuffer() into
a new function, getAttachmentsAndImagesFromRenderTargets(). It also
returns their corresponding ImageHelper* objects used to create the
framebuffer (from their image properties).
* New struct: RenderTargetInfo; which keeps track of render targets
and whether resolve image should be used for the render pass in the
form of the enum class RenderTargetImage.
* Added a new arg to getFramebuffer(): resolveRenderTargetIn; to use
when there is a valid resolveImageViewIn.
* Without using the framebuffer cache, we would require to handle
the framebuffer destruction by adding it to the garbage instead
of releasing it. For example, FramebufferVk::destroy() now adds
mCurrentFramebuffer to the garbage.
* Added new framebuffer unit tests.
* Added tests where two textures with different attributes are bound
to the same framebuffer before drawing, one after another.
* Added test where a blit occurs from a multisample texture into a
non-zero level of a resolve texture, each bound to a separate FBO.
* Added a new perf test to compare performance for enabled imageless
framebuffers vs disabled. (Credit: cclao)
Bug: angleproject:7553
Change-Id: Iacdbd73aaa01cbb0e37abf01ae4892bdfdd4b12f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827644
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
4ebdac79
|
2022-08-29T16:25:46
|
|
Vulkan: Ensure we sync the draw FB before beingQuery.
Bug: chromium:1354271
Change-Id: I5fe3649d9d39de37d0a59c80a4f31a17d1a72838
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3863145
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
13195f8a
|
2022-10-05T11:17:35
|
|
Vulkan: Fix missing input attachment usage on MSRTT
When combined with advanced blend (or framebuffer fetch for that
matter), MSRTT attachments could be used as input attachments. This
change fixes the missing usage bit.
Bug: angleproject:7739
Change-Id: I2190e4a6e534e120357dd68189fb9de07b6c54fa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3936444
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
5ddf631c
|
2022-10-04T11:17:45
|
|
Vulkan: Choose host visiable device local based on heap size.
set preferDeviceLocalMemoryHostVisible based on the
host visiable device local and device local heap memory heap size.
Bug: b/246909451
Change-Id: I1e63931baceda02396b0eb8f24671949920ac2a5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3934479
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
Reviewed-by: Mateusz Przybylski <mprzybyl@google.com>
|
|
391644f4
|
2022-08-24T14:59:21
|
|
Vulkan: Use VK_EXT_rasterization_order_attachment_access
When available, this extension makes coherent framebuffer fetch /
advanced blend official.
Bug: angleproject:7604
Change-Id: Ifc552a0fa7a3612a3fc568feb61d6dd348e856ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3855698
Reviewed-by: Chris Dalton <chris@rive.app>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d64c54e3
|
2022-09-26T21:25:18
|
|
D3D11: Make DebugAnnotator11 thread safe.
Bug: chromium:1366778
Change-Id: I50662895be8ec40de4ded8c4f84bde59ae40e98b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3917936
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
|
|
06d0389a
|
2022-10-04T19:26:48
|
|
Remove leftover code regarding render pass serial
* Removed the render pass serial reset in the function where the
current framebuffer is released. (left over from a prior CL.)
Bug: angleproject:7553
Change-Id: I61b4a12ac8957f6e1dcd4bf0f4e233c068736dff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3931901
Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7d10d160
|
2022-09-29T23:31:40
|
|
Vulkan: Fix VK_EXT_pipeline_robustness vs compute
Robustness was not specified for compute.
Bug: angleproject:5845
Change-Id: I3f3b1e90cc4e965ff4cfcd569587caa952e5eaa2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3924871
Reviewed-by: Alexis Hétu <sugoi@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5d7c4eca
|
2022-10-02T02:27:27
|
|
Vulkan: Don't flush depth/stencil on color blit
When syncing the read framebuffer for blit, deferred clears are picked
up for the attachments that are not being synced. They are then
redeferred so a future command would pick them hopefully as loadOp.
This change improves the frame time of Pretty Derby on Pixel 6 by ~23%.
Bug: angleproject:7727
Change-Id: Ie7d84c58315cd09204e5229f1ec73605d5a7f639
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3931973
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1d73bad5
|
2022-10-01T22:50:48
|
|
Vulkan: Fix reclear of rendered-to depth/stencil
An optimization drops re-clears of images to the same value. When a
render pass does:
- clear
- render
- store
the "cleared" status of the image was removed because at the end of the
render pass, the image no longer has the cleared value. However, this
was mistakenly only done for color, but should have been done for depth
and stencil as well.
Bug: b/239430388
Change-Id: Ib99e0df460eaa82ce87b593276abd9b07f0a8375
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3931972
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
34977cc5
|
2022-10-03T11:55:28
|
|
Supress vkDestroySemaphore-semaphore-01137
Bug: angleproject:7729
Change-Id: If93b6411bed472417d62f8e63682991a493dc526
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3929750
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
Auto-Submit: Ian Elliott <ianelliott@google.com>
|
|
a7dc51f2
|
2022-10-01T08:49:11
|
|
Add a framebuffer fetch implementation of PLS
The framebuffer fetch implementation works by attaching PLS backing
textures to the framebuffer, and then rewriting PLS uniforms as "inout"
fragment variables. The compiler's existing machinery takes it from
there and makes it work on GL and Vulkan, and soon Metal.
EXT_shader_framebuffer_fetch is now the preferred backend for pixel
local storage, but we also use EXT_shader_framebuffer_fetch_non_coherent
if shader images can't be coherent. This is especially interesting for
Vulkan, since noncoherent framebuffer fetch is possible without any
extensions.
Bug: angleproject:7279
Bug: angleproject:7683
Bug: angleproject:7684
Bug: angleproject:7724
Change-Id: I33f3b2c6df9a5709969d9165c448ea71b096c9e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3900142
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
836cc5e2
|
2022-09-09T22:06:22
|
|
Vulkan: add etc to bc compute transcoding.
use compute shader to transcode etc format to bc format.
Bug: b/243398683
Change-Id: Idbd0820a2df8d92fe690055dae2933bc559e9bfd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3888501
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
|
|
f7a5cce1
|
2022-09-29T10:42:26
|
|
Tests: Add Life is Strange trace
Test: angle_perftests --gtest_filter="*life_is_strange*"
Bug: angleproject:7711
Bug: angleproject:7723
Change-Id: I83d9d58270a80435dba8991875b20a215372334f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3928205
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
ff7aa214
|
2022-09-29T19:56:28
|
|
GL_PALETTE* sampling
Implement GL_PALETTE* formats by decoding them into
a R8G8B8A8_UNORM image at load time.
Test: angle_end2end_tests --gtest_filter="PalettedTextureTest.*"
Bug: angleproject:7599
Bug: angleproject:7688
Bug: angleproject:7710
Change-Id: I94d51e2c480fcdd39f1a0ad241b311d3b4de1579
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3863251
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Constantine Shablya <constantine.shablya@collabora.com>
|
|
053c6a06
|
2022-09-20T15:17:28
|
|
Vulkan: Add more tests for attachmentless framebuffer
This CL adds below test scenarios for attachmentless framebuffer:
1. Create first attachmentless framebuffer with larger size,
and create second attachmentless framebuffer with smaller size.
2. Create an attachmentless framebuffer with smaller size,
and grow its default width and height.
3. Create an attachmentless framebuffer with larger size,
and shrink its default width and height.
4. Create an attachmentless framebuffer with larger size,
given it an attachment with a medium size,
and shrink its default width and height.
This CL also splits the test failure bugs on different
vendor and renderer to different bug tickets.
This CL addresses a bug on vulkan backend:
only skip onFramebufferChange()
if the framebuffer has at least one attachment,
and mCurrentFramebufferDesc equals to priorFramebufferDesc.
Otherwise in test scenario 2 and 3 above,
we will use the wrong scissor size,
because the FramebufferDesc remains the same before and after
changing the default width and height,
and we will wrongly skip onFramebufferChange() where we update scissor
area to match with the new default width and height.
Bug: angleproject:7666
Bug: angleproject:7697
Bug: angleproject:7699
Bug: angleproject:7700
Bug: angleproject:7705
Change-Id: Ieb143b27f8c1a229dab8f43d0a16e3e871185941
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3908332
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d524157f
|
2022-09-28T23:16:02
|
|
GLES1/Vulkan: Don't validate SPIR-V as VVL does the same
Improves TexCombine runtime by ~15%.
Bug: angleproject:6644
Change-Id: I01f580fef0caa91ebf600cfc0bbbeca1aa20eb06
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3926037
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
1abeeaae
|
2022-09-28T12:22:58
|
|
GLES1/Vulkan: Remove double SPIR-V validation assertion
The SPIR-V transformation is validated on program link because many
tests link programs but don't draw with them. This helps catch bugs.
However, GLES1 programs are always created right before draw, so the
SPIR-V transformer will definitely be run on them. The link-time
validation is thus unnecessary.
This change disables the latter on GLES1, which cuts down the TexCombine
test run time by about 10%.
Bug: angleproject:6644
Change-Id: Idb9d229fc08bf746f933fa8924fa67e5426f87a7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3926036
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
b9cd542e
|
2022-09-15T17:31:35
|
|
Vulkan: Use serial to check which FBO has open RP
In preparation for the scenario where an imageless framebuffer is
shared, checking whether the started render pass belongs to a certain
framebuffer is tweaked to use a serial-based method instead of checking
the framebuffer handle.
* Added the last render pass serial to ContextVk, which increments
every time a render pass begins. The serial is also stored in the
FramebufferVk object invoking it.
* Added the type RenderPassSerial for this purpose.
* Serials are generated through a serial factory in ContextVk.
* Updated hasStartedRenderPassWithSerial() to match the serials
instead of the handles.
* Removed the getFramebuffer() calls from FramebufferVk and UtilsVk
that are now unused.
Bug: angleproject:7553
Change-Id: Id60dcbf7973558d35e55ff4af4c71e50c6853bba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3897970
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
f4389797
|
2022-09-23T15:36:13
|
|
GLES1/Vulkan: Enable GL_EXT_multisample_compatibility
... with a non-conformant implementation. This unblocks some tests that
unnecessary call glDisable(GL_MULTISAMPLE) and trip up on it generating
validation error.
Bug: angleproject:7676
Bug: angleproject:7657
Bug: angleproject:3863
Bug: angleproject:3864
Change-Id: Iaebbea66da81fc9a30bf7a87deed7cf88ff38476
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3891546
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e82eaff9
|
2022-09-22T16:01:06
|
|
Stubs for paletted images
Bug: angleproject:7599
Change-Id: Idb49f8ba07ebd3b6cad461fa9e90b856af666183
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3909396
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Constantine Shablya <constantine.shablya@collabora.com>
|
|
0d34d4f8
|
2022-09-21T18:51:04
|
|
Suppress more VVL errors about vkCmdDraw*-None
* Suppressed the following VVLs:
* VUID-vkCmdDrawIndexed-None-02686
* VUID-vkCmdDrawIndirect-None-02686
* VUID-vkCmdDrawIndirectCount-None-02686
* VUID-vkCmdDrawIndexedIndirect-None-02686
* VUID-vkCmdDrawIndexedIndirectCount-None-02686
Bug: angleproject:7685
Change-Id: I41390ee2a2a01509367a6e98697da3ad7e3cc2e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3910174
Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
7edc6dab
|
2022-09-21T11:57:37
|
|
Suppress VVL error about vkCmdDraw-None
* Suppressed the following VVL:
* VUID-vkCmdDraw-None-02686
Bug: angleproject:7685
Change-Id: I1c926637729f11f58667d20ea0f5c5f545dc5181
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3910798
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2b4699ad
|
2022-09-21T12:19:20
|
|
Vulkan: Fix validation error with unset-logic-op in UtilsVk
Bug: angleproject:7654
Change-Id: Ie4da045a30fdd12eedd910ade3cb5ffe95e2c9a4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3909791
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
41de8a02
|
2022-09-21T09:08:12
|
|
Suppress VVL error about input attachment desc
* Suppressed the following VVL:
* UNASSIGNED-input-attachment-descriptor-not-in-subpass
Bug: angleproject:7685
Change-Id: I8a23f8d4ddbc91df791f5c98b4ce1e11278b7cc2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3910796
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a6edb43f
|
2022-09-19T07:39:38
|
|
Vulkan: Fix native ID for GBM configs
Remove default value.
EGL_NATIVE_VISUAL_ID for GBM configs is handled in
GetNativeVisualID as of commit f54e7ee69c331f0.
Bug: angleproject:7667
Change-Id: I4168cdc9b406b7d2383bdc611cb04f3494cdbf59
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3905525
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Commit-Queue: Jeff Vigil <j.vigil@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
|
|
0c7bf627
|
2022-09-20T10:45:39
|
|
Vulkan: Remove static variable from DisplayVkLinux::queryDmaBufFormats
+ fix the numFormat/Modifier output not set
Bug: angleproject:7664
Change-Id: I300710e3ba12f3fb134af4460ef6235eae3e98fc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3905327
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
ba3b4515
|
2022-09-15T01:06:51
|
|
Vulkan: Implement GL_ANGLE_logic_op
Enabled if the logicOp device feature is available. According to
gpuinfo, it's pretty much universal except for ARM.
Bug: angleproject:7654
Change-Id: I4808b519fdd6273b2f8c1bb17f59517eb65bfe8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3898317
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
97926f80
|
2022-09-15T00:10:49
|
|
GL: Implement GL_ANGLE_logic_op
Enabled only on Desktop GL where logic op is available.
Bug: angleproject:7654
Change-Id: I3c17ffb5b21abf31aec247319a625526f1bec37d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3898316
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0fefbe83
|
2022-09-14T15:20:00
|
|
Vulkan: Do not cache the FramebufferHelper with no attachment
If two FBOs don't have any attachments,
and their GL_FRAMEBUFFER_DEFAULT_WIDTH
and GL_FRAMEBUFFER_DEFAULT_HEIGHT are
different, there is no difference in
their cache key (vk::FramebufferDesc).
Therefore the Vulkan backend is not able
to distinguish between the two FBOs.
This can create issues when we
1. create first FBO with a smaller size, renders to it
2. create second FBO with a bigger size, renders to it
The second renderpass will use the FBO created
in the first renderpass, because it managed to
retrieve the first FBO from the cache with
the same cachekey. This triggers the
vulkan validation error:
VUID-VkRenderPassBeginInfo-pNext-02853,
saying the render area exceeds the
framebuffer size.
This CL fixed it by not adding the FramebufferHelper
to the cache, if it doesn't have any attachment.
These framebufferHelpers are cheap, without
cache there should not be much performance
drop.
Bug: angleproject:3579
Bug: angleproject:7351
Bug: angleproject:7666
Bug: b/246334302
Change-Id: Iddecafddb042bd16401f983f9ee1a021b845d8bb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3891543
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
493bab09
|
2022-09-15T14:20:41
|
|
Add an ShPixelLocalStorageType enum
Adds ShPixelLocalStorageType to ShCompileOptionsPLS and adds a
getNativePixelLocalStorageType() call to ContextImpl. For now this enum
only tells the translater whether PLS formats needs to be packed into
r32 images, but it will soon also be able to select framebuffer fetch,
native pixel local storage, and other PLS implementations.
Bug: angleproject:7279
Change-Id: Ifbd419b20550b8711ae3044782177806796216f1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3900498
Commit-Queue: Chris Dalton <chris@rive.app>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a8a04ce1
|
2022-08-16T17:59:20
|
|
Vulkan: Add supportsPresentation feature
Some platforms do not support presentation through any Vulkan queue. In
this case we should not transition the color image layout to present.
Bug: angleproject:7217
Change-Id: I71cad0e52bc1fdb531de5a34e917a1862a4cf070
Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Suggested-by: Sungyong Choi <sywow.choi@samsung.com>
Suggested-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3853598
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
38c01008
|
2022-09-13T15:11:54
|
|
Vulkan: Fix a cornercase bug when dynamically loading AHB APIs.
The commit 122a1cc583f0 enabled dynamic loading of AHB APIs but did
not handle the cornercase where some Android system services load
"libnativewindow.so" with the RTLD_LOCAL flag. In such cases AHB
APIs would not be resolvable through dlsym lookup. Explicitly dlopen
"libnativewindow.so" in such cases.
Bug: angleproject:7656
Change-Id: Ie74140ad816b756e1afc325d370f26bcb09428ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3894658
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Peng Huang <penghuang@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
|
|
18f90857
|
2022-09-09T11:28:00
|
|
Vulkan: Use DontCare if attachment is invalidated
If an attachment is invalidated, there is no need to preserve the old
content. NONE means old content is still preserved, DontCare means
discard old content. In this case we do want to discard instead of
preserve old content.
Bug: b/243711628
Change-Id: I242ac86db6993574b5627d61f7185d155beec0ba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3888938
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
a2f00721
|
2022-06-19T15:17:22
|
|
Vulkan: Extend bounding box when pruning updates
Add support for extending the bounding box when there are updates that
enclose the current bounding box.
Bug: angleproject:4691
Bug: angleproject:7389
Test: Texture2DArrayTestES3.TextureArrayPruneSupersededUpdates*
Change-Id: Ie7e3cc28f17213361b1be407dbb2d984865fe6bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3712897
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
ae971cfe
|
2022-09-07T17:00:17
|
|
Vulkan: Expose wide gamut and HDR EGL colorspace extensions
Query the underlying Vulkan ICD for the list of supported colorspaces
on platforms that support VK_GOOGLE_surfaceless_query extension.
Expose corresponding EGL colorspace extensions.
Bug: angleproject:7630
Change-Id: If9843ee55100fff5a8cec4ecf2ff27c746c5b205
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3873767
Reviewed-by: Trevor Black <vantablack@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
7369e665
|
2022-09-12T09:59:17
|
|
Roll Chromium from e7211d52993a to 3c60121d064a (1898 revisions)
Includes a fix for passing nullptr to memcpy, needed after
https://chromium-review.googlesource.com/c/chromium/src/+/3830738
https://chromium.googlesource.com/chromium/src.git/+log/e7211d52993a..3c60121d064a
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-angle-autoroll
Please CC ianelliott@google.com on the revert to ensure that a human
is aware of the problem.
To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry
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
Changed dependencies
* build: https://chromium.googlesource.com/chromium/src/build.git/+log/a802f7afd7..efa2ea67b3
* buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/8e147cfcf5..a7f5ad05c4
* buildtools/linux64: git_revision:00b741b1568d56cf4e117dcb9f70cd42653b4c78..git_revision:b4851eb2062f76a880c07f7fa0d12913beb6d79e
* buildtools/mac: git_revision:00b741b1568d56cf4e117dcb9f70cd42653b4c78..git_revision:b4851eb2062f76a880c07f7fa0d12913beb6d79e
* buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/0bcb3f7dbb..60f90783c3
* buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/6285577a9d..5c3e02e92a
* buildtools/third_party/libunwind/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git/+log/42aa6de554..60a480ee18
* buildtools/win: git_revision:00b741b1568d56cf4e117dcb9f70cd42653b4c78..git_revision:b4851eb2062f76a880c07f7fa0d12913beb6d79e
* testing: https://chromium.googlesource.com/chromium/src/testing/+log/0749f30ea7..f76677edac
* third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/d8ee101941..200c7ed65e
* third_party/android_build_tools/bundletool: qqdjz9M6hbP7D7jMsRGwpvibSWdEJn1Tnm-R3B6M6bEC..IEZQhHFQzO9Ci1QxWZmssKqGmt2r_nCDMKr8t4cKY34C
* third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/efda6e3f14..cf9befc4c4
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..861067db62
* third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/600fdf58c9..2d25dbd149
* third_party/fuchsia-sdk/sdk: version:9.20220902.1.1..version:9.20220912.0.1
* third_party/r8/d8: ODjYnRPfjz6Ml42YJB5QKVfn7qaVLKdc-eZ01g3enDcC.._g2g6FSXHfosnO9NWkIZJwr76tobLOVx2AG7QNdfpvsC
* third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/9f4113d3ba..05e137d33c
* tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/06b66e0116..2a5ebae0f7
* tools/luci-go: git_revision:3226112a79a7c2de84c3186191e24dd61680a77d..git_revision:c93fd3c5ebdc3999eea86a7623dbd1ed4b40bc78
* tools/luci-go: git_revision:3226112a79a7c2de84c3186191e24dd61680a77d..git_revision:c93fd3c5ebdc3999eea86a7623dbd1ed4b40bc78
* tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/092b87beee..52ce428d8a
* tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/e68727adf5..386c784a62
* tools/skia_goldctl/linux: BcL4zQgD0tZoFzhWm37NnERAPLdbeERfbY_SSBQ3ba4C..XXyhhDL9TuGs6KyzXXakE4eaVnpYMXz8DKbnU5Ew3aAC
* tools/skia_goldctl/mac_amd64: 8DiQ6WFPrEn56-jwyQmU4EMXFvf7_-8SYjVD2hHHmZMC..FyHlZdO9A-oMbWsU1rxpkz2dOtU4aOPBSJx9YQF_CLoC
* tools/skia_goldctl/mac_arm64: lJ8l4RCPxwrg_f-Z9Lnu3Ma3uRlbRbAcdQA7xwpIzNUC..K3uVqbmFCdJI0hGDotZSM9kPdXQNp7oIGy7pykJInqAC
* tools/skia_goldctl/win: 1l0XEVvr2qVUdGYrjLN9Gkt6qfv8KsXM52B8MKDShmEC..DCjjZXPp2-aMyq92DomOu_HdsBScNrumV-n3sIRYCfAC
Clang version changed llvmorg-16-init-3375-gfed71b04:llvmorg-16-init-4141-gf48931f3
Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/06b66e0116fd0f48b85f522eb39f543fb641db5c..2a5ebae0f797d7ad1f27d7f20bd926ce76c29411/scripts/update.py
Bug: angleproject:7626, angleproject:7649
Change-Id: I1600219f412b421de6c8a63836e34d15ff0004c1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3890101
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
313956f2
|
2022-09-07T10:15:10
|
|
Vulkan: Don't store EGLSyncVk::mAttribs as a const ref.
EGLSyncVk::mAttribs is a stack allocated variable in the parent scope.
Its usage is currently safe because it is only used in
EGLSyncVk::initialize but it is dangerous to have this member present.
Bug: angleproject:7637
Change-Id: Idaf2f1a0306e55a5fe00e55c9e72cd71005e3dce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3876889
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
5fae671c
|
2022-09-07T17:00:36
|
|
Vulkan: Enable VK_EXT_swapchain_colorspace when supported
Enable VK_EXT_swapchain_colorspace instance extension when supported.
This expands the number of colorspaces that can be supported by EGL.
Bug: angleproject:7630
Change-Id: I10ac62dba80fc7a443ab1cb7be331717855ea74a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3881164
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
490ec5ba
|
2022-09-06T15:18:04
|
|
Replace underscores with dashes in SYNC-HAZARD messages
And remove the temporary workaround to accept both.
Bug: angleproject:7633
Change-Id: I6ab4256127d99c06441485214e640d8fbccb7de0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3876224
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
79aa846e
|
2022-08-17T13:40:33
|
|
Reland "Not recreate Framebuffer for eglMakeCurrent() call"
This is a reland of commit bf9c815263455403e587a9d2b0fdb9fb8e964208
Original change's description:
> Not recreate Framebuffer for eglMakeCurrent() call
>
> Right now, in eglMakeCurrent() call, ANGLE always release the
> default framebuffer object associated to the current context,
> and create a new default framebuffer object for the new current
> context. It impacts chrome performance, since chrome call
> eglMakeCurrent() a lot. With this CL, the default framebuffer
> will be created with gl::Context. When the surface is changed
> by eglMakeCurrent() call, ANGLE will detach the previous surface
> from the associated framebuffer, and attach the new surface to
> the next current context's default framebuffer.
>
> Bug: chromium:1336126
> Change-Id: Iaa747669250ae250245db383a716b4634df59ea4
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827751
> Commit-Queue: Peng Huang <penghuang@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Bug: chromium:1336126
Change-Id: Iade19004a4335ac7bc6ca176a3c14d34afff8c9e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3877405
Auto-Submit: Peng Huang <penghuang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
02e8497f
|
2022-09-07T01:12:31
|
|
Revert "Not recreate Framebuffer for eglMakeCurrent() call"
This reverts commit bf9c815263455403e587a9d2b0fdb9fb8e964208.
Reason for revert: compile errors
https://ci.chromium.org/ui/p/chromium/builders/try/linux-chromeos-rel/1303510/overview
Original change's description:
> Not recreate Framebuffer for eglMakeCurrent() call
>
> Right now, in eglMakeCurrent() call, ANGLE always release the
> default framebuffer object associated to the current context,
> and create a new default framebuffer object for the new current
> context. It impacts chrome performance, since chrome call
> eglMakeCurrent() a lot. With this CL, the default framebuffer
> will be created with gl::Context. When the surface is changed
> by eglMakeCurrent() call, ANGLE will detach the previous surface
> from the associated framebuffer, and attach the new surface to
> the next current context's default framebuffer.
>
> Bug: chromium:1336126
> Change-Id: Iaa747669250ae250245db383a716b4634df59ea4
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827751
> Commit-Queue: Peng Huang <penghuang@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Bug: chromium:1336126
Change-Id: I7c07f62236f57523b29c536c04f9a9de79da2f4b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3877404
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Peng Huang <penghuang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
fa6b6d17
|
2022-09-06T18:16:05
|
|
Fix the SYNC-HAZARD error message format
We should replace the underscore with dash
in the error message, instead of the other way.
Bug: angleproject:7633
Change-Id: I3e7ad756e3bca6af0d62bfbc7ef081a460a2aa97
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3877403
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
91deedba
|
2022-09-02T00:02:19
|
|
Vulkan: Use VK_EXT_pipeline_robustness
In this change, the global robustBufferAccess feature is disabled.
Using this extension, this behavior is enabled for pipelines created for
programs built in GL contexts that have robustness enabled.
Includes a fix for transform feedback emulation where pausing transform
feedback didn't actually stop it from writing output (and overrunning
the empty buffer). Until now, the perpetual robustBufferAccess had
worked around this.
Bug: angleproject:5845
Change-Id: Ib413dff5435e9d1f482bea1d1d0f20c5f09ad8a5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3872507
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9c17232a
|
2022-09-02T16:05:48
|
|
Vulkan: Make robustness affect all of share group
Since contexts in a share group can share their program, if any context
in the share group is robust, programs in all contexts in the share
group need to be created with robustness in mind.
This fixes the situation when the programs are created after a robust
context has been created. However, if programs are created first, then
a robust context is added to a share group, there remains a bug where
the old programs aren't recreated to have robust behavior.
Bug: angleproject:7629
Change-Id: I4922091962a32ca75a6107343df0cd87e5e9592d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3872506
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
2ede53ec
|
2022-09-06T14:18:15
|
|
Replace underscores with dashes in SYNC-HAZARD messages
Add a temporary check on both dash and underscore
SYNC-HAZARD messages until Chromium has rolled with
the same vulkan-deps change.
Bug: angleproject:7633
Change-Id: I30b8f60bc2d4e87b7b1d6b27601f67258f7d0d69
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3877667
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ff46a03a
|
2022-08-25T20:19:02
|
|
Vulkan: Use VK_EXT_multisampled_render_to_single_sampled
Previously, the GOOGLEX version was used. The EXT version is favored
now.
Bug: angleproject:4836
Change-Id: Ie41d750b0729f0b3a14d1937fbf2dd386b65dd59
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3857993
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9aeb6311
|
2022-08-29T10:50:01
|
|
Revert "Extra buffer logging/checking on Android Cuttlefish"
This reverts commit 5cb05e0482ed1a2c4048f76c1a7fd444849410d8.
The root cause was found, and this extra logging/checking is no longer
needed.
Bug: b/236098131
Bug: b/245339714
Change-Id: Ibefbeec30be974788789650f2dc86696a6eba11a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3862408
Auto-Submit: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jason Macnak <natsu@google.com>
Commit-Queue: Jason Macnak <natsu@google.com>
|
|
bf9c8152
|
2022-08-17T13:40:33
|
|
Not recreate Framebuffer for eglMakeCurrent() call
Right now, in eglMakeCurrent() call, ANGLE always release the
default framebuffer object associated to the current context,
and create a new default framebuffer object for the new current
context. It impacts chrome performance, since chrome call
eglMakeCurrent() a lot. With this CL, the default framebuffer
will be created with gl::Context. When the surface is changed
by eglMakeCurrent() call, ANGLE will detach the previous surface
from the associated framebuffer, and attach the new surface to
the next current context's default framebuffer.
Bug: chromium:1336126
Change-Id: Iaa747669250ae250245db383a716b4634df59ea4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827751
Commit-Queue: Peng Huang <penghuang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
8454b625
|
2022-09-06T12:51:16
|
|
Roll vulkan-deps from c4e128e05c38 to e3fa08b13e32 (12 revisions)
Compare SYNC-HAZARD messages against both '_' and '-' variants during
transition, needed after
https://github.com/KhronosGroup/Vulkan-ValidationLayers/commit/451e8c2848ff67d51d3feedad8c728c2cb45cd58
https://chromium.googlesource.com/vulkan-deps.git/+log/c4e128e05c38..e3fa08b13e32
Changed dependencies:
* glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/69ae9e7460..a53aa3e94f
* spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/c93ee9261e..210a800130
* spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/4c456f7da6..5f45f793ae
* vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/efe6aa4f3f..fdfdef6d1b
* vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/088cfe8047..1ef7bc1547
* vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/0a39833305..b50285d33d
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC ianelliott@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: angleproject:7633
Change-Id: Ib994a8819b7b8bb61f4fa2c70ed838be55ac7e10
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3871554
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ba721efd
|
2022-09-02T17:51:56
|
|
Vulkan: FIx Android AHB format mapping
If the implementation returns VK_FORMAT_UNDEFINED as the format, choose
the format based on native pixel format.
Bug: b/223456677
Change-Id: Ifc8fd1f72a4fad7279473a300c11cd6597c32a70
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3872509
Reviewed-by: Jason Macnak <natsu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3960e63b
|
2022-08-09T14:02:59
|
|
Infra: Enable angle_deqp_gl46_tests on SwiftShader
This change disables the WGL frontend by default on
Windows when building ANGLE for desktop GL. This
is because the WGL frontend is not yet fully
implemented and it causes some of the trace tests to
fail. The WGL frontend should be enabled by default on
windows when more of its functionality gets implemented.
Test: angle_deqp_gl46_tests --use-angle=swiftshader
Bug: angleproject:7566
Bug: angleproject:7628
Change-Id: I69c695eb56d3858f715eeb86d28cc805e25c60eb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3858142
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
ba65030c
|
2022-09-01T18:50:48
|
|
Fix adding imageless FBO to enabled extensions
Bug: angleproject:7553
Change-Id: I1459e66f59804ab8a263d3615a87f4307fe33b06
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3869620
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
d9f5b2f8
|
2022-08-31T13:00:00
|
|
Vulkan: Dont skip texture upload if only color space differs
sRGB color space does not affect actual data storage, it only affects
Image data interpretation. We should still allow data copy if the only
format difference is sRGB bit.
Bug: b/205995945
Change-Id: Id72b9aae626ee0d1863cde17388f1c1e82f321f8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3864050
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ae7481a6
|
2022-08-31T10:56:58
|
|
Move entry point classifier helpers into angle_common.
These were previously hidden in DebugAnnotatorVk. They're also
useful in the frame capture code.
Bug: angleproject:7621
Change-Id: If443e41787019925e84f6a108809af1db220b714
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3868930
Auto-Submit: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
f2f17bad
|
2022-08-31T17:40:22
|
|
Vulkan: Fix Framebuffer Fetch Test Failure
If permanentlySwitchToFramebufferFetchMode is enabled,
mIsInFramebufferFetchMode will remain true.
If we switch from a non-framebuffer fetch program to
a framebuffer fetch program, the condition
if (mIsInFramebufferFetchMode != hasFramebufferFetch)
doesn't hold, and we will miss setting the dirty bit
in OnColorAccessChange, and miss updating the color
attachment resourceAccess value.
This causes test failure when running the test
FramebufferFetchES31.DrawNonFetchDrawFetchInStorageBuffer_Coherent.
The color attachment resourceAccess remains unused after
the first draw call that uses a program which doesn't read/write
from the framebuffer color attachment. The second draw call uses
a program that needs to read from the framebuffer color attachment,
however, since the color attachment access value is unused, it will
use LoadOpNone, making the color attachment value not availble for
the shader program to read from.
This change fixes the failure by setting the bit dirty
whenever the program uses framebuffer fetch mode, given the condition
that feature permanetlySwitchToFramebufferFetchMode is enabled.
Bug: angleproject:7583
Change-Id: I240381766d75f6e73ea9c20503b2344cc816cbc7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3864127
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
c6ad305c
|
2022-08-25T11:53:46
|
|
Vulkan: No depth load/store if depthFunc==ALWAYS/NEVER && mask==FALSE
If depthFunc is set to always or never pass with depthMask disabled, and
the entire render pass is drawing with that state, then there is no need
to load or store depth value.
Bug: b/243711628
Change-Id: I71d470bda49abc48a4a6e20895b7e056c33fa33a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3858143
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
f602278c
|
2022-08-30T10:31:07
|
|
Vulkan: Parse human readable ARM driver versions.
Update two workarounds to be gated on driver versions with fixes.
Bug: angleproject:7370, angleproject:7556
Change-Id: I78e1cebb756b06c7fc926fb9ab27357cf3c7ce4f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3863162
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
e9cb83dd
|
2022-08-27T06:20:20
|
|
Vulkan: disable EGL_EXT_image_gl_colorspace
sRGB texture upload for AHB backed external storage is broken. Disable
EGL_EXT_image_gl_colorspace until that gets fixed.
Bug: b/205995945
Test: SingleLayer_ColorTest_GpuSampledImageCanBeSampled_*_UNORM_sRGB
Change-Id: I1be51f9f3528cd864709cf48ab0d949bb23cdfca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3859694
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Yiwei Zhang <zzyiwei@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
c8b0caf1
|
2022-08-29T15:08:22
|
|
Vulkan: Don't try to guess format mapping
Either the implementation should tell us what Vk format it is, or it
returns VK_FORMAT_UNDEFINED and we should take the "YUV" path,
regardless of how un-YUV-like the format ID enum suggests it is.
Bug: b/223456677
Change-Id: I979e9d19c466005350aeb8f88f2e0c092b545d51
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3864024
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: Lingfeng Yang <lfy@google.com>
|
|
ac19624e
|
2022-08-26T21:29:53
|
|
Vulkan: Handle suboptimal like out-of-date
If out-of-date can recreate the swapchain, so can suboptimal. Do so to
better support window resizing on desktop. Note that on Android this
was already being done.
Bug: angleproject:7615
Change-Id: I3d1ce8ca45b002e5382e31fda003f02753a2c94e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3859409
Reviewed-by: Steven Noonan <steven@valvesoftware.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ba4b6913
|
2022-08-23T09:34:27
|
|
Fix data race in BlobCache
* Re-enable shader cache feature
* Improve BlobCache thread-safety test
* Improve EGLProgramCacheControlTest to not check the size
of the BlobCache, since the shader cache interferes with this.
* Include the arguments to ConstructCompiler() and Compile()
in the key hash for the shader cache.
Bug: angleproject:7036
Change-Id: Ied4e11f9160552f2f9358d99b5656315239ba856
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3851161
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Eddie Hatfield <eddiehatfield@google.com>
|
|
cb618b3d
|
2022-08-25T13:30:26
|
|
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>
|
|
2d48a370
|
2022-08-26T11:11:19
|
|
Vulkan: Support passthrough of colorspace attributes
On Android, the EGL loader supports and implements the necessary
functionality for the following colorspace extensions -
1. EGL_EXT_gl_colorspace_display_p3
2. EGL_EXT_gl_colorspace_display_p3_linear
3. EGL_EXT_gl_colorspace_display_p3_passthrough
4. EGL_EXT_gl_colorspace_scrgb
5. EGL_EXT_gl_colorspace_scrgb_linear
Add support for "EGL_ANGLE_colorspace_attribute_passthrough"
extension that allows vendors that support wide color gamut
to passthrough colorspace attribute values to the underlying
Vulkan implementation to be used during VkImage creation.
Bug: angleproject:7319
Test: PbufferColorspaceTest.CreateSurfaceWithColorspace*
Change-Id: Ibd78bb5fea4ede394f4dc5027c1d4a730746f2ee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3855048
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a69e53c5
|
2022-08-22T16:23:08
|
|
Vulkan: Move vertex stride assert
Bug: fuchsia:107106
Change-Id: I82c34b5c450f39f2869c8fd6ae938b2cdfc5af13
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3846404
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b9bc09cb
|
2022-08-24T13:15:45
|
|
Vulkan: Always enable mVirtualBlockMutex
Right now this is only enabled if async queue submission is enabled. I
think this is a bug that we have to always enable the lock, since
suballocation destroy could come from any threads.
Bug: b/236098131
Change-Id: I0fda61e5db3ff60f776b8d4917a9f10dafed6b1a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3855203
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
aa2a558e
|
2022-08-23T09:47:02
|
|
Vulkan: Add support for setting timestamp surface attribute
On Android the EGL wrapper handles most of the functionality required
by EGL_ANDROID_get_frame_timestamps. However if for some reason the
swapchain is recreated, the timestamp state would be lost resulting in
stuttering.
Introduce EGL_ANGLE_timestamp_surface_attribute extension that adds
support for toggling the EGL_TIMESTAMPS_ANDROID attribute of a surface.
Cache this state and recreate the swapchain accordingly.
Bug: angleproject:7489
Test: EGLSurfaceTest.TimestampSurfaceAttribute*
Test: dEQP-EGL.functional.get_frame_timestamps*
Change-Id: I3660f7137c006d904164d243a682a4ff520eabd8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3753396
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
f10625d3
|
2022-08-11T14:32:45
|
|
Enable Robustness Extension on ARM
These dEQP tests failed due to Robustness was disabled:
dEQP-GLES31.functional.debug.negative_coverage.callbacks.buffer#readn_pixels
dEQP-GLES31.functional.debug.negative_coverage.log.buffer#readn_pixels
dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer#readn_pixels
dEQP-GLES31.functional.debug.error_filters#case_12
dEQP-GLES31.functional.debug.error_groups#case_12
Re-enable the Robustness Extension on ARM to check if
mali driver supports GL_EXT_robustness extension now. If it does
we can enable the robustness feature in ANGLE so that the above
dEQP tests can pass.
Bug: angleproject:7351
Bug: angleproject:4823
Bug: angleproject:2330
Change-Id: Ifce20e410607f2d4b6b3b55235081fef690c983c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3828441
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b32091b4
|
2022-08-17T16:00:02
|
|
Vulkan: Bug fix related to pre-rotation code
Account for possiblity that the draw and read surfaces are different
when querying pre-rotation information. When updating
mCurrentRotationDrawFramebuffer and mCurrentRotationReadFramebuffer,
make sure to query pre-rotation information from current draw and
read surfaces.
Bug: angleproject:7581
Test: FramebufferTest_ES3.BlitWithDifferentPreRotations*
Change-Id: Ibe7a2450907e53aa5c33e13cff00059ab2f6602e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3836491
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
952d6e8f
|
2022-08-21T21:51:03
|
|
Vulkan: Workaround ARM driver bug with dynamic vertex strides
According to ARM, vkCmdBindVertexBuffers2EXT is broken when more than
one attribute binding is involved. In this change, the vertex strides
dynamic state is avoided altogether on ARM.
Bug: fuchsia:107106
Change-Id: Ie41fc07037083214d2dc99e4ed062485384911c5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3844640
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bd1484f3
|
2022-08-22T13:53:35
|
|
Temporarily disable shader caching feature
This will be re-enabled when the BlobCache test flakes are resolved.
Bug: angleproject:7036
Change-Id: I38829ffcd5869679bf65017475e8a10d165f369b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3846403
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Eddie Hatfield <eddiehatfield@google.com>
Reviewed-by: Lingfeng Yang <lfy@google.com>
|
|
caf2b427
|
2022-07-01T18:17:30
|
|
Vulkan: Add feature to use PASS_THROUGH for EGL_NONE color spaces
This is a temporary solution to fix media tests until ANGLE
also has the ability to query the "preferred color space" from
Surfaces.
Bug: b/235995022
Test: Launch Cuttlefish with this change and the feature enabled
with aosp/2167231
Test: cts -m CtsMediaCodecTestCases
-t android.media.codec.cts.EncodeDecodeTest
Test: cts -m CtsMediaCodecTestCases
-t android.media.codec.cts.DecodeEditEncodeTest
Change-Id: I17d1a2c1701cd1707b34f5bf2f222e9ad57c7a61
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3770291
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Commit-Queue: Jason Macnak <natsu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Lingfeng Yang <lfy@google.com>
|
|
4330a827
|
2022-08-19T02:59:26
|
|
Reland "Vulkan: Use VK_EXT_primitive_topology_list_restart"
This reverts commit 29d18b303189bf31b3af3a85c3df6013114eebc8.
Reason for revert: Fixed VVL suppressions not working
Original change's description:
> Revert "Vulkan: Use VK_EXT_primitive_topology_list_restart"
>
> This reverts commit e79c9cd63053b6cb7c33235f3a0a0310255df073.
>
> Reason for revert: Causing timeouts on some headless tests: anglebug.com/7579
>
> Original change's description:
> > Vulkan: Use VK_EXT_primitive_topology_list_restart
> >
> > From ANGLE's point of view, there is nothing to do with this extension
> > other than enable a feature that silences a validation error.
> >
> > Bug: angleproject:3832
> > Change-Id: I094343d09c322e2848a65a5bc775d0f21388fb46
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3562380
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> > Reviewed-by: mohan maiya <m.maiya@samsung.com>
>
> Bug: angleproject:3832
> Change-Id: Ifec7c9eaea1d3a949f15e0b6d868742f53cf8377
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3838391
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:3832
Change-Id: Ia79b1f3b716f0df1991f605704135b4af48fb639
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3841366
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
29d18b30
|
2022-08-18T18:18:04
|
|
Revert "Vulkan: Use VK_EXT_primitive_topology_list_restart"
This reverts commit e79c9cd63053b6cb7c33235f3a0a0310255df073.
Reason for revert: Causing timeouts on some headless tests: anglebug.com/7579
Original change's description:
> Vulkan: Use VK_EXT_primitive_topology_list_restart
>
> From ANGLE's point of view, there is nothing to do with this extension
> other than enable a feature that silences a validation error.
>
> Bug: angleproject:3832
> Change-Id: I094343d09c322e2848a65a5bc775d0f21388fb46
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3562380
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: mohan maiya <m.maiya@samsung.com>
Bug: angleproject:3832
Change-Id: Ifec7c9eaea1d3a949f15e0b6d868742f53cf8377
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3838391
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
955adb77
|
2022-08-12T10:14:48
|
|
Cache compiled shader
By storing the compiled shader in the blob cache, the time to
recompile the same shader is reduced.
Based on work by <hckim.kim@samsung.com>
Bug: angleproject:7036
Change-Id: I884ae40e715c49a9ccd12903012e8327811e3557
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3808235
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
213a1ee6
|
2022-08-16T12:44:35
|
|
Vulkan: Enable VK_EXT_primitives_generated_query
Added a test to make sure PGQ works with indirect draws too.
Bug: angleproject:5430
Change-Id: Ic91e11906ca34c4f9a50f3442709e544f7f6744c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3826165
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
e79c9cd6
|
2022-03-30T23:06:54
|
|
Vulkan: Use VK_EXT_primitive_topology_list_restart
From ANGLE's point of view, there is nothing to do with this extension
other than enable a feature that silences a validation error.
Bug: angleproject:3832
Change-Id: I094343d09c322e2848a65a5bc775d0f21388fb46
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3562380
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
|
|
ad6513fe
|
2022-08-16T16:06:19
|
|
Unconditionally enable EGL_ANGLE_iosurface_client_buffer on macOS
EGL_ANGLE_iosurface_client_buffer does not depend on
VK_EXT_external_memory_host. Locked IOSurface memory gets copied to/from
staging images instead of being imported as device visible host memory.
Bug: chromium:1352481
Change-Id: I904e6af53e169ef04446181de91db6f3cdc31530
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3826164
Auto-Submit: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Alexis Hétu <sugoi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|