|
84c77437
|
2024-07-15T16:41:17
|
|
GL: Disable GL_KHR_blend_equation_advanced on various devices
Intel desktop OpenGL drivers fail tests for advanced blend. Skia also
disables usage of this extension on Intel drivers.
Disable on older Qualcomm and ARM devices following Skia's blocklists.
Bug: angleproject:42267098
Change-Id: I7642017d06e11ad0651fba6f1ec5cc3f589700ec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5709950
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
24322b7d
|
2024-06-28T20:10:34
|
|
Vulkan: feature for cached non-coherent for dyn/stream buffers
On platforms lacking cached coherent memory, ANGLE falls back to
non-cached coherent memory for dynamic/stream buffers. This impacts
CPU readback performance.
Add VK feature preferCachedNoncoherentForDynamicStreamBufferUsage. When
enabled, ANGLE prioritizes cached non-coherent memory for these
buffers.
Enable this feature for Intel Meteorlake SOCs.
Bug: b/347601787
Change-Id: If62af9f3df57c0bcebf18af747cac56e45f93ea7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5667457
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a68351cb
|
2024-07-02T15:57:02
|
|
vulkan: add workround for speical shadowmap at intel device.
this is a dirty quick patch for game TOA at intel device.
at game TOA, we saw a special combination could cause
the device lost for intel device. the draw call have
2d shadow map texture. if this draw call followed any other drawcall
it will cause device lost, the underhood root cause still unknown.
it may be related to combined depth stencil layout or any other case.
will try to use separate depth stencil image layout to try.
Bug: b/349489248
Change-Id: I4f63fff389b8059d68d27aad387a2fd5888d4ce3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5672966
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
|
|
0ccc018e
|
2024-06-20T10:20:08
|
|
Reland GL: Avoid calling glBindFragDatalocationIndexed on Qualcomm
Track if the output location and index came from a layout qualifier
or from a call to glBindFragDataLocation[Indexed] and only call
glBindFragDataLocationIndexed in the latter case. Re-binding a
location that was already specified in the shader is not allowed.
Qualcomm can fail when trying to bind locations using the API when
the output variable is an array or uses a non-zero index. Only
call glBindFragDataLocationIndexed when the user specifically uses
it to avoid failed links when all outputs should be implcitly
assigned.
Assign the ProgramOutput::pod::index field when doing output assignment
to mirror how the location is assigned.
Bug: angleproject:42267082
Change-Id: I72cdb73dd4c5edea4ad1229ca75c0c7926344d1f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5645123
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
48969c95
|
2024-05-31T16:34:07
|
|
GL: Implement QCOM_tiled_rendering
Bug: angleproject:343900918
Change-Id: I01612e11795d7aa8ee20f6e9bd5ef62fe40e2910
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5588630
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
05801537
|
2024-06-13T13:35:05
|
|
Vulkan: Add feature for coherent blend advanced op
This change will add features that will be used in
the follow-up CL.
* Added the following feature to the Vulkan backend:
* supports_blend_operation_advanced_coherent
* Added the following feature to the renderer:
* mBlendOperationAdvancedFeatures
* It will be used to query advancedBlendCoherentOperations
from the physical device.
Bug: angleproject:42262258
Change-Id: I2949002d053700e89d92358d6e7c80c714ea36ee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5634380
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
800ca8d3
|
2024-06-19T21:04:11
|
|
Revert "GL: Avoid calling glBindFragDatalocationIndexed on Qualcomm"
This reverts commit e768aed37e77dfcba0fe8ec7027348ade2069c85.
Reason for revert: Breaks WebGL tests.
Original change's description:
> GL: Avoid calling glBindFragDatalocationIndexed on Qualcomm
>
> Track if the output location and index came from a layout qualifier
> or from a call to glBindFragDataLocation[Indexed] and only call
> glBindFragDataLocationIndexed in the latter case. Re-binding a
> location that was already specified in the shader is not allowed.
>
> Qualcomm fails to bind any location that is not specified with a
> layout qualifier. Skip tests that do this behaviour and log warnings
> that the driver is unable to handle this case.
>
> Assign the ProgramOutput::pod::index field when doing output assignment
> to mirror how the location is assigned.
>
> Bug: angleproject:42267082
> Change-Id: Icdf83bb93f63a6375b5a6062690e53905c9ffe71
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5415796
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Bug: angleproject:42267082
Change-Id: Ifb866878aa6489b809ba6db4152ea5942274dc45
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5641895
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1160fda7
|
2024-06-17T15:27:28
|
|
GL: Re-enable sRGB and BGRA8 extensions
GL_EXT_sRGB_write_control and GL_EXT_texture_format_BGRA8888 were
disabled on all of Android as a workaround for Nexus5X driver bugs.
Scope the disablement to Qualcomm only.
Bug: angleproject:347724909
Change-Id: I99d55ee12a98c1b46613be4aa92e92a0e576a82b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5637249
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
e768aed3
|
2024-05-28T15:45:50
|
|
GL: Avoid calling glBindFragDatalocationIndexed on Qualcomm
Track if the output location and index came from a layout qualifier
or from a call to glBindFragDataLocation[Indexed] and only call
glBindFragDataLocationIndexed in the latter case. Re-binding a
location that was already specified in the shader is not allowed.
Qualcomm fails to bind any location that is not specified with a
layout qualifier. Skip tests that do this behaviour and log warnings
that the driver is unable to handle this case.
Assign the ProgramOutput::pod::index field when doing output assignment
to mirror how the location is assigned.
Bug: angleproject:42267082
Change-Id: Icdf83bb93f63a6375b5a6062690e53905c9ffe71
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5415796
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
6ac37446
|
2024-06-17T15:38:09
|
|
Vulkan: Add feature for VK_KHR_maintenance5
This extension expands the pipeline flag bits, one of which is needed
for VK_EXT_legacy_dithering v2 for dynamic rendering.
Bug: angleproject:42267038
Change-Id: I45f2c47fbd016f60c3e52fda80d148d9f147bd71
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5637154
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
65f8dc8e
|
2024-06-12T17:01:54
|
|
Vulkan: Remove traces of VK_MSRTSS_GOOGLEX
Devices that shipped this unreleased extension should have long been
updated to VK_MSRTSS_EXT
Bug: angleproject:4836
Change-Id: I23736ebf28afd4a6f3b5b0d5a6417b3e7564c293
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5627575
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
15c182f9
|
2024-06-11T09:47:07
|
|
Vulkan: remove deferFlushUntilEndRenderPass feature, always on
This only applies to Qualcomm chipsets, the feature was already enabled
for all other devices.
It was previously causing a manhattan 3.0 perf regression on some
Qualcomm devices, but my tests on S24 both with ANGLE trace manhattan_31
and running gfxbench manually do not show any obvious regression. It was
also not expected that this would result in a regression. As we do not
aim to improve perf on older devices, removing the feature altogether
so that defers are always enabled.
This change resulted in a change in gold images on these traces
on pixel 4 bots:
pokemon_masters_ex - text was missing and now is rendered
street_fighter_iv_ce_frame86 - shadow was missing and now is rendered
So it looks like the feature may have been working incorrectly.
Bug: b/346378481
Change-Id: I2b0d15b89e11c67dea7c316a42bc807441c43b0a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5622115
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
c519a4a6
|
2024-06-10T15:56:36
|
|
Vulkan: Add dynamic rendering features
Bug: angleproject:42267038
Change-Id: Ic2cdc277f6bb1bb3ce273a866bdb2ce6f5930355
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5617653
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
7d65c945
|
2024-06-06T09:01:40
|
|
Vulkan: Limit SSBO max size to 256MB on older Mali GPUs
Bug: angleproject:345244067
Change-Id: I18ff10198fc3db3a82a0897319fba5fb200a2a05
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5603109
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6aad8a89
|
2024-05-31T14:46:28
|
|
Vulkan: Remove combineAllShadersInPipelineLibrary
If we have VK_NULL_HANDLE as the descriptor set layout handle for both
pre-rasterization and fragment shader subset pipelines
we run into VVL - VUID-VkGraphicsPipelineCreateInfo-pLibraries-06681
Need to work around this by having the renderer store a placeholder
descriptor set layout handle for an empty DescriptorSetLayoutDesc
that can be reused across all contexts
Bug: angleproject:8677
Tests: EGLMultiContextTest.NonSharedContextsReuseDescritorSetLayoutHandle*
Change-Id: I22e7f39c497d7f668afe7cb26690f6a9de49831b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5587990
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9620d4d3
|
2024-05-23T16:12:52
|
|
Vulkan: Emit SPIR-V 1.4 where available
In preparation for optimizations possible for SPIR-V 1.4. This change
makes ANGLE output SPIR-V 1.4 if supported, and SPIR-V 1.3 otherwise.
It handles the following differences between the two versions:
- OpEntryPoint in SPIR-V 1.4 includes all global variables, as opposed
to SPIR-V 1.3 where only the Input and Output variables are listed
- Storage buffers use a dedicated storage class in SPIR-V 1.4
Bug: angleproject:342316794
Change-Id: I157ed46449ff2d0f14d284b883b4ddc1b4b46fd1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5565224
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e29d643e
|
2024-05-07T13:40:18
|
|
Vulkan: Fix missing per-present-mode query
... if VK_EXT_surface_maintenance1 is supported but
VK_EXT_swapchain_maintenance1 isn't. The code mistakenly made the
appropriate query conditional to the presence of swapchain_maint1
instead of surface_maint1. On devices where surface_maint1 was
available but swapchain_maint1 wasn't, this caused a VVL error that is
now fixed.
Bug: angleproject:8680
Change-Id: Ide9a87f0e50887572f693d741d5476361320ea19
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5522756
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
950afec4
|
2024-04-30T09:38:43
|
|
Vulkan: Add VK_KHR_synchronization2 feature flag
This CL adds VK_KHR_synchronization2 feature flag and enables the
feature if exists.
Bug: b/336844257
Change-Id: I201768e32c997125472c6a005c4635141441451e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5499379
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
4929e1df
|
2024-04-24T14:09:59
|
|
Vulkan: Add feature flag for using event for image barrier
This is preparation CL that adds a feature flag for using VkEvent for
image barriers.
Bug: b/336844257
Change-Id: I01a7d779e16e2c259ddd05dca7338b3b18c30ba7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5484708
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
acb8b33f
|
2024-04-16T14:08:34
|
|
Vulkan: Enable 8/16 bit storage buffer extensions
The support for 8bit and 16bit storage buffers are exposed via
VK_KHR_{8,16}bit_storage vulkan extensions. Add checks for these
extensions and enable them if present.
The changes in FeaturesVk_autogen.h in the change are generated by
running the run_code_generation.py script.
Bug: angleproject:8676
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Change-Id: Idcda416e3eb6a735e021cd5bb0a182af341e9a16
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5491781
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b74de557
|
2024-04-24T14:35:17
|
|
Vulkan: Add a feature related to shader subsets
On vendors that support VK_EXT_graphics_pipeline_library the shaders
subset of the pipeline can either be combined into a single pipeline
or can be decoupled into separate pipelines. Upcoming optimizations
require the ability to distinguish between the two options.
Add a feature declaring support for only the combined variant.
Bug: angleproject:8601
Change-Id: I44fb828d972ca6ebba5549819ce8e41645683e14
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5484673
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2905a6a6
|
2024-04-19T15:09:41
|
|
Vulkan: Fix read pixel to cached non-coherent memory
The bug here is that when we use cached non-coherent memory for image
read, we must wait until DMA to finish before calling invalidate().
Otherwise CPU pre-fetching might end up populate the cache line again
with old data between invalidate and DMA and causes CPU reads get the
stale data from cache. This CL moves invalidate() call after we wait for
copy to finish and removes requireCachedBitForStagingBuffer feature
flag.
Bug: b/335937565
Bug: b/315836169
Bug: b/324953979
Change-Id: Ie8a1854e17a5fe9c534c5102b2e0d51bd35c131a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5468597
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
d55464ff
|
2024-04-04T14:13:02
|
|
Vulkan: Remove the supportsDepthClipEnable feature
This feature is unused since:
https://chromium-review.googlesource.com/c/angle/angle/+/4545084
Bug: angleproject:3970
Change-Id: I78acfda80d4ae04d1387a452e9f52a55a4298a4c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5426530
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
13829f20
|
2024-03-26T23:03:12
|
|
Vulkan: Optimize depth/stencil resolve with glBlitFramebuffer
Like color resolve, depth/stencil resolve is now also possibly done by
modifying the render pass and attaching a depth/stencil resolve
attachment.
Bug: angleproject:7551
Change-Id: I045e3875e24006d2473a55b6c3856dd768fe8b84
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5398004
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
76636ddb
|
2024-04-04T15:39:08
|
|
CL/VK: Update missing reflection ops & DS creation
Adding CLProgramVk routine to allocate DS.
Also adding reflection parsing support for
WGS IDs and PushConstantGlobalSize.
Additionally, we now check VK implementation
if non-semantic reflection data (in SPIR-V) is
supported. If not, we strip that data from binary
(via vk_feature check).
Bug: angleproject:8631
Change-Id: Ife02867c7c30b919abf663865adc92858e1bff8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5421574
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
dc643d9b
|
2024-04-01T15:59:46
|
|
Vulkan: add feature control for client buffer merge
add feature control for client attribute buffer
merge. default is off to reduce memeory usage for
some application.
Bug: b/328301788
Change-Id: I5bfd39fb1ea656ebb29bd2dc21726b60bbc1a8d2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5410942
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
4d317b52
|
2024-03-22T15:48:51
|
|
Vulkan: Add MSRTSS preferred usage for tex init
The image create flag related to multisampled render to single-
sampled was used when this feature flag was enabled. However, this
could lead to some platforms allocating extra memory for the image,
even if the image did not use this feature.
In this change, a new feature is added regarding whether to prefer this
flag from the start. If disabled, ANGLE will only use this bit for the
texture if it is actually bound to an MSRTT framebuffer object (through
FramebufferTexture2DMultisampleEXT()).
* Added a new feature: preferMSRTSSFlagByDefault
* If enabled, the MSRTSS is used for all image inits.
* (TextureVk::initImage())
* Otherwise, it will create the image without the flag at first.
* Added member to texture frontend to track if the texture has been
bound to an MSRTT framebuffer.
* mHasBeenBoundToMSRTTFramebuffer
* During TextureVk::syncState(), if the image without the MSRTSS bit
is bound to an MSRTT framebuffer, it is recreated using the
MSRTSS flag.
* Checked in respecifyImageStorageIfNecessary().
Bug: b/329911999
Bug: angleproject:8622
Change-Id: I5e7d43e3828ae272441d65b2be35d09b23b68f84
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5402978
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
ad013650
|
2024-03-22T03:42:44
|
|
Revert "Rename LinkSubTask -> PostLinkTask"
This reverts commit 00eb6edba074a22389b09990ab856adfd417dd64.
Reason for revert: Sub tasks are not actually post-link tasks for all
the other backends (other than Vulkan), but they are a real part of
the link job.
Original change's description:
> Rename LinkSubTask -> PostLinkTask
>
> This is a renaming change, no behavior changes are expected.
>
> Bug: angleproject:8297
> Change-Id: I734c7959f5ed6db2447853cc6f6256e3c8e86213
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5382224
> Commit-Queue: mohan maiya <m.maiya@samsung.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:8297
Change-Id: Iaebf9d165d810344bfc524042206ca427d270034
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5386432
Reviewed-by: Shahbaz Youssefi <syoussefi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
00eb6edb
|
2024-03-20T06:49:38
|
|
Rename LinkSubTask -> PostLinkTask
This is a renaming change, no behavior changes are expected.
Bug: angleproject:8297
Change-Id: I734c7959f5ed6db2447853cc6f6256e3c8e86213
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5382224
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
21d124c4
|
2024-03-16T10:06:02
|
|
Vulkan: Remove support for pipeline cache control
For current and upcoming uses for pipeline caches the benefits of having
an externally synchronized pipeline cache is minimal at best. Remove
support for that and have all caches be internally synchronized by the
Vulkan driver.
Bug: angleproject:8601
Change-Id: Ic5d9740934641f61b527094aa301e27302b02a57
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5375102
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c3fdc811
|
2024-03-14T14:20:43
|
|
Raise the WebGL texture size limit on Android >= 14
The previous limit of 4096 is overly restrictive for newer devices
that can have screen sizes close to or greater than 4096.
Bug: angleproject:8611
Change-Id: If453b7e0c6e2af218b65a631821b441330a50b69
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5370399
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
9bae5859
|
2024-03-13T10:55:18
|
|
Vulkan: Add blend factors to allow dithering to work
Previously, we had
- src: GL_SRC_ALPHA, dst: GL_ONE_MINUS_SRC_ALPHA
Now, this adds
- src: GL_ONE, dst: GL_ONE_MINUS_SRC_ALPHA
This showed up in app "com.inertiasoftware.justjigsaws".
Bug: b/328837151
Change-Id: I88208b1ed4dd050283d8d02cf31ccdcb3d02a444
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5369638
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
74af31ad
|
2024-02-28T00:00:00
|
|
GL: Add ClearsWithGapsNeedFlush workaround
Enabled on older Adreno drivers to avoid
clear/draw race conditions in certain cases.
Fixed: angleproject:8374
Change-Id: Ifc30f66ece562027ae4dd7672fcb121f91ec4696
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5335662
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0ed0de4f
|
2024-01-18T10:47:50
|
|
OpenCL/Vulkan: Add initial program build support
Introducing both clspv compiler lib integration,
and clBuildProgram support.
Internally we also add buildInternal() routine
to abstract compile, link, and build phases.
Output SPIR-V is also parsed internally via
parseReflection() so that we can extract
needed reflection information for CL runtime.
Bug: angleproject:8549
Change-Id: If0563f4bea7ed0e04a13ea7a46c125c811d9c2a2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5303564
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cdf6220c
|
2024-02-25T05:12:21
|
|
Reland "Vulkan: Feature addition for QCOM foveated rendering extensions"
This is a reland of commit 72cf9915f561ca6ca72fa4b6c84c36bba815bf29
In the reland, cache the sample counts as VkSampleCountFlags type
and clamp framebufferColorSampleCounts with kSupportedSampleCounts
Also evaluate supportsImagelessFramebuffer feature before evaluating
supportsFoveatedRendering
Original change's description:
> Vulkan: Feature addition for QCOM foveated rendering extensions
>
> Add a new vulkan feature gating support for QCOM foveated rendering
> extensions and cache shading rates and sample counts of Vulkan ICD.
>
> Bug: angleproject:8484
> Change-Id: Id2925541098a605749f93ad5a54c885f4a4a2c66
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5322317
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:8484
Change-Id: Ie831d27ecc0e1429a3fe365d7728f264496e234c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5328188
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a627dd89
|
2024-02-27T19:00:07
|
|
Revert "Vulkan: Feature addition for QCOM foveated rendering extensions"
This reverts commit 72cf9915f561ca6ca72fa4b6c84c36bba815bf29.
Reason for revert: Causing crashes on Win/NVIDIA
crbug.com/327027614
Original change's description:
> Vulkan: Feature addition for QCOM foveated rendering extensions
>
> Add a new vulkan feature gating support for QCOM foveated rendering
> extensions and cache shading rates and sample counts of Vulkan ICD.
>
> Bug: angleproject:8484
> Change-Id: Id2925541098a605749f93ad5a54c885f4a4a2c66
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5322317
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:8484
Change-Id: I45764d8119388fa2edb3e08825957fbc811b31a5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5328729
Auto-Submit: Brian Sheedy <bsheedy@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
72cf9915
|
2024-02-25T05:12:21
|
|
Vulkan: Feature addition for QCOM foveated rendering extensions
Add a new vulkan feature gating support for QCOM foveated rendering
extensions and cache shading rates and sample counts of Vulkan ICD.
Bug: angleproject:8484
Change-Id: Id2925541098a605749f93ad5a54c885f4a4a2c66
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5322317
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b7bacdb7
|
2024-02-15T11:14:21
|
|
GL: Generate mipmaps through draw calls on Pixel7/Pixel8.
Some patterns that use a texture as a framebuffer attachment and then
generate mipmaps on that texture multiple times cause context loss or
driver hangs.
Extend the sRGB mipmap generation to also generate mipmaps on non-SRGB
textures using draw calls and linear samplers to do the downsampling.
Bug: chromium:40279678
Change-Id: I19c6bf9c702ddf2c400ef03ff076fbd4cf15d285
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5297413
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e04b7c73
|
2024-02-17T10:42:56
|
|
Vulkan: Expand feature to enable sample usage for all AHBs
Rename forceSampleUsageForImageWithExternalFormat to
forceSampleUsageForAhbBackedImages and expand scope to force enable
VK_IMAGE_USAGE_SAMPLED_BIT usage flag for all AHB images irrespective
of the AHB usage requested by the app.
Bug: b/155487768
Change-Id: I81cc4b705339b6ff00d187faf37f66d1be1a2c8a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5304997
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3fdf576a
|
2024-01-26T14:37:42
|
|
Vulkan: Workaround Nvidia driver bug with OpSelect
Bug: angleproject:8503
Change-Id: I4bd2580056df3d970a1316d0dbeaaad7590aa947
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5237873
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
9318a143
|
2024-01-11T15:58:44
|
|
Add __asm__("") statements to loop bodies in MSL.
This prevents erasure of infinite loops during optimization passes.
Bug: chromium:1513738
Change-Id: I84a305b5e7fd824531d9e3ebae5496ddec030bac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5191166
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
341906d5
|
2024-01-22T10:19:25
|
|
Vulkan: Never delay device and queue selection
Previously, when multiple queue families where eligible, ANGLE delayed
the decision on which queue family to use and delayed device creation
until a window surface was created.
This assumption was never correct. The application may start rendering
to pbuffers or using EGL_KHR_surfaceless_context long before it creates
a window surface. So a queue may need to be chosen regardless of its
surface present capabilities. Once done, ANGLE has no mechanism to
change that queue should a window surface require a different queue.
This change drops the pretense to support multiple queue families
properly and makes ANGLE always choose the first graphics queue family
it encounters. So far, only MoltenVk seems to expose multiple graphics
queue families, and choosing the first one ultimately correct for the
purposes of presenting to a MacOS surface.
Bug: angleproject:8478
Change-Id: I8efbfe0c8036be5f9cee01eb657f83f85a4864fd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5225081
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
572323cc
|
2024-01-11T16:20:02
|
|
Fix program link after backend rejects program binary
If ANGLE believes the program binary is fine, it populates the program
executable. If the backend then rejects the program binary, the
executable was not reset. After the rejection, ANGLE proceeds to redo
the program link, in which case it fails in various ways (ASSERT
failures, incorrect data etc) as it tries to accumulate info on top of
the previous executable.
Bug: angleproject:8471
Change-Id: Ia4d626f5f9643c39a81062da3d5d58aa4c6be762
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5189152
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
295eece6
|
2023-12-26T17:28:04
|
|
Vulkan: Add feature to force enable sample usage
Add a feature that would force enable the
VK_IMAGE_USAGE_SAMPLED_BIT usage flag for an image with
external format, irrespective of the requested AHB usage.
Bug: b/155487768
Change-Id: Ie46012d6f905317cd42a69768b4d35b44db474c1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5153131
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
40f4de8f
|
2023-12-15T10:17:32
|
|
Vulkan: Ensure we use cached memory for readPixels stagingBuffer
Previous CL crrev.com/c/5112759 does not solve the performance issue for
ChromeOS. The reason is that on more recent intel GPU, there is no
hostVisibleCachedCoherent heap. When we allocate staging buffer, we
specify CachedCoherent as the preferredFlags instead of requiredFlags.
This means we still end up getting UncachedCoherent since VMA tries to
respect coherent bits as first priority. This CL Changes CachedCoherent
to CachedPreferCoherent, and made Cached as required bit, thus ensures
the memory allocated is cached. Since coherent bit may not be honored,
thus we have to call invalidate/flush (which underline implementation
will check the bit and early out if no need).
Somehow on ARM GPU using cachedNonCoherent staging buffer causing many
test failures, even though we do call invalidate() after allocation, and
tests pass on all other GPUs. It almost indicates ARM driver have a bug
with invalidate() that it is not doing expected. But before I can be
sure and fixed, I added feature bit to keep ARM the old behavior, which
uses UnCached memory for readPixels which should suffer the performance
as well.
Bug: b/315836169
Bug: b/310701311
Change-Id: I1eec6105ce74275faa893b0206be8470f0cde72f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5122318
Commit-Queue: Charlie Lao <cclao@google.com>
Auto-Submit: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3439e421
|
2023-12-15T11:37:53
|
|
Vulkan: Remove AHB workaround for camera app
This is now fixed in camera app main branch. The workaround is removed
here.
Bug: b/239181279
Change-Id: I782baf7a42a8c9a897f1947d8b2f6feba606ce29
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5126931
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6d9f0aee
|
2023-11-30T00:00:00
|
|
Metal: Ensure helper invocations when derivatives are used
Set sample coverage mask to ensure that
fragment shader helper invocations are
performed when derivatives are used.
Fixed the following tests on Apple silicon:
dEQP-GLES2.functional.texture.mipmap
.2d.projected.nearest_linear_repeat
.2d.projected.linear_linear_repeat
.cube.projected.linear_nearest
.cube.projected.linear_linear
dEQP-GLES3.functional.texture.mipmap
.2d.projected.nearest_nearest_mirror
.2d.projected.linear_nearest_clamp
.2d.projected.linear_nearest_repeat
.2d.projected.linear_nearest_mirror
.2d.projected.nearest_linear_repeat
.2d.projected.linear_linear_clamp
.2d.projected.linear_linear_repeat
.3d.projected.nearest_nearest_mirror
.3d.projected.linear_nearest_clamp
.3d.projected.linear_nearest_repeat
.3d.projected.nearest_linear_clamp
.3d.projected.nearest_linear_mirror
.3d.projected.linear_linear_clamp
.3d.projected.linear_linear_repeat
Fixed: angleproject:8443
Fixed: angleproject:7023
Change-Id: I13fc52532b94de098dcf3e9f5f02d48a6c8913c7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5089131
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
fb6b960c
|
2023-11-27T14:24:28
|
|
Remove GL_CHROMIUM_texture_filtering_hint
This was using an unregistered Vulkan extension to set the precision of
SwiftShader's internal filtering for the sake of Chrome. That's baked
in at build instead.
Bug: angleproject:8349
Bug: chromium:726075
Change-Id: I12849d2d29d99626f22a92ee9d74366f78658476
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5063344
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
edcfab40
|
2023-11-23T00:00:00
|
|
Metal: Implement textureCubeGrad transformation for AGX
Wrapped all affected built-in function calls
with helpers that transform derivative values.
Fixed all *.texturegrad.* dEQP failures on Apple silicon.
Fixed: angleproject:7021
Fixed: angleproject:8433
Change-Id: I16b023840ad267ab72d31fde3cb0fa7048e5310c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5071254
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
3680a5dc
|
2023-11-17T13:51:07
|
|
Vulkan: Let program warmup continue passed link
The warmup task does not actually affect the link results, so there is
no reason to wait for it when the application queries the link status.
This change allows the warm up task to continue in parallel until the
program is used at draw time. This allows the warm up to be more
efficient when the link itself is not parallelized.
For applications that create programs in the middle of every frame, it's
still likely best to disable warm up (as the following immediate draw
will already effectively do the warm up).
Note that currently the warm up code in the Vulkan backend is not
completely thread-safe, and so the program still blocks on that task
before the first draw can happen (or the program is modified in any
way).
Bug: angleproject:8417
Change-Id: I0877fef39a0585c3279e32699ce817d4643d7cd6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5037538
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d842f3db
|
2023-11-29T06:53:58
|
|
Vulkan: add a disableSeparateShaderObjects feature
Dota Underlords uses one PPO and keeps swapping the attached program.
Though we get cache hit, the hundreds pipeline creation calls still
amount to non-trivial CPU overhead via ANGLE. The use of SSO has been
disabled by the app in certain cases, and this feature is added to
support entirely disabling SSO in ANGLE on all Vulkan backend impls.
Bug: b/309028728
Test: Dota Underlords easily hits target FPS on ANV and RADV
Change-Id: I54532975237218563b8750f1878a83e386fe776d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5073414
Auto-Submit: Yiwei Zhang <zzyiwei@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2155534b
|
2023-11-06T11:49:20
|
|
Don't set dirty bits for attribs that are out of range.
PrivateState::setAllDirtyBits sets all bits in mDirtyCurrentValues.
When the context has fewer max attibutes than MAX_VERTEX_ATTRIBS, this
can cause out-of-bounds access to
PrivateState::mVertexAttribCurrentValues if the dirty bits are iterated
over without range validation.
Bug: chromium:1496378
Change-Id: I65481c432263a6e353a9361bba741b97dc5e20b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5008034
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
12cc04d0
|
2023-11-07T10:26:18
|
|
Vulkan: Workaround camera AHB's layerCount being random value
We are seeing AHB used by google's camera app has random value in the
layerCount. In my reproduced case, it is 0, which translates to
layerCount in the VkImage. Sometimes I am also seeing a huge number in
the layerCount as well. This causes problem in ARM driver that end up
with assertion and other problems that end up with crash later. We need
to root cause the underlying bug which is tracked by b/239181279. But
before we have an actual fix in AHB creation code, this CL forces
com.google.android.GoogleCamera AHB's layerCount to be 1 as a temporary
app specific bug workaround so that we can move forward to get camera
app up running with ANGLE.
Bug: b/309480316
Bug: b/239181279
Change-Id: I219f6f89863a2cb8dee6c5efb0812389272373ba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5010082
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
5a71be90
|
2023-11-03T15:07:06
|
|
D3D: Make non-constant loop indexing limitation a feature flag
... instead of exposing it as a front-end limitation only to set a
shader flag in the front-end.
Bug: angleproject:1130
Change-Id: Idbd9a1b7b79d231bd9fc1c0061c768df4aaab92d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5004847
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
e7ce481f
|
2023-11-01T22:44:22
|
|
Consolidate parallel compilation in front-end
This cleans up the multiple compilation task implementations in the
backends and consolidates them in the front-end. The front-end is then
able to do the compilation in an unlocked tail call instead if
desired (in a future change).
This change is in preparation for having the program link tasks directly
wait on the shader compilation tasks. As a result, the "shader resolve"
should not be needed to access the shader compilation results; it should
be enough to wait for the compilation job. This change therefore moves
post-processing of results to the compilation job itself as they did not
need to actually be done after compilation is done (merely after
translation is done). As a side effect, shader substition and other
debug features should now work for the GL backend as they are now done
before back-end compilation.
Bug: angleproject:8297
Change-Id: Ib9274b1149fadca7545956a864d6635b6cba5c3a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4994655
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3b555e8d
|
2023-10-26T00:00:00
|
|
GL: Add emulateClipOrigin workaround
Older Adreno drivers apply GL_CLIP_ORIGIN_EXT
to the framebuffer instead of the clip space,
thus causing various side-effects.
Used a uniform to emulate the correct behavior.
Drive-by:
* Fixed a typo in ClipControlTest.OriginFrontFacing
Fixed: angleproject:8392
Change-Id: I2f7145977ab0e11dc88e8dbfec2cd32c4c31f830
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4987326
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
65f6c2ea
|
2023-10-22T18:07:55
|
|
Metal: always implicitly resolve MSAA render buffers on tiled GPUs.
On tile based GPUs, implicitly resolving MSAA render buffers to
single-sampled is preferred. Because it would save bandwidth by avoiding
storing the MSAA textures to memory. Furthermore resolving as
StoreAction is almost a free operation on these GPUs.
Traditional desktop GPUs almost always store MSAA textures to memory
anyway, so this feature would have no benefit besides adding additional
resolve step as well as memory overhead of the hidden single-sampled
textures.
Bug: chromium:1486094
Change-Id: I5eb3b1314560024dd5c0834b0c0b43a6b4d3d51b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4962114
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
6258acae
|
2023-10-19T00:00:00
|
|
GL: Add resyncDepthRangeOnClipControl workaround
Some drivers do not apply GL_CLIP_ORIGIN_EXT and
GL_CLIP_DEPTH_MODE_EXT state changes until other
transformation states are updated.
As a workaround, force-resync the depth range on
clip control updates.
Fixed: angleproject:8381
Change-Id: I26f95108e9419be30ea0b562e02ab4bae78f65bb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4966525
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cfc40d2b
|
2023-07-19T17:47:13
|
|
Vulkan: Adjust clear color precision for GL_RGB5_A1 FBO
When clear color has more precision than the framebuffer
format can hold, dithering is automatically applied on
some hardware.
This issue causes below dEQP tests to fail when the FBO
color attachment format is RGB5_A1:
KHR-GLES31.core.draw_buffers_indexed.color_masks
KHR-GLES32.core.draw_buffers_indexed.color_masks
Adjust the clear color precision for RGB5_A1 format to
workaround the issue.
We can remove this workaround once the vulkan driver
fixes the auto-dithering problem.
Bug: b/292282210
Change-Id: Ic3ffebd2d20c8782612619a60d1ec2cc6d613c22
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4937472
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
57fcee54
|
2023-10-11T14:48:53
|
|
Vulkan: Add feature flag for externalFormatResolve
This CL adds supportsExternalFormatResolve feature flag and enable the
vulkan extension if existed.
This CL is split from Chris Forbes's CL on android gerrit.
Bug: b/223456677
Change-Id: I731f35dc629c12c7290c6ed24ff54967e2e4eab7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4932592
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
|
|
ffb32380
|
2023-10-02T16:01:37
|
|
Vulkan: Fix device creation on multi-queue devices
When multiple eligible queue families are exposed by the device, ANGLE
defers devices creation until a surface is made current, at which point
it selects a queue family that supports presentation to that surface.
This path was largely untested and was broken:
- Some post-device-creation initialization was not deferred until the
device was actually created
- Some cap calculation depended on the chosen queue family index
- Query of device capabilities was done too late, such that ANGLE could
not correctly determine the level of support for ES versions.
Bug: angleproject:8300
Change-Id: I2a35396d1fd08ed26d217dff07d10e9a9c1ac55f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4907895
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
97a48912
|
2023-09-26T10:31:58
|
|
Turn is-link-thread-safe feature into a positive condition
Chrome's --disable-gpu-driver-bug-workarounds currently sets every
feature to false, which breaks the GL backend.
Bug: angleproject:8297
Change-Id: I284d0699e356d7c1a362eb992cdc0d052f9ea7c2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4887598
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
141bada9
|
2023-09-22T10:25:30
|
|
Vulkan: add prefer cached memory type for dynamic buffer usage.
Bug: b/288119108
Change-Id: I0fb5d91780e83af06762b9f3e6122313e76624da
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4886846
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
cd8495b0
|
2023-09-14T20:00:32
|
|
Re-enable Metal on AMD FirePro.
Instead of disabling Metal altogether, test whether it works to just
disable the rescobeGlobalVariables compiler workaround on FirePro
devices.
Bug: angleproject:8317
Change-Id: Ia93a1fef04a387c5756d14660a2da4eb39b8db08
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4864732
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ffd6ec26
|
2023-09-07T15:39:19
|
|
Reland "Make egl surface uncurrent when being destroyed"
This relands commit 497440cdcb7d2ee59bca612dd07fc13cf09a6a57.
This is to workaround errors when app does below behaviors:
1) while there is a context still bound to the current
rendering thread and the surface, call eglDestroySurface()
2) create a new surface eglCreateWindowSurface()
3) call eglMakeCurrent() with the surface created in step 2)
4) does work on the new surface
The old surface won't be destroyed in step 1) because
it was still bound by the context of the current rendering
thread. When creating new surface on step 2), some hardware
will return error code EGL_BAD_ALLOC, because the old egl
surface is still associated with the native window.
To workaround, when destroying surface, if the surface
is still bound by the context of the current rendering
thread, release the context and surface by passing
EGL_NO_CONTEXT and EGL_NO_SURFACE to eglMakeCurrent().
The workaround is controlled by a frontend feature
uncurrentEglSurfaceUponSurfaceDestroy. This feature
is only enabled on vulkan backends.
Bug: b/292285899
Change-Id: Id4c47f1b20e0f90d1013a68893fd70e917c030e2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4867066
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
b4852ef9
|
2023-02-08T14:18:06
|
|
Vulkan: Drop support for Vulkan 1.0
Bug: angleproject:7959
Change-Id: Ib673679ea1a503af22b37092dbff1ee1fd34fba6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4233092
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
68bfa1ed
|
2023-08-22T22:02:15
|
|
Support for link to be entirely parallelized
The link job is split as such:
- Front-end link
- Back-end link
- Independent back-end link subtasks (typically native driver compile
jobs)
- Post-link finalization
Each step depends on the previous. These steps are executed as such:
1. Program::link calls into ProgramImpl::link
- ProgramImpl::link runs whatever needs the Context, such as releasing
resources
- ProgramImpl::link returns a LinkTask
2. Program::link implements a closure that calls the front-end link and
passes the results to the backend's LinkTask.
3. The LinkTask potentially returns a set of LinkSubTasks to be
scheduled by the worker pool
4. Once the link is resolved, the post-link finalization is run
In the above, steps 1 and 4 are done under the share group lock. Steps
2 and 3 can be done in threads or without holding the share group lock
if the backend supports it. Step 2 is not yet made independent of the
Context on some backends, and a frontend feature is used to make that
step either run on the main thread or as a worker thread.
Bug: angleproject:8297
Change-Id: I12f1e6bbaf365543dfcac969e166e0b5aa622104
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4808191
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5afc76e3
|
2023-09-12T11:05:08
|
|
Disable Metal on AMD FirePro devices.
These older drivers are crashing in the driver for unknown reasons.
Only 0.5% of Chrome users are on these devices, so we'll disable
Metal on them.
Bug: angleproject:8317
Change-Id: Ia3ca5c3fa8e96aab903e15d989cfbd459679b15d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4859020
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
8a7ad933
|
2023-09-13T15:11:46
|
|
Revert "Make egl surface uncurrent when being destroyed"
This reverts commit 497440cdcb7d2ee59bca612dd07fc13cf09a6a57.
Reason for revert: this caused chromium webview tests failures: https://chromium-review.googlesource.com/c/chromium/src/+/4860891.
Original change's description:
> Make egl surface uncurrent when being destroyed
>
> This is to workaround errors when app does below behaviors:
>
> 1) while there is a context still bound to the current
> rendering thread and the surface, call eglDestroySurface()
> 2) create a new surface eglCreateWindowSurface()
> 3) call eglMakeCurrent() with the surface created in step 2)
> 4) does work on the new surface
>
> The old surface won't be destroyed in step 1) because
> it was still bound by the context of the current rendering
> thread. When creating new surface on step 2), some hardware
> will return error code EGL_BAD_ALLOC, because the old egl
> surface is still associated with the native window.
>
> To workaround, when destroying surface, if the surface
> is still bound by the context of the current rendering
> thread, release the context and surface by passing
> EGL_NO_CONTEXT and EGL_NO_SURFACE to eglMakeCurrent().
>
> The workaround is controlled by a frontend feature
> uncurrentEglSurfaceUponSurfaceDestroy. This feature
> is only enabled on vulkan and gl backends.
>
> Bug: b/292285899
> Change-Id: I872d2e116ba6860f58d1176f011a5ef7c5a5af4e
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4851255
> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Bug: b/292285899
Change-Id: I760054d856294e6691e79e165fd73ce9e560621f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4862958
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
497440cd
|
2023-09-07T15:39:19
|
|
Make egl surface uncurrent when being destroyed
This is to workaround errors when app does below behaviors:
1) while there is a context still bound to the current
rendering thread and the surface, call eglDestroySurface()
2) create a new surface eglCreateWindowSurface()
3) call eglMakeCurrent() with the surface created in step 2)
4) does work on the new surface
The old surface won't be destroyed in step 1) because
it was still bound by the context of the current rendering
thread. When creating new surface on step 2), some hardware
will return error code EGL_BAD_ALLOC, because the old egl
surface is still associated with the native window.
To workaround, when destroying surface, if the surface
is still bound by the context of the current rendering
thread, release the context and surface by passing
EGL_NO_CONTEXT and EGL_NO_SURFACE to eglMakeCurrent().
The workaround is controlled by a frontend feature
uncurrentEglSurfaceUponSurfaceDestroy. This feature
is only enabled on vulkan and gl backends.
Bug: b/292285899
Change-Id: I872d2e116ba6860f58d1176f011a5ef7c5a5af4e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4851255
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
b185c3ea
|
2023-09-11T12:28:43
|
|
Vulkan: Add host-image-copy usage to images when optimal
The change currently doesn't actually copy on host, but prepares the
image for it.
Bug: angleproject:8341
Change-Id: I4458712dca46ef9872020e158a3f902e94f5eb93
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4856146
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
e234c182
|
2023-09-08T16:19:29
|
|
Add features for VK_EXT_host_image_copy
Bug: angleproject:8341
Change-Id: Id076e6c9e040f3c19a1eb221f6099ac11d4d091a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4852280
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0688a940
|
2023-08-21T00:00:00
|
|
GL: Disable EXT_texture_mirror_clamp_to_edge on Mesa
Although the extension string is exposed,
the new enum is currently rejected when
using an OpenGL ES context.
Bug: angleproject:8319
Change-Id: I17c4105344fe7ca3038a79e0e09528db1d96376b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4807744
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
9f258f8a
|
2023-08-21T00:00:00
|
|
GL: Add disableRenderSnorm workaround
Disable the extension on Mesa versions that
clamp negative snorm values to zero on read.
Fixed: angleproject:8315
Change-Id: I5459db40cb08c546fba15f5e6d70578029a8218a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4804324
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
d8f088e0
|
2023-08-14T11:07:24
|
|
GL: Remove parallel compile/link without driver support
This feature was practically disabled everywhere due to various bugs,
and is complicating the code. In effect, the code was always spawning a
thread for the compilation and link jobs, immediately fail it (due to a
workaround), then do the job when compile/link is resolved (much closer
to draw time). This leads to bad user experience, but also is racy
because the shaders may get recompiled in the meantime and there is
little the GL backend could do to stop that (efficiently).
After this change, parallel compile/link
is either done by the driver (if supported), or it isn't done.
This is a partial revert of a100d8f471f79b9f88d387164992cc5bd9c6ee9f.
Bug: angleproject:3031
Bug: chromium:922936
Bug: chromium:1184692
Bug: chromium:1202928
Change-Id: I6348bee3249ccb3828bb98ac2a69dc7d305f821c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4774785
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
59f158c1
|
2023-08-10T00:00:00
|
|
GL: Add explicitFragmentLocations workaround
Some drivers produce incorrect results when
a fragment output has an implicit location
and gl_SampleMask[] is written to.
Fixed: angleproject:8308
Change-Id: I615952ef61b1cb611984ec7defb189d89ab3281c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4777702
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
16cfa28e
|
2023-08-08T22:08:24
|
|
Vulkan: Basic infra for parallel link
This change moves pipeline warm up to a parallelizable task, mostly as
an exercise to put in the infrastructure for parallel link in the Vulkan
backend. Follow up changes will move more of the link step to this
task.
The end goal is to be able to make the link task independent of
ContextVk, which would allow it to be run as an UnlockedTailCall, even
if not using a worker thread.
Bug: angleproject:8297
Change-Id: I17047162b2a41f0d681d9e3ee33f2e0239b4280d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4764231
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ffe81dd3
|
2023-08-03T14:53:32
|
|
Vulkan: allow opt-in to MSRTT emulation via overrides
The existing enableMultisampledRenderToTexture feature combines
conditions for device feature support and the policy decision of whether
to allow MSRTT emulation.
This change splits it into two features, allowing application developers
to control the policy condition for the emulation path without impacting
the device capability checks.
Bug: angleproject:8291
Change-Id: Ic1525c878906b10df777c582e44b931028aae928
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4749525
Auto-Submit: Steven Noonan <steven@uplinklabs.net>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d2236b58
|
2023-07-29T23:50:05
|
|
Support substituting translated shaders.
Add dumpTranslatedShaders and enableTranslatedShaderSubstitution
frontend ANGLE features, which allow ANGLE developers to prototype
optimizations and other transforms without fully implementing them in
the shader translator.
Tested on macOS with ANGLE's Metal backend, but should work with the
other source-level translator backends.
Add documentation for pre-existing substitution of shader sources, and
of translated shaders added in this CL.
Fixed: angleproject:8280
Change-Id: I24d5ef88a479b23e81cc8169fe813c263acfc71f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4731553
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
9aadc7aa
|
2023-07-13T11:44:51
|
|
Metal: Require MSL 2.1.
We had previously shipped both MSL 2.0 and 2.1 shaders to support
MacOS 10.13 (MSL 2.0 only) while also supporting the stencil blit
fast path that MSL 2.1 provides with the has_shader_stencil_output
feature.
Each configuration of precompiled shaders is ~300kb so we will drop
support for MacOS 10.13 and only ship the MSL 2.1 shaders.
Rework of the disablement for NVIDIA and GPU family 1 to be more
readable. The features themselves are always true because "disable on
NVIDIA" is always true and the check for "is NVIDIA" is moved to the
code which fails the initialization.
Bug: angleproject:8258
Change-Id: Icc8c69540e43fd2b0b237fffbfe170bb3422903f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4681130
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4cab5e94
|
2023-07-12T10:04:10
|
|
Vulkan: Enable timeline semaphores if supported by device
This is needed for a similar change in Chromium to function with
`--enable-features=VulkanFromANGLE`.
Bug: angleproject:8253
Change-Id: I422964ea010c650439dd4797ee8ba7b533f26a87
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4675807
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4e6124da
|
2023-06-23T14:46:28
|
|
GL: Ensure all instanced attributes have a buffer with data
Apple OpenGL drivers sometimes crash when given an instanced draw with
a buffer that has never been given data.
It's not efficient to check if the attribute is both zero-sized and
instanced so just ensure that every time a zero-sized buffer is bound
to an attribute, it gets initialized with some data.
Bug: chromium:1456243
Change-Id: I66b7c7017843153db2df3bc50010cba765d03c5f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4642048
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
42c3a9fe
|
2023-06-23T03:53:09
|
|
Vulkan: support creating context with MoltenVK on macOS
The Vulkan loader somewhat recently introduced a requirement that
clients must opt-in to using portability implementations of Vulkan (such
as MoltenVK). Since there is no native Vulkan driver for macOS (and
therefore no alternative), unconditionally enable the portability
enumeration extension there.
Bug: angleproject:8229
Change-Id: I24f0f24e25abd277855ed9ac4de370cfb47d3266
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4639495
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Steven Noonan <steven@uplinklabs.net>
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: Steven Noonan <steven@uplinklabs.net>
|
|
ac263582
|
2023-06-19T12:26:44
|
|
Vulkan: add workaround for VK_EXT_full_screen_exclusive on AMD
On outdated (but recent) AMD drivers, the Windows-only Vulkan extension
VK_EXT_full_screen_exclusive appeared to be implicitly enabled and set
to VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT mode. Even though
ANGLE did not enable or interact with this extension at all, the driver
was incorrectly returning VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT
error codes on various swapchain operations when the full screen window
focus was lost (i.e. alt-tab out and back in). Naturally, ANGLE was not
expecting these error codes and did not know how to handle them.
Depending on where the errors occurred, ANGLE might crash or retry
creating the swapchain repeatedly.
Treating the unexpected VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT
error code as VK_ERROR_OUT_OF_DATE_KHR/VK_SUBOPTIMAL_KHR was not
sufficient, because the driver would repeat the error on every swapchain
operation, apparently expecting the error to be handled by
a vkAcquireFullScreenExclusiveModeEXT call (even though that would make
no sense, since the extension was not enabled).
The incorrect driver behavior was reported to AMD and was fixed in
recent driver releases. The earliest driver I've tested and know to be
working is AMD's Adrenaline driver version 23.5.2
(VkPhysicalDeviceProperties calls this driverVersion 2.0.262/0x800106).
The last known bad version was 0x8000e9.
The simplest workaround on these older AMD graphics drivers is to
explicitly enable the extension, but set it to
VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT mode. On newer drivers we do not
need to do anything with the extension and can ignore it.
Bug: angleproject:8215
Change-Id: I7c58d47a0350f4b0bc1a77f200c1e2f72fcde8d8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4627279
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
88c6dfcc
|
2023-06-02T16:09:24
|
|
Mali: Make the placeholder FBO complete for timer queries
Change the bindFramebufferForTimerQueries workaround to ensure
the framebuffer is complete.
Bug: chromium:1356053,b/269068358
Change-Id: Ief3198fdc4800468670a3f4323a1ffd3ca083c6f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4582606
Auto-Submit: Kramer Ge <fangzhoug@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
21f16cb1
|
2023-06-09T17:30:38
|
|
Disable clang-format on ANGLE features autogen outputs
Updates the script to produce reasonably formatted code without
clang-format.
Autogen files moved to autogen/ sub-directories because clang-format
does not support per-file settings ;(
This allows to run this codegen very quickly
(~50ms on my machine)
Bug: angleproject:8193
Change-Id: Ie84282090d574ebb4debe3edcfd82f983f27a5ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4604578
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|