|
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>
|
|
8712495d
|
2021-10-05T11:56:32
|
|
Capture/Replay: Don't handle void pointers as const
TL;DR: glReadPixels needs a non-const pointer if a pack buffer
is bound, so change the code generation to keep TvoidPointer
non-const and regenerate the entry points.
Long version:
When no pack buffer is bound, then in WriteCppReplayForCall
param.readBufferSizeBytes is non-zero and the cast of the read
buffer pointer is using the type passed by the parameter
(TvoidPionter) to write the typecast by calling ParamTypeToString
directly, which returns "void *".
If. OTOH, a pack buffer is bound, then param.readBufferSizeBytes
is zero, and the default WriteParamCaptureReplay is called. This
autogenerated function forwards the call to WriteParamValueReplay
by using an explicit type specification, and the autogeneration
code was translating TvoidPointer to call
WriteParamValueReplay<ParamType::TvoidConstPointer>
which would then translate to "const void *" in the parameter type
cast, and this would lead to a compilation failure, because the
parameter must be a non-const pointer.
Change the autogeneration code so that TvoidPointer is not forced
to be a const pointer and regenerate the entry points.
Bug: angleproject:6521
Change-Id: I673c77f803a284fb7dfc08a2e0918aebdf698194
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3204959
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
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>
|
|
666fcf38
|
2021-10-08T12:19:15
|
|
Rename functions that overlap with Windows APIs.
Bug: angleproject:6283
Change-Id: Ifcd9ea9e3bf729fd2066178eb9429050b2f10518
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212894
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
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>
|
|
8770cefc
|
2021-10-04T13:47:23
|
|
Capture/Replay: Store enums to JSON as hex
We're storing some enums in the per-trace JSON as decimal.
This makes them difficult to read, i.e.:
"DisplayDeviceType": 12810,
"DisplayPlatformType": 13392,
"DrawSurfaceColorSpace": 12425,
If we instead convert them to hex, they are much easier to
read and grep the source for.
"DisplayDeviceType": "0x320A",
"DisplayPlatformType": "0x3450",
"DrawSurfaceColorSpace": "0x3089",
Since JSON doesn't actually support hexadecimal values, this CL
stores them as strings.
Ideally we could take this a step farther and store the enum
directly in JSON, but we have no facilities for converting
a string back to an enum.
Bug: angleproject:5133
Bug: angleproject:6515
Change-Id: I7b5d4dc8958d43c611da1fe98887e089f3d855b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3204135
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Cody Northrop <cnorthrop@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>
|
|
f00f1009
|
2021-09-30T18:59:25
|
|
Capture/Replay: Fix readback of zero-sized renderbuffers
Only read back the renderbuffer content if the renderbuffer has a
non-zero size. Add a test to test the capture/replay in this case.
Bug: angleproject:6425
Change-Id: I943804884f18a3a2b9de526309dd500de9dd6fd4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3197572
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
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>
|
|
076366cc
|
2021-10-01T23:42:04
|
|
Revert "VertexArray: Don't syncState on Buffer map/unmap."
This reverts commit 3d429f597fde950e789ca3684abbabd540157773.
Reason for revert: This change is causing crashes in ANGLE stack.
Original change's description:
> VertexArray: Don't syncState on Buffer map/unmap.
>
> Map/unmap calls are now treated like contents change events. Similar
> to BufferSubData calls.
>
> Bug: angleproject:6371
> Change-Id: Ie0a4c521ffdedfa723d47eddd21c6f68dde044ac
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3187811
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Tim Van Patten <timvp@google.com>
Bug: angleproject:6371
Change-Id: I57480a18f3c70a1bf2a539e3047402c71802655d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3200288
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
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>
|
|
043120ee
|
2021-09-29T15:56:46
|
|
Capture/Replay: Allow disabling program trimming.
The ANGLE_CAPTURE_TRIM_ENABLED variable disables program trimming
when set to 0. This is useful for trace validation, which expects
the GL state vectors to be identical.
Bug: angleproject:5133
Change-Id: I3ab41de80af7b223c4cb8a1b7e14f049717305fc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3193417
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
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>
|
|
0b4508e5
|
2021-10-01T11:49:52
|
|
Add script to automatically download extension data.
The script uses the 'bb' and 'swarming' tool to download build info
and artifacts. See the script for more info.
Bug: angleproject:6379
Change-Id: I65444771a69dc2f6eee39f6ba8d471fdd8ca2cff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3198737
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.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>
|
|
35708f98
|
2021-09-30T11:54:34
|
|
Merge extension support docs.
We previously had an existing document in doc/ExtensionSupport.md.
This merges the new SupportedExtensions.md into the old location
and includes a bit more info on EGL extension support.
Bug: angleproject:6379
Change-Id: Ibb60a9e9db9200abe609383531131903ca698e60
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3197770
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
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>
|
|
0004ecc2
|
2021-09-22T13:39:55
|
|
Write GL info to test artifact in end2end_tests.
These will show up as glinfo.json in the "cas outputs" of the shard
that runs these tests.
We currently have information for Pixel 4, NVIDIA and Intel Win/Linux,
and SwiftShader Windows. GLES 1.x extensions are treated separately.
Some WebGL/Mac-only/D3D-only extensions show as unsupported anywhere.
In order to capture artifacts on Android, we use a render test output
parameter.
Bug: angleproject:6379
Change-Id: I560b219b5a586cdbb68d272090f38eedc76aba20
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3176780
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
3d429f59
|
2021-09-27T14:27:31
|
|
VertexArray: Don't syncState on Buffer map/unmap.
Map/unmap calls are now treated like contents change events. Similar
to BufferSubData calls.
Bug: angleproject:6371
Change-Id: Ie0a4c521ffdedfa723d47eddd21c6f68dde044ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3187811
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
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>
|
|
b930b9d3
|
2021-09-08T09:08:28
|
|
Capture/Replay: Remove redundant "capture" from label
old: trex_200_capture_context1_frame001.cpp
new: trex_200_context1_frame001.cpp
The 'capture' word wasn't really adding any useful information.
Take it out so the filenames are a bit shorter.
Bug: angleproject:5133
Change-Id: Ibd7d47df2aa1f24a641c5d5b2a6dd14d6ce240e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3149370
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
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>
|
|
4647e4c5
|
2021-09-27T17:03:05
|
|
SwANGLE copy to IOSurface
This CL performs a buffer to image copy on bindTexImage
and an image to buffer copy on a releaseTexImage on MacOS
in order to copy from/to an IOSurface which has an arbitrary
internal layout.
It also changes the internal format used by GL_BGRX8_ANGLEX
to GL_RGBX8_ANGLEX in order to have an internal format which
accurately represents the {GL_RGB, GL_UNSIGNED_BYTE} format
with the color channels in the correct order.
Bug: chromium:1209250
Bug: angleproject:4369
Change-Id: I62b66c7055f8ba8a4c943abeb2e35a3825efc392
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3169472
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
|
|
84bf49a5
|
2021-09-27T15:20:22
|
|
Vulkan: Fixed an issue with primitives generated query
The primitives generated query does not work with rasterizer discard,
as such rasterizer discard is disabled with the beginQuery call and
re-enabled with the endQuery call.
The issue is that previously rasterizer discard was not being disabled
until ContextVk::resumeRenderPassQueriesIfActive in some cases. This
led to cases where primitives generated query did not work.
The fix is to insure all beginQuery calls disable rasterizer discard
when primitives generated query is active.
Added the following end2end test to cover the failure:
TransformFeedbackTestES32.MultiPrimitivesGeneratedVsRasterizerDiscard
Bug: angleproject:5557
Tests: KHR-GLES32.core.tessellation_shader.tessellation_invariance.invariance_rule*
Change-Id: I7e1a0a0bc4a3100349c2c5dbdbe6becd1e0dda29
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3193100
Commit-Queue: Brandon Schade <b.schade@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
30878d2a
|
2021-09-24T09:23:56
|
|
Buffer: Notify contents changed in a separate observer list.
Buffer contents changed will only notify VertexArray. Also this
list is separated from the other observers because in the future
most of the time we won't need to notify the VertexArrays when
buffer contents changed, to avoid iterating over a large list of
VertexArray observers on simple SubData calls.
Bug: angleproject:6371
Change-Id: I6142a5757868caf33dc6594a1975f817f80553e8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3182701
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
5db7885f
|
2021-09-28T17:16:40
|
|
FrameCapture: Fix GLES1 VertexArrayState
Broke recently when adding support for ES3.1 semantics.
GLES1 traces are hitting the loop below, generating
BindVertexBuffer.
Test: Zillow MEC (GLES 1)
Bug: b/199919700
Change-Id: Ibe83d1b4009b00f891903cae889449d42e9f510b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3192990
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c0aa6108
|
2021-09-17T16:22:55
|
|
Add new GL_RGBX8_ANGLEX format
Currently, IOSurface objects using {GL_RGB, GL_UNSIGNED_BYTE}
are natively represented with GL_BGRX8_ANGLEX, which we use
instead of other RGBA formats in order to avoid issues when
a canvas uses 'no alpha':
https://source.chromium.org/chromium/chromium/src/+/main:third_party/swiftshader/third_party/angle/angle/src/libANGLE/renderer/vulkan/mac/IOSurfaceSurfaceVkMac.mm;l=44
This unfortunately causes some other issues because of the
implicit RGB <-> BGR conversion like type mismatches in
subresource updates. This CL adds a new type, RGBX8, which
will be usable by IOSurface objects and which behaves exactly
like the BGRX8 format with the B and R channels flipped.
Bug: chromium:1209250
Change-Id: I345eadc8addd05a0964cae30d89c20005479e37b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3188910
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
dff5c752
|
2021-09-28T11:27:06
|
|
Suppress VVL error: *InterfaceTypeMismatch
Suppress VVL error:
UNASSIGNED-CoreValidation-Shader-InterfaceTypeMismatch
Bug: angleproject:6442
Change-Id: I1d5412a1be7cba0b3571225d3f3d94c72349742f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3191390
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
20be5bed
|
2021-09-28T11:31:50
|
|
Expose EGL_KHR_no_config_context on more backends.
EGL_KHR_no_config_context can be exposed on any backend that supports
EGL_ANGLE_flexible_surface_compatibility
Bug: chromium:1253930
Change-Id: Iec75ce944fc463a8c476579234be77028f74113b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3190611
Reviewed-by: Peng Huang <penghuang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
33207313
|
2021-09-27T10:45:17
|
|
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>
|
|
3719c172
|
2021-09-20T17:33:14
|
|
FrameCapture: Filter program setup calls
This CL adds filtering to shared setup calls based on whether
a resource is used during the frame capture. Calls that are
filtered out will not be written to SetupReplayContextShared.
This eliminates setup for unused resources.
This has become critical for apps like Fortnite that compile
tens of thousands of programs before running any frames. This
can take multiple minutes to perform before rendering a frame.
To achieve this, we do the following:
- Add an active status to every call (default to TRUE).
- Mark setup calls for tracked resources to FALSE during MEC.
- During the run, track for any use of the resource, and mark
its setup calls back to TRUE.
- Enable tracking for ShaderPrograms.
Test: Fortnite MEC
Bug: b/180418810
Bug: angleproject:5658
Change-Id: I5070297d339de3b80f870640e8955077a2bc20aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3150387
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
5e182d2c
|
2021-09-23T14:29:48
|
|
Add traces to CommandBuffer
Additionally, use CommandBuffer's `reset` instead of direct Vulkan call.
Based on patch by Igor Nazarov <i.nazarov@samsung.com>
Bug: angleproject:6401
Change-Id: Ib473ed2fd33ebb68852d4f4e7776a8e484ac8610
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3179770
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
d9882db5
|
2021-04-16T21:47:25
|
|
Vulkan: Destroy unused resources in a timely manner
Deletion of garbage that's eligible for immediate cleanup is currently
delayed until the next submission.
Fix this by checking if garbage can be freed immediately and deleting it
right away if it's not used. Some missing retain() calls needed to
be added to semaphore operations in order to avoid freeing resources
in use by a memory barrier.
Based on a change by spang@chromium.org
Bug: angleproject:4628
Change-Id: I034c24d7631c973b4546952f7718a0cd4114763f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2832002
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
dc99db91
|
2021-09-16T21:45:35
|
|
Vulkan: Allow Vulkan secondary CBs to count their commands
This is used by render pass related code to determine if some command
has been issued since a previous event. With ANGLE
SecondaryCommandBuffer, the memory pointer where the commands are being
written to are used for this purpose. For Vulkan secondary command
buffers the code simply increments a counter.
Bug: angleproject:6100
Change-Id: I85320f8453bd3325793df85aabde3d42b1eeb22a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3167214
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cebca7c2
|
2021-09-24T07:55:38
|
|
Texture: Ignore buffer contents changed events.
Texture doesn't need to care when its attached buffer gets different
contents via a SubData call. This CL updates the BufferVk logic to
ensure that SubData calls trigger a storage changed notification when
there's a new storage, and otherwise Texture can ignore SubData calls.
Will make it easier to split "contents" changed notifications to their
own event, for optimizing Vertex Buffer updates.
Bug: angleproject:6371
Change-Id: I4f15ad3ad2da5d838bd51fb065184b7344b188d8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3181562
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
eb1d5ca5
|
2021-01-29T15:34:49
|
|
Vulkan: Enable sync validation
Based on a change by tobine@google.com
Bug: angleproject:5290
Change-Id: Ieae1be5a29f0dcb3ea8aaa04e77fc402380a08b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3171432
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
2d79918f
|
2021-09-16T16:43:53
|
|
Vulkan: Pass command pool around
Preparatory work for re-enabling support for Vulkan secondary command
buffers. The command pool being passed around is not yet used.
Additionally, the work to allocate, initialize, reset and recycle
command buffers has been refactored to a helper class for better
abstraction.
The CommandBufferHelper class now holds a pointer to the pool it was
allocated from for clean up. Each ContextVk has its own command pool,
where Vulkan secondary command buffers are allocated from. The command
pool that CommandProcessor had was unused and is removed by this change.
Bug: angleproject:6100
Change-Id: I0d4fa6a76ef06e88779145ffe9c613518a8eb390
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3167213
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
78393614
|
2021-09-21T19:14:15
|
|
Vulkan: Fixed bugs about VK_SUBOPTIMAL_KHR Image Acquire result
This change fixes the following bugs in rx::WindowSurfaceVk with
VK_SUBOPTIMAL_KHR Image Acquire result:
- Bug in acquireNextSwapchainImage() method:
- If VK_SUBOPTIMAL_KHR returned from vkAcquireNextImageKHR(),
the method simply returns since the result, and
vk::DeviceScoped<vk::Semaphore> acquireImageSemaphore, will be
destroyed. However, acquireImageSemaphore can't be destroyed
because it is already used by the Presentation Engine.
- Bug in initializeImpl() method:
- Method allows VK_SUBOPTIMAL_KHR as successful result. However,
acquireNextSwapchainImage() will not finish, leaving incomplete
state. Attempting to use the framebufer will cause ASSERT/Crash.
Solution:
- Changed acquireNextSwapchainImage() method to ignore
VK_SUBOPTIMAL_KHR result.
- Remove checks for VK_SUBOPTIMAL_KHR from Acquire in other places.
This solution was chosen, because it is simplest, and VK_SUBOPTIMAL_KHR
is properly handled in the computePresentOutOfDate() method.
Patch authored by Igor Nazarov <i.nazarov@samsung.com>
Bug: angleproject:6401
Change-Id: I90bef7871c3bdcf28240a034927d5b2c705f4367
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3174729
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a1b829dd
|
2021-09-22T18:29:08
|
|
Vulkan: Retain src buffer in acquireAndUpdate()
It's possible for acquireBufferHelper() to garbage collect the original
(src) buffer before copyFromBuffer() has a chance to retain it, so it
must be retained before then.
Previously, we were relying on the retain calls in copyFromBuffer() to
be sufficient. However, there is a race condition when the asynchronous
CommandProcessor is enabled, since the garbage could be freed before
copyFromBuffer() has a chance to retain the buffer (and allow
destroyIfComplete() to skip destroying the object).
For the full context, see the comment chain here:
https://chromium-review.googlesource.com/c/angle/angle/+/3146319/16..24/src/libANGLE/renderer/vulkan/BufferVk.cpp#b833
Bug: angleproject:5971
Change-Id: I7c812069343fdad948189d696bfebab8da68c1a3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3179866
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
49ac15a5
|
2021-09-20T11:29:01
|
|
Optimize VAO bindings.
This CL makes the XFB binding tracking WebGL-only. That will
speed up VAO binding changes in non-WebGL considerably.
Also has a few inline micro-optimizations that may not have
a large effect.
Bug: angleproject:6371
Change-Id: Ib0a26a3b956dcd6ff78626e5cd6514b46270d882
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3170116
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
68c0da83
|
2021-09-15T12:00:08
|
|
Vulkan: Inform frontend when new buffer is allocated
When a buffer is mapped with GL_MAP_INVALIDATE_BUFFER_BIT while it's
currently in use, the Vulkan backend will allocate a new buffer, map it,
and return the pointer to the new buffer. This was missing a call to
inform the frontend that a new buffer was allocated, causing the old
buffer data to be accessed in subsequent draw calls.
The fix is to add a onStateChange(angle::SubjectMessage::SubjectGhosted)
call when the new buffer is allocated, to inform the frontend.
Bug: angleproject:5971
Bug: angleproject:6396
Test: TextureBufferTestES31.MapTextureBufferInvalidateThenWrite
Change-Id: I9984d1049ab4d6a2066f4440fc710c9b93ff6ab8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3163244
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9158436e
|
2021-07-31T18:26:16
|
|
Vulkan: glMapBuffer(): Create new buffer (Buffer Ghosting)
When glMapBuffer() is called, if the buffer is in use but not being
written to by the GPU:
1.) Create a new buffer.
2.) Copy the contents of the old buffer into the new buffer.
3.) Map the new buffer and return the pointer.
Creating a new buffer prevents ending the renderpass and flushing the
commands to allow the in-use buffer to be mapped. This change increases
Idle Heroes performance from 40FPS to 125FPS.
Bug: angleproject:5971
Test: VulkanPerformanceCounterTest.MappingGpuReadOnlyBufferGhostsBuffer
Test: BufferDataTest.MapWriteArrayBufferDataDrawQuad
Test: BufferDataTest.MapWriteArrayBufferDataDrawArrays
Change-Id: I1d433d179f9f5110a948f191c5aedda5397acac8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3065799
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
57d59e83
|
2021-09-07T17:41:11
|
|
Vulkan: Add ResourceWrite to track Read and Write Access
vk::Resource currently only tracks accesses in general, not which type
of access is being performed. This CL adds the new class ResourceWrite
to track whether the access is a Read or Read/Write access and when
the access completes.
This allows a follow-on CL to know when a buffer is being written to by
the GPU or if the GPU is only reading from a buffer. Tracking write
accesses to buffers is required when attempting to "Ghost" (duplicate)
GPU-read-only buffers to prevent breaking the render pass when the CPU
maps the buffer memory.
Bug: angleproject:5971
Test: ComputeShaderTest.ImageBufferMapWrite
Change-Id: I965e3e75730719ccce77334744ae4feae33c6101
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3146319
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
06c73b3d
|
2021-09-21T13:37:29
|
|
Vulkan: Lift DS feedback read-only suppression.
This is now fixed upstream in the spec and the VVL.
Bug: angleproject:4975
Change-Id: I6938bae49c982cc4f366c01ab10aedcaa784f972
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3173252
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7dd2361b
|
2021-09-17T15:43:22
|
|
Metal: ANGLE Metal AutoObjCPtr == nullptr comparison is inverted
Port the fix from Webkit for this inverted comparsion
Unify the nullptr type throughout all functions
Bug: angleproject:6351
Change-Id: Id856af31c9eea5cc79993c3454e452d1c14d0d0e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3169436
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Le Hoang Quyen <le.hoang.q@gmail.com>
Reviewed-by: Gregg Tavares <gman@chromium.org>
|
|
f6616c71
|
2021-09-14T17:42:22
|
|
Reimplement transform feedback on direct-to-Metal backend
Connect the Transform Feedback code generation from Webkit ANGLE
to the shader specialization code.
Bug: angleproject:6393
Change-Id: I090c44c6ee97e8e0af8c38433bfb74c2080784f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3161455
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Gregg Tavares <gman@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
a09dca68
|
2021-09-20T23:40:28
|
|
Fix app trace heap buffer overflow
During runMidExecutionCapture(), we need to update
mMaxAccessedResourceIDs[idType] for idType==ShaderProgram, so that we
have enought slot in gShaderProgramMap2 to store the
temp shader we create in GenerateLinkedProgram().
Changes in this CL:
1.Renaming Jamie's mMaxAccessResourceIDS array update function
updatePreCallResourceCounts() to updateResourceCounts().
2. Adding updateResourceCounts() to Cody's setup call post processing
function scanSetupCalls(). In GenerateLinkedProgram(),
we add the temp shader create call with its' tempShaderID
into the shareGroupSetupCalls.
After that we will run the function scanSetupCalls(),
where we will be able to loop through the tempShaderID
and update the mMaxAccessResourceIDS[ShaderProgram] with the correct
count.
Bug: angleproject:6398
Change-Id: Iee78b3b7c1908a90ee8456476902f5e52e4615dc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3172005
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
59d31ea6
|
2021-09-17T17:43:13
|
|
Metal Direct: TinyDepthStencilWorkaroundTest.DepthTexturesStick
Change code to rewrite attributes by searching for both the standard,
and rewritten name. We will match with any vertex attribute
variables that experienced a renaming during shader processing
Bug: angleproject:6388
Change-Id: Ia6f5b87092990e9df42f1dbb87a8bf393ba50c4c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3169438
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
9184973f
|
2021-07-21T08:28:30
|
|
Add GetCompressedTexImageANGLE to ANGLE_get_image
Includes front-end support for reading back compressed texture images.
Back-end support is incomplete and will be implemented in a future CL.
CL authored by cnorthrop@google.com.
Bug: angleproject:6177
Change-Id: I1482b15e5ffec6120f09f51b2718cdbef07c93c8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3163359
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
0babcb08
|
2021-09-14T10:49:06
|
|
FrameCapture: Scan Setup instructions
The ability to add calls from a multitude of locations rather than a
centralized spot has become a useful feature. But some locations
were updating the max read buffer size via updateReadBufferSize,
while others weren't.
Rather than force everything to call a central spot for tracking, add
post process scanning of Setup calls to handle updates. This is
already done for frame calls in maybeCapturePreCallUpdates.
Test: Fortnite MEC
Bug: b/180418810
Bug: angleproject:5658
Change-Id: I51d3a39ea40073d2dca50339ef4b38712b81f4ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3160500
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
458389f2
|
2021-09-02T22:41:40
|
|
Vulkan: Support Linux dma-bufs
This change adds support for EGL_EXT_image_dma_buf_import and
EGL_EXT_image_dma_buf_import_modifiers on top of Vulkan's
VK_EXT_external_memory_dma_buf and VK_EXT_image_drm_format_modifier.
Bug: angleproject:6248
Change-Id: I581987f88e9ddcf351dc721f499f63912dca05f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3145610
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c85d9a19
|
2021-09-07T11:41:10
|
|
Destroy all unreferenced Contexts resources during terminate()
When eglTerminate() is called, all of the Contexts that the Display owns
need to be destroyed if they are not referenced by (current to) any
Threads. This also requires a change to Display::releaseContext(), to
remove the recursive call to Display::terminate() that could occur when
releasing the Contexts during terminate().
Bug: skia:12413
Test: EGLContextSharingTestNoFixture.EglTerminateMultipleTimes
Change-Id: Ibd0a3e22725d29875c4089bdaae47c98e5084f35
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3144146
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c8e13389
|
2021-09-16T16:25:11
|
|
Fix memory leak in StreamProducerD3DTexture.validateD3DTexture
Calling ID3D11DeviceChild::GetDevice will add a reference to the D3D
device before passing it to the caller. Hence, we need to release
the device when we're finished using it.
Bug: angleproject:6403
Change-Id: I68cc8f64b3f9866cd6f1105334d86ee6774da52c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3167013
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
|
|
1af5c46c
|
2021-09-14T14:40:49
|
|
Move JsonSerializer from libANGLE to common.
This lets us use the serializer from outside of libANGLE. The plan is
to use it to serialize a list of supported extensions from the tests.
Bug: angleproject:6379
Change-Id: Ib7b64cca32e733e342b80f893d3752318089f0c2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3163361
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
bf7fac12
|
2021-09-16T21:18:04
|
|
Vulkan: Fix getting driver priority with async command queue
Bug: angleproject:6245
Change-Id: Id6b6f83177dde85867685f814c5bdef4a5c97367
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3167212
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e3e221f9
|
2021-09-15T14:28:34
|
|
Make backend ObjC struct match uniform block
The structure defined in ContextMtl.h needs to
match the uniform block defined in DriverUniform.h/.cpp.
XCode will sometimes assert when they don't match.
Bug: angleproject:6394
Change-Id: I8f3fe2bcc6ad9b96dec2c3e77cdb99515736cdc1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3163861
Commit-Queue: Gregg Tavares <gman@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
23b16743
|
2021-09-14T10:29:14
|
|
Fix compilation when disabling D3D back-ends.
Common code areas weren't compiling when disabling combinations
of the D3D9 and D3D11 back-ends. With manual testing this fixes
various combinations of angle_enable_d3d9/d3d11/gl.
Bug: angleproject:5925
Change-Id: Ie14f2b4c6169cf96c662e7ae6999751007d9adb0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3162836
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
653973e4
|
2021-09-15T14:06:34
|
|
Capture/Replay: Disable when no arguments specified.
Bug: angleproject:6397
Change-Id: I09fb060044fd280f50a3b8ce71d8d455dbd4985f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3163360
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
44935e79
|
2021-09-15T15:23:10
|
|
Change top-level AGI debug marker to not show parameters
Per AGI usability request.
Bug: b/195784227
Change-Id: I674848944e9bc9eb9da1369c977b9d7d624a0788
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3163480
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
dc08289d
|
2021-09-13T16:48:58
|
|
Add a cubemap array texture validation
In ValidateTexture3DDestinationTarget(),
Check if the cube map array extension is enabled if the TextureTarget is
CubeMapArray.
This helps catch the missing extension error earlier in
ValidateES3TexImage3DParameters(), and the program won't crash when
getTextureByType() is called later in
ValidateES3TexImageParametersBase().
Bug: angleproject:6152
Change-Id: I2f1876f81688e7eef68bdf99276a3a9fafa224da
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3161440
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
b918b1c6
|
2021-09-10T16:44:59
|
|
Auto-generate GLES extensions.
Uses the data from registry.xml combined with gl.xml to produce the
necessary header and source file with the strings map. Also updates
the list of supported extensions. Several extensions were missing
from the supported extensions map.
ARB_sync and NV_robustness_video_memory_purge require some specific
tweaks to get the generator to accept them as gles extensions.
Also includes a generate markdown file that lists supported exts.
Bug: angleproject:6379
Change-Id: I95bd589aa31a62b4a008de24408c7823a49023ed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3157418
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
9121a79d
|
2021-09-14T11:57:32
|
|
Capture/Replay: Don't set CWD and pass path information instead
With that we avoid complication when evaluating the module path that
is used to load the test modules.
Fixes: 2f3e4db838068584a0c15653cb07893683a55300
Capture/Replay: Serialize trace metadata to a JSON file.
Bug: angleproject:6385
Change-Id: If4e348237d9b0e99e404f49b28dddba1ac50ef92
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3157907
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
e84b0154
|
2021-09-13T16:04:20
|
|
Update extension boolean names.
This is in preparation for auto-gen, which uses a simple naming
scheme. This fixes the bool names to be totally consistent with the
extension names.
Bug: angleproject:6379
Change-Id: Ia212449be04accb0e4f006b55b1813ab4481fa0b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3157417
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
fc9457fb
|
2021-09-15T10:46:55
|
|
Revert "Vulkan: Suppress CoreValidation-Shader-InterfaceTypeMismatch"
This reverts commit 62c70b449d2ef5e195c583f7a7627f14587a51dc
Reason for revert: VVL bug fixed upstream
https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/3264
Original change's description:
> Vulkan: Suppress CoreValidation-Shader-InterfaceTypeMismatch
>
> New VVL error causing test failures.
>
> Bug: angleproject:6382
> Change-Id: I61801828c0879a33502a2d9582e2e7da1bdb9250
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3155571
> Reviewed-by: Cody Northrop <cnorthrop@google.com>
> Reviewed-by: Brandon Jones <bajones@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:6382
Change-Id: I41202a1d577fb6d9204ead32df134e6c5b3a1a86
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3163238
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
1ca1589f
|
2021-09-13T10:56:58
|
|
Give GLES extension bools a vendor suffix.
This is in preparation for auto-generation which will give all of
these bools suffixes.
Bug: angleproject:6379
Change-Id: I7e3f6c9b644c41a2165e6bf7b62d661fd352a250
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3158503
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9ada074a
|
2021-09-10T16:18:19
|
|
Move capability values from gl::Extensions to gl::Caps.
Several extensions stored extra information in the wrong structure.
Move them to the Caps structure in prepraration for auto-generating
the Extensions struct.
Bug: angleproject:6379
Change-Id: If5643b72039e299cb0f7c49591d13b3c7cd8a36c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3158403
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
54e89a1b
|
2021-09-02T16:48:42
|
|
Capture/Replay: handle param reading of glGetUniformuiv
Enable the test that was fixed by this.
Bug: angleproject:6108
Change-Id: I0bd46a85c2337e3c1a236954c8f131df12c499b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140155
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|