|
20ddb802
|
2021-10-28T11:01:12
|
|
Fix Blitting in Metal backend.
The Metal backend was clipping in integer space.
If the src and dst are not the same size,
say src is 3 wide and dst is 4 wide, and src
starts at -1, then src will be clipped by one
making the src 2 wide. It got 1/3 smaller so the
dst get 1/3 smaller making it 2.666 pixels wide.
The dst then needs to be expanded to pixels so 3 wide.
But, that means the src also needs to be expanded
0.3333 * 3(originalSrcWidth) / 4(originalDstWidth)
so its new left edge is -0.245 which is not an integer.
Bug: angleproject:6598
Change-Id: I2faa966b18b457f474a3e7f6844ef64bfa66dbe8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251683
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
7bda9d73
|
2021-10-22T11:53:20
|
|
DisplayVkAndroid: Always expose EGL_RECORDABLE_ANDROID.
Expose EGL_RECORDABLE_ANDROID in the config for all Vulkan drivers
on Android to provide app compatiblity with "My Talking Tom 2" and
"My Talking Tom Friends".
Don't require config to be unavailable in EGLRecordableTest and request
a config with EGL_RECORDABLE_ANDROID enabled, but do not check for
results.
Bug: angleproject:6612
Change-Id: I25113b7c7f9a4a3b13dc625f01d96ba91cb3c6d7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3237001
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
fb77afd3
|
2021-10-28T11:07:53
|
|
Vulkan: Don't expose MSRTT on SwiftShader
Emulating this extension on SwiftShader is neither useful nor efficient
(on the contrary, it hurts performance (which is true for all non-tiling
architectures)). This extension was exposed purely to increase testing
coverage, but is being disabled now as OOMs resulting from allocating
the implict multisampled image is confusing Chrome. Note that
SwiftShader exposes only a limited amount of memory.
Bug: chromium:1263046
Change-Id: Ia69b7fc63804169431885352a8f637a95ab08bd0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251581
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
81d964a1
|
2021-10-28T10:50:51
|
|
vulkan: implement EGLDevice for vulkan backend
It allows ANGLE clients to get and use VkDevice and VkQueue
used by vulkan backend.
Bug: chromium:1264439
Change-Id: I338ac08152cfec50bb34c5025730e5e6368efba9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3250964
Reviewed-by: Peng Huang <penghuang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
32b3c963
|
2021-10-28T11:00:03
|
|
Vulkan: Remove MSRTT assertion in the presence of OOM
When the MSRTT transient multisampled image is created, the emulated
clear staged update is removed (as it's also staged for the single
sampled image). This was done after allocating memory for the image,
which can fail, leaving the update staged and leading to an ASSERT
failure when the texture is used.
Technically, the texture should not be used, and that's a Chrome bug
where the OOM result from ANGLE is being ignored. This change makes
sure the staged update is removed before allocating memory so the
multisampled image is in a more consistent state.
Bug: chromium:1263046
Change-Id: Ida8923ccbc517f740d76b4c2880086a039fa8a1f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251580
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bae19e06
|
2021-10-26T13:35:57
|
|
Vulkan: Avoid unnecessary wait if mapBufferRange indicates read only
When we call BufferVk::mapRangeImpl(), both from internal code paths for
data reads or due to glMapBufferRange call, we are not passing the
access bit to the call. This CL passes the proper access bits to the
call and only wait for GPU writes to finish if access is for read only.
This CL also adds access bitfield to the BufferVk::mapImpl() API and
have various callers pass in the proper access bits as well.
Bug: b/203582620
Change-Id: Ica8493c902dbd7b15996266c81ce0fd4dbfc2520
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3245487
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
191c236a
|
2021-10-14T17:01:45
|
|
Vulkan: Remove "current queue serial".
Queries, semaphores, and pipelines instead use the normal
vk::Resource design to track their lifetimes. Removes the current
serial APIs from all classes. Current serials are still tracked
internally in the command queue classes.
Bug: b/169788986
Change-Id: Idcd2c2a93bc8225c6f3f7c247eb8fcfb76be1030
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3223644
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3a9f18f1
|
2021-10-18T10:44:38
|
|
Refactor program pipeline handling.
In preparation for moving more code from gl::Program to
gl::ProgramExecutable so it can be shared with ProgramPipeline.
Bug: angleproject:6566
Change-Id: Icb7ecccb37ae8e0d7d5fef8968f0dd7ef6fe6150
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226305
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6ce67886
|
2021-10-28T13:45:18
|
|
Drop -Wweak-template-vtables
Clang is dropping suport for this flag, see bug.
Bug: chromium:1264351
Change-Id: I09b3d42889eecb8e786c52c205f28507fc797c5a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3250885
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c1b42740
|
2021-10-25T17:45:19
|
|
Metal: Use ES3 validation for GL_R/RG8_EXT formats
Fix 6 fboCompleteness tests by setting the Metal conformance version
to ES3, rather than ES2. This causes ANGLE to select the backwards
compatible ES3 validation rather than the ES2 validation.
The FBO completeness test may have a bug related to extensions
in it, as limiting the Vulkan backend to ES2 conformance
causes it to fail in the same manner of Metal.
Bug: angleproject:6618
Change-Id: I64d87ea7b9e1957baab05b6380fe09e8271393a9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3244023
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ca5e6f68
|
2021-10-27T11:28:08
|
|
Vulkan: Fix accessing stale FB cached variable.
This would happen when we start a query after deleting a
Framebuffer.
Bug: chromium:1262091
Change-Id: I595360bf55fe1757779669f168c95be802b70da5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3248142
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
421dbf20
|
2021-10-26T19:06:19
|
|
Revert "Vulkan: Use different strategy for buffer memory allocation"
This reverts commit 0dbe308d91a3526e28fecd9014d873c649f4ef71.
Reason for revert: crbug.com/1253325
Original change's description:
> Vulkan: Use different strategy for buffer memory allocation
>
> This CL uses different memory allocation strategy based on the requested
> size. If the requested size exceeds 1M, we use dedicated memory
> allocation to avoid memory waste associated with the sub-allocator.
> Otherwise we uses VMA's sub-allocator pool. This CL creates two sets of
> customized pool so that we uses different allocation strategy for each
> set of pool: the small pool uses buddy algorithm which favors speed over
> memory and large pool uses default algorithm that favors memory saving
> over speed. This CL also replaces vmaFindMemoryTypeIndexForBufferInfo
> with vmaFindMemoryTypeIndex to avoid create and destroy VkBuffer object
> just try to find memoryTypeIndex.
>
> Bug: b/195588159
> Change-Id: I2bddbfffd77ba2ce6b9389d83a31051c4b748c4d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2939490
> Commit-Queue: Charlie Lao <cclao@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Tim Van Patten <timvp@google.com>
Bug: b/195588159
Change-Id: I2c8fe8cb2930d16f5212570d32be68e7c6a6e5f3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3244258
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
6b315a78
|
2021-10-26T19:04:06
|
|
Revert "Vulkan: Let BufferVk call into VMA for allocation when possible"
This reverts commit 894ce75fb2f75e718ce76e466b8938524f65ac07.
Reason for revert: crbug.com/1253325
Original change's description:
> Vulkan: Let BufferVk call into VMA for allocation when possible
>
> Previously BufferVk class maintains a DynamicBuffer pool per BufferVk
> object. This CL makes BufferVk skip DynamicBuffer pool in most cases and
> do its own BufferHelper allocation directly. DynamicBuffer pool is only
> used when desired, which is controled by a flag. With this CL, only
> UBO/SSBO/AtomicBuffer will still use DynamicBuffer pool if the buffer
> has to be allocated more than once.
>
> Bug: b/195588159
> Change-Id: I3aa08cef10ee9ee9f01f16403c6fbb99b37f4a8a
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2901241
> Commit-Queue: Charlie Lao <cclao@google.com>
> Reviewed-by: Tim Van Patten <timvp@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Bug: b/195588159
Change-Id: Iecda3baa6bc887fa0caa86ab076994cae7c10f93
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3244257
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
9ac2409e
|
2021-10-26T00:55:06
|
|
Reland "Vulkan: Flush descriptor set updates during flush*Commands()"
This reverts commit 420e77a64e890ad4c585d72789ca59501be3ac75.
Reason for revert: The crash is in ProgramExecutableVk::getOrAllocateShaderResourcesDescriptorSet(), which is unrelated to this change. Creating a CL to reland this (the reland button is failing), to try and investigate further.
Original change's description:
> Revert "Vulkan: Flush descriptor set updates during flush*Commands()"
>
> This reverts commit 02b73c2fd738b237f1ab3ecd400feec222903a48.
>
> Reason for revert: Causes test to crash on Linux/Intel: anglebug.com/6591
>
> Original change's description:
> > Vulkan: Flush descriptor set updates during flush*Commands()
> >
> > The intent of this CL is to reduce the number of descriptor set updates
> > by delaying the work until all of the GLES commands that could trigger a
> > re-update have been performed and the command stream is being flushed.
> > To achieve this, flushDescriptorSetUpdates() is being moved from
> > setupDraw()/setupDispatch() to
> > flushRenderPassCommands()/flushOutsideRPCommands().
> >
> > This change also exposed an issue where the BufferView handles were not
> > being preserved until flushDescriptorSetUpdates() was called. To resolve
> > this, flushDescriptorSetUpdates() is also being called during
> > BufferViewHelper::release() before the BufferView memory is released.
> >
> > Bug: angleproject:5706
> > Change-Id: I61e19af9c0fac891aa2115d72391459b80d22f19
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2939385
> > Reviewed-by: Charlie Lao <cclao@google.com>
> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
> > Commit-Queue: Tim Van Patten <timvp@google.com>
>
> Bug: angleproject:5706
> Bug: angleproject:6591
> Change-Id: I9d1ee3fcb3d1aebc86e60896e0065cab847a92b4
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3233901
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:5706
Bug: angleproject:6591
Change-Id: Ibc7e934b82e6cd90e766f43135583f7c45acfe39
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3244024
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
894ce75f
|
2021-05-21T10:59:14
|
|
Vulkan: Let BufferVk call into VMA for allocation when possible
Previously BufferVk class maintains a DynamicBuffer pool per BufferVk
object. This CL makes BufferVk skip DynamicBuffer pool in most cases and
do its own BufferHelper allocation directly. DynamicBuffer pool is only
used when desired, which is controled by a flag. With this CL, only
UBO/SSBO/AtomicBuffer will still use DynamicBuffer pool if the buffer
has to be allocated more than once.
Bug: b/195588159
Change-Id: I3aa08cef10ee9ee9f01f16403c6fbb99b37f4a8a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2901241
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0dbe308d
|
2021-07-16T14:26:20
|
|
Vulkan: Use different strategy for buffer memory allocation
This CL uses different memory allocation strategy based on the requested
size. If the requested size exceeds 1M, we use dedicated memory
allocation to avoid memory waste associated with the sub-allocator.
Otherwise we uses VMA's sub-allocator pool. This CL creates two sets of
customized pool so that we uses different allocation strategy for each
set of pool: the small pool uses buddy algorithm which favors speed over
memory and large pool uses default algorithm that favors memory saving
over speed. This CL also replaces vmaFindMemoryTypeIndexForBufferInfo
with vmaFindMemoryTypeIndex to avoid create and destroy VkBuffer object
just try to find memoryTypeIndex.
Bug: b/195588159
Change-Id: I2bddbfffd77ba2ce6b9389d83a31051c4b748c4d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2939490
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
a02eb809
|
2021-10-19T20:09:43
|
|
Metal: Allow zero-sized scissors
Fixes the following ES2 tests:
dEQP-GLES2.functional.fragment_ops.scissor.outside_render_*
A zero sized scissor is a valid scissor rectangle.
Instead of ignoring this call, allow it.
Bug: angleproject:6592
Change-Id: Ifc5c145b43deae4a031025b63691eb2b54c598fb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3233935
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Gregg Tavares <gman@chromium.org>
|
|
d2c01d2c
|
2021-09-17T12:57:14
|
|
GL: Allow selecting virtualization groups at context creation
Rewrite EGL_ANGLE_platform_angle_context_virtualization to
EGL_ANGLE_context_virtualization, changing the context virtualization
parameter to an identifier for what virtualization group the frontend
context should be added to.
This allows ANGLE's GL backend to be used by multiple threads if the
user creates contexts with different virtualization groups.
Bug: angleproject:6406
Change-Id: I7414d4705ce10bdf63a9b824043d5dd040dad875
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3169193
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
48b605d8
|
2021-10-25T09:46:16
|
|
Vulkan: Fix UBSAN error in CommandBatch
CommandBatch doesn't initialize all fields, causing UBSAN errors in the
move constructor.
Bug: chromium:1261861
Change-Id: I46b963a415ccc08d3d9db40de98d1968eea311e8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3241544
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
584f1b78
|
2021-10-14T17:55:47
|
|
metal: fix crash when checking for flat attributes
We can frontload the check of whether or not a shader program uses flat
interpolation for its attributes.
This prevents a crash where an application does:
glAttachShader
glLinkProgram
glDetachShader
glDeleteShader
and the check tries to look at the shader attachments (which are no
longer valid).
Also add some tests to ensure that detaching shaders after program link
doesn't cause crashes on indexed draws, and that the flat attribute
detection works across program save/load.
Bug: angleproject:6526
Signed-off-by: Steven Noonan <steven@valvesoftware.com>
Change-Id: I70990808fdfd17608b4b720461cae1a0bdd064b8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3224663
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
ee672193
|
2021-10-06T16:51:42
|
|
SurfaceVk: Use vkGetPhysicalDeviceSurfaceFormats2KHR.
Use VK_KHR_get_surface_capabilities2 to determine if the requested
color space and surface format combination is supported.
Create a DoesSurfaceSupportFormatAndColorspace helper function
and use vkGetPhysicalDeviceSurfaceFormatsKHR as a fallback
in a new DoesSurfaceSupportFormat helper function.
Treat the surface format as not supported when a non-sRGB
colorspace was requested and VK_KHR_get_surface_capabilities2
is not available.
Move MapEglColorSpaceToVkColorSpace to anonymous namespace.
Emit angle::Result::Incomplete if a suitable surface format is not
found.
Bug: angleproject:2514
Bug: b/201993125
Change-Id: I28baf904cf8846ca575eaf83c93b3f593c1b63a2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3208690
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
52934a5d
|
2021-10-04T22:19:30
|
|
Vulkan: Use the UNDEFINED layout for ExternalPreInitialized
According to the spec, the UNDEFINED layout does not invalidate the
memory of external images.
Bug: angleproject:6460
Change-Id: I682e8c3501cc52431268ff2c3a063467ba9d2a65
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3203796
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4c2c6bd2
|
2021-10-20T16:43:51
|
|
vulkan: fix read overrun in commonDebugUtilsLabel
The size of the incoming string should be the 3rd argument to
storePointerParameter(), not the aligned string size value. If we use
the latter, we read past the end of the incoming string. This tripped
the AddressSanitizer during the object label tests.
Bug: angleproject:6600
Change-Id: Idd72353803661684057753f5b01bb69af1d4a141
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3235900
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
66e8faf7
|
2021-10-20T14:06:08
|
|
Remove ProgramExecutable's "isCompute" property.
This consolidates the lists of uniforms, ssbos, etc into one.
Requires a few checks to change from graphics shader stages into
all shaders.
Bug: angleproject:6596
Change-Id: Ic8f6bfc4fa295c3bea9f5f1ded11e8fbca1c3164
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3233361
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
aac5d678
|
2021-10-20T11:48:57
|
|
Make "isCompute" private to ProgramExecutable.
This eliminates uses of "isCompute" is the Vulkan back-end. Instead
of checking the state flag, we can use the context of the current
command to determine if we're running a compute or a graphics
command. This will eventually lead to us being able to compile the
program pipeline objects before we run a draw or dispatch command.
Changes the driver uniforms descriptor desc to bind to both graphics
and compute shader stages to simplify the code. This could have
theoretical but low-risk performance implications.
Bug: angleproject:6595
Change-Id: Ie30d419b6ece5b33f5066a034d3805fe96519b36
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3233903
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
bdc633a8
|
2021-10-20T12:33:42
|
|
Pass command type down to ContextImpl::syncState.
This mirrors the command type passed to the object sync functions.
It will be useful to determine if we're syncing for a draw or a
dispatch call.
Bug: angleproject:6595
Change-Id: Ia04bd14a3c2dd2eb211c47a6e55f8ddcbfedfaaa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3233904
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
78ae5d70
|
2021-10-20T12:15:33
|
|
Vulkan: Remove support for GL_RGB8 from DisplayVkAndroid
The Android Vulkan loader doesn't support GL_RGB8, so remove it from
DisplayVkAndroid::generateConfigs().
The list of supported swapchain formats is available at:
https://cs.android.com/android/platform/superproject/+/master:frameworks/native/vulkan/libvulkan/swapchain.cpp;l=465-486?q=GetNativePixelFormat
This fixes launching the Zillow app.
Bug: angleproject:6277
Change-Id: I34f06e2b45a1de77864701462bf11712285b7ae2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3235466
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
43fd49e6
|
2021-10-19T14:42:57
|
|
Metal: Add Shadow Sampler Grad workaround for AMD
This change allows the direct translator to
use emulated gradient shadow compare functions for
AMD devices, and devices that don't support shadow compare
sampler.
Bug: angleproject:5107
Change-Id: I8cc8dcb6e6982531c2a858782869283e6dc97052
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3232818
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
420e77a6
|
2021-10-20T15:02:45
|
|
Revert "Vulkan: Flush descriptor set updates during flush*Commands()"
This reverts commit 02b73c2fd738b237f1ab3ecd400feec222903a48.
Reason for revert: Causes test to crash on Linux/Intel: anglebug.com/6591
Original change's description:
> Vulkan: Flush descriptor set updates during flush*Commands()
>
> The intent of this CL is to reduce the number of descriptor set updates
> by delaying the work until all of the GLES commands that could trigger a
> re-update have been performed and the command stream is being flushed.
> To achieve this, flushDescriptorSetUpdates() is being moved from
> setupDraw()/setupDispatch() to
> flushRenderPassCommands()/flushOutsideRPCommands().
>
> This change also exposed an issue where the BufferView handles were not
> being preserved until flushDescriptorSetUpdates() was called. To resolve
> this, flushDescriptorSetUpdates() is also being called during
> BufferViewHelper::release() before the BufferView memory is released.
>
> Bug: angleproject:5706
> Change-Id: I61e19af9c0fac891aa2115d72391459b80d22f19
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2939385
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Tim Van Patten <timvp@google.com>
Bug: angleproject:5706
Bug: angleproject:6591
Change-Id: I9d1ee3fcb3d1aebc86e60896e0065cab847a92b4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3233901
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d8c18ac6
|
2021-10-08T13:00:19
|
|
Re-land: "Isolate commit_id.h from other code."
Re-land limits the angle_version deps to Windows to fix an iOS
visibility rule violation in GN.
Instead of recompiling multiple source files, we can seal off the
files that include commit_id to prevent recompilations when the
commit changes and source files don't change.
Bug: angleproject:2551
Change-Id: I033f00ec7afe4bfd01e29e0eea8848eea27747a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3233899
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4b75345a
|
2021-10-06T22:47:16
|
|
Vulkan: Don't create pipeline with depthWrite if !depthTest
depthWrite is ineffective without depthTest. This change makes sure
that depthWrite/depthTest combinations of true/false and false/false
generate the same Vulkan pipeline.
Bug: angleproject:6410
Change-Id: I47e1524379d40dfb956f026903e0affc7f4fc59d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3210628
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
02b73c2f
|
2021-07-14T15:45:47
|
|
Vulkan: Flush descriptor set updates during flush*Commands()
The intent of this CL is to reduce the number of descriptor set updates
by delaying the work until all of the GLES commands that could trigger a
re-update have been performed and the command stream is being flushed.
To achieve this, flushDescriptorSetUpdates() is being moved from
setupDraw()/setupDispatch() to
flushRenderPassCommands()/flushOutsideRPCommands().
This change also exposed an issue where the BufferView handles were not
being preserved until flushDescriptorSetUpdates() was called. To resolve
this, flushDescriptorSetUpdates() is also being called during
BufferViewHelper::release() before the BufferView memory is released.
Bug: angleproject:5706
Change-Id: I61e19af9c0fac891aa2115d72391459b80d22f19
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2939385
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
d3753039
|
2021-10-14T17:21:47
|
|
Reland "RendererVk: Enable VK_KHR_image_format_list on SwiftShader."
This is a reland of 8559d50b3b6fcc71b939be4a2c0ca3b48a797d61
Original change's description:
> RendererVk: Enable VK_KHR_image_format_list on SwiftShader.
>
> This reverts commit 08b42714f51dc87e16d52757b4b115037218a4ba.
>
> Bug: angleproject:5281
> Bug: chromium:1245774
> Change-Id: I773d95225301ccf3c2807fd2269b6d7da1195a16
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3223679
> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Bug: angleproject:5281
Bug: chromium:1245774
Bug: chromium:1260941
Change-Id: Ic6992bcc4b44aa16a2931271350a6f6d2a23d9c8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3232555
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e637e4c9
|
2021-10-18T13:54:00
|
|
Vulkan: Optimize updating blend state in pipeline desc
Updating blend funcs and equations always updated all 8 slots. Now
that's only done for the attachments that are present.
Bug: angleproject:6298
Change-Id: I58fa7e4dfa27d05fef54cc9d56c7b2aa5ef43dd8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3202550
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
7defdb60
|
2021-10-19T14:07:07
|
|
Revert "Isolate commit_id.h from other code."
This reverts commit 6d7ebf656d06f1152967aa5f4457d3787a24732c.
Reason for revert: Suspected reason for failing ANGLE roll into Chromium
Original change's description:
> Isolate commit_id.h from other code.
>
> Instead of recompiling multiple source files, we can seal off the
> files that include commit_id to prevent recompilations when the
> commit changes and source files don't change.
>
> Bug: angleproject:2551
> Change-Id: I98800c5a8e04ec7d4c3e57ea0eb3b636d3b224bb
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212895
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Bug: angleproject:2551
Bug: angleproject:6588
Change-Id: I19f41141f57d0683efb9a4ec043e078a9f7dc925
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226056
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
4bb0a7af
|
2021-10-18T12:14:04
|
|
Vulkan: Async Queue: Fix signal of external semaphores
Per the Vulkan spec:
> ... when a semaphore wait operation is submitted to a queue:
>
> - A binary semaphore must be signaled, or have an associated semaphore
> signal operation that is pending execution.
It is incorrect for ANGLE to defer the submission that signals an
external semaphore, because then it's impossible for the application to
know when it can wait on the semaphore.
Bug: angleproject:6574
Bug: b/172704839
Change-Id: I5469b500b2f7d402acec31d9848585a9947843c6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226308
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c9e0da8e
|
2021-10-18T13:54:00
|
|
Vulkan: Improve wording in DeferredClears.md
Bug: angleproject:1944
Change-Id: I268e8191cfb7aeb16e33c1f9b39382461c5ac3e7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226310
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
bb0e0dea
|
2021-10-18T21:46:44
|
|
Roll vulkan-deps from 5be75e2ae595 to a9d8c46f2b61 (6 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/5be75e2ae595..a9d8c46f2b61
Changed dependencies:
* spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/06ebc4806b..35fd0e17d0
* vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/6d9e5b07d6..61688e09fe
* vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/77cd59ba80..78b1f89454
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 syoussefi@google.com on the revert to ensure that a human
is aware of the problem.
To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: angleproject:6584
Change-Id: I8da9da9f82ccaf781d89a4f7975fb7520d3b6b28
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226052
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
670b58d8
|
2021-10-18T19:50:10
|
|
Revert "RendererVk: Enable VK_KHR_image_format_list on SwiftShader."
This reverts commit 8559d50b3b6fcc71b939be4a2c0ca3b48a797d61.
Reason for revert: Causes MSAN failures. See crbug.com/1260941
Original change's description:
> RendererVk: Enable VK_KHR_image_format_list on SwiftShader.
>
> This reverts commit 08b42714f51dc87e16d52757b4b115037218a4ba.
>
> Bug: angleproject:5281
> Bug: chromium:1245774
> Change-Id: I773d95225301ccf3c2807fd2269b6d7da1195a16
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3223679
> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Bug: angleproject:5281
Bug: chromium:1245774
Bug: chromium:1260941
Change-Id: Id6712aed68ed04d2525549ae016594aa05243a5d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226312
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
eb1d2474
|
2021-10-04T20:23:26
|
|
Vulkan: Add R8G8B8_UNORM to vk_format_map.json
The map of R8G8B8_UNORM -> VK_FORMAT_R8G8B8_UNORM is missing from
vk_format_map.json. This leads to attempting to get format bits for
angle::FormatID::NONE / VK_FORMAT_UNDEFINED.
This CL adds R8G8B8_UNORM to vk_format_map.json, so devices that support
it, like ARM, can use it. This allows those devices to import AHBs
created with R8G8B8_UNORM.
This CL also adds some additional ASSERT() and UNREACHABLE() calls to
catch missing formats sooner.
This allows the EGL tests to pass on ARM devices, but the tests are
still skipped due to Qualcomm not having the necessary support for
optimal tiling.
Bug: angleproject:6277
Test: dEQP-EGL.functional.image*
Change-Id: I41b7ead97a10ae80be4b6048d36d0d85ad71784f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3204152
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6d7ebf65
|
2021-10-08T13:00:19
|
|
Isolate commit_id.h from other code.
Instead of recompiling multiple source files, we can seal off the
files that include commit_id to prevent recompilations when the
commit changes and source files don't change.
Bug: angleproject:2551
Change-Id: I98800c5a8e04ec7d4c3e57ea0eb3b636d3b224bb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212895
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
ddedcdaf
|
2021-10-14T23:35:45
|
|
Vulkan: Recycle vkAcquireNextImageKHR semaphores
This change optimizes CPU performance by recycling semaphores used for
ANI instead of creating and deleting them every frame.
Bug: angleproject:6580
Change-Id: I151ea227870ed7b8bd123cbf629a65723c4696d2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3225085
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f3334d03
|
2021-09-30T23:44:54
|
|
Vulkan: Fix importing layered AHBs
Bug: angleproject:6475
Change-Id: Iceb0880cadc54552d3f01593d2e12088cafa10cc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3198733
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
22ecd454
|
2021-07-19T17:28:05
|
|
Vulkan: Move BufferMemory class from vk_helpers.h to vk_utils.h
In preparation for the StagingBuffer may also use BufferMemory, this CL
moves the class to vk_utils.h so that it can be used by any class
without create kinks on header file inclusion.
Bug: b/195588159
Change-Id: I97ab136be691322fe6284fd1b4b7336fdf1f904f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3040106
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
60271a71
|
2021-10-15T10:14:35
|
|
GL: Re-scope Intel/Mesa version for disableSyncControlSupport.
This workaround's scope was widened due to issues detecting intel
GPUs in systems with multiple GPUs. That was fixed, so we can
re-scope the workaround.
Bug: chromium:1187475
Change-Id: Iaf946369273dc5c1e2f8f91a14758b6751615c7f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226721
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
f5d65922
|
2021-10-14T15:58:38
|
|
Vulkan: Optimize QueryVk::getResult()
This function always incurred a check for completed commands to ensure
forward progress for applications (or rather, tests) that busy-wait
until the query results become available.
This change instead does an initial isCurrentlyInUse() check and only if
that's true will it check to see if there are any finished commands.
This should reduce one checkCompletedCommands() call when the
application queries the status of the Query well after it's issued.
Based on patch authored by Igor Nazarov <i.nazarov@samsung.com>
Bug: angleproject:6573
Change-Id: Iad4ed6b7eb6ae5316707e6d916e5ca3054d6c5aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3225083
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8ef1b2a2
|
2021-07-15T15:27:15
|
|
Vulkan: Add BufferMemoryAllocator class
BufferMemoryAllocator class will be responsible for memory allocation
for vkBuffers. The original Allocator class remains the wrapper for
vmaAllocator.
Bug: b/195588159
Change-Id: I26d016e2f8d13ba459d0aa0bd4e1ebf4d0d48251
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3036256
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
7aba3bc5
|
2021-10-14T23:14:37
|
|
Vulkan: Use a CircularBuffer helper class in SurfaceVk
There are two instances of circular buffer in SurfaceVk. A common
helper class is introduced by this change to consolidate the
implementation.
This is in preparation for a follow up change that introduces yet
another circular buffer in this class.
Bug: angleproject:6401
Change-Id: Id01b585567310a2528888114239a5c80ff93f1ee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3225084
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
123ba58d
|
2021-10-14T11:56:35
|
|
Vulkan: Remove "last submitted serial".
This fixes race conditions with the async command processor. Instead
of querying specific serial numbers, we ask the command queue to
either wait for idle, or return the answer to "are you busy" directly.
Bug: b/172704839
Change-Id: I06a8268d9b58d8c33b783af00ca74979ee158316
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3223641
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1dc2b702
|
2021-10-13T16:02:37
|
|
Vulkan: Pass shader module map to init pipelines.
Instead of pulling out the shader modules from the shader map when
we start the call chain, pull them out right in the init call. This
saves a bunch of boilerplate code.
Refactoring change only.
Bug: angleproject:6566
Change-Id: Ib8d79bd7284d7ddb83522270f3d4df9086ab7300
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3221134
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2615e6b2
|
2021-10-07T07:07:46
|
|
Remove the syncFramebufferBindingsOnTexImage workaround
It's unused
Bug: angleproject:6503
Change-Id: Ia9039432006ec6988e93db08b9a572c7a7f837ed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212428
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8559d50b
|
2021-10-14T17:21:47
|
|
RendererVk: Enable VK_KHR_image_format_list on SwiftShader.
This reverts commit 08b42714f51dc87e16d52757b4b115037218a4ba.
Bug: angleproject:5281
Bug: chromium:1245774
Change-Id: I773d95225301ccf3c2807fd2269b6d7da1195a16
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3223679
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b95cdec3
|
2021-10-12T11:26:15
|
|
Vulkan: Switch to `std::unordered_map` to cache renderpass
ANGLE use `flat_hash_map` by default,while it will not retain pointer
stability which causes random null pointer issue when running MH31 with
asynccommandqueue.This change switch to using `std::unordered_map` to
cache renderpass.
Bug: angleproject:6436
Bug: angleproject:6569
Change-Id: Ia2829a41251eea39ce2a79a9a42b6fe9dff6b120
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3219010
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f3d5dac3
|
2021-08-23T17:25:15
|
|
Vulkan: SPIR-V Gen: Drop dependency to glslang
The SPIR-V gen path is now made default. Compilation through glslang is
still supported for debugging, and is enabled on the GLSL* end2end tests
for smoke testing. On release builds, glslang is not supported.
To test with glslang, add the following gn arg (only necessary if dcheck
is disabled):
angle_enable_spirv_gen_through_glslang = true
Then enable the generateSPIRVThroughGlslang feature. This can be done
by setting an environment variable:
ANGLE_FEATURE_OVERRIDES_ENABLED=generateSPIRVThroughGlslang ./angle_deqp_gles2_tests
Binary size saving:
- 1.3MB on Linux (SPIR-V gen itself: 240KB)
- 730KB on Android (SPIR-V gen itself: 140KB)
Perf tests:
- LinkProgramBenchmark.Run/vulkan_compile_single_thread
* Through glslang:
truncated mean: 1287033.36
* Direct SPIR-V Gen:
truncated mean: 244495.91 (~80% reduction)
- LinkProgramBenchmark.Run/vulkan_compile_multi_thread
* Through glslang:
truncated mean: 4565894.83
* Direct SPIR-V Gen:
truncated mean: 1158164.10 (~75% reduction)
Bug: angleproject:4889
Bug: angleproject:6210
Change-Id: I486342702977c8114e90073b97183aba115a8b2d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3115140
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
d8471b29
|
2021-10-02T10:36:33
|
|
Fix ASAN bug caused by passing empty label string.
This CL will fix the ASAN bug that was caused by passing empty label
string to getMultisampledRenderTarget, function of TextureStorage11.
Instead, pass mTextureLabel so we can get WebGL labels now. Also to
avoid this in future, convert ref mTextureLabel to now store copy.
The change in the test reflects the steps to first set the label
string and later the label being used to initialize mTextureLabel via
texture storage creation.
Bug: chromium:1254746
Change-Id: I007bdf1c7a421a2b4b9288aa71fa4368c14cf333
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3201030
Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
|
|
ea580484
|
2021-10-05T13:40:01
|
|
Vulkan: Add feature flag to prefer CPU copy instead of staged update
For ARM GPU, use GPU to do buffer to buffer copy has performance penalty
due to potential bubble in the vertex pipeline. This CL adds a feature
flag preferCPUForBufferDataSubData so that we can enable this behavior
for ARM GPUs.
This CL also tracks if GPU has referenced this BufferVk's storage since
it got new storage. Due to sub-allocation, we may get a new sub-range of
the same BufferHelper object when allocating new storage. But we
currently do not have a way to track GPU progress of the sub-range of a
buffer. So we will end up using BufferHelper's queueSerial to decide if
it is still GPU busy or not. This CL adds mHasBeenReferencedByGPU
boolean variable that will set to false when we got a new allocation and
set to true as soon as buffer is been referenced by any GPU command. We
use this to avoid checking queueSerial if it never been referenced by
GPU. This is a temporary workaround for the bug, the full fix is tracked
by https://issuetracker.google.com/201826021
Bug: b/200067929
Change-Id: I231fb0a678b0165a2ce1775d0aa4dbe7512fb4a8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3183398
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
6793d50e
|
2021-10-06T15:48:55
|
|
Vulkan: Remove ImageHelper::setFirstAllocatedLevel and Add assertion
ImageHelper::mFirstAllocatedLevel is set via ImageHelper::initExternal.
There isn't a good use to set the mFirstAllocatedLevel when mImage is
invalid, and semantically it is wrong to try to get mFirstAllocatedLevel
or format while its storage is invalid (i.e., not allocated). This CL
removes ImageHelper::setFirstAllocatedLevel() API all together and added
assertion that image is valid when ImageHelper::getFirstAllocatedLevel
and getActualFormat and various other get APIs whose value are set
during initExternal call.
Bug: angleproject:6532
Change-Id: I9c97f488b3e959443fec632540e7f0906a49dc13
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3209838
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
185e48a7
|
2021-10-06T18:53:08
|
|
Vulkan: Make TextureVk::mRedefinedLevels bitmask of gl::LevelIndex
We have gl::LevelIndex and vk::LevelIndex. gl::LevelIndex means level
index at OpenGL concept and is used in TextureVk code. vk::LevelIndex
means already adjusted with baseLevel and is used by ImageHelper object.
This mRedefinedLevel is gl::TexLevelMask type, but it actually is a bit
mask of vk::LevelIndex right now. This is inconsistent and confusing.
This CL changes it to bit mask of gl::LevelIndex to be consistent with
the namespace of "gl".
Bug: angleproject:6532
Change-Id: Ic88e373f70d3bd3e3fea676765c82fd0941e245c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3210726
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
01341f94
|
2021-10-11T19:26:07
|
|
D3D11: implement EXT_clip_control
This implements EXT_clip_control for the D3D11 renderer, so that I can
use a reversed-Z depth buffer with ANGLE.
Tested with
angle_deqp_gles2_tests.exe --deqp-egl-display-type=angle-d3d11 --deqp-case=dEQP-GLES2.functional.clip_control.*
and
angle_end2end_tests.exe --gtest_filter=*D3D11*
Bug: angleproject:6554
Change-Id: I1d11cd04a6654c28530b11104470f0cad0009abe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3218659
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2ab7a178
|
2021-10-06T13:22:19
|
|
Vulkan: Remove suppressions for SPIR-V validation
A bug in VVL produced validation errors regarding texel gather offset,
but it seems to be fixed now.
Bug: angleproject:6491
Bug: angleproject:6492
Change-Id: Ia20816ea0be65aa185a8ee89cf58edd33e452875
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3209086
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9ba5dcf6
|
2021-10-07T06:56:14
|
|
Vulkan: Fix inconsistency in half render area width/height
The half render area rotation matrix should be removed.
DrawableArea is constant over rotations.
The frag coord rotation matrix is still needed because
the frag coord generated by GPU is still rotated.
Test:
DISPLAY=:0 out/Debug/angle_deqp_gles3_rotate90_tests
Using test config with:
linux
nvidia
debug
vulkan
prerotation
prerotation270
Test: Cuttlefish SwANGLE
./cts-tradefed run cts -m CtsDeqpTestCases -t
dEQP-GLES3.functional.shaders.builtin_variable.fragcoord_xyz
Bug: angleproject:6504
Change-Id: I37a6308fdb7586200b19a6138affc78c2c329a96
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212427
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6cb599f9
|
2021-10-06T13:07:27
|
|
Vulkan: Change dest to dst for consistency
Cleanup only, no functional change. dst aligns better with src.
Bug: angleproject:6502
Change-Id: I69821b1aae50a7ce647c7cc876468b6de309eec8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3208514
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
53388e54
|
2021-10-08T15:43:34
|
|
Vulkan: Remove VVL suppresions for VK_EXT_provoking_vertex
Suppressions were added as ANGLE was using an unreleased extension.
This extension is released and supported by VVL now.
Bug: angleproject:4063
Change-Id: Ief23ac1ac3a3e6ecbd7b04a6b583302bbdf48398
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3213298
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4ad55d07
|
2021-10-05T15:45:05
|
|
Vulkan: Turn 1-view multiview FBOs into no-multiview
When only 1 view is enabled, ANGLE continued to append a
VkRenderPassMultiviewCreateInfo struct to the render pass. VVL produced
an error when transform feedback was used in this case, quoting that
multiview and transform feedback cannot mix.
This change makes sure that 1-view framebuffers are threated as if they
were not multiview.
Bug: angleproject:6478
Change-Id: If079c9a052f822342a49a9cc880be2577a356b64
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3206269
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4c23b817
|
2021-10-08T19:29:08
|
|
Roll vulkan-deps from d78bd80b30f6 to 651804d6bf55 (11 revisions)
Suppressing SYNC-HAZARD-WRITE_AFTER_WRITE messages after
https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/3403
https://chromium.googlesource.com/vulkan-deps.git/+log/d78bd80b30f6..651804d6bf55
Changed dependencies:
* glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/c8cdbac705..b9ba4c5743
* vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/8c0ee92eb6..aeffbbd6b9
* vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/7a6a52723b..51279399ea
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 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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: angleproject:6550, angleproject:6551
Tbr: ynovikov@google.com
Change-Id: I8b85fd82fc1042a5632027b8d6fada123533f276
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3214695
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
d134581b
|
2021-10-07T16:09:25
|
|
Vulkan: Remove SyncHelper::mEvent
Now that inserting a sync object incurs a flush, we can use the serial
to perform synchronization.
Bug: angleproject:6464
Bug: angleproject:6481
Change-Id: I8c82a12855b6497861ce34854d165af82956b384
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212573
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
74b2886f
|
2021-09-22T13:49:57
|
|
Vulkan: Try to use CPU to copy when preserving old buffer data
When glBufferSubData is called, we may acquire a new buffer if buffer is
still GPU busy. When this happened, we have to preserve buffer content
if old buffer has valid data in it. Instead of always use GPU to do
copy, this CL will check if GPU is not writing to the buffer, we will
just use CPU to do the copy form old buffer to new buffer from the
ranges outside subData, controlled by the feature flag
preferCPUWhenPreservingBufferData.
Bug: b/200067929
Change-Id: I42053104b2be8da5f399cca92e934254988f2fd8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3177322
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
e437c4ad
|
2021-09-22T09:15:19
|
|
Vulkan: Only preserve buffer data when BufferVk has valid data
When we receive glBufferSubData call and GPU is still accessing the
buffer, we have two code paths to update data. If subData is more than
half of the entire buffer range, we choose to acquire a new buffer and
use DMA to copy the rest of buffer that outside of subData range from
the old buffer back to the new buffer so that existing buffer data is
being preserved. Otherwise we stage subData to use GPU buffer to buffer
copy later on when buffer is been used. The reasoning behind is to
minimize the amount of data copy. The improvement here is that if
previously app called glBufferData with null pointer, we really do not
have any valid data in the buffer and there is no need to preserve the
existing buffer data. This CL tracks whether buffer has any valid data
or not and also put this into consideration when we pick which code path
to go. We also use this information to avoid preserve the existing data
in BufferVk::acquireAndUpdate
Bug: b/200067929
Change-Id: I266dd93bed2d3c07e3a5af3e4e613e7f6023b393
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3176500
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
e13bbea9
|
2021-10-07T15:52:51
|
|
Revert "Disable clearing textures for robust init on Mac."
This reverts commit 33207313b2172525d7dc0526afd6d0aa51503bb1.
Reason for revert: Spike in flush crashes
Bug: chromium:1257538
Original change's description:
> Disable clearing textures for robust init on Mac.
>
> Suspecting this path generates errors and hangs.
>
> Bug: chromium:1253356
> Change-Id: I0ef4a71578fa15631074f394d49e9878f3e301df
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3187131
> Commit-Queue: Kenneth Russell <kbr@chromium.org>
> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Bug: chromium:1253356
Change-Id: I90630bdac02381511ae042b1ef91a729c7f859dc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212331
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
90403672
|
2021-10-08T09:50:47
|
|
Fix Wbitwise-instead-of-logical warnings
`a && b` only evaluates b if a is true. `a & b` always evaluates
both a and b. If a and b are of type bool, `&&` is usually what you
want, so clang now warns on `&` where both arguments are of type bool.
From what I can tell, in ANGLE it wasn't important if we evaluate both
branches or not in the places where this fired, so I went with `&&`
everywhere.
Bug: chromium:1255745
Change-Id: I7ac6a12c37f28a872de1fe9b9b96abf43e39b21c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212889
Commit-Queue: Nico Weber <thakis@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
86fe5f29
|
2021-10-04T17:44:12
|
|
VVL: Re-enable vkCmdDraw and vkCmdDrawIndexed
Re-enable the following VVL checks:
VUID-vkCmdDraw-None-02690
VUID-vkCmdDrawIndexed-None-02690
Bug: angleproject:4768
Change-Id: I1469d21634b28c96e0ac2f2b8c4cd4dfec271d2e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3203176
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
fab88343
|
2021-10-07T15:02:35
|
|
WebGL Aquarium doesn't render with ANGLE Metal
Blits should not be using the context's write mask,
this leads to missed color information on blits.
Bug: chromium:1257769
Change-Id: Iaf4ff00a727b1bec2424b4d3939fddd4c802a8ea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212644
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
|
|
af5ea7f9
|
2021-10-07T12:47:41
|
|
PrimitiveRestart tests fail due to incorrect draw commands.
Primitive restart draw commands were being encoded
incorrectly. Single element ranges were being disregarded,
and a maximum draw size was not being enforced when the
index buffer was aliased / reused.
Bug: angleproject:6535
Change-Id: I5affad4df46c4ab2b3702caa89b483ae685618a7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212629
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Gregg Tavares <gman@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
a52f4032
|
2021-09-24T15:31:26
|
|
Vulkan: Skip releaseImage call when image is invalid
releaseImage is only useful if image is already valid. Otherwise it is
wasting CPU cycles to go through bunch of release calls that essentially
doing nothing.
Bug: angleproject:6014
Change-Id: I550b12bdc566cca699f6bf6662d176a01b2bce2e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3183800
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
212f4592
|
2021-09-22T12:02:47
|
|
Enable direct-to-metal backend by default
We are switching over to Apple's direct-to-metal backend instead
of generating SPIRV in the metal backend. This CL enables the
direct-to-metal generation by default, but the SPIRV backend is
still accessible by overriding the feature directMetalGeneration.
This CL comes with a change in test expectations to catch new
failures and clean up newly passing tests.
Bug: angleproject:6080
Change-Id: I4b10ad93c641b88857079a08fb45d3dc575d71f1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3175664
Reviewed-by: Gregg Tavares <gman@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
b600d212
|
2021-09-24T15:05:34
|
|
Vulkan: Consolidate calls to respecifyImageStorageAndLevels
respecifyImageStorage() calls respecifyImageStorageAndLevels with the
same arguments that respecifyImageStorageAndLevels() could easily get
from the mImage and TextureState. This CL get rid of
respecifyImageStorageAndLevels and only uses respecifyImageStorage().
Bug: angleproject:6532
Change-Id: I388af1f1db0e3ce6c77475a03667fca451ab7013
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3183399
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
34ee74be
|
2021-10-06T15:00:49
|
|
Vulkan: Remove unused imageBaseLevel from TextureVk::setImageHelper
We used to store baseLevel in ImageHelper object. Since then we have
removed baseLevel from ImageHelper to make ImageHelper object able to be
immutable for immutable textures. During that effort, the usage of
baseLevel has been switched to retrieve directly from TextureState
directly. This CL removes imageBaseLevel from the call.
Bug: angleproject:4999
Change-Id: I6ea8a651ee81bebc8529ffaaaba22c3ce4f8ac90
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3209831
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
27e7c4dd
|
2021-10-01T13:43:57
|
|
Vulkan: Submit commands when Sync objects are initialized
This CL calls ContextVk::flushImpl() after the sync object (VkEvent) has
been created and initialized, so it has a valid Serial when it's waited
on later.
This change allows us to remove any tracking of pending sync objects,
since all sync objects will be flushed and submitted by the end of
SyncHelper::initialize().
Bug: angleproject:6464
Test: MultithreadingTest.CreateFenceThreadAClientWaitSyncThreadBDelayedFlush
Change-Id: I47e7ced452727b434ed974368311fb3439a107c9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3200274
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
95a5bbd4
|
2021-10-04T13:38:43
|
|
Rename FullScreenQuad.vert to FullScreenTri.vert
Bug: angleproject:6505
Change-Id: Iafe26ddce51862edcb405f7ca85997a7c3b26fa7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3203172
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
26f9041b
|
2021-10-06T16:50:47
|
|
DisplayVk: Always expose EGL_KHR_gl_colorspace.
In the case of the sRGB color space the VK_EXT_swapchain_colorspace is
actually not required to create a swap chain.
The requirement should be lowered and VK_KHR_get_surface_capabilities2
should be used to enumerate if the color spaces from
VK_EXT_swapchain_colorspace are available.
Bug: angleproject:2514
Bug: b/201993125
Change-Id: Id0d8be05016d3833d14395f6638b85110615164b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3208689
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4e22c2c3
|
2021-01-19T12:42:38
|
|
EGL: Merge DisplayAndroid/Gmb into DisplayEGL.
These classes classes have a lot of duplicated code for no reason.
DisplayGmb still needs more work.
Bug: angleproject:5563
Change-Id: Ia3d3d7f0bd7c03b4ac1aece4369c49118426b9de
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140498
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Maksim Sisov <msisov@igalia.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
dba896cf
|
2021-10-04T22:17:48
|
|
Vulkan: Suppress modified device count warning
This is a loader warning added in the following commit:
https://github.com/KhronosGroup/Vulkan-Loader/commit/8daad81803f5ed9b36a172c299140dde7a8c4494
It fires on our corp laptops that contain multiple GPUs (one
high-performance, one integrated). Most likely caused by Nvidia's
Optimus Vulkan layer.
It doesn't quite match the patterns of validation layers, but is
straightforward to skip by searching for the beginning of the
message.
Bug: angleproject:6514
Change-Id: Ia93896364cae9e879faf068a100064f2edd04af2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3204141
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
27a98cf4
|
2021-10-04T23:39:16
|
|
Vulkan: Allow debug labels inside render pass
Debug groups and events were previously recorded to the outside-RP
command buffer. With this change, they are inserted in the RP command
buffer if render pass has started, or outside-RP command buffer
otherwise. This creates a more accurate view of groups the application
creates.
Bug: angleproject:4597
Change-Id: If165bb88e3e66219bad2fe4acc1cc4653c97fb1b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3204591
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
0364270d
|
2021-10-04T17:54:03
|
|
Alignment fix for IOSurface
A wrong alignment was causing an issue in some tests.
This CL doesn't fix any single WebGL conformance test
entirely, but it fixes 564 of the 1292 failing sub-cases
within the conformance/textures/webgl_canvas/* category.
Bug: chromium:1099979
Change-Id: Id6051b24cb3c335d2f97f2c38c8de1dc7afde52f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3203790
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
|
|
ab7b5838
|
2021-10-05T10:58:10
|
|
GL: Remove old NVIDIA workaround.
This affects drivers from ~ early 2017. These drivers should be
fairly rare by now.
Bug: angleproject:2059
Change-Id: I0d086ee00a0cc0c38ffdbf2294341fe832f80fd7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3206070
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
dccc0f8c
|
2021-10-05T09:22:19
|
|
Add docs for DXGI and D3D11 format tables.
Bug: angleproject:1691
Change-Id: I7a07228853aaf8f1536b145657a737dcf3e0e1f1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3205798
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
4f0e7e7f
|
2021-10-04T14:50:10
|
|
Vulkan: Remove extraCopyBufferRegion workaround.
Bug: angleproject:2838
Change-Id: I53ba3cf307f930ae9550d1bfee4650df6e826930
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3202475
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2f1d503b
|
2021-09-16T21:49:14
|
|
Vulkan: Fix Vulkan secondary command buffers
This change abstracts initialization, begin/end, reset and recycle of
command buffers such that both Vulkan and ANGLE secondary command
buffers are supported.
Bug: angleproject:6100
Change-Id: I8c79764ac98b599fda08fe45cf8c4f0a6573f0f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2987873
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ad8e4d99
|
2021-09-28T11:48:46
|
|
Remove EGL_ANGLE_flexible_surface_compatibility
This extension has been superseded by EGL_KHR_no_config_context.
Bug: chromium:1253930
Change-Id: Ie299c34baa84e9f47c73ddb5a0636536bf510d72
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3190612
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
54d4bfe5
|
2021-09-28T17:27:57
|
|
Update ANGLE Metal to Webkit at Sept 29 2021
This commit merges changes from Webkit into ANGLE upstream.
The following commits were used:
Current:
https://git.webkit.org/?p=WebKit.git;a=commit;h=e01d0bda8f4b7dc2fd834b92802d15d8c15735f
Previous:
https://git.webkit.org/?p=WebKit.git;a=commit;h=492f078198748e8ff248eea0bb979cf79e5f5adfj
The following commits were merged in from the Webkit Repository:
(Hashes from git://git.webkit.org/WebKit-https.git)
03ea44c78ce5665d4ec9add271260121cbc7bc6c
Problems with drawElements in some conditions
https://bugs.webkit.org/show_bug.cgi?id=230107
c8dc8e0c4d1109d39a62eb197b45e95132380290
ANGLE Metal: single-component swizzles do not compile
https://bugs.webkit.org/show_bug.cgi?id=230472
7285dbaaf5af15877d6c332b30ef7a4d67225460
webgl-compressed-texture-s3tc-srgb.html fails on Intel+AMD Metal
https://bugs.webkit.org/show_bug.cgi?id=229941
4c72f92967ecd2a095666fef431384c4f5f60fb4
fragcolor-fragdata-invariant.html fails
https://bugs.webkit.org/show_bug.cgi?id=223317
cd943145467f54e5928793c0dd3dfa2313c007dd
ANGLE Metal index buffer restart range cache could be maintained..
https://bugs.webkit.org/show_bug.cgi?id=227451
f075ff77e592eabd54dd659a8e13617cc5faedc8
ANGLE Metal infinities and NaNs generated with incorrect syntax
https://bugs.webkit.org/show_bug.cgi?id=229439
5862073269122f4b2d43d96d3922757557755e86
[Metal ANGLE] Fix over-autorelease of
rx::DisplayMtl::getMetalDeviceMatchingAttribute()...
<https://webkit.org/b/229128>
85f797ad31db048cb82cbafd428ef77f0b839312 ANGLE Cocoa compiles....
https://bugs.webkit.org/show_bug.cgi?id=228987
a67918ba279ad4842b6ae84a79c3f1c0cdc35ace Avoid infinite recursion...
https://bugs.webkit.org/show_bug.cgi?id=228978
d341f67de0033adcf1ec6373ace6a54b06c4a031
Cherry-pick ANGLE: Revise WebGL's shaderSource validation
https://bugs.webkit.org/show_bug.cgi?id=228951
1e2714d981e97de8234ba055570dfdf56e8b6944
3.5 MB system-wide footprint impact due to thread-locals...
https://bugs.webkit.org/show_bug.cgi?id=228240
d32e5cca34081997d32504b0b56c18b9703ff3be
Build Default Metal library offline
https://bugs.webkit.org/show_bug.cgi?id=227333
33702279faccfd4c8d1c8a6d549925f9ca9a4e8f
WebGL2 demo doesn't work due to failing compilation....
https://bugs.webkit.org/show_bug.cgi?id=226865
0a075885d242db38c4e435a6597173dc3b082173
rAF driven WebGL submits excessive amount of GPU work...
https://bugs.webkit.org/show_bug.cgi?id=227059
f38a92b3e7c17efda269caa7066e7ffe2f828e72
WebGL shader link error in iOS 15 beta: "Internal error..."
https://bugs.webkit.org/show_bug.cgi?id=227723
98d48f011d561531470d97f26a022767b5452fb7
REGRESSION (r279466): [Big Sur] webgl/1.0.3/conformance &...
https://bugs.webkit.org/show_bug.cgi?id=227596
Bug: angleproject:6471
Change-Id: I07166d0dc4b5c3579d98353485b3245b81c7b882
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3194322
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
|
|
98a6e0a4
|
2021-10-01T15:06:07
|
|
Suppress VUID-RuntimeSpirv-OpImage-06376
Bug: angleproject:6492
Change-Id: I5963506164ae70edf4f2e77401dc86794157f8f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3200277
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
fca9de6f
|
2021-09-29T14:59:06
|
|
Fix Metal backend not clearing stencil buffer
If you had a depthstencil buffer the stencil portion
was not being cleared.
Bug: angleproject:6389
Change-Id: Iad3f12ae627bc12625d959f9a52fdb1dcb8c9bc3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3198800
Commit-Queue: Gregg Tavares <gman@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
|
|
12e5a7db
|
2021-10-01T13:52:37
|
|
Suppress VUID-RuntimeSpirv-OpImage-06377
Bug: angleproject:6491
Change-Id: I0e9f8908077ea10685b7796b2c42086ae6520d05
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3200275
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
da3db87e
|
2021-07-06T14:00:58
|
|
Upstream latest changes to Metal backend from Apple to 7/1/2021
This CL merges in the ANGLE changes between these two WebKit commits:
https://git.webkit.org/?p=WebKit.git;a=commit;h=8648b353ab1d7730438c2e08319e1a4d64982c31
https://git.webkit.org/?p=WebKit.git;a=commit;h=166e4924a52971d6a32ad48247a439b16c00e062
Include provoking vertex buffer out of bounds fix
from https://bugs.webkit.org/show_bug.cgi?id=230107
Fix bad merge of resetting of dirty bits, breaking
DepthStencilFormatsTest.DepthTextureRender test and perhaps others.
Disable GL_APPLE_clip_distance when the direct-to-Metal compiler is
active. It can not yet handle the gl_ClipDistance array.
Disable use of rectangular textures for IOSurfaces. Metal can bind
IOSurfaces to 2D textures, and this was passing all tests in the
SPIR-V Metal backend. Introducing rectangular textures breaks the
SPIR-V Metal backend, and the tests currently fail on the
direct-to-Metal backend.
Fix several bugs with ProvokingVertex, which was causing
both the SpirV and Direct backends to incorrectly draw
indices.
(https://bugs.webkit.org/show_bug.cgi?id=230107)
Skip the following tests on the Metal backend which is still failing
RobustResourceInitTestES3.BlitDepthStencilAfterClearBuffer
GLSLTest_ES3.GLVertexIDIntegerTextureDrawArrays/ES3_Metal
With these changes, angle_end2end_tests again runs to completion.
Bug: angleproject:6395
Change-Id: I3cc58f531426a95fc8f177a4ad87f56c1855a546
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3167010
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
|
|
2a8be9de
|
2021-10-01T01:26:19
|
|
Vulkan: OES_shader_multisample_interpolation is now conformant
This extension was not conformant due to an imprecision in the GL spec
which is now rectified. See:
https://gitlab.khronos.org/opengl/API/-/issues/149
The OpenGL CTS has been fixed here:
https://gerrit.khronos.org/c/vk-gl-cts/+/7862
Bug: angleproject:6190
Change-Id: I0c37332939f70291a5f76ca36fa9f24b179ce414
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3197513
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a097ee2e
|
2021-09-27T15:18:02
|
|
Vulkan: Fix clearing external images with emulated format
External images may already have data, and clearing them due to their
format being emulated is incorrect.
This change makes sure that only the emulated channels are cleared.
The RGBXDataPreservedAHB test is based on one contributed by
Jason Macnak <natsu@google.com>.
Bug: b/192315789
Change-Id: Ibc8953fdac356f2a62a5b46512a51e1916b4a1b6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3193416
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
3de06bcd
|
2021-09-30T21:46:13
|
|
Roll vulkan-deps from 788a2f62acbe to 11c6360dd46f (144 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/788a2f62acbe..11c6360dd46f
Changed dependencies:
* glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/e0771b5d4c..581897f462
* spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/c2500e504d..97a438d214
* spirv-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/6cae8216a6..ae217c1780
* spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/7e860e3831..ba4b390c36
* vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/9e62d02763..e500c7c809
* vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/20cf221e72..edccdb3444
* vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/642da192c8..a956d1a0e5
* vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/1e6ed74d5d..6d54fa0fe0
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC ianelliott@google.com on the revert to ensure that a human
is aware of the problem.
To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: angleproject:6478
Change-Id: I28a46296e5b3590601a61707f438d8b238be3ff6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3198645
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
4cb34637
|
2021-09-29T16:40:11
|
|
Vulkan: Fix crash in async queue
The change also fixes a regression introduced by
2d79918fdb0276cdb57488d72abd803250f962a3 which caused a segfault when
async queue is used.
Unfortunately, due to anglebug.com/6437, async queue tests are not run
on the bots at the moment. This will be fixed in a follow up change.
Bug: angleproject:6436
Change-Id: I3c2f63549149fbd9c9ab61107e98e8015cdb1c77
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3193419
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cf8c5678
|
2021-09-17T13:16:36
|
|
Vulkan: Don't sync VAOs after BufferSubData calls.
We still need to syncState after buffers that contain converted
attributes are updated. Includes a perf regression test.
Bug: angleproject:6371
Change-Id: I54227fc43e7b3fe79072da7783dab0177ccb0486
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3182706
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5e029401
|
2021-09-28T15:49:20
|
|
Add a new variant to the labeling API.
This CL will create a new variant which will take both internal name
and KHR debug name and send them over to the D3D. This will help us
capture KHR debug label better and also prevent for the cases where
ANGLE was dropping the KHR labels on the floor when calling the label
API right after the commands like glTexStorage2D, glTexImage2D etc.
Bug: chromium:1164111
Change-Id: Ifebe8df5435a34692c601c5c35fddc1911bf9d0c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3192180
Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
|