|
38d5b4d6
|
2024-08-21T15:49:33
|
|
Vulkan: Clean up the CovertVertexBuffer* API
Some minor clean up of the API so that the arguments we passed into
these two functions CovertVertexBufferGPU and CovertVertexBufferCPU are
symmetrical.
This CL also factor out the common logic in these two functions into a
helper function CalculateOffsetAndVertexCountForConversion().
Bug: b/357622380
Change-Id: I5339850c99d733dfea5039ba74734290f8326bd3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5804529
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
8fc6d8a8
|
2024-08-13T09:49:46
|
|
Vulkan: Limit vertexBufferConversion to the data within dirtyRange
Right now when we do vertex buffer conversion, we always convert from
the binding.offset all the way to the end of the buffer, because we do
not know who much vertex will be drawn. According to the comment, if we
choose to only convert the number of vertices this draw call will be
using, then we may end up issuing a lot of conversions in the case that
there are many draw calls with small vertex numbers. This CL intends to
keep this behavior (i.e, still do the conversion of the data from
binding offset to end of the buffer), but apply the optimization that
pays attention of mDirtyRange and only convert the portion of data that
has actually been modified. Note that the mDirtyRange is the union of
all data ranges that has been modified, so may include the unmodified
data between two modified ranges.
Bug: b/357622380
Change-Id: I91f3dbf4cacb17d3fa4d8d599519865be765557f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5785860
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6f97a8b3
|
2024-08-21T13:25:28
|
|
Vulkan: Add two tests for vertex conversion
Two glBufferSubData calls and then use the buffer (get down to the
vertex conversion code path, at least with forced fallback config). The
test will exercise the logic regarding the conversion with multiple
dirty ranges. Two tests are added in this CL, one with two overlapping
range and another with non-overlapping range.
Bug: b/357622380
Change-Id: Id8fa23a6e1511e2f03c002782ab99f167416ca02
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5805244
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
790e0162
|
2024-08-09T17:11:38
|
|
Vulkan: Add dirty range to VertexConversionBuffer class
Previously, ConversionBuffer only has a boolean indicates it is dirty or
not. This CL adds mDirtyRange to it to indicate which range of data has
been modified. The existing dirty boolean has been changed to
mEntireBufferDirty so that all the current code will still work. Right
now mEntireBufferDirty is always set when we mark it dirty, which means
entire buffer gets converted. mDirtyRange has not been used to reduce
the data to be converted. Right now the range is always being merged to
the existing range and not actually being used in this CL. It will be
used in the next CL.
Bug: b/357622380
Change-Id: Ibfa702b29011f4e26c511d5db85c07cbf2a4aefb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5778347
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
33c2ff07
|
2024-08-20T00:00:00
|
|
Metal: Remove obsolete watchOS compile guards
MTLSamplerAddressModeMirrorClampToEdge:
- macOS 10.11 (min compile 12.0, min deploy 10.15)
- iOS 14.0 (min compile 17.0, min deploy 15.0)
- tvOS 16.0 (min compile 17.0, min deploy 17.0)
Bug: angleproject:360147119
Change-Id: I21457e7f0694d09857153199037929f9739eded0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5803986
Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
d263945a
|
2024-08-20T16:32:36
|
|
Translator: make replaceChildNode() a little more type-safe
If we know the type the child node should be, instead of
static_cast<>ing to the expected type, use getAs{ExpectedType}() and
crash if nullptr.
This would have saved me when the ReplaceVariables() AST transformaton
replaced a TIntermSymbol in a TIntermGlobalQualifierDeclaration with a
TIntermTyped that was not a TIntermSymbol. But
TIntermGlobalQualifierDeclaration can only have a TIntermSymbol as a
child, so this caused confusing crashes.
Other node types have similar expectations of the types of their
children. This doesn't enforce any type safety on TIntermAggregate
children as those are a little more flexible and complicated. This
CL also doesn't enforce non-nullptr children when the parent can't
handle nullptr children.
Bug: angleproject:42267100
Change-Id: Ic7fb41039705aa4f6daec052940d9bfc4974d955
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5800264
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
|
|
41309a2f
|
2024-08-20T08:01:27
|
|
Manual Roll VK-GL-CTS from 50e83129b558 to f105fd7ea388 (16 revs)
Added deqp.gni changes for:
gl3cPrimitiveRestart.hpp/cpp
es3cDriverErrorTests.hpp/cpp
https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/50e83129b558..f105fd7ea388
2024-08-16 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.3.9
into vk-gl-cts/main
2024-08-16 ziga@lunarg.com Fix race condition in EGL multithreading
tests
2024-08-16 younggwan.kim@arm.com Add coverage for depth bound test
without depth attachment
2024-08-16 tomek.bury@broadcom.com Fix
dEQP-EGL.functional.fence_sync.valid.egl_fence_persistent_buffer
2024-08-16 okuznetsov@google.com New tests group for known driver error
tests
2024-08-16 marcin.hajder@mobica.com Port KC-CTS tests to VK-GL-CTS
(primitive_restart_mode), PART 10
2024-08-16 piotr.byszewski@mobica.com Test DRLR remapping while using
shader object
2024-08-16 ziga@lunarg.com Test drawing with stencil test and without
vkCmdSetFrontFace
2024-08-16 rgarcia@igalia.com Reuse scratch buffer creating acceleration
structures back-to-back
2024-08-16 rgarcia@igalia.com Test preemption with
VK_KHR_global_priority
2024-08-16 rgarcia@igalia.com Removed ESO compute tests using Amber
2024-08-16 lorenzo@khronosgroup.org Merge vk-gl-cts/opengl-es-cts-3.2.11
into vk-gl-cts/main
2024-08-14 syoussefi@google.com Remove DE_NULL's definition
2024-08-05 lorenzo@khronosgroup.org Merge vk-gl-cts/opengl-cts-4.6.5
into vk-gl-cts/main
2024-08-05 ziga@lunarg.com Fix broken build on windows
2024-08-04 michal.jakubek@mobica.com VK_DEFINE_PLATFORM_TYPE macro
doesn't accept nullptr
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll
Please CC angle-team@google.com,cnorthrop@google.com on the revert to
ensure that a human
is aware of the problem.
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: None
Tbr: cnorthrop@google.com
Change-Id: I71223610821b102501a78eea2abecb95d10f4910
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5799167
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
1dabe52c
|
2024-08-20T00:00:00
|
|
Metal: Remove texture swizzle compile guards
Texture swizzle support:
- macOS 10.15 (min compile 12.0, min deploy 10.15)
- iOS/tvOS 13.0 (min compile 17.0, min deploy 15.0)
Bug: angleproject:360147119
Change-Id: If7e59cc094e5bcdb145a54541662d0fe0a989e8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5803984
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f551a112
|
2024-08-20T00:00:00
|
|
Metal: Remove obsolete compile guards from the command buffer
memoryBarrierWithScope and memoryBarrierWithResources:
- macOS 10.14 (min compile 12.0, min deploy 10.15)
- iOS/tvOS 12.0 (min compile 17.0, min deploy 15.0)
dispatchThreads:
- macOS 10.13 (min compile 12.0, min deploy 10.15)
- iOS 11.0 (min compile 17.0, min deploy 15.0)
- tvOS 14.5 (min compile 17.0, min deploy 15.0)
Bug: angleproject:360147119
Change-Id: I05e4e5dac81b4e07c47e0f3a1b7d165ff9406cc3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5804021
Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
36f7e03a
|
2024-08-21T13:49:10
|
|
Revert "Metal: Fix availability for kIOMainPortDefault"
This reverts commit a712626e940cbd3ff6f279a6e838362392a3fd1d.
Reason for revert: breaks iOS
https://chromium-review.googlesource.com/c/chromium/src/+/5802272
https://ci.chromium.org/ui/p/chromium/builders/try/ios-simulator/2048194/overview
Original change's description:
> Metal: Fix availability for kIOMainPortDefault
>
> Remove ad hoc deprecation disables for
> kIOMasterPortDefault.
> macCatalyst kIOMainPortDefault available 15.0,
> less than minimum 15.6. Remove the ifdefs.
>
> Bug: angleproject:360147118
> Change-Id: I2ccc08814e267984ff53275cc2886e2bfa8d4c2a
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5797149
> Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Bug: angleproject:360147118
Change-Id: Iab3e8d1dece4866732ecbebab4c83f274b99e034
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5803985
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
|
|
f102d75a
|
2024-08-14T19:52:30
|
|
Metal: translate IOSurface pbuffer's GL_RGB to RGBX/BGRX format.
Currently when IOSurface is bound to a pbuffer with GL_RGB internal
format, we asign angle format=B8G8R8A8_UNORM/R8G8B8A8_UNORM to it.
And then disable alpha write to the respective MTLTexture.
However, when an implicit MSAA texture is created for the above
pbuffer, it will be assigned B8G8R8A8_UNORM/R8G8B8A8_UNORM angle format
but has no knowledge about alpha write disable. Consequently, when a
render pass uses this implicit MSAA texture, its alpha channel won't be
cleared properly and would contain garbage values.
In order to avoid the above bug, we should use
B8G8R8X8_UNORM/R8G8B8X8_UNORM angle format for the IOSurface pbuffer.
This will fix the render corruptions found in chromium:358957665.
Bug: angleproject:42261786
Bug: chromium:358957665
Change-Id: I8aa1e24ace2de80dd08e21711445515ba4b339ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5788801
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
|
|
5cf94ffa
|
2024-08-20T10:41:40
|
|
Metal: Use pipeline rasterSampleCount
Use MTLRenderPipelineDescriptor rasterSampleCount instead of
sampleCount. This avoids the use of the deprecation macro.
Availability: iOS 8.0 (min: 15.0), mac Catalyst 13.1 (min: 16.5),
macOS 10.11 (min: 10.15), tvOS 11.0 (min: 15.0), visionOS 1.0+
Bug: angleproject:360147118
Change-Id: I7009a7d7b39ecb763e23f4b97441fb45a64a891d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5797134
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
25237423
|
2024-08-20T15:22:32
|
|
Metal: Remove ifdefs for primitive topology class
MTLPrimitiveTopologyClass availability iOS 12.0, minimum runtime
15.0. Remove the ifdefs.
Hardcoding ANGLE_IOS_DEPLOY_TARGET is dangerous, likely it has never
been correct. Remove. Should use __IPHONE_OS_VERSION_MIN_REQUIRED.
Bug: angleproject:360147118
Change-Id: I43d7a364fa0237af1ee1f546015ae884fc373b15
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5797141
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
a712626e
|
2024-08-20T15:12:19
|
|
Metal: Fix availability for kIOMainPortDefault
Remove ad hoc deprecation disables for
kIOMasterPortDefault.
macCatalyst kIOMainPortDefault available 15.0,
less than minimum 15.6. Remove the ifdefs.
Bug: angleproject:360147118
Change-Id: I2ccc08814e267984ff53275cc2886e2bfa8d4c2a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5797149
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
86508e20
|
2024-08-16T14:56:37
|
|
Vulkan: Make VertexConversionBuffer a class
And wrap the cache key (i.e, formatID/stride/offset) into a CacheKey
struct so that we can easily add more data members. This CL also changes
ConversionBuffer from struct to class to have better encapsulation. No
functional changes is expected here.
Bug: b/357622380
Change-Id: Ieecf5c922b95a940137c8e54657ef3f458c55fc9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5793921
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
a3f9f6c3
|
2024-08-16T12:12:00
|
|
Vulkan: Move VertexConversionBuffer out of BufferVk class
This is another preparation CL to make code review easier. In the future
CL, VertexConversionBuffer will be used in other files.
BufferVk::VertexConversionBuffer is a bit too verbose. Make
VertexConversionBuffer a standalone class makes code a bit easier to
read. We could potentially merge ConversionBuffer and
VertexConversionBuffer into single class, but I am leaving it for future
exercise.
Bug: b/357622380
Change-Id: I2255a1c9b01f5d6c3846e8017cc667e6a9d66ffc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5787504
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
7080b766
|
2024-08-16T11:31:39
|
|
Vulkan: Move LineLoopHelper from vk to rx namespace
There is no line loop support in vulkan. LineLoopHelper is a utility
function for backend, not a helper function for vulkan object. So it is
better fit in rx namespace instead of vk namespace.
This also helps my next CL where I am going to change
initBufferForVertexConversion to take a ConversionBuffer instead of
BufferHelper. LineLoopHelper uses initBufferForVertexConversion, which
means I have to change LineLoopHelper to uses ConversionBuffer. This
causes header inclusion problem that now vk namespace object end up have
to include rx namespace header. This CL fixes this inclusion problem by
moving it to the proper namespace.
Bug: b/357622380
Change-Id: I6d6cf1aa926f726bb1b1ab1017bcab092eaf5d37
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5787502
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
e0f790c0
|
2024-08-20T12:08:40
|
|
Metal: Use present APIs for Metal availability
Use non-deprecated APIs for checking Metal backend
availability.
macCatalyst and macOS needs MacFamily2
Availability:
- macOS 10.15, minimum runtime 10.15
- macCatalyst 13.1, minimum runtime 16.5
iOS, minimum runtime 15.0, can always use the backend.
Bug: angleproject:360147118
Change-Id: Id0b70c81bc8b54a22b94ba514aab148b202d58ef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5797053
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
eb6c4bfe
|
2024-08-20T09:58:11
|
|
Metal: Fix availabilities of MTLGPUFamily use
Fixes compile in case of targeting only the newer SDKS.
[MTLDevice supportsFamily:] is supported on all minimum runtimes:
- macOS 10.15 (minimum runtime 10.15)
- macCatalyst 13.1 (minimum runtime 16.5)
- iOS/tvOS 13.0 (minimum runtime 15.0)
Remove the ifdefs and fallbacks.
MTLGPUFamilyMacCatalyst1 is deprecated on macCatalyst 16.0. Replace
with MTLGPUFamilyMac2.
MTLGPUFamilyMac1 is deprecated on macOS 13.0. Replace with
MTLGPUFamilyMac2.
MTLGPUFamilyApple7 is present on iOS/tvOS 14.0, minimum runtime 15.0.
Remove ifdefs.
MTLGPUFamilyApple6,7 are present on macOS 11.0 SDK, minimum SDK 12.0.
Remove ifdefs.
Bug: angleproject:360147118
Change-Id: I337d1ad44940a2f39a57ba8a28de0e1d7387658c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5797050
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
2758d4dc
|
2024-08-20T16:00:07
|
|
Metal: Remove shared event related ifdefs
Shared events are supported by iOS 12, macOS 10.14, included in the
minimum versions iOS 15, macOS 10.15.
Bug: angleproject:360147118
Change-Id: I5b62dade045f9d50864ef1906cb22a18fd09e4da
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5797150
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
2f2cdbb8
|
2024-08-19T11:05:22
|
|
D3D11: Fix uniform setting for mat3 followed by float
A single float following a float3x3 will pack tightly in the last row
of the matrix. The uniform setting code for matricies would write a
full row stride's worth of data for the last matrix row, overwriting
the float packed at the end.
Update ExpandMatrix to only write colsSrc worth of values in the last
row.
Bug: angleproject:42266878, chromium:345525082
Change-Id: Ieb616972387501cd8c30f02b267f86a7f81cf01a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5796631
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
1a191b1d
|
2024-08-16T17:31:38
|
|
Metal: add an option to emulate DontCare loadOp with randomized Clear.
This is useful for testing undefined initial values caused by DontCare
MTLLoadAction on non-tiled GPUs.
Bug: angleproject:42261786
Change-Id: Id5c4a9ee8510a8a9143bdd67e276bfcf2bd7eaa5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5791386
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
|
|
57a3e9a7
|
2024-08-15T00:00:00
|
|
Prevent compilation with unsupported Apple SDK versions
Bug: angleproject:360147119
Change-Id: Ie9924cb49ffa729d454a2869a2d19d957500bd10
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5793513
Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
62cc3790
|
2024-08-19T11:05:52
|
|
Metal: Remove UseResource old SDK fallbacks
Fixes deprecation compile errors on newer SDKs.
Remove the version guards, the useResource API is available on:
macOS 10.15, minimum supported version 10.15
iOS 13, minimum supported version 15
macCatalyst 13.1, minimum supported version 16.6 (for macOS 13.5)
Bug: angleproject:360147118
Change-Id: I6d2dd7cb510d6134b75d4479ae7159b8fbcfc96b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5796002
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
579a5855
|
2024-08-13T11:39:54
|
|
Vulkan: Add query for 64bit fp support feature check
Add a feature check for shaderFloat64 support. If present expose the
corresponding feature check.
The following files are updated by running the autogen script -
`run_auto_code_generation.py`
- include/platform/autogen/FeaturesVk_autogen.h
- util/autogen/angle_features_autogen.cpp
- util/autogen/angle_features_autogen.h
Bug: angleproject:360031000
Change-Id: If2a11190729550ad5b84714e0a3aa3b81956c66a
signed-off-by: gowtham tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5789896
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e90cd0c4
|
2024-08-12T17:07:47
|
|
Vulkan: Add check for int8 extension support
Vulkan backend currently has a check for float16 part in
VK_KHR_shader_float16_int8 extension. Add the int8 support as well.
The changes in below files are generated through
`scripts/run_code_generation.py` script
- include/platform/autogen/FeaturesVk_autogen.h
- util/autogen/angle_features_autogen.cpp
- util/autogen/angle_features_autogen.h
Bug: angleproject:360031000
Change-Id: I8811779299e3d24b4536d1871e1eadcbb87432c2
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5792021
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
319907d2
|
2024-04-05T16:05:33
|
|
Vulkan: Propagate the support of shaderInt16/64 feature
Progate the support of shaderInt16/64 features in to enabled feature
list.
Bug: angleproject:360031000
Change-Id: I38915a764fb2f1dd31348c01bc2fcfa4913ebdec
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5792019
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
78dd9a8e
|
2024-08-16T15:44:49
|
|
Metal: Support compiling without OpenGL on macOS
Avoid OpenGL framework use unless CGL is enabled. It was used in active
GPU resolution for older macOSes.
Bug: angleproject:360159407
Change-Id: I6d820ea37290d5e75151db0b42dc266910bcba6a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5793512
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
2f28264e
|
2024-08-15T18:05:43
|
|
Trace perf: add origin/main revision to summary if != HEAD
Bug: None
Change-Id: Iacacd98993d7dc5fbea8489b46236e939f465689
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5792199
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
26c842fc
|
2024-08-15T14:51:22
|
|
Metal: use injectAsmStatementIntoLoopBodies on iOS
The setting should be enabled for iOS.
Bug: chromium:1513738
Change-Id: I5efd4126711eff6df8f5d84689f7f3310d7e8487
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5788428
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
83ca89e5
|
2024-08-08T19:53:32
|
|
CL: Update logic for default platform on context creation
In ANGLE, when multiple backends are enabled
(e.g. passthrough, Vulkan, etc.), each backend is its own platform.
Existing validation code was failing in this case for clCreateContext
in the event of user not manually specifying CL_CONTEXT_PLATFORM.
Spec says implementation then decides which platform to be associated
with that context.
ANGLE has a Platform::GetDefault() routine that was used and it simply
grabs the 1st platform from our platform list in ANGLE
(passthrough mode platform object in this case).
We erroneously fail the validation in the case where we pass Vulkan
device in our device_list since default-platform != Vulkan-platform.
Updating the logic to use device's platform (from list) as default case.
For clCreateContextFromType, we can continue to use
Platform::GetDefault() as this routine generates the appropriate device
list for the user to query/get via clGetContextInfo.
Bug: angleproject:42266872
Change-Id: I285459688309d1cc76ade5a8564164a5538e1eda
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5789652
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
31ad61c4
|
2024-08-15T16:31:23
|
|
Skip end2end WebGPU tests flaky crashing on Linux Intel
Seen on UHD630 Ubuntu 22.04 Mesa 23.2.1 experiment.
Bug: angleproject:360083331
Change-Id: I63f1eda1dc3ef7f64e3b5e37b678a31ac9a190af
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5786999
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
21905014
|
2024-08-08T16:55:52
|
|
CL: Fix entrypoint validation for ICDs
For some OpenCL ICD implementations,
the clGetPlatformIDs API is left as nullptr
in the ICD dispatch table. This is because
the OpenCL ICD Loader instead uses the
clIcdGetPlatformIDsKHR call instead.
Updating the passthrough code to only
require checking the clGetPlatformIDs API
if the platform is not an ICD.
Bug: angleproject:42266872
Change-Id: Ic723adbf3ad0f6c79389ef629dd24ae8a82ca9ba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5789651
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
77616aa3
|
2024-08-14T13:22:32
|
|
Tests: Add Gwent Witcher Card Game trace
Test: angle_trace_tests --gtest_filter="*gwent_witcher_card_game*"
Bug: b/359910003
Change-Id: I6b93d36ac58df7639f07b7f21107f4d4522f6cee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5789276
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
e6b46eae
|
2024-08-15T10:01:05
|
|
Roll vulkan-deps from f084a55f96da to 91058f2297c9 (4 revisions)
Suppress new VUIDs:
VUID-vkCmdDraw-Input-07939
VUID-vkCmdDrawIndexed-Input-07939
VUID-vkCmdDrawIndexedIndirect-Input-07939
VUID-vkCmdDrawIndirect-Input-07939
https://chromium.googlesource.com/vulkan-deps.git/+log/f084a55f96da..91058f2297c9
Also rolling transitive DEPS:
https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/3a08cd8de1f88d114c18670366f29226db453a9e..0dc6711e5a178e4d5643437af688c6b48f829f5c
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers/+log/f013f08e4455bcc1f0eed8e3dd5e2009682656d9..1b75a4ae0b4289014b4c369301dc925c366f78a6
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/8d902c7f67edd9e54b0fa5f7d2c34f9abfeacba8..4eb3585f32ec194efe2d9cd88a2b2943ff41f922
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC angle-team@google.com,ynovikov@google.com on the revert to
ensure that a human
is aware of the problem.
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: chromium:359904720
Change-Id: Idf82bf9a210b953785fc2387e5c64ef157ec36e6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5791052
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
2003e062
|
2024-08-09T17:52:38
|
|
Vulkan: Set queue family index for oneoff command buffer
Use the queue family index that the Renderer has chosen for creation of
oneoff command buffers.
Bug: angleproject:359623670
Change-Id: I0a36edf79a751133d477d433c9cfd8dbddaad221
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5785864
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2b723c13
|
2024-02-02T14:12:06
|
|
CL/VK: Add initial enqueueCopyBuffer
Generalizing the copy buffer with appropriate
barrier inserts and commandbuffer command.
Bug: angleproject:42267074
Change-Id: I02fd36a221ea70f007aee78ceeef84c24fa85682
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5410935
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ef6a3132
|
2024-06-25T17:30:03
|
|
CL: Return error code for not supported APIs
The spec requires error codes to be reported for not supported API
calls. Fixing to return relevant error codes.
Bug: angleproject:359296611
Change-Id: Ia64bf2673446269c6557308c169f019c7dd67cc8
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5782397
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
da572160
|
2024-07-23T16:36:10
|
|
Reland: GL: Forward client-side arrays to the driver when possible
The OpenGL driver can handle client-side arrays when the context is
OpenGL ES or a desktop GL compatibility profile. When in these
situations, use the driver default VAO for all frontend context VAOs
and forward client-side data directly to the driver.
Fix synchronizing the default VAO state for external contexts. There
is no valid VertexArrayStateGL for external VAOs so make sure it's
nulled and the VAO dirty bits are set so the correct VAO state is
reapplied.
Disable syncing to the default VAO for external contexts. The only
VAO that they can share with ANGLE's internal state is the default
VAO so avoid having to save and restore its state.
Bug: angleproject:355034686
Change-Id: I015bbbc854938fe4bc1e92d0ca8fe04628d0db16
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5743284
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
6fddb18d
|
2024-07-26T12:44:23
|
|
GL: Disable heavily emulated extensions for non-WebGL.
The multidraw and base vertex base instance extensions are heavily
emulated in ANGLE's GL backend, manipulating vertex arrays multiple
times per draw. This is often a performance improvement for deep
pipelines such as WebGL but slower for shallow stacks like Chrome's
rasterization.
Mark these extensions as "emulated" and disable them in the frontend
for non-WebGL contexts. Only EXT_base_instance can have true native
support.
Add a frontend feature to re-enable these extensions and use it in the
existing end2end tests.
Bug: angleproject:355645824
Change-Id: I897559fb270e2aa0f476d7784d25d97574e28f43
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5743837
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
087afc91
|
2024-08-10T20:40:53
|
|
Vulkan: Prefer fallback to renderable texture than CPU copy
When a texture copy is done, the transfer path is preferred. If
transfer is not possible, ANGLE falls back to a draw-based copy.
However, if the format is not renderable, ANGLE falls back to CPU copy.
Instead, this change makes ANGLE try to fall back to a renderable format
before giving up on the draw-based copy.
Bug: b/351872449
Change-Id: I3d09dd88cc0b7feb5e92e58c4f19380973eb5e94
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5775592
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5967afe7
|
2024-04-02T17:45:48
|
|
CL: Update Platform ctor to handle rx errors
Bug: angleproject:359294584
Change-Id: I7aad107e57ea6f29b8fc69205ba72c27de6a9428
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5421576
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
072dc5d1
|
2024-08-13T13:53:52
|
|
Metal: Disable multisampled render to texture.
Corruption has been seen on M1 Macs for WebGL content which uses a
multisampled backbuffer.
Bug: chromium:358957665, angleproject:42261786
Change-Id: Ia17581b15cd032e91e2642d80abace8d57ceb23b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5783540
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
|
|
b36d94dc
|
2024-08-02T16:23:03
|
|
WebGPU: Implement viewport and scissor
Tested using samples. dEQP tests covering viewport and scissor require
more shader translation to be completed.
Bug: angleproject:0
Change-Id: Ia76f2edeea5a07af1881704a21fafb64ab7df43a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5756127
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c1767fd9
|
2024-08-13T12:37:18
|
|
Suppress deqp_khr_gles31 failure on Samsung S22
KHR-GLES31.core.shader_image_load_store.basic-allTargets-loadStoreCS
regressed in
http://ci.chromium.org/ui/p/angle/builders/ci/android-arm64-exp-s22-test/912
http://chromium-review.googlesource.com/c/angle/angle/+/5719258
Bug: angleproject:350994515
Change-Id: I342043208cd85acf2877399f9a528c3dd428631b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5785959
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
|
|
1735415a
|
2024-08-13T10:14:57
|
|
Remove unused deqp_khr_gles3 expectations
KHR-GL33.cull_distance.functional was split into individual cases in
https://chromium-review.googlesource.com/c/angle/angle/+/5710888
Also move SWIFTSHADER expectations added in that CL
to be after VULKAN ones, to avoid conflicts due to VULKAN expectations
applying to SWIFTSHADER as well.
Bug: b/353358652
Change-Id: Idebfba9ef90b7e882d7072538722a591c9dc007b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5785955
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
5b4517ec
|
2024-02-02T14:04:29
|
|
CL/VK: Add helper for inserting barriers
Adding a helper function to insert execution and memory barriers when
resource access commands are recorded into the command buffer in
CLCommandQueueVk.
An example of a copy buffer command with src and dst
```
set access.readBuffer <- src
set access.writeBuffer <- dst
insert barriers - onResourceAccess(access)
add copy command - commandBuffer->copyBuffer()
```
Bug: angleproject:42267073
Change-Id: I61d8064fd015a4bf3dab018cbb83d147915ed627
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5409249
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
f8fc8ac3
|
2024-08-05T11:50:11
|
|
Vulkan: Remove dependency on ContextVk for CommandBufferHelper
Following on the changes in [1], this makes the
`CommandBufferHelperCommon` and `OutsideRenderPassCommandBufferHelper`
interfaces independent of `ContextVk` state. Any dependency is made
explicit.
In addition, interfaces that are not specific to GLES context are also
updated.
[1]: Commit (bcf814fda5 Vulkan: Constrain the dependency on ContextVk in
BufferHelper)
Bug: angleproject:8544
Change-Id: I7d90ad915e8c14187ab5584453b9e8802bd91e2b
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5319147
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3d6cf23c
|
2024-08-12T16:26:03
|
|
Skip end2end tests failing on iOS simulator
Bug: angleproject:359136169
Change-Id: Ic1100d74f308c6d8a3d2f450e8b5f46e8539f2a5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5782861
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
ee25dddb
|
2024-08-09T01:03:26
|
|
Metal: Properly clear render pass' attachment with an emulated alpha.
When a texture is created with emulated format such as RGB, its alpha
channel is initialized to 1 and the write mask is configured such that
the alpha value won't be overwritten or set to other values.
However, if we use this texture as an attachment in a render pass, and
DontCare loadAction is used, the alpha value would be initialized
with garbage values. No draw calls within the render pass would change
these garbage values because the configured write mask already prevents
that. Thus the garbage alpha values would be stored in the memory after
the render pass ends.
This bug also affects MSRTT's unresolve step, because it uses a draw
call to blit the resolve texture to the MSAA texture. However, the
alpha write is disabled thus the MSAA texture will remain having garbage
alpha values.
The fix for this bug is that: if we detect that the texture has emulated
format and its loadAction is DontCare, we change it to Clear action to
clear the alpha channel to 1.
Bug: angleproject:42261786
Change-Id: I994849bd4b3c3ab51698833d1cc520376ae6de44
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5773347
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Quyen Le <lehoangquyen@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
|
|
681b681b
|
2024-08-10T14:03:28
|
|
Tests: Add Grand Mountain Adventure trace
Test: angle_trace_tests --gtest_filter="*grand_mountain_adventure*"
Bug: b/358846996
Change-Id: If6815705b357eb69a777156d840be17fbe362938
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5779619
Commit-Queue: Roman Lavrov <romanl@google.com>
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
11724133
|
2024-08-06T12:02:54
|
|
Metal: Separate vars with normal types
Separate compound expressions separates expressions as temporary values.
Previously creating a temporary variable would copy the entire type.
Qualifiers and interface block info but shouldn't ever be applied to
temporary variables. This would lead to assertions during MSL
output.
Fix by copying the type and unsetting qualifiers and interface block
info.
Bug: angleproject:357622691
Change-Id: Id868cd3eaabe3710121d6c9a565304e282ddb69f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5762605
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
6e248bcb
|
2024-06-20T00:00:00
|
|
Metal: Fix ASTC on visionOS
Adjusted compile guards to
include visionOS target.
Fixed: angleproject:358393363
Change-Id: If7ead234f5deaee524172d2fb38d4a041c915716
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5777140
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
0bb0a886
|
2024-08-08T17:05:27
|
|
Drop .{ANGLE_REVISION} from ANGLE version when revision == 0
This can happen when git revision is unavailable, such as in rolls to
Android. Instead of using
ANGLE 2.1.0 git hash: ...
use:
ANGLE 2.1 git hash: ...
This applies to GL_VERSION, version we see in logcat etc.
Bug: b/348044346
Change-Id: Iaef13025922cf0a1a9c2c1e556b9e9fe2a1aae01
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5774120
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2b15c795
|
2024-08-09T17:13:17
|
|
Make explicit that GenerateCrc() return correct CRC32 hash
According to the documentation of `crc32_z()`, to get required
initial value need to call `crc32_z()` with nullptr "buf" parameter.
Using this initial value will produce correct CRC32 hash.
On practice, `crc32_z()` with nullptr "buf" produces "0", so the current
code actually calculates correct CRC32 hash. However, this is still
against the documentation, and in different versions of zlib or
architectures may produce incorrect results.
Technically, `GenerateCrc()` does not require to produce correct CRC32
hash - the main purpose is to calculate some hash value.
But because updating this function to produce correct CRC32 hash is very
easy, this change updates the implementation and renames it to
`GenerateCRC32()` to explicitly state that it generates correct CRC32
hash. After this, function may be used in scenarios where CRC32 hash
is really required.
Bug: angleproject:4722
Change-Id: Ib159f2d3ad1a8388f505abb09a6d0b19a51b7eec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5777145
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7bab5bce
|
2024-06-20T00:00:00
|
|
Metal: Support BC texture formats with non-macOS targets
Used supportsBCTextureCompression device query
to check BC formats support on Apple GPUs.
Fixed: angleproject:42266573
Change-Id: I60fd5614d10d0c4558992e2c5d3e4b4c1a396aaa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5771136
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
bacd3a7d
|
2024-08-07T19:01:18
|
|
Vulkan: Fix CompressAndStorePipelineCacheVk() crashing
`ContextVk` may be destroyed while
`CompressAndStorePipelineCacheTask()` is still running. Context is only
used to output a performance warning. So in case of such performance
warning, `gl::State::mDebug` object may be already destroyed, causing
undefined behavior.
Change removes `ContextVk` from the function and uses `WARN()` instead.
The `CompressAndStorePipelineCacheTask` stores pointer to the
`vk::Renderer` instead of `ContextVk`.
Bug: angleproject:4722
Change-Id: Iba9cad78ce5c6ea29cc2143f7bd2340cf0484855
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5768881
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
98b06696
|
2024-06-17T17:28:56
|
|
CL/Vulkan: Add initial profiling support
This PR introduces initial cl_event profiling
support. For now, use CPU timestamps
(later look into Vulkan GPU device timestamps).
Bug: angleproject:357902512
Change-Id: I2197e396e222d2842ab31304f91934f9e000ea0d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5767598
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
4b4ef052
|
2024-08-08T13:58:49
|
|
Suppresess SmallRowLength failure
Suppresses the ReadPixelsPBOTest.SmallRowLength failure that is
happening on the experimental Linux/Intel config with OpenGL.
Bug: angleproject:358407353
Change-Id: I2ebaf935cc4d2cf101e7a3597a16ceeffbd0c4d7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5774484
Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Brian Sheedy <bsheedy@chromium.org>
|
|
d1d9cd63
|
2024-06-17T17:22:16
|
|
CL/Vulkan: Init events to NULL before enqueue
On a CL enqueue API call, if the passed cl_event
object ref is not NULL, set the object to NULL
initially before we create it during enqueue call.
Bug: angleproject:357902512
Change-Id: I7d94012c38eb96e7021da20ea22bd741e536de53
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5767597
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
cb27b4a4
|
2024-08-08T10:17:47
|
|
Metal: Remove MTLGPUFamilyApple9, it is unused
Fixes visionOS compiles, the SDKs do not define the symbols.
Changes the SDK #if checks to be more consistent:
- Remove version checks from WATCHOS, as it's expected to be compiled
with fairly recent SDK (Metal is not supported).
- Compile fallbacks only when needed by the minimum deployment
target.
- Add Apple3 -> :MTLFeatureSet_tvOS_GPUFamily2_v1 mapping just for
consistency.
Bug: angleproject:347739670
Change-Id: I054c9faeba4245be8be6cfa7128f17df03f448da
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5771352
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
81c01d2f
|
2024-08-01T14:15:48
|
|
Add an option to output baked angle git hash to angle_commit.h
We can leverage the ${rolling_to} hash value that is
available in skia auto roller and use it as the
ANGLE_COMMIT_HASH for Android Builds.
Skia roller script can set ${rolling_to} hash to an
environment variable ANGLE_UPSTREAM_HASH. In commit_id.py,
check that if environment variable ANGLE_UPSTREAM_HASH
is available, output the environment var into angle_commit.h.
Bug: b/348044346
Bug: skia:356444755
Change-Id: I5232e4026d8b02d3ba603af0018060edb487566e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5758427
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
1010a275
|
2024-06-18T10:27:10
|
|
CL/Vulkan: Set proper build status prior to API return
For cl[Compile/Link/Build]Program, we need to
set the build status to CL_BUILD_IN_PROGRESS
before returning to user/app (since in build
callback case, user can query status as either
in-progress, done, or error).
CL_BUILD_NONE would not be a valid query
return if the user just launched a build in this case.
Bug: angleproject:357905825
Change-Id: I85f23db7f9a543ff8872557de5c1cf41d2f2645a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5767599
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
bc0c6c5b
|
2024-08-07T09:48:25
|
|
VVL: sync_queue_submit -> syncval_submit_time_validation
Avoids this warning printed to stdout:
Validation Setting Warning - sync_queue_submit was set, this is deprecated, please use syncval_submit_time_validation
Bug: b/316013423
Change-Id: I9a8be1a49be72e8ec2fed74ace36989d8e37163a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5769522
Auto-Submit: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
27c0f10a
|
2024-08-06T11:12:32
|
|
WebGPU: Generate texture formats when initializing surfaces.
Bug: angleproject:344814096
Change-Id: I873c6308e9c203fd759ccbf5a378056f2aca849c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5763218
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Liza Burakova <liza@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
057bc0f0
|
2024-08-07T11:38:54
|
|
WebGPU: Set multiple parameters in RenderPipelineDesc.
This change adds multiple setters to RenderPipelineDesc to set
various parameters within the DepthStencilState.
Bug: angleproject:42267012
Change-Id: I71eed7195477572295de6575bfa18d2c58ca93de
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5765553
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Commit-Queue: Liza Burakova <liza@chromium.org>
|
|
8a8b85bb
|
2024-06-20T00:00:00
|
|
Metal: Adjust supports32BitFloatFiltering compile guards
* Used MAX_ALLOWED instead of MIN_REQUIRED macros.
* Explicitly enabled visionOS SDK.
* Used correct tvOS SDK version.
Bug: angleproject:347739670
Change-Id: I599ce31c66fc4341a43607c46df67740b8478670
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5756573
Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
0592b897
|
2024-08-02T14:50:08
|
|
Metal: fix frame capture bundle file permissions
Capturing Metal frame captures of ANGLE end2end test results in a
.gputrace bundle devoid of any posix file permissions. This causes Xcode
to throw an error when trying to open the frame capture.
On |StopFrameCapture|, ensure that the .gputrace files are RW for the
user and the bundle directory is RWX.
Fixed: angleproject:356907817
Change-Id: Ia994aa5b8bd09a3dc34fd79aac831a6f7dcc792f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5759063
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
|
|
70f2e203
|
2024-08-06T17:21:50
|
|
Metal: Fix memoryless usage on ios on tv
Bug: angleproject:42261786
Change-Id: I8a289eb888dbb9b2d28066850f2218a1aa92da3b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5765976
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
|
|
7a81e79d
|
2024-08-02T19:39:57
|
|
Vulkan: Fix mPipelineCache not populated from blob cache
Fixes regression introduced in change:
Vulkan: Remove support for pipeline cache control
https://chromium-review.googlesource.com/c/angle/angle/+/5375102
Returns logic implemented in:
Vulkan: pipeline cache not populated as blob cache is not set
https://chromium-review.googlesource.com/c/angle/angle/+/1683807
In the current state, call to `ensurePipelineCacheInitialized()` from
`getPipelineCache()` is essentially a dead code, since
`mPipelineCacheInitialized` will always be `true` after call from
`createDeviceAndQueue()`. So if blob functions are not set before
`createDeviceAndQueue()` then blob cache data will never be loaded.
This change simply removes `ensurePipelineCacheInitialized()` from the
`createDeviceAndQueue()`, since cache can only be accessed after the
initialization (`mPipelineCacheInitialized` is true).
Bug: angleproject:8601
Change-Id: I3db1cd69346ec1aa2c36e4134c77680526b22cc8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5756574
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
721becf2
|
2024-08-06T17:49:56
|
|
Vulkan: Update Renderer::syncPipelineCacheVk() method
Add check for `mPipelineCacheInitialized` to avoid overwriting existing
pipeline cache data in the blob cache by empty cache data if sync is
called before pipeline cache is loaded from the blob cache.
Move checking of `mCompressEvent` before getting pipeline size and
updating `mPipelineCacheSizeAtLastSync`. This will avoid unnecessary
(potentially heavy) vulkan call and fix bug when next sync is skipped,
because `mPipelineCacheSizeAtLastSync` is already updated.
Bug: angleproject:4722
Change-Id: I7390c4bc53ba57732b659d79c65ed4da8d7a6ba6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5756575
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3e4fa128
|
2024-08-05T16:20:30
|
|
Store ImageHelper's queue by mip levels.
This change converts ImageHelper's mSubresourceQueue to store
a vector of updates for each mip level. This allows updates
to be flushed per mip level.
This also adds a call in the RenderTargetWgpu to flush updates
such that now when a framebuffer is flushing updates to
color attachments the associated render target ensures that
only updates associated with its mip level are flushed.
Bug: angleproject:42267012
Change-Id: I1abdbc842cf18b1bd897037bf11aeea9c6d09e14
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5759469
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Liza Burakova <liza@chromium.org>
|
|
67d8d8c8
|
2024-07-29T13:44:37
|
|
WebGL: Reject shaders with infinite loops
Bug: chromium:350528343
Change-Id: I1b2fc152cf285b0e69c4c294351c1cf2389cc234
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5746714
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c5d4c16f
|
2024-08-02T11:27:56
|
|
WebGPU: Initialize all GLES 2 and 3 caps
Instead of using the min caps, intialize them with limits from the
WebGPU limits struct or values from the spec.
Bug: angleproject:357017322
Change-Id: I15597b192d915dad7c3f6bacab048cf09999da6d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5759280
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
2ae68a20
|
2024-08-05T14:24:06
|
|
Add MRT test for foveated rendering feature
Bug: angleproject:42266906
Change-Id: Ia98b1a2a0195ec213bc510a3b62c85b0adc630eb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5763719
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9b06e003
|
2024-08-02T15:47:36
|
|
Vulkan: Avoid unnecessary observer changes for Buffers
Noticed in black_desert_mobile hat it calls glVertexAttribPointer with
some buffer. What we end up doing is remove observer from old buffer and
add observer to new buffer. This CL checks if old and new buffer are the
same and skip some of the logic if both buffers are the same.
Also added check in VertexArrayBufferContentsObservers::disableForBuffer
to early out if it was not enabled in the first place.
Bug: b/356473483
Change-Id: I872dcee7d87b404f525d0323d2952c8249ef1c9a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5760652
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
a89ca6c8
|
2024-07-30T17:14:50
|
|
Metal: Fully implement unresolve step for MSRTT.
This CL also uses memoryless for implicit MS textures in
EXT_multisampled_render_to_texture render passes.
Bug: angleproject:42261786
Change-Id: Ic20450574c4c670d05ca846587ced05488012270
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5746181
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
1bfe5c57
|
2024-07-30T15:58:47
|
|
Metal: partially implement EXT_multisampled_render_to_texture.
Implement by implicitly attaching a multisampled texture to the render
pass. The content will be preserved across render passes by
loading/storing to the implicit multisampled texture.
However this won't work if the single sampled texture is used in
multiple render passes with different
glFramebufferTexture2DMultisampleEXT's sample counts. For that to work
we need to implement unresolve step to load the resolve texture's texels
into the implicit multisampled texture. That will be implemented in a
separate CL.
Bug: angleproject:42261786
Change-Id: I12be75af17ce5b98266946846417d0a43fcba455
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5746180
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
|
|
26aa4df5
|
2024-06-20T00:00:00
|
|
Metal: Update floating-point texture format caps
* Fixed detection of Apple7+ GPUs. Added support
for Apple8 and Apple9 GPUs.
* Adjusted filterability and resolvability caps for
R32F, RG32F, and RGBA32F formats. This enables
GL_OES_texture_float_linear on capable devices.
* Adjusted RGBA32F blendability cap. This enables
GL_EXT_float_blend on capable devices.
Bug: angleproject:347739670
Change-Id: I84d23814d119452f47fff5a1d7dc33f614c35bb7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5646489
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
22ed9877
|
2024-03-07T15:52:13
|
|
Vulkan: Generate fragment shading rates with compute
Generating fragment shading rates on the CPU could cause avoidable
stalls or increased latencies due to host<->device synchronization.
Instead generate the rates using a compute shader.
Optimize foveated rendering by treating a foveated draw with focal
points whose gainX or gainY is 0 as if it were an un-foveated draw
Bug: angleproject:42266906
Change-Id: If8c5504087997666c7d0c1cae8dcc5fab847187e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5754322
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
5a159d69
|
2024-05-03T10:24:01
|
|
CL/Vulkan: Pass proper arch flag to clspv
Needed to update the processedOptions
field so that we append the "-arch=" flag
based off the device's address bits value.
Bug: angleproject:356328474
Change-Id: I5f42f4cdf30ccef9e9aad8eb040f6cbdf8d3b750
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5753767
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
cc50c75b
|
2024-04-19T16:40:26
|
|
CL/Vulkan: Fix missing kernel enqueue retain/release
According to spec:
https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_API.html#clReleaseKernel
We also need to implicitly retain/release the Kernel object
on Kernel enqueue APIs along with other kernel resource
retain/release(s) (i.e. memobjs).
Bug: angleproject:356328473
Change-Id: Ie6ca228ebece2988d511d9ffd2a617abdc057d0a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5753766
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
d4f93407
|
2024-03-25T18:14:26
|
|
CL: Conditional enable of Vulkan Validation layers
Rather than force YesIfAvailable always,
we restrict the Vk validation layers if
user specifies it in the GN args:
angle_enable_vulkan_validation_layers
Bug: angleproject:356320155
Change-Id: I9035d0e7d220ce59db39f1a86f31b403c44088dd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5753765
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
31c0f439
|
2024-08-02T09:18:33
|
|
WebGPU: Centralize caps generation
All GL and EGL caps can be generated at display creation time for
WebGPU. Move all existing logic into a centralized GenerateCaps
function.
Bug: angleproject:357017322
Change-Id: I7398d4ee539192d64971023d9a598ac1f11592ad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5759279
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ea63e372
|
2024-08-01T21:10:02
|
|
Enable VK_KHR_synchronization2 if it is available
If the device supports VK_KHR_synchronization2 and
VkPhysicalDeviceSynchronization2Features.synchronization2
queried from the device is VK_TRUE,
Enabled the extension VK_KHR_synchronization2
and feature VkPhysicalDeviceSynchronization2Features
when calling vkCreateDevice.
Bug: b/356985874
Bug: b/336844257
Change-Id: Iac95f373a283f5a97e126770321769e0f760e5f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5759319
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
06ae828f
|
2024-07-31T16:42:54
|
|
Vulkan: Avoid breaking render pass for vertex buffer conversion
Adreno driver does not support VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT for
VK_FORMAT_R8G8B8A8_USCALED. This cases we hit fallback code path using
GPU to do conversion. The conversion buffer gets reused since all access
are from GPU, but that causes render pass break since there is a WAR
hazard on the conversion buffer. This CL adds the
isRenderPassStartedAndUsesBuffer check and allocate a new conversion
buffer if reuse current buffer may break the render pass.
Bug: b/356473483
Change-Id: Iaa0b9235ba42787f0e3629f0d9174ae768456f8b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5754324
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
59f6d962
|
2024-07-30T21:36:00
|
|
WebGPU: Run dEQP GLES2 tests.
Add the flags and platform support needed to initialze the WebGPU
backend.
Set up initial test expectations with broad suppressions.
Current pass rate: 14.27%
Bug: angleproject:356399840
Change-Id: I1339cd978ca75b59a2e99ee81d93981dc6066f36
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5751601
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cc7d0220
|
2024-07-31T14:22:38
|
|
Vulkan: Fix serial mismatch during mid-loop flush
Currently, if the total buffer updates to the image surpasses a
certain threshold, it results in a flush. However, this can cause
discrepencies in the queue serial, which can result in incorrect
behavior on some platforms.
* Updated flushStagedUpdatesImpl() so that the image serial after
applying the updates matches that of the current outside command
buffer.
* That includes when there is a flush in the middle of the update
loop, resulting in submission and new queue serial for the CB.
* Added a unit test to check if a large texture can uploaded and
deleted after a second small texture is uploaded.
* Texture1UploadThenTexture2UploadThenTexture1Delete
* Added a unit test for flushing when uploading cubemap textures.
Bug: b/351650806
Bug: b/356192937
Change-Id: I7f9b20e4b7fd49115f22081a9733b4d44b740e4a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5744377
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
26cdf621
|
2024-07-31T14:43:12
|
|
Vulkan: Bugfix in dynamic rendering support
Fix 2 bugs -
1. Set VkGraphicsPipelineCreateInfo::flags when linking GPLs
2. Chain VkRenderingFragmentShadingRateAttachmentInfoKHR struct in
VkRenderingInfo::pNext
Bug: angleproject:42267038
Change-Id: I456c75d57ec64926a21dffe93b05e1bbab2cb262
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5754635
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7c77bb75
|
2024-07-24T12:05:29
|
|
Vulkan: Remove implicit buffer barrier for shader write
When app uses shaders to write to SSBO, right now we are inserting an
implicit barrier to ensure WAW are in order. But Spec says that
"Explicit synchronization is required to ensure that the effects of
buffer and texture data stores performed by shaders will be visible to
subsequent operations using the same objects". This CL removes the
implicit barrier for buffer write if the current write comes from
shaders and relies on explicit glMemoryBarrier to insert a global
barrier.
Bug: angleproject:350994515
Change-Id: I8ab039610be9be2ded27ea60dab54bdad08502f6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5719258
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
279c69e5
|
2024-07-30T21:30:54
|
|
WebGPU: Fix intended/actual format mismatch for textures
Update WebGPU texture allocation size to use the actual format instead
of intended. Early-out with an UNIMPLEMENTED if the format is not
supported yet.
Bug: angleproject:356399840
Bug: angleproject:344814096
Change-Id: Idef9ad40c6b1d490964fc398fb077b117612a44b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5748448
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
cab7d1b6
|
2024-07-30T21:19:15
|
|
WebGPU: Obey buffer alignment rules
WebGPU buffers require a size aligned to 4 bytes and map buffer offsets
aligned to 8 bytes. Hide this requirement in The BufferHelper class by
doing the apropriate offsets during buffer creation and map calls.
This allows many dEQP tests to run without crashing due to WebGPU
buffer creation errors.
Bug: angleproject:356399840
Bug: angleproject:42267091
Change-Id: Id71c3b5db31aa712d5a88631efa4897d6205a41d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5748443
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
641bc04a
|
2024-07-30T21:25:44
|
|
WebGPU: Use the correct source format for ReadPixels
ReadPixels was using the format of the destination buffer which works
correctly for RGBA8 -> RGBA/UNSIGNED_BYTE but runs the wrong conversion
functions for other formats.
Bug: angleproject:356399840
Bug: angleproject:42267090
Change-Id: I7c46add3f643017f454136135afef697847a2383
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5748446
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
9da7fb15
|
2024-07-30T21:21:45
|
|
WebGPU: Don't log all renderpass closure reasons
This logging line spams the console excessively. For now, just make
sure there is a message associated with each renderpass closure reason.
Bug: angleproject:356399840
Change-Id: I2313d439837ffb11f11cd56194511e80fb312eba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5748444
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
1953c606
|
2024-07-30T21:28:13
|
|
WebGPU: Fix ReadPixels from window surfaces.
The intended/actual formats were not initialized in this code path and
the created swap chain texture did not have the usage flags needed for
copying to a buffer for ReadPixels.
Bug: angleproject:356399840
Bug: angleproject:42267090
Change-Id: I8e4279eedb2b23f0d2ed690ccee086ae115969c3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5748447
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
0898dab0
|
2024-07-30T21:34:00
|
|
WebGPU: Skip primitive topology conversion for DrawArrays
For non-indexed draw calls, no index format is needed for the
stripIndexFormat.
Bug: angleproject:356399840
Change-Id: Ie2c9805a2c257d94ea5f1bca026287873e4d6781
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5748449
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
8446bbd6
|
2024-07-30T21:22:50
|
|
WebGPU: Remove ASSERT in depth/stencil clears
Instead of asserting that we are not clearing depth or stencil, just
log an UNIMPLEMENTED and skip the call. This allows many dEQP tests to
run without crashing on the ASSERT.
Bug: angleproject:356399840
Change-Id: Icfe7a77d7128e679501da42023601217c7b0e6c8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5748445
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
d503f580
|
2024-07-30T21:15:44
|
|
WebGPU: Remove UNREACHABLEs in the compiler
Update several usages of UNREACHABLE that are hit by dEQP. Change them
to UNIMPLEMENTED so that ANGLE does not crash.
Bug: angleproject:356399840
Change-Id: I8b4415c9481384761dbe4527acaf986946321c54
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5748442
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
aee59926
|
2024-06-28T17:00:56
|
|
Metal: Enable GL_ANGLE_reverse_row_order for Metal
The feature is already implemented due to generic pack parameters
handling and FramebufferMtl::setFlipY().
Bug: angleproject:349980052
Change-Id: I08cc81dcb26ae81e8d81b060d986e01479487dbe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5667597
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
65f08d08
|
2024-07-26T22:14:49
|
|
Vulkan: Work around driver bug with nested switch
Bug: chromium:350528343
Change-Id: Ie7bd58934ccb2b8f06f6ad6a8c3bf38e81b84969
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5744620
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|