|
26da3174
|
2024-03-08T18:44:36
|
|
Make 2024-03-05 changes compile with clang 15 pt.2
Constructing with function style cast constructor is not supported when
the type does not have a constructor. One cast was missing, still.
Bug: angleproject:8585
Change-Id: Ia56000afe5a972bab234a470ba8c72ccd129e33a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5352262
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
c55c8ad2
|
2024-03-05T15:42:28
|
|
extension XML cleanup
Add a bunch of missing extensions, commands, enums, and aliases to the
extension XML files. These were missing when I generated a GL loader
from the XML.
Additionally, removing the unimplemented ANGLE_timer_query
specification.
Bug: angleproject:8432
Change-Id: I55b7393a313070719200c150a91b1751206ca2cb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5347156
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Auto-Submit: Steven Noonan <steven@uplinklabs.net>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ecaefce0
|
2024-03-06T14:54:17
|
|
Vulkan: Disable optimizeWithLoadOp if there is unresolve
If there is unresolve operation for MSRTT emulation code path, dont fall
back to loadOp for midRenderPassClear. Otherwise the clear will be lost
due to unresolve.
Bug: b/309355117
Change-Id: Ib39be0c980f663c08e80855ead32f6e0b07e60fc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5350741
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
aba3705b
|
2024-03-02T21:58:34
|
|
Vulkan: Completely remove egl::Display from RendererVk
This class is now independent of EGL. The only mentions of EGL is
egl::ContextPriority, which is just an enum and is tolerable for now.
OpenCL can now instantiate RendererVk without having to create a temp
egl::Display.
Bug: angleproject:8564
Change-Id: Ia78cfcb3a48c97f397441cf7cda71d74cfaddd8f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5335581
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7e065b6f
|
2024-03-07T13:52:47
|
|
Fix SRV and RTV confliction
Bug: chromium:324422644
Change-Id: Id0f8fd1183938f3077e97fd6904fbfbad7efda85
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5354106
Auto-Submit: Peng Huang <penghuang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@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>
|
|
91ddf851
|
2024-03-03T10:57:22
|
|
Vulkan: support QCOM foveated rendering extensions
Add support for foveated rendering in the vulkan backend.
This is done by leveraging the VK_KHR_fragment_shading_rate extension.
Bug: angleproject:8484
Change-Id: I0d01d07583f710b2302ea07b19c9d113c73bfe41
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5269907
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c71de868
|
2024-03-05T13:14:54
|
|
Add workaround for ext dynamic state on Win/Intel
The feature "useVertexInputBindingStrideDynamicState" seems to be
causing test crashes on older Win/Intel drivers. A workaround should
be added to disable extended dynamic state on such platforms.
* useVertexInputBindingStrideDynamicState is now disabled for Win/Intel
drivers before 100.9684.
* Added constructor for IntelDriverVersion to use major and minor
versions (Windows only).
Bug: angleproject:8563
Bug: b/326657712
Bug: b/288916329
Change-Id: I36e27ec1189435a75075a9ac9d235ff224cfcb42
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5341658
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
e38cf95a
|
2024-03-06T16:26:54
|
|
Metal: Release prov. vertex buffers on event set
Fixes a memory leak where provoking vertex buffers would never be
released for sequence:
1. draw with flat shading
2. Create EGL fence sync object with Metal event
3. ..
4. Go to 1
Bug: angleproject:8586
Change-Id: I5b302cef82414e4a2886c4a7f570c1bf73a83238
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5349340
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
51702d79
|
2024-03-06T14:05:45
|
|
Make 2024-03-05 changes compile with clang 15
WebKit compiles with this. Constructing with function style cast
constructor is not supported when the type does not have a constructor.
Use initializer list construction with explicit name instead. For
MacroExpander declare a constructor.
Fixed: angleproject:8585
Change-Id: I17747a277ceba62f300fcdc88cd058e04b3c3938
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5349697
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
b2773c11
|
2024-03-01T11:24:44
|
|
Vulkan: Bug fix in immutable sampler pipeline layout recreation
An immutable sampler is tied to a sampler index and changing sampler
uniform location value should force a recreation of the pipeline layout
Bug: b/155487768
Bug: angleproject:5033
Bug: angleproject:5773
Tests: Texture2DTestES3.TexStorage2DMultipleYuvSamplersSwitch*Vulkan
Change-Id: I82aaed332d7f87f11a2fd4923cfc004403ff0bd2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3657480
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
3c08d696
|
2024-02-22T11:20:08
|
|
CL: Add DEVICE_NOT_FOUND case for context creation
In the case where devices are not found, context creation should fail
with CL_DEVICE_NOT_AVAILABLE error code. Adding that case.
Bug: angleproject:8581
Change-Id: If52b40b85d110a3e490bcc4a0a95e7910941356d
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5345829
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f044aaf8
|
2024-03-02T00:51:33
|
|
Vulkan: Create instance/device without access to Display
The feature overrides are now encapsulated in a struct, a reference to
which is passed around until features are initialized. Additionally,
some window system information needed to decide which extensions to use
or workarounds to apply are passed around.
This is a step towards decoupling RendererVk from egl::Display for
direct use with OpenCL.
Bug: angleproject:8564
Change-Id: Id6c5d1c3b38aafcd4397e54cc6cad32bf849eeda
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5335823
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
27423bff
|
2024-03-05T17:57:24
|
|
Metal: Generate names for rewritten inputs
When expanding multi-component fields to multiple single-component
fields, use AngleInternal namespace for the new names. The names are
generated with form "someField_0" where _0 is the component index.
If these are not created in AngleInternal, caller is able to create
a name clash by introducing single-component field "someField_0".
Fixes an assert where the vec4(a_) + vec4(a) would assert on size
mismatch because the variable lookup for "a_" would find a rewritten
variable for the expanded matrix row of "a".
Bug: angleproject:8558
Change-Id: I64b7a755d7d534543fdb0f4c43008dd5c63f4aad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5323060
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
|
|
2ad7b23b
|
2024-03-05T10:04:47
|
|
Add a missing #include.
Bug: angleproject:8580
Change-Id: I9dadaf9afa6d3335b2a621aece19bcd315be319a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5344351
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
545e3f6e
|
2024-03-01T23:27:03
|
|
Vulkan: Decouple RendererVk from egl::BlobCache
The new vk::GlobalOps class abstracts access to egl::BlobCache. This is
a step towards decoupling RendererVk from egl::Display for direct use
with OpenCL.
Bug: angleproject:8564
Change-Id: I7b3910254430df74b889759639da1749735584a7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5332082
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
95294b24
|
2024-02-28T16:11:45
|
|
Android: Add Galaxy S22 support (Xclipse)
Test: angle_tests
Bug: b/267953710
Change-Id: I53ac424bce23a93fe980539f0946c04aeae6e91e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5333957
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0ad73958
|
2024-03-04T11:17:36
|
|
Deduplicate and fix ConstStrLen implementations
Move multiple implementations to one angle::ConstStrLen. Some of the
implementations were partially incorrect, too.
Fixed: angleproject:8569
Change-Id: I760c173a5b75932f4ae2fabcc4916329247d3cb5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5332384
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
258b751f
|
2024-03-04T20:38:48
|
|
OpenCL/Vulkan: Fix processedOptions whitespace
Final processedOptions in ProcessBuildOptions()
needs to add whitespace padding between options.
Bug: angleproject:8549
Change-Id: If418d17aa661bbb20e8367cc9b2b78ceb952e5a4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5341668
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b978974d
|
2024-03-03T10:48:48
|
|
Update frontend support for QCOM foveated extensions
Modifications to frontend support -
1. EXTENDED_DIRTY_BIT_FOVEATED_RENDERING is removed
2. New framebuffer attachment API - getFoveationState
3. Attachment type restriction for foveated rendering is removed
4. Addition of new test - RenderbufferAttachmentClearThenDraw
Bug: angleproject:8484
Change-Id: I699cbed81346c9a6344c4ff36afa51d6cc1bf052
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5338529
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
39040b0b
|
2024-02-29T15:45:34
|
|
Vulkan: Decouple RendererVk from EGL attributes
The attributes are now processed in DisplayVk and the results are passed
to RendererVk.
Bug: angleproject:8564
Change-Id: Iac8add7953d3f88e19942a21dcdfbedf3b672f52
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5331607
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4e6fe5e0
|
2024-02-29T15:01:06
|
|
Vulkan: Cache ImageLoadContext in context
This avoids the need to requery this from the display every time.
Bug: angleproject:8564
Change-Id: Ied650e7789741f59b7662c0f97c55132b105778d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5332074
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ec6d6288
|
2024-02-23T10:20:01
|
|
egl: Add logic to select preferred display
ChromeOS Flex devices can have multiple GPUs, and some of these will
have persistent issues. Chrome worked around this by preferring
well-supported GPU vendors over others. Add this logic and refactor
inintialization to minimize code duplication.
Bug: b/298460913
Change-Id: Ibac394988b7385fca35b98f0e3834b056484ba82
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5320107
Commit-Queue: Allen Ballway <ballway@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
fc440afa
|
2024-02-16T13:57:32
|
|
Vulkan: Move DS builder class to Vk utils
Currently, UpdateDescriptorSetsBuilder lives in ShareGroupVk.cpp/h.
The UpdateDescriptorSetsBuilder isn't really GL-specific.
Thus it can be moved over to vk_cache_utils.h
(more of a Vk utility class).
Bug: angleproject:8546
Change-Id: I1ead04bab4c5840e6c471cdc7c5db4220e32bd50
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5303540
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f85b6970
|
2024-01-18T11:59:24
|
|
OpenCL/Vulkan: Implement program get[Build]Info
Adding backend routines for:
- clGetProgramInfo
- clGetProgramBuildInfo
Bug: angleproject:8549
Change-Id: I890bb957e687a429eb0ed3b4756427ac98e302f3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5303565
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
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>
|
|
2ee295b4
|
2024-02-15T11:27:39
|
|
Vulkan: Add per-level image update tracker
* Add a per-level image write tracker to ImageHelper.
* It tracks the updates scheduled for different parts of the image.
Within each level, it also tracks different layers, currently up
to 64.
* kMaxParallelSubresourceUpload renamed to kMaxParallelLayerWrites;
moved to vk_helper header.
* It is reset when a barrier is issued for the image.
* Modified ImageHelper::recordWriteBarrier().
* Added isWriteBarrierNecessary().
* Now it checks the added writes for the image. It will no longer
issue a barrier if the image is in the same layout and there is
no write to a part of the image to which was previously written.
* Added ReadImageSubresources to CommandBufferAccess.
* It is used for layouts that allow both reading and writing to the
image (including self-copy):
* TransferSrcDst (used in CopyImageSubData)
* ComputeShaderWrite (used in compute-based mipmap generation)
* CommandBufferImageWrite -> CommandBufferImageSubresourceAccess
* Updated onImageSelfCopy() args to include read subresource data.
* Improves gpu_time for TextureUploadETC2TranscodingBenchmark perf test
* Windows/NVIDIA: ~180609 ns -> ~62669 ns (~2.88x)
* Linux/NVIDIA: ~157283 ns -> ~93360 ns (~1.68x)
* Windows/Intel: ~72297 ns -> ~57153 ns (~1.27x)
* Added a test to show that self-copy for a write-after-read works.
* ArraySelfCopyImageSubDataWithWriteAfterRead
* (ArraySelfCopyImageSubData covers RAW hazards; renamed)
Bug: b/308455694
Change-Id: I5cef296d991ce6ec02792edc3ffc5cc4994831e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5301855
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
1ceddbf6
|
2024-01-11T16:15:08
|
|
OpenCL/Vulkan: Add createProgram routines
Introduce createProgramWithSource and
createProgramWithBinary.
Additionally introduce KernelArgument types,
SPIR-V Reflection info types, and DeviceProgram types.
Bug: angleproject:8549
Change-Id: I611627d747a5ba6718778fd27fd28477b77fbbe1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5303563
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
56a291e8
|
2024-02-01T02:30:02
|
|
Rework external image capture
Move external image creation into the trace fixture. Record image size
at capture time and then recreate it using a GL staging texture and
placeholder data during replay if the original client buffer is missing
(MEC) or the image was created from another API (AHB).
Track when EGLImages are created and destroyed during capture so they
can be restored to their original MEC state at reset time. Clean up
the backing GLTexture resources when the corresponding EGLImage is
destroyed.
In cases where EGL calls are made without an associated GL context, look
up and active context to use from the passed in EGLDisplay parameter.
Bug: b/300966403
Change-Id: I7033fa25d2cb3a59957887439506f6f6a416c8f1
Test: Trace com.square_enix.android_googleplay.FFVII
Test: Trace com.MOBGames.PoppyMobileChap1
Test: Trace com.tocaboca.tocalifeworld
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4903441
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
b45b350a
|
2024-02-29T10:11:42
|
|
Add skip for Pokemon Masters Ex validation warning
This warning was generated in the Pokemon Masters Ex trace due to
application issues and does not cause the test to fail but does create
confusing output: Undefined-Value-ShaderFragmentOutputMismatch.
Added it to kSkippedMessages.
Test: angle_trace_tests --gtest_fitler=*pokemon_masters_ex
Bug: b/319228278
Change-Id: I57bd9cca4b9bb5b681fb26884c9ba6ce8e66c667
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5334761
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
4d362242
|
2024-02-28T22:00:05
|
|
Vulkan: Remove call to angle::GetSystemInfo()
This function is expensive, especially when it creates a temp VkInstance
to query device info.
It was only used to check if running on a Pixel device, but the
information retrieved was to make a workaround slightly more precise.
This change does away with that information and applies the workaround
more generally.
If the workaround precision is necessary, the necessary information
should be retrieved directly without making the expensive
angle::GetSystemInfo() call.
Bug: b/327509734
Change-Id: Id097b427c59efde16a5811d484823b207c1a8917
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5331602
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
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>
|
|
6eaaad7c
|
2024-02-27T21:24:59
|
|
Create ImageHelper.
This CL adds a helper class ImageHelper, which acts
as a wrapper on webgpu textures that will be used by
TextureWgpu.
Bug: angleproject:8547
Change-Id: Ia796534c9d3ff0dd24797cc483677cfcbedb1f8c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5317864
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Liza Burakova <liza@chromium.org>
|
|
75c8ef1c
|
2024-02-22T00:00:00
|
|
Update cached component type masks on attachment redefinitions
Added a new test:
WebGL2ValidationStateChangeTest.AttachmentTypeRedefinition
Fixed: angleproject:8556
Change-Id: I1535fba5467228076bb79ac2cc5530610d4ec747
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5318735
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
6f2daf05
|
2024-02-26T16:31:58
|
|
Context: Limit max vtx uniform vectors to 256 during capture
To ensure compatibility with Pixel 4/5, GL_MAX_VECTOR_UNIFORM_VECTORS
should be set to 256 during capture.
Bug: b/326199738
Change-Id: Ic7228322b4ed19949a9669cf0719fffa1a86f577
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5329326
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
|
|
f0af4730
|
2024-02-26T21:16:02
|
|
Vulkan: Catch misuse of AddToPNextChain
Bug: angleproject:8484
Change-Id: I02a9071509f68ad050a8abab25f11b9a8da53816
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5321049
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
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>
|
|
0afcac60
|
2024-02-22T11:21:15
|
|
Handle count = 0 in DrawElementsIndirect
Bug: angleproject:8554
Change-Id: I9618061edf71c3d9a03ea14dfe65b54c58ee98de
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5319131
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
3c517e45
|
2024-02-14T14:26:42
|
|
Vulkan: Process ClearEmulatedChannels update first
* When going through the level updates in flushStagedUpdates(), the
ClearEmulatedChannels updates are expected to be before the rest. In
addition, there can be only one such update in the level update list.
Therefore, now they are processed and applied before the rest of the
updates. By doing so, if this is the only update for the image, an
unnecessary layout transition can be avoided.
* Added flushStagedClearEmulatedChannelsUpdates().
* Added flushStagedUpdatesImpl() for the rest of the update types.
* Used clipLevelToUpdateListUpperLimit() to limit the flush loops to
the number of levels in subresource update list.
* Added unit test to ensure updates after ClearEmulatedChannels are not
ignored.
* ImageTestES3.IncompleteRGBXAHBImportThenUploadThenEnd
* The test contains a ClearEmulatedChannels followed by an image
update. If the latter is ignored in this test, there is a failure
during teardown due to orphanNonEmptyBufferBlock when destroying
the buffer that contains the update.
Bug: b/308455694
Change-Id: I53c73acb60a9c5440548886cde913112a664402d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5297317
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
38cc4cf0
|
2024-02-14T16:36:08
|
|
Vulkan: Update flushStagedUpdate to use switchcase
* The if-else statements to check update type have been replaced with
switch-case statements for more clarity.
Bug: b/308455694
Change-Id: I3d5b77e697d342e77596fd177b2527ece4d228ed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5297547
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
acba61cb
|
2024-02-23T17:13:17
|
|
Fix Vulkan driver version for Win/Intel
* Updated the Vulkan renderer version for Windows/Intel to follow this
format: <DriverMajor>.<DriverMinor>
Bug: b/326669051
Change-Id: I41e868820ec351f454589cc33ed66a85669d3790
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5321166
Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c758dc03
|
2024-02-22T00:00:00
|
|
GL: Adjust disableRenderSnorm condition
The extension support for OpenGL ES
contexts has been fixed in Mesa 23.3.0.
Bug: angleproject:8315
Change-Id: I86f767fe24a2fa0c5f999969a29f52225ff1c4d8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5321520
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cd63c5d4
|
2024-02-21T14:36:57
|
|
Fix build failures targetting iOS 17.4
Add ifdefs to not use deprecated APIs.
Bug: chromium:40254930
Change-Id: Id2155e5014558d0c62654cec01ee32119123037c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5315376
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
8c503c1b
|
2024-02-21T09:37:06
|
|
Add skip for 07753 validation error in trace
Running Pokemon Masters Ex game on Android generates the
validation error VUID-vkCmdDraw-format-07753.
Update the SkippedMessages list to avoid trace failures.
Test: angle_trace_tests --gtest_filter=*pokemon_masters_ex
Bug: b/319228278
Change-Id: I8ffbb8c6f35ef3fead583be1b8f0b96d85c7ea12
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5313836
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
|
|
bcf814fd
|
2024-02-02T10:30:34
|
|
Vulkan: Constrain the dependency on ContextVk in BufferHelper
Make the BufferHelper interface be not dependent on ContextVk state.
This makes the interface to be suitable for implementation of other APIs
with Vulkan backend. Any dependency on ContextVk is made explicit and
handled in ContextVk.
Bug: angleproject:8544
Change-Id: I8b285f54c8758a26dd7edf27b1371f9afcf7e241
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5303573
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f546983c
|
2024-01-30T13:39:27
|
|
Add test and skip for 07753 validation error
Running Pokemon Masters Ex game on Android generates the
validation error VUID-vkCmdDrawIndexed-format-07753. This CL
adds the TexImageFormatMismatch test to reproduce the error
and updates the SkippedMessages list to avoid test failures.
Test: angle_end2end_tests --gtest_filter=*TexImageFormatMismatch*
Bug: b/319228278
Change-Id: I6ee2cac0bc899e945ef0d4aff33d5e73299c6954
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5309857
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
|
|
8346addb
|
2024-02-06T15:40:31
|
|
Contain X11 includes and free usage of common terms
This change undoes workarounds where some terms were avoided so there is
no clash with X11 (such as Success, Bool and None). In particular, this
helps us make sure we never include the X11 headers in such an
unconstrained manner as to clash with our code.
Bug: angleproject:8520
Change-Id: I53d9657c5a33164064d2c80a206b96fd52f607f1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5273491
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
|
|
1ee04579
|
2024-02-20T14:53:46
|
|
Metal: Re-enable asm inejction into loops on MacOS 12+
It was confirmed that this asm injection caused issues on MacOS 11.
Bug: chromium:1513738
Change-Id: I37e3af83b83de0cd447e1ff71b1f41ab755f8d4f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5309225
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: 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>
|
|
19e21b1e
|
2024-01-11T14:38:49
|
|
OpenCL/Vulkan: Add initial support for cmdQueue
Introduce OpenCL command queue object creation
for Vulkan backend in ANGLE.
Bug: angleproject:8500
Change-Id: I08a63e91aa0ee75dd2be00c770f521c43a3f83b3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5233367
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
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>
|
|
e08e82b6
|
2024-01-31T20:48:14
|
|
CL: On kernel arg validation use right sizes
The OpenCL C type `sampler_t` and `queue_t` map to API types
`cl_sampler` and `cl_command_queue`[1]. Confirm the size checks
accordingly.
[1]: https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_C.html#other-built-in-data-types
Bug: angleproject:8543
Change-Id: Ia833561e2373ab32dd62271dfc515d7ea779c81a
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5299720
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
af56ca61
|
2024-01-11T13:14:32
|
|
OpenCL/Vulkan: Initial support for context
Introduce OpenCL context object creation for
Vulkan backend in ANGLE.
Bug: angleproject:8499
Change-Id: I56794649c87d5cf1490e496525e6534c8f90ce32
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5233366
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
3ca8befb
|
2024-02-14T12:35:08
|
|
Vulkan: Handle multi-context apps in pipeline cache graphs
Append a monotonically increasing counter to filename so apps and
benchmarks with multiple contexts don't clobber each others files.
Bug: angleproject:6565
Change-Id: I5c781895e1ec8cc65728aa752e28fb2acb02abe9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5297288
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
6607a2b9
|
2024-01-17T15:58:20
|
|
Vulkan: Add support for VK_EXT_vertex_input_dynamic_state
Hook into VK_EXT_vertex_input_dynamic_state so pipeline states
that differ only in vertex input state can reuse existing
pipelines.
Bug: angleproject:7162
Tests: StateChangeTestES3.Vertex*
Change-Id: Icd3134dee93fc5fc2e9d284fcfa8c674b62faec8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5207462
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6d4706bf
|
2024-02-15T14:03:45
|
|
WGPU: Add a angle_dawn_dir build override.
This will allow Chromium to point out the dawn directory to ANGLE
and disable the WebGPU backend if dawn does not exist.
Bug: angleproject:8477
Change-Id: I5191b33dcf64ec1694f7be4ccc855b27d6fd0f76
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5301615
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
aa244358
|
2024-02-06T14:44:39
|
|
Reland "Vulkan: Get rid of X11 include in DisplayVkXcb.cpp"
This is a reland of commit 8abbe2836bb49faba8a97e2df59058290e1c385a
In the reland, the xcb-util dependency is removed.
Original change's description:
> Vulkan: Get rid of X11 include in DisplayVkXcb.cpp
>
> Bug: angleproject:8520
> Change-Id: Iaa251b0ba2858873b8d22e8f9e5dae7a2567c95e
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5273489
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Bug: angleproject:8520
Change-Id: I238e0a6c3b94398c10fa1bc39c5a0b4261797311
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5292774
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b380ed1f
|
2024-02-14T09:31:26
|
|
Vulkan: Add EGL_ANGLE_global_fence_sync
Chrome has an implicit assumption that due to context virtualization,
signaling a fence in one context results in synchronization with _all_
contexts that have previously made submissions.
This is not per EGL spec, but the functionality is easily implementable
in the Vulkan backend. In the Vulkan backend, each context is given its
own "timeline" of submissions (tracked by serials associated with
"indices"). The required functionality is implemented through a new EGL
fence sync object whose sole difference is that it synchronizes with all
the existing timelines rather than the one of the current context.
Bug: b/318721705
Change-Id: I6c45d065e592d0d4ed627ce9695196b1086d5021
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5297396
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d6ceac91
|
2024-02-12T20:37:58
|
|
Metal: Add support for binding slices to images
Add support for binding Metal MTLTextureType2DArray texture slices to
EGL images.
Bug: angleproject:8531
Change-Id: I938e75c81bf36d3885f3bdcb0d1007e1f87e20c2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5290374
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
e8a3493f
|
2024-02-14T21:51:00
|
|
Initialize DisplayWgpu
This change adds basic initialize to DisplayWgpu as well as adding
APIs for DisplayGLX and DisplayWgpu. These APIs are necessary to ensure
DisplayWgpu doesn't pull in necessary X11 headers that break builds.
Bug: angleproject:8477
Change-Id: Icc6d9e7246a741def7a0337a296f9c1f9cec1415
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5259979
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Liza Burakova <liza@chromium.org>
|
|
2cae27c2
|
2024-02-14T10:38:18
|
|
Vulkan: Enable the doubleDepthBiasConstantFactor feature on NV
Experimentally found to make behavior more consistent with other
platforms. Discovered through a Dawn issue [1].
[1]: https://bugs.chromium.org/p/dawn/issues/detail?id=2076
Bug: b/249380591
Change-Id: I27777397d717da0d400b9e15508b17b5329e1e8e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5296380
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
dbc6bd9d
|
2024-02-12T14:07:49
|
|
Reland "Vulkan: Fix alignment issues with SecondaryCommandBuffer"
This is a reland of commit e53270c9ca1afe393d6d7d0359e81cf6755b6ca5
Original change's description:
> Vulkan: Fix alignment issues with SecondaryCommandBuffer
>
> This solves undefined behaviour on 64-bit systems. This inflates the
> size of a few commands, but most commands either already did align to 8
> bytes or could be aligned to 8 bytes with a few tweaks.
>
> Bug: angleproject:7852
> Change-Id: Ie61976d5bf8df7790acd95c0e15d4c79402622a1
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5288636
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:7852
Change-Id: Ie206e66fc21c5db7c9e67eb478d9cddada5db8e0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5296376
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
c673c837
|
2024-01-08T19:05:38
|
|
OpenCL/Vulkan: Initial support for platform/device
Introduce OpenCL platform and device object creation
for Vulkan backend in ANGLE.
Bug: angleproject:8498
Change-Id: I5af9a23ed343648115bd9f0e81cd7a53080e2982
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5233365
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b8e56d5d
|
2023-11-20T15:41:44
|
|
Fix an assert when overwriting TexImage binding
Fix an assert when overwriting a image binding with
multiple eglBindTexImage calls on the same texture.
Bug: angleproject:8521
Change-Id: Ie7247017fd73c523b889278ec19a09ecf0683692
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5272912
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
243f8ad9
|
2024-02-14T11:44:58
|
|
Revert "Vulkan: Fix alignment issues with SecondaryCommandBuffer"
This reverts commit e53270c9ca1afe393d6d7d0359e81cf6755b6ca5.
Reason for revert: breaks x86 Android build:
https://chromium-review.googlesource.com/c/chromium/src/+/5293321
https://ci.chromium.org/ui/p/chromium/builders/try/android-x86-rel/144329/overview
Original change's description:
> Vulkan: Fix alignment issues with SecondaryCommandBuffer
>
> This solves undefined behaviour on 64-bit systems. This inflates the
> size of a few commands, but most commands either already did align to 8
> bytes or could be aligned to 8 bytes with a few tweaks.
>
> Bug: angleproject:7852
> Change-Id: Ie61976d5bf8df7790acd95c0e15d4c79402622a1
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5288636
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:7852
Change-Id: Id9c7a94ccc12816bc9e8c3803bd940550d9f7953
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5295854
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
e53270c9
|
2024-02-12T14:07:49
|
|
Vulkan: Fix alignment issues with SecondaryCommandBuffer
This solves undefined behaviour on 64-bit systems. This inflates the
size of a few commands, but most commands either already did align to 8
bytes or could be aligned to 8 bytes with a few tweaks.
Bug: angleproject:7852
Change-Id: Ie61976d5bf8df7790acd95c0e15d4c79402622a1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5288636
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e45b2fd8
|
2024-02-08T12:34:06
|
|
Vulkan: Implement ANGLE_translated_shader_source
Support for this extension was dropped when ANGLE generated SPIR-V
directly. Generating disassembled SPIR-V is not ideal as it incurs a
large binary size.
The online SPIR-V tool found at https://www.khronos.org/spir/visualizer/
is capable of disassembling SPIR-V from hex values. ANGLE now
implements this extension by outputting the SPIR-V in hex values and
relying on this tool.
Bug: angleproject:8523
Change-Id: I1a0529785147acee7b49a7a75b24f7d107ef690c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5278566
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
eaddd3ba
|
2024-02-09T15:39:43
|
|
Vulkan: use linear chroma filter for ycbcr by default
This aligns our choice of initial chroma filter with the initial sampler
state in a texture object with target GL_TEXTURE_EXTERNAL_OES.
It is still possible to confuse the backend in some edge cases (which
will be addressed with later patches), but at least we have the default
right.
Bug: b/315387961
Test: atest CtsNativeHardwareTestCases
Test: atest CtsMediaDecoderTestCases
Change-Id: I2430a084a95010c7c5084cd858d4255e531e6f13
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5278362
Commit-Queue: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
275e6f4f
|
2024-02-02T16:46:14
|
|
D3D: Add multiplanar support to d3d11 glTexSubImage2D
Add multiplanar format support to Angle's D3D11 glTexSubImage2D.
This is needed with multiplanar shared images, where we write all
planes of a d3d shared image through WritePixelsYUV in raster decoder
and need to do this via an intermediate texture for d3d11. This change
checks for multiplanar format supported by Image11 and then goes
through TextureD3D::commitRegion and performs copyTexture and then
copySubResource.
Added necessary test that tests for full texture copy and a subregion
copy and reads back and verifies.
Bug: chromium:40262482
Change-Id: I74c9978e62339375f6623f7f0a609bcb16c4b970
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5263039
Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Saifuddin Hitawala <hitawala@chromium.org>
|
|
e489dac0
|
2024-02-02T13:52:47
|
|
Allow BGRA -> RGBA for glCopyTex[Sub]Image
The opposite RGBA->BGRA was already allowed for handling platform-
specific default framebuffers. This allows the copying a IOSurface-
backed framebuffers to RGBA textures.
Bug: chromium:1523778
Change-Id: I124a4acc8c8fcdd1d3aae861d756d17022c4b4cc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5254778
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5d9abeca
|
2024-02-06T16:24:34
|
|
Revert "Suppress VUID-VkGraphicsPipelineCreateInfo-dynamicRendering-06576"
This reverts commit 39b9d94750328ec33aad244ddf28d16d9e748b2d.
Reason for revert: Fixed upstream:
https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/7439
Original change's description:
> Suppress VUID-VkGraphicsPipelineCreateInfo-dynamicRendering-06576
>
> VVL is still working on a fix for
> https://bugs.chromium.org/p/angleproject/issues/detail?id=8516#c2.
>
> Suppress the VVL error to unblock the vulkan-deps
> auto roller
>
> Bug: angleproject:8516
> Change-Id: I58a2593fe0bdde5d53e07ee68e6b83847cd41d37
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5263501
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:8516
Change-Id: Iec2a523e56040b2173489f26a38fe6df6fe1b609
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5273485
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3ad163d0
|
2024-02-09T12:29:40
|
|
Vulkan: Don't attach format features 2 version of AHB structure
There's no need to attach both
VkAndroidHardwareBufferFormatPropertiesANDROID *and*
VkAndroidHardwareBufferFormatProperties2ANDROID here. We don't use
anything from the `2` variant so just drop it.
Bug: b/315387961
Change-Id: I23166743010550ad3f6bb0144c9665b392deac66
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5275259
Commit-Queue: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
475784f5
|
2024-02-07T21:24:36
|
|
suppress VUID-VkPipelineVertexInputStateCreateInfo-pNext-pNext
Bug: angleproject:8522
Bug: b/324243941
Change-Id: I825986e7c98f50522d7ba25c0c78839802c42c3d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5277631
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Solti Ho <solti@google.com>
|
|
c603a4f1
|
2024-02-08T10:53:27
|
|
Don't perf warn about ETC1->ETC2 emulation as it is efficient
Format is forwards compatible:
https://crsrc.org/c/third_party/angle/src/libANGLE/renderer/gl/formatutilsgl.cpp;drc=21f16cb16333802dfa942d67cac59885f904301d;l=701
Added hasInefficientlyEmulatedImageFormat() helper
Bug: b/302115557
Change-Id: Ibc82c27ecf4e3afbfaac52cb45bdda776c50b4b3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5278562
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ef78e570
|
2024-02-07T20:52:19
|
|
Revert "Vulkan: disable warmUpPipelineCacheAtLink for Venus"
This reverts commit 0be59b3d83dd7b72daf2aab9d03702cfa46d4751.
Needed by GPL. Meanwhile, the prior jank issue with Dota Underlords has
been worked around separately.
Bug: b/323708819, b/267577845
Test: parallel shader warmup works with ANGLE-on-Venus
Change-Id: I61c63581b8c4e4c776842e7906e52d268e024ed2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5277630
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f431641a
|
2024-02-07T17:27:51
|
|
Revert "Vulkan: Get rid of X11 include in DisplayVkXcb.cpp"
This reverts commit 8abbe2836bb49faba8a97e2df59058290e1c385a.
Reason for revert: https://chromium-review.googlesource.com/c/chromium/src/+/5274193
Original change's description:
> Vulkan: Get rid of X11 include in DisplayVkXcb.cpp
>
> Bug: angleproject:8520
> Change-Id: Iaa251b0ba2858873b8d22e8f9e5dae7a2567c95e
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5273489
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Bug: angleproject:8520
Change-Id: I91bdd48d8893cbe3a6eed8058c0034a4ef1aed0a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5276987
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Solti Ho <solti@google.com>
|
|
8abbe283
|
2024-02-06T14:44:39
|
|
Vulkan: Get rid of X11 include in DisplayVkXcb.cpp
Bug: angleproject:8520
Change-Id: Iaa251b0ba2858873b8d22e8f9e5dae7a2567c95e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5273489
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
d05c9a5e
|
2024-01-25T13:01:49
|
|
Frontend support for QCOM foveated extensions
Add frontend state management to support foveated rendering extensions.
Bug: angleproject:8484
Test: Texture2D*Foveation*
Change-Id: I0e1be9f11b2d442207674562da760f5bfd7debc8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5208091
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
5a061558
|
2024-01-31T13:05:59
|
|
Vulkan: Update dynamic buffer size policy
When allocating a dynamic buffer, it is checked if the new data can
fit in an existing allocation. However, if the size of the new data
exceeds that of the current buffer, a new one is allocated. To avoid
using too much memory, if the data size is less than a threshold (a
fraction of the current buffer size, a smaller size will be used for
the new buffer.
However, with a specific pattern for the new sizes, combined with the
threshold value, there could be many allocations and deallocations,
which can affect the performance.
In this CL, the policy to update the dynamic buffer size is updated to
avoid this issue.
* Instead of using a smaller buffer when the required size is less than
1/4 of the current buffer size, it is done when the average required
size is less than 1/8 of the current size.
* Added a decaying average required size for the DynamicBuffer object.
* mSizeInRecentHistory
* For each new buffer allocation, the new required size is used with
the average size to calculate the new average.
* For each calculation, kDecayCoeffPercent is used as the weight for
the existing average, and the rest is the new required size, plus
rounding.
* kDecayCoeffPercent is currently set to 20%.
* sizeIgnoringHistory renamed to minRequiredBlockSize for more clarity.
Bug: b/322216767
Change-Id: Idcabbbe50f656910fe2103925e4d6d8602ca3425
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5254218
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
39b9d947
|
2024-02-02T13:32:30
|
|
Suppress VUID-VkGraphicsPipelineCreateInfo-dynamicRendering-06576
VVL is still working on a fix for
https://bugs.chromium.org/p/angleproject/issues/detail?id=8516#c2.
Suppress the VVL error to unblock the vulkan-deps
auto roller
Bug: angleproject:8516
Change-Id: I58a2593fe0bdde5d53e07ee68e6b83847cd41d37
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5263501
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f5f3304a
|
2024-02-02T16:27:38
|
|
Vulkan: Simplify handling of YUV filtering support
When the requested filtering mode changes, we need to consider whether
it is actually supported by the Vulkan driver. Now that we support
renderable YUV textures, there are now three interesting cases:
1) The texture has a VkFormat, and so filtering support can be queried
from GPDFP, as was already done.
2) The texture is imported from an opaque AHB using an external format,
that format is renderable, and so we have assigned one of the
EXTERNALn angle formats. This was *not* covered properly, and would
lead to VVL errors or UB.
3) The texture is imported from an opaque AHB using an external format,
and we have not assigned an EXTERNALn angle format to it, because the
format is not renderable, or the Vulkan driver is missing the
external format resolve functionality; In this case the angle format
is NONE.
This was similarly *not* covered properly, although the code did
attempt to protect itself from querying the capabilities of format
NONE. VVL errors and UB were still possible.
To most simply cover all of these cases, capture whether the image has
the VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER
feature upfront, and forget about format lookups in the internals of the
YcbcrConversionDesc.
Bug: b/315387961
Change-Id: Ie140293d52c2b88bf06ef19bc54bb1c95927b8ce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5259719
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c70c329e
|
2024-01-31T15:59:19
|
|
Vulkan: Fix texture copy vs pre-rotation
A minor error where the destination offsets were swapped based on source
rotation.
Bug: b/319336510
Change-Id: I5541f8d0bf0b7306b951d2601c8c27ffedb8470e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5254238
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
82ba79ff
|
2024-01-08T15:22:59
|
|
OpenCL: Update CLtypes.h to cl_types.h
This change/enhancement is to keep codebase more consistent since
vulkan backend versions of this header use lowercase-snake_case for
file name.
Bug: angleproject:8501
Change-Id: I223712c72db06425d192ddfe7300e5475c341e38
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5233364
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f8c06f10
|
2023-11-30T17:45:35
|
|
OpenCL: Add types to cl_mem origin and region
Now using cl::MemOffset and cl::Coordinate.
Bug: angleproject:8439
Change-Id: Id775fe78467d3b56d2a7cc87f793221ab5e04bc5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5078244
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ecc35205
|
2024-01-25T23:58:25
|
|
Move uniform block dirty bits to State
When glUniformBlockBinding changes the mapping from a program uniform
block to a buffer binding, all contexts in the share group need to
reprocess the affected block index. Prior to this change, the dirty
bits that indicated which blocks have their mapping redefined were
placed in the program executable, and were reset by the first context
that processed them. As a result, the other contexts in the share group
where not aware of such modifications.
Similarly, when a buffer changed in one context, the mapped program
blocks were marked dirty, with similar cross-context issues.
In this change, the dirty bits are moved to State, so every context
would react to these changes.
Bug: angleproject:8493
Change-Id: I5712002224cbc4a576bf2ac46e8e75f26ebc5b2a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5238991
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1abfdc37
|
2024-01-31T10:24:51
|
|
Remove suppression of VVL error
Remove the suppression of VVL error
VUID-VkFramebufferAttachmentImageInfo-viewFormatCount-09536.
This change in ANGLE
https://chromium-review.googlesource.com/c/angle/angle/+/5246088
properly fixed the VVL error.
Bug: angleproject:7553
Bug: angleproject:8513
Change-Id: Ic866bae689a649fdabfde8e80a882595e2e7947c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5249864
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
157088ad
|
2024-01-30T20:24:50
|
|
Add EGL extension for WebGPU
Bug: angleproject:8476
Change-Id: Ic5aad4eb56239d9346c6ba1f812d070ce85131a1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5245895
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Liza Burakova <liza@chromium.org>
|
|
a70b6f56
|
2024-01-26T20:37:07
|
|
Add support for WinUI3/Windows App SDK
Adds the necessary build args and code changes to
support building ANGLE for WinUI 3 (aka Windows
App SDK).
To reduce the set of changes, and because it is
functionally the same, a Windows App SDK build is
basically a UWP build, but with an extra define so
that the code can make a few changes to the
namespaces and includes used.
The main changes to the code are:
- ICoreWindow is no longer used
- Dispatcher has a few changes in naming and args
- ISwapChainPanel is now in a different namespace
Bug: angleproject:8490
Change-Id: Ibb298e3e86e8298dac12c2019eac7996a8185c51
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5230637
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9ca81c7e
|
2024-01-21T13:35:06
|
|
FrameCapture: Handle zero vertex count draws
Seeing the following from GLES1 (note count = 0):
glDrawArrays(context = 1, mode = GL_POINTS, first = 0, count = 0)
This crahes in FrameCaptureShared::captureClientArraySnapshot:
'length_error was thrown in -fno-exceptions mode with message "vector"'
The function assumes vertexCount will always be greater than zero.
This CL updates it to detect the empty case and simply return.
Negative counts are already handled as a GL error.
Test: Plague Inc MEC
Bug: b/321562592
Change-Id: I3613eaac297a3471dc998b023bf2658413cb5d1b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5250427
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Mike Schuchardt <mikes@lunarg.com>
|
|
98846aa8
|
2024-01-30T10:23:48
|
|
Metal: Temporarily disable asm injection.
Some Mac11 bots started to fail after the asm injection started.
Disable this path to determine if it was the root cause.
Bug: chromium:1522730,chromium:1513738
Change-Id: I2580f124735f576257bb46fbf47394ff845384f8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5249328
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5c2fc02b
|
2024-01-29T16:49:28
|
|
Vulkan: Bugfix in ImageFormat
FixedVector::operator[] does not update FixedVector::mSize.
Need to call FixedVector::push_back(...) instead.
Bug: angleproject:7553
Change-Id: I544a68276d1635957a27d21c222f50f71d35a609
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5246088
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
349e75cc
|
2024-01-29T16:41:42
|
|
Suppress VUID-VkFramebufferAttachmentImageInfo-viewFormatCount-09536
After this VVL change:
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+/40d989c436d43538be341cd614a595505ce907cc,
the newly added VVL error starts to be thrown
on multiple ANGLE bots.
Suppress this VVL error to unblock the vulkan-deps
roller first. Will investigate later how to fix
the VVL error in ANGLE.
Bug: angleproject:8513
Change-Id: I7d74ff762c3b78d70c3ba5139c1b6955d4cd49e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5247713
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
0c4d6446
|
2024-01-24T10:38:45
|
|
Rework uniform block <-> uniform buffer mapping
In GLES, the shader declares which buffer binding a block (uniform,
storage or atomic counter) is bound to. For example:
layout(binding = 1) uniform ubo0 { ... };
layout(binding = 2) uniform ubo1 { ... };
layout(binding = 1) uniform ubo2 { ... };
In the above, ubo0 and ubo2 use data from the buffer bound to index 2
(through glBindBufferRange), while ubo1 uses data from the buffer bound
to index 1. For uniform blocks in particular, omitting the binding
is allowed, in which case it is implicitly bound to buffer 0.
GLES allows uniform blocks (and only uniform blocks) to remap their
bindings through calls to glUniformBlockBinding. This means that the
mapping of uniform blocks in the program (ubo0, ubo1, ubo2) to the
buffer bindings is not constant. For storage blocks and atomic counter
buffers, this binding _is_ constant and is determined at link time.
At link time, the mapping of blocks to buffers is determined based on
values specified in the shaders. This info is stored was stored in
gl::InterfaceBlock::binding (for UBOs and SSBOs), and
gl::AtomicCounterBuffer::binding. For clarity, this change renames
these members to ...::inShaderBinding.
When glUniformBlockBinding is called, the mapping is updated. Prior to
this change, gl::InterfaceBlock::binding was directly updated, trumping
the mapping determined at link time. A bug here was that after a call
to glProgramBinary, GL expects the mappings to reset to their original
link-time values, but instead ANGLE restored the mappings to what was
configured at the time the binary was retrieved.
This change tracks the uniform block -> buffer binding mapping
separately from the link results so that the original values can be
restored during glProgramBinary. In the process, the support data
structures for tracking this mapping are moved to ProgramExecutable and
the algorithms are simplified. Program Pipeline Objects maintain this
mapping identically to Programs and no longer require a special and more
costly path when a buffer state changes.
This change prepares for but does not yet fix the more fundamental bug
that the dirty bits are tracked in the program executable instead of the
context state, which makes changes not propagate to all contexts
correctly.
Bug: angleproject:8493
Change-Id: Ib0999f49be24db06ebe9a4917d06b90af899611e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5235883
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: 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>
|
|
6367f541
|
2024-01-25T10:16:04
|
|
Vulkan: supply YcbcrConversionDesc earlier
Previously, the AHB import path would allow ImageHelper to build a bogus
YcbcrConversionDesc (in initExternal) and then later overwrite it with
what it wanted. The intermediate state was not necessarily valid, and
could cause assertion failures and VVL errors.
Instead, have ImageHelper clients provide the conversion they want
upfront. In the non-external case, build an appropriate conversion
for formats which need them, before delegating to initExternal.
Bug: b/315387961
Change-Id: Icc8f561bb2de0289ceec56d41978b8c4651a47a2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5232769
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f405b999
|
2024-01-19T11:18:49
|
|
Make RefCountObject use atomics for the reference count
When the context share lock is disabled it is possible for races
with EGL Image reference counting causing the EGL Image to be deleted.
egl::Image already protects its members with a mutex but the siblings
also hold a reference to the egl::Image, if siblings are added and
removed at the same time, writing to the ref count races and the
egl::Image can be deleted while still being referenced.
Bug: angleproject:6957
Change-Id: I3da8691136b6dbcffb2094187c81cafda077e50d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5214270
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
36013d99
|
2024-01-24T01:21:10
|
|
Improve build for UWP/Windows 10
These changes update the code for more modern
compilers. The changes include:
A) Not using deprecated APIs
When Windows 8.1 was removed in commit
39b110184e2675afbfda1fd70b10ca112127ae74 the code
was not updated to use the new APIs and still use
the things that should not be used:
> DisplayProperties may be altered or unavailable
> for releases after Windows 8.1. Instead, use
> DisplayInformation.
B) Use correct casting
There was also some changes in commit
5eadaf85b42ab1cbb1efcda558db58a3fe5a446a to
properly cast from EGLNativeWindowType to
IInspectable*, but this was not all of the cases.
C) Prepare for WinUI3
There is another change that moves types into a
using to reduce verbosity as well as make it
easier/cleaner to build for WinUI/Windows App SDK.
Bug: angleproject:8496
Change-Id: Ia11b7f92cb4abc524ab8316125e80a22898a8f6b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5232157
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e9bd169c
|
2024-01-24T12:26:46
|
|
Vulkan: Fix nullptr in Diagnostics
- VK Spec for VkDebugUtilsMessengerCallbackDataEXT says
pMessageIdName may be nullptr and pMessage must not be a nullptr
- This was enforced by the following change
Vulkan: Don't crash on diagnostics with null pMessageIdName
- But this was susequently broken by the following change
Vulkan: Enable sync validation
- This change adds a check to skip accessing
callbackData->pMessageIdName if it is null
Bug: angleproject:5290
Change-Id: I82dd225d875e233530158013efc280e979f82a5b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5238650
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Brandon Schade <b.schade@samsung.com>
|