|
cbab97d4
|
2022-07-29T11:03:21
|
|
Remove needless IOSurface alignment validation
IOSurface buffers are copied instead of imported directly into Vulkan,
since they're not guaranteed to satisfy alignment and padding
requirements (see minImportedHostPointerAlignment and
vkGetMemoryHostPointerPropertiesEXT).
So we don't need to check its alignment as part of
eglCreatePbufferFromClientBuffer() validation.
Bug: angleproject:7538
Change-Id: Ic449e7cdd60e62cd3009854897ffcd369e32fc7c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3792178
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Auto-Submit: Nicolas Capens <nicolascapens@google.com>
|
|
f000215d
|
2022-07-26T21:16:14
|
|
Vulkan: Optimize transform feedback buffer tracking
Prior to this CL, if transform feedback was active at the time of render
pass closure, its buffers were cached in ContextVk. Later, these
buffers were used to close the render pass if they were used for any
other reason (such as vertex attribute).
However, this meant that the render pass could close unnecessarily if
transform feedback was ended right after the render pass is closed. The
closure of the render pass was an awkward place to cache the used
transform feedback buffers (because at that point, the buffers are
actually no longer used).
Instead, this change makes sure that the buffers are cached when
transform feedback buffers are first used by the render pass, and the
cache is cleared at the end of the render pass.
Bug: angleproject:4622
Change-Id: I31c0a1e20d48f2e261e2cf37adb0a46db683e6fb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3788309
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
5db09e9b
|
2022-07-21T10:45:12
|
|
Vulkan: Try allocate from existing DescriptorPool before create new
When we allocate a new descriptorSet, right now we only look at current
bound pool or the last pool, or allocate a new pool. We never look at
the other pools for the possibility of allocation. This is likely due to
we never free descriptorSet in the past. With the recent CLs, we now
release invalid descriptorSets when texture or buffer gets deleted or
re-specified. This opens up opportunity to allocate from other existing
pools before allocating a new pool. This CL changes the allocation logic
to add the pass to iterate over existing pools for allocation before
allocating a new pool, thus reducing the number of descriptorSetPools.
This CL also consolidates
DynamicDescriptorPool::getOrAllocateDescriptorSet()'s actual
descriptorSet allocation logic with
DynamicDescriptorPool::allocateDescriptorSet().
This CL also moves mEmptyDescriptorSets from ProgramExecutableVk to
DynamicDescriptorPool so that we will only have one empty descriporSet
per pool instead of per program.
Bug: b/235523746
Change-Id: I012346acce17f785ee6683ec55fdf21be00ea1a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780847
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Auto-Submit: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e7affd55
|
2022-06-23T13:49:18
|
|
d3d11: allow selecting render device by PCI vendor/device ID
Similar my change in the Vulkan backend, we can match by PCI
vendor/device ID in D3D11 device selection.
Bug: angleproject:7460
Change-Id: I6f7bff1dad5b589357693bf747157b2dacb1f69f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3720734
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Auto-Submit: Steven Noonan <steven@valvesoftware.com>
Reviewed-by: Steven Noonan <steven@valvesoftware.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
80022b96
|
2022-07-26T21:07:04
|
|
Vulkan: Fix xfb buffer redefine to smaller size
In 89e11878b275b15735eaf273ababfa6fd43a2e3d, a use-after-free bug was
fixed where glBufferData redefined a buffer, leading to a change in
storage. This was only tested for the case where the new buffer was
larger than the old buffer.
When the new buffer is smaller however, another issue remains where the
buffer size as cached by the transform feedback object used the old
object's size. This is worked around in this change, with a fix for the
real issue (that the buffer state is updated after calling into the
backend instead of before) coming up.
Bug: chromium:1345042
Change-Id: I6c9e9344705fefe49926a14cf6ce73ce84305872
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3788308
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
b8e741d2
|
2022-06-23T13:36:17
|
|
Vulkan: allow selecting render device by PCI device/vendor IDs
The EGL_ANGLE_platform_angle_device_id extension is deliberately vague
about the meaning of "device ID high" and "device ID low", stating it's
platform-specific. We can use these for representing the PCI
device/vendor IDs that can be discovered via various (OS-specific)
external means.
Bug: angleproject:7460
Change-Id: Iff462687749e815fa074ef8ff392b6730ef46fa8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3720733
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0dc29af9
|
2022-07-26T19:16:16
|
|
Context: Also disable ASTC on mState when emulation is disabled.
GL_KHR_texture_compression_astc_ldr was incorrectly exposed on the
GL_EXTENSIONS string in cases where no native support was available and
the emulation was not built.
To prevent this the context must disable it on mState.mExtensions in
addition to mSupportedExtensions.
Bug: angleproject:7415
Change-Id: I1161e460b0b224a03557053b5804c104e270f388
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3788402
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
3f59c285
|
2022-07-12T17:29:36
|
|
D3D11: implement image load/store format reinterpretation.
Reinterpretation requires all UAV textures to be in a TYPELESS
format. Implement an ensureUnorderedAccess() that converts the
texture's storage to one with the D3D11_BIND_UNORDERED_ACCESS
flag, which, prior to this change, was set unconditionally for
all textures in an >= ES 3.1 context. If this flag is set at
D3D texture creation time, use the appropriate TYPELESS format.
Implementation uses a BindFlags struct, which subsumes the
existing renderTarget for clarity. Factor out the relevant bits
of ensureRenderTarget() into an ensureBindFlags() helper function,
and make ensureRenderTarget() and ensureUnorderedAccess() wrappers
around it.
Add the corresponding typeless formats to the texture format table.
Bug: angleproject:7501, angleproject:7520
Change-Id: Id21b9db3229aceca121da6ba6507704417034ec4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780588
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
|
|
313884ce
|
2022-06-30T08:49:08
|
|
Vulkan: Move dmabuf extensions support
Moves dmabuf support functions from DisplayVkWayland to DisplayVkLinux
to support other linux winsys.
Bug: angleproject:7480
Signed-off-by: Sungyong Choi <sywow.choi@samsung.com>
Change-Id: I2a36557815b8e5c4bab7ec1d9248989345e536c2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3735863
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Reviewed-by: Jeff Vigil <j.vigil@samsung.com>
|
|
88dd868f
|
2022-07-25T06:44:38
|
|
FrameCapture: Fix and optimize multi-context reset
Follow on to fd89020c
This CL:
- Fixes missing eglMakeCurrent calls when switching contexts to
reset container state
- Optimizes when those calls are made, so we only call
eglMakeCurrent in Reset when we absolutely have to
- Moves MaybeResetContextState to the end, after any per-context
reset work has been done
Test: Asphalt 9 MEC
Bug: angleproject:4599
Bug: angleproject:7507
Change-Id: I52912aa13e3a11735ed3ec93080a21e9cbff113a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3784728
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
be708446
|
2022-07-25T15:24:52
|
|
Vulkan: Remove the bindEmptyForUnusedDescriptorSets workaround
Only applied to older Qualcomm-based phones.
Bug: angleproject:2727
Change-Id: I37a611e2ff79d898eff9401467407543f3c690b8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3785290
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
df879d49
|
2022-07-22T00:00:00
|
|
Return INVALID_VALUE for online BC compression
As per discussion with OpenGL ES WG, implementations
are allowed to generate INVALID_VALUE when online BC
compression is not supported.
Bug: angleproject:6441
Change-Id: I0e282c970f1e03afbc590dc9a46b8ce38d869691
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780923
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
4a14030d
|
2022-07-22T10:09:53
|
|
Avoid streaming a wide string to a (narrow) ostringstream.
This stream overload was removed in C++20.
Bug: chromium:1284275
Change-Id: I73188e09cc93c7bd475ab1536dac74e92ea12605
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3781611
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: Peter Kasting <pkasting@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e3933465
|
2022-07-21T11:35:17
|
|
Vulkan: Allow dither for some color blend modes
Some color blend modes are known to work with our dither emulation.
Test: Candy Crush on Pixel 6
Bug: b/232574868
Change-Id: I1b57e243afcf4643e2cd12f862408050751fa987
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780846
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fd89020c
|
2022-07-18T20:26:38
|
|
FrameCapture: Reset VertexArray state
This change includes three things:
- Tracking resources by context
- Resetting VertexArray state
- Splitting ResetReplay into per-context
All three are needed to properly Reset Vertex Array objects.
Vertex Arrays are considered container objects, which means
they are not shared with other contexts. We've had a hole
in Reset where we did not take multiple contexts into account.
To address this, we now also track which contextID was used
to modify a resource. For objects that need to know which
context they are bound to, we track them in a map and
return the correct index when getTrackedResource is called.
To generate the calls to reset Vertex Array state, we are able
to mirror what has been done for other ResourceTypeIDs.
In order to properly Reset resources in multiple contexts,
we have to bind the correct context before emitting the
Reset calls. This has been done for Setup already, so we
have a template to follow. With this CL, we now emit
multiple functions to Reset state, similar to the following:
void ResetReplayContextShared()
{
// Reset shared objects
...
}
void ResetReplayContext5()
{
// Bind the right context
eglMakeCurrent(EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_SURFACE, context5);
// Reset container objects for context5
...
}
void ResetReplayContext6()
{
// Bind the right context
eglMakeCurrent(EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_SURFACE, context6);
// Reset container objects for context6
...
}
void ResetReplay()
{
EGLContext context = eglGetCurrentContext();
ResetReplayContextShared();
ResetReplayContext5();
ResetReplayContext6();
eglMakeCurrent(EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_SURFACE, context);
}
Test: Ni no Kuni MEC
Bug: angleproject:4599
Bug: angleproject:7507
Change-Id: Ic585534f07172474aab0ce1d0396b0b064379f88
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3761874
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
00e48c13
|
2022-07-20T17:35:01
|
|
Vulkan: Destroy DescriptorPoolHelper when its unused.
DynamicDescriptorPool keeps an array of DescriptorPoolHelpers. Right now
we only grow this array of pools, we never shrink the pool count. This
is partly due to we never release descriptorSet. But in the past few
CLs, we now release invalid descriptorSet when texture/buffer gets
deleted or re-specified. This means we could now have a pool with no
valid descriptorSets. This CL adds the ability to actually release the
pool when all of its descriptorSets has been released, thus reduce the
pool count when a lot of textures have been deleted.
Bug: b/235523746
Change-Id: I2d5047269154cc8ece8305408f08f2ad7c9dd8a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780845
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
b23ea680
|
2022-07-22T12:06:42
|
|
Vulkan: Re-enable multisample framebuffer fetch
Bug: angleproject:7351
Bug: angleproject:3586
Bug: angleproject:6195
Bug: angleproject:7512
Bug: b/234173199
Change-Id: Ib70732f8c075de777e534f950a7e421e75969f59
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3781613
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
c2aaeadb
|
2022-07-14T13:27:38
|
|
Vulkan: Skip nonexistent attachments when calculating samples
When FBO 0 is bound, FramebufferVk can get into a state where the color
attachment is considered null (such as surfaceless).
Then, getSamples() is called with null color attachment, resulting in an
assertion or nullptr crash.
Fix getSamples() to respect the color attachments mask.
The entry point that brought this about was also a dispatch, not a draw.
In a future CL, we should also optimize syncState to not consider draw
related state if the task is a dispatch.
Also fixes b/234620157
Bug: b/223456677
Change-Id: I8cc969de941f43a2eb66871033d6ec7ddf8b8a66
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3764435
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Lingfeng Yang <lfy@google.com>
|
|
7d6f3d94
|
2022-07-14T13:25:04
|
|
glValidateProgramPipelines: Skip draw state error check
Certain apps will call this API while having a surfaceless context,
making it improperly fail.
dEQP tests that previously relied on the full draw states check
were actually relying on the part where the draw state check included a
check that the pipeline object had programs/shaders. Relax the
validation of the pipeline to only include that validation, and not also
the framebuffer state / VBO state / etc.
Bug: b/223456677
Change-Id: I9211761934668aae8a20f07ac4f36b7f6c1281da
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3764434
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
d0fe12db
|
2022-07-20T10:16:38
|
|
Vulkan: Disable Multisample Framebuffer Fetch
Disable the multisample framebuffer fetch temporarily
to unblock the angle to chromium roller. Will re-enable after
https://ci.chromium.org/ui/p/chromium/builders/try/win10_chromium_x64_rel_ng/1240846/overview
is resolved.
Bug: angleproject:7351
Bug: angleproject:3586
Bug: angleproject:6195
Bug: angleproject:7512
Bug: b/234173199
Change-Id: I435b257dd07d973d06d5cacd779e943eed32097b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3777059
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
992018c7
|
2022-07-20T17:31:47
|
|
Suppress VUID-VkGraphicsPipelineCreateInfo-pStages-06896.
Bug: angleproject:7513
Change-Id: I2877c069e33d2ec5e92cf759dc3ab1d270e1a414
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3776759
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
fc97b2da
|
2022-07-14T13:18:56
|
|
Vulkan: Always use depth<=256 AHB image siblings
Android will sometimes use an uninitialized value for the layerCount,
which results in huge, many-GB allocations down the line.
If we see a big value there, force to 1.
Bug: b/223456677
Change-Id: I201e9901d9c726a9af73d025ac33850d11a5a38a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3764433
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Lingfeng Yang <lfy@google.com>
Commit-Queue: Lingfeng Yang <lfy@google.com>
|
|
be24acbd
|
2022-07-14T13:16:33
|
|
Vulkan: Support GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES
This CL adds basic support for GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES to
the Vulkan backend, and also allows the enum through validation.
Bug: b/223456677
Change-Id: If0dcb467bb72bdfc9ced4862231a676eef471a6c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3764432
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
bd82a5e4
|
2022-07-07T17:03:27
|
|
Vulkan: __samplerExternal2DY2YEXT-aware ProgramExecutableVk
This CL incorporates __samplerExternal2DY2YEXT into the Vulkan objects
involved in ProgramExecutableVk. Specifically, we need:
1. TextureVk to create and return a VkSampler imbued with identity
conversion model, so we can create an immutable sampler from it.
2. Access to the identity conversion desc so that it can be traced in
mImmutableSamplerIndexMap.
Bug: b/223456677
Change-Id: Ia302226a8aa4a97d4a42f79c79ce47af3abec37c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3753294
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
|
|
6c418f8c
|
2022-07-07T14:28:06
|
|
Vulkan: __samplerExternal2DY2YEXT-aware TextureVk
This CL adds the ability for TextureVk to return an ImageView that is
created with a VkSamplerYcbcrConversion object that uses an identity
conversion model.
This allows direct sampling of YUV values without RGB conversion, which
is needed for __samplerExternal2DY2YEXT.
Bug: b/223456677
Change-Id: Ie1d4e12375b7808a1f060747bc2d74baeda3fdea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3751889
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
53d40aed
|
2022-07-15T15:03:25
|
|
Vulkan: Destroy descriptorSet cache when BufferHelper destroyed
For atomic counter buffers or other cases, dynamic descriptor is not
been used. Right now when such buffer is destroyed, the cache is still
lingers around. With this CL, when a new cache entry has been created,
we record the cache entry in the BufferHelper. When BufferHelper is
destroyed, we also immediately destroy the cache entry since the cache
will no longer reused.
Bug: b/237686097
Change-Id: I26eee96318fbc003e65318c0b8263dc61092f350
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3764044
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
c7459a46
|
2022-07-15T09:55:03
|
|
Vulkan: Destroy descriptorSet cache when BufferBlock destroyed
When a new cache entry has been created, we record the cache entry in
the BufferBlock. When BufferBlock is destroyed, we also immediately
destroy the cache entry since the cache will no longer reused.
This CL also removes DescriptorCacheResult from various APIs since it is
now redundant with newSharedCacheKey argument.
Bug: b/237686097
Change-Id: I14fa8906fdbe7d9226c8e8ecddef2beb05fbaa5c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3756694
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Auto-Submit: Charlie Lao <cclao@google.com>
|
|
8df0c53e
|
2022-07-11T16:56:26
|
|
Vulkan: Split suballocation out into it's own file
Right now Suballocation and BufferBlock classes are in vk_utils.h, which
is included by other header files. This made it difficult to have these
two classes use variables defined in other headers. And vk_utils.h is
really designed for utilities, it isn't the best place for
bufferBlock/suballocation by definition. This CL split out suballocation
code into its own file to make future CLs much easier. No functional
change is expected other than move the code around.
Bug: b/237686097
Change-Id: I36733468b4bed152a19d9c9bca8e7459c11c3b43
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3756761
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
45e5cf01
|
2022-06-03T14:29:23
|
|
Vulkan: Implement ASTC emulation.
Implement ASTC emulation using the astc-encoder library.
Add copy_image tests to deqp_gles31_test_expectations for desktop cards.
Add emulatedAstc limitation.
Don't expose emulated ASTC from WebGL contexts.
Introduce ANGLE_HAS_ASTCENC define to check for build availability.
Only build on angle_standalone configurations.
DEPS: Add astc-encoder.
image_util: Decode ASTC to RGBA.
TracePerfTest: Skip car_chase and genshin_impact on NVIDIA.
Bug: angleproject:7415
Change-Id: Ib2f3fd3f710164a2ecd5d5edf780227031bbfb84
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3697999
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
a3899c53
|
2022-07-15T08:39:32
|
|
Capture/Replay: drop context capture call in EGL capture templ
Using the context provided by the thread variable is not correct, it
worked only by accident. The only call that uses a context is
eglCreateImage and here we have to use the context passed into the
call.
Bug: angleproject:4964
Change-Id: I78250050cc8f7271be8c91c2d09d99210aaead21
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3762458
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Faye Zhang <ffz@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
645ee194
|
2022-07-18T21:48:59
|
|
Vulkan: Only modify input attachment images for FF MSAA fix up
Previously all OpTypeImages were changed to MSAA, but only the ones with
the SubpassData dimension should have been.
Bug: angleproject:6195
Change-Id: I1caadd23420f0d9cffdee4e3b9d63cf6fa93982e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3770645
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d4e54b81
|
2022-07-17T22:56:51
|
|
Vulkan: Clean up garbage of last completed submission too
Due to an off-by-one error, the garbage of the very last completed
submission was not actually cleaned up.
Bug: b/172704839
Change-Id: I4fb6a77af4379568990853e4bf3fd945fcde657c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3769547
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bf369285
|
2022-07-18T15:12:13
|
|
Suppress SYNC-HAZARD-WRITE_AFTER_READ in vulkan_car_chase
Bug: angleproject:7125
Change-Id: Ibebe363bcc98413f259db9cb959b0ef816ed5ee2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3768935
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
c4004751
|
2022-06-23T14:35:21
|
|
Metal: texture allocation failures handled incorrectly
When allocating large textures, allocation may fail
if textures exceed the Metal memory limit. When a nil
texture is returned, we should check texture allocation before
assigning it as a backing object
ANGLE port of the following bug
https://bugs.webkit.org/show_bug.cgi?id=240790
Bug: angleproject:7459
Change-Id: Ib94f42d25df28a31513ab78fc42c6523bfbc5f76
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3722601
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Gregg Tavares <gman@chromium.org>
|
|
15cc0013
|
2022-07-14T23:32:05
|
|
Add a GL_ANGLE_shader_pixel_local_storage extension
Plumbs through "GL_ANGLE_shader_pixel_local_storage" and
"GL_ANGLE_shader_pixel_local_storage_coherent" extension strings
advertised by ANGLE and stubs out an initial spec document. This change
doesn't add any new procedures or shader constructs, but it does allow
the PLS tests to start checking for the real extension strings and
requiring the GL_ANGLE_shader_pixel_local_storage extension.
Bug: angleproject:7279
Change-Id: I36877fe4117185a2121f803288123cd69a447cf3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3739590
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
1ae7a56c
|
2022-07-14T13:11:16
|
|
Vulkan: Fix double clear of AHBs
Originally when deferred clears were implemented, it was assumed that
it's impossible at glClear time to have a render pass open without any
commends. This assumption was broken under two circumstances:
- Clear of 3D attachments that don't include all layers
- Clear of AHBs
In these cases, the clear immediately opened a render pass with nothing
but loadOp=CLEAR. If another clear followed, an assertion would fire.
In this change, open render passes without commands are handled such
that clears are accumulated in the loadOps.
Bug: b/223456677
Change-Id: If99bcf9e24454b0c9e140cb93df7e7f76f175363
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3763169
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Lingfeng Yang <lfy@google.com>
|
|
8f2fbbeb
|
2022-07-14T11:30:12
|
|
Inline all metal command buffer decoder methods
It should improve command buffer decoding slightly.
Bug: angleproject:7296
Change-Id: I2481d0760c937a26c7c998131b398dd83bd0eaf9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3763063
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Auto-Submit: Peng Huang <penghuang@chromium.org>
|
|
d9763c60
|
2022-07-14T14:42:27
|
|
Disable mutable texture upload on Win/Intel devs
After adding the mutable texture upload CL, we are experiencing
some instances of flakiness in the form of lost context/device
errors in the perf tests in Win/Intel cases.
* Added mutableMipmapTextureUpload as an ANGLE feature, which is
used to determine if onMutableTextureUpload() should be called.
* It is disabled on Windows when using an Intel GPU.
* Disabled the related unit tests on Win/Intel cases.
Bug: angleproject:7308
Bug: b/202744914
Change-Id: Ib8c1bddc39cc4354468831a4a599a7c343d05f0e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3764460
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
5911243c
|
2022-07-06T15:55:28
|
|
Fix linkValidateTransformFeedback for glLinkProgram
From OpneGLES 3.2 spec. 11.1.2.1: A program will fail to link if the
count specified by TransformFeedbackVaryings is non-zero, but the
program object has no vertex, tessellation evaluation, or geometry
shader. Add check in validation to account for this.
Bug: angleproject:5557
Tests: ProgramPipelineTest32.CreateProgramWithTransformFeedbackVarying
Change-Id: Ia86cbe8e85cb6a69fd35ddc4bc6ee37b9500c78f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3723861
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
01092c48
|
2022-07-12T10:11:22
|
|
Vulkan: Destroy descriptorSet cache when shader image is destroyed
Similar to texture descriptor set, this applies to images used as shader
resource. When a texture is used in a shader resource descriptorSet, we
record it. When texture is destroyed, we also destroy that shader
resource descriptorSet cache.
Bug: b/237686097
Change-Id: I475982fcec45535cc285a4aebca922d01efc7ed2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3758884
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
e25137c0
|
2022-06-29T09:57:50
|
|
Vulkan: Move DescriptorSet cache to DynamicDescriptorPool
DynamicDescriptorPool has an array of DescriptorPoolHelper. Right now
mDescriptorSetCache is stored in DescriptorPoolHelper. This means when
you search cache for the match, you have to iterate over the array of
DescriptorPoolHelper to decide to make conclusion if there is a match or
not. Each hash map search means compute hash and do key comparison. I
think this was done this way because of we used to not able to evict
cache when we decide to reuse DescriptorSetPoolHelper object (when we
call pool->init). But with recent changes of
SharedDescriptorSetCacheKey, we are able to evict specific cache
entries. This CL moves mDescriptorSetCache to DynamicDescriptorPool so
that cache look up can be cheaper. This also made CacheStats simpler as
well.
With Gfxbench gl_driver2_off and cpu clock locked, this CL improves
score by 2.16% (from 4019 before CL to 4105 after CL). See bug for
detailed data.
Bug: b/237686097
Change-Id: Ia6fa7a6b725974e0150bc21cdf0140d9198c8332
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3735736
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
6cbf0c01
|
2022-07-14T11:35:46
|
|
Vulkan: Only apply MSAA FF fix up if executable has FF
Due to the permanentlySwitchToFramebufferFetchMode feature, framebuffer
fetch is permanently enabled on first use. Checking
GraphicsPipelineDesc as previously done would thus always return true,
even if the executable does not use framebuffer fetch. As a side
effect, every multisampled draw turned into a per-sample shading draw.
Bug: angleproject:6195
Change-Id: I748abddd2003297d6ff37a98e69cce4621697ad7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3763064
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
eb88a2ac
|
2022-07-11T17:16:49
|
|
Capture/Replay: Handle the case when there is no context
in eglCreateImageKHR, when target is EGL_NATIVE_BUFFER_ANDROID
then the context must be EGL_NO_CONTEXT, so handle this case.
Bug: angleproject:4964
Change-Id: I945d2af546f3f3a14be966e5cac795b58aa3c89f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3755785
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Faye Zhang <ffz@google.com>
|
|
32c5fd8a
|
2022-05-13T14:31:03
|
|
Reland "Vulkan: Flush texture updates more often"
This is a reland of 8bb7c35c2159de2fa9e9a008679c692edd4402a6
* Added a condition to make sure the previous texture is not immutable
when performing the optimization.
* Fixed the issue where mipmap textures with unequal dimensions were
not flushed.
* Added related tests.
* Added kEnableMutableMipmapTextureUpload, a flag to enable/disable
the feature (enabled by default).
Original change's description:
> Vulkan: Flush texture updates more often
>
> * Added a pointer to the previous texture in ShareGroupVk so we can
> flush the texture updates once we switch to a new texture.
>
> * We check if mip levels 0 and 1 are conformant in terms of
> size, format and number of samples.
>
> * As a part of size check, we also check depths if the texture
> target is either 3D, 2D array, or cube map array. For the former
> two, they have to conform to mip scaling similar to width and
> height. For the latter, the depth represents layer-faces and does
> not change for mipmaps.
>
> * Added a test to ensure the pointer to the previous texture is
> deleted when the corresponding texture is deleted, so the old value
> is not accessed by a future mutable texture.
>
> * Added tests to make sure the mutable texture is uploaded with
> the appropriate mip level attributes, and not uploaded in cases of
> size/format inconsistencies, incompleteness, and no base level.
>
> Bug: b/202744914
> Change-Id: I9c2c1af87a8a49e75d3ad25523436b0cd51a7e81
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3606329
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Bug: b/202744914
Change-Id: I2bdbcd0182a57c18c1a18968396251a2e366731b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3646959
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
0d3ecf46
|
2022-06-24T16:37:17
|
|
Vulkan: Multisample Framebuffer Fetch
Implement Multisample Framebuffer Fetch.
This should fix the deqp failure
dEQP.GLES31/functional_blend_equation_advanced_msaa_colorburn
Bug: angleproject:7351
Bug: angleproject:3586
Bug: angleproject:6195
Bug: b/234173199
Change-Id: Idd7559dcba3d91e36d8f253f1554fb931a7a6775
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3724165
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
12efe5b2
|
2022-06-21T15:43:42
|
|
Cleanup invalid EGL handles only if app called eglTermiate
Maintain set of active threads instead of a global refCount
and free display's invalid EGL resources iff -
1. app previously called eglTerminate on that display
2. there are no more active threads associated with that display
Bug: angleproject:6723
Test: EGLMultiContextTest.RepeatedEglInitAndTerminate*
Test: EGLMultiContextTest.ReuseUnterminatedDisplay*
Change-Id: I868491bbbf0664e9129dcb0d1fa9e2243ef36d82
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3717277
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
5897d6f5
|
2022-07-07T00:00:00
|
|
GL: Add emulateCopyTexImage2D workaround
Using texImage2D + copyTexSubImage2D seems to be
more stable than using copyTexImage2D directly.
Added missing HALF_FLOAT fix to the code path that
requires target texture initialization.
Fixed target texture dimensions when initialization
is not required.
Fixes Apple GPU crashes in:
* CopyTexImageTest.DeleteAfterCopyingToTextures
* conformance/textures/misc/texture-copying-and-deletion.html
* conformance/textures/misc/texture-copying-feedback-loops.html
Bug: angleproject:5038
Bug: angleproject:5360
Bug: chromium:1130703
Change-Id: I5cce087983601e768902f01b3462ec2106e2500a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3749921
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Gregg Tavares <gman@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
b47603e0
|
2022-06-14T05:47:54
|
|
Implement GL_NV_read_depth_stencil
The implementation will perform two readPixels calls, once for each
aspect, and then interleave and pack the result.
Bug: angleproject:4688
Change-Id: I46390df893de50b93e855e9333ffab567215a2bb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3702686
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Auto-Submit: Constantine Shablya <constantine.shablya@collabora.com>
|
|
d88f7906
|
2022-07-01T12:57:09
|
|
Extra buffer logging/checking on Android Cuttlefish
This adds a feature that will be enabled on Android Cuttlefish
systems, to catch a rare crash.
Test: Visual inspection of logcat output
Bug: b/236098131
Change-Id: Ie35d7e017f69b36da9caf3e47c31fcc71846caed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3726963
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
3622f147
|
2022-07-11T20:36:46
|
|
D3D: Fix compile after CreateTemporaryFile changes
Test: Compiled with "angle_enable_trace = true"
Bug: angleproject:5095
Change-Id: I0afce1ced5d83aabe1a5183434029e03bee22eff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3756358
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Eddie Hatfield <eddiehatfield@google.com>
|
|
3b5b7a29
|
2022-07-03T00:00:00
|
|
Caps: Check if ANGLE_texture_multisample is enabled
Updated RenderbufferMultisampleTest.IntegerInternalformat
and adjusted getRenderbufferParameteriv validation.
Bug: angleproject:7479
Change-Id: Ieaeda4e8a8c11c3d1023f40a90639f3ecfcba9bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3738148
Reviewed-by: Gregg Tavares <gman@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
056c6c7c
|
2022-07-11T00:00:00
|
|
Metal: Skip invalidation of emulated formats
Fixes SimpleStateChangeTestES3.InvalidateRGBThenDraw
on Apple GPU.
Bug: angleproject:7397
Change-Id: Ice5677004b38c3d67a9fc938d15dd64a20723380
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3755782
Reviewed-by: Gregg Tavares <gman@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
94bbb40a
|
2022-07-04T00:00:00
|
|
GL: Enable pack skip emulation on all Apple drivers
* conformance2/reading/read-pixels-pack-parameters.html
is failing in WebKit on M1 without this workaround
Bug: angleproject:4849
Change-Id: I710386d29c120e59338cd56fc9843cd6232ff96c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3743445
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
a1f8049a
|
2022-07-06T13:12:20
|
|
Vulkan: Remove VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT
Some virtual machine drivers have performance cost with
VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT. This CL keeps the
individually freed descriptorSet in the pool and try to reuse rather
than free it.
This CL also removes descriptorSetCount from some API since it always
allocate one at a time.
Bug: b/237848471
Change-Id: I029d651101fa1050770eba9e733a166e56a69684
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3749797
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9931dfd5
|
2022-05-02T00:00:00
|
|
D3D9: Implement float sources for Image9::copyFromRTInternal
Bug: angleproject:5038
Bug: angleproject:6257
Change-Id: I4f21fb1e37a985e2179d9c06101fa5bd2fedb100
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3738143
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
925ec6b5
|
2022-07-07T00:00:00
|
|
Clamp viewport dimensions on store
Bug: angleproject:7486
Bug: chromium:1130759
Change-Id: I6131baacc940b5df7e33ba10fca8e6e148cb8670
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3751056
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
fb3e2def
|
2022-05-24T15:47:01
|
|
Extend labelObject functionality
Modify interface to fully support labelObject return codes.
Fix issues with texture implementation, including handling
deferred Vulkan object creation.
Bug: b/229105865
Change-Id: I0c64b72dd0b54642fb643ee7f5ccbb2a134c6787
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3703184
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
a4e00c64
|
2022-06-30T00:00:00
|
|
Expose EXT_compressed_ETC1_RGB8_sub_texture on Metal and GL
Updated the test to ensure that this extension
is exposed on Apple GPUs when using Metal.
Updated emulatedEtc1 limitation to hide this extension
when the main ETC1 extension is hidden.
Real WebGL apps cannot enable this extension because
it is not exposed in WebIDL.
Removed bogus entry from IsETC1Format and use the helper
consistently in all validation functions.
Simplified GetNativeCompressedFormat.
Bug: angleproject:7471
Change-Id: I61321fadad7d962358d0fefecd08aaddaedd2ec2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3737762
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
afcca86c
|
2022-07-05T11:25:04
|
|
Fix ValidateCompressedTexSubImage3D compressed format check
Fix the ValidateCompressedTexSubImage3D to perform compressed format
validation only when we have a compressed format
Bug: chromium:1341624
Change-Id: I5c8b3ef548cfa63b86e077f3c9e4c15e83dc7988
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3747203
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0f688d62
|
2022-07-04T15:49:53
|
|
Metal: Allow Surfaces to be created without depth & stencil
Previously, egl::Config with depthSize=0 & stencilSize=0 wasn't
added to DisplayMtl's configSets.
Thus every surface would be created with at least stencilSize=8
although users requested DONT_CARE.
This led to wasteful memory being used to created stencil buffers
even though they were not used.
Fixes:
- dEQP-EGL.*.query_surface.simple.pbuffer.rgba8888_depth_stencil
- dEQP-EGL.*.query_surface.simple.pbuffer.rgba8888_depth_no_stencil
- dEQP-EGL.*.query_surface.simple.pbuffer.rgba8888_no_depth_stencil
Bug: chromium:1329376
Change-Id: Iba13b527640a6b8ce6c4b3a63346b41730a83891
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3739868
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Quyen Le <le.hoang.q@gmail.com>
Reviewed-by: Gregg Tavares <gman@chromium.org>
|
|
053d152d
|
2022-07-04T21:20:34
|
|
Vulkan: Resolve GoogleX MSRTSS conflict with EXT
Now that the extension is public, rename the old symbols to GoogleX as
they have shipped previously. This reverts defd99dc4.
Bug: chromium:1088005
Change-Id: I5ac7f73e24084e26a8b2d9cf742c7ab9b3c80984
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3744362
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
81a69da6
|
2022-06-30T09:56:54
|
|
Vulkan: min/mag filters follow chroma filter value
The Vulkan spec states that for those formats lacking support for
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT
the min and mag filter must be equal to the sampler YCbCr conversion's
chroma filter. Having the min/mag filters follow the chroma filter
leads to simpler and more efficient code.
Also update getPreferredFilterForYUV function to return existing
filter value when preferLinearFilterForYUV feature is disabled.
Bug: angleproject:7382
Bug: angleproject:7392
Tests: Texture2DTestES3YUV.TexStorage2DYuvFilterModes*
Tests: ImageTestES3.SourceYUVAHBTargetExternalYUVSampleLinearFiltering/ES3_Vulkan
Change-Id: I550ef8feede1dc6c3a0d8e32f790113e90ef7a4b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3739582
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
916a35dd
|
2022-06-28T14:40:53
|
|
Merge getTempPath and CreateTemporaryFile
Also includes moving these two (and some helpers) to
common/system_utils.h
Bug: angleproject:5095
Change-Id: I7d2fcbd27a67dc13215265ac5b5e8391b15a980b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3733519
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Eddie Hatfield <eddiehatfield@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
39e88e6e
|
2022-06-29T13:48:14
|
|
Handle OOM in SwapChain11::getRenderTargetShaderResource
SwapChain11::getRenderTargetShaderResource has a code path where it
allocates a new texture if the current one has insufficient flags.
When this happens, the return value of the texture allocation is not
checked, leading to a nullptr crash.
Since texture allocation can fail in the case of OOM, we need to
handle the failure and propogate the error to callers.
Bug: angleproject:7442
Change-Id: I686d84ace669c461e8f7ef66bb0e6c4466f1c5ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3736687
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
007a4f06
|
2022-04-22T11:07:05
|
|
Vulkan: Wayland resize callback
Handle client resize requests and resize the swapchain accordingly after
next buffer swap.
Bug: angleproject:6902
Change-Id: I8bd6b0d4efac041606f15eccb6befa28594905b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3608089
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jeff Vigil <j.vigil@samsung.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9070e279
|
2022-06-30T09:35:59
|
|
Vulkan: Handle platforms that have imprecise float division issues
Even when the dividend and divisor have the same value
some platforms do not return 1.0f. We need to emit sepcial
division code on such platforms.
Bug: angleproject:3586
Tests: KHR-GLES31.core.blend_equation_advanced.blend*HSL*
Change-Id: Ibb81f57c959ae2c8edb6d361bf6241c019dfb988
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3738439
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
44d8bf76
|
2022-03-16T14:38:37
|
|
Vulkan: Support EGL_EXT_platform_wayland
Improve GetPlatformDisplay by supporting EGL_PLATFORM_WAYLAND_EXT.
Bug: angleproject:6902
Change-Id: Ia4c342097f47b7c41778ac02517451f51a94d8be
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3528758
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0c46c2d9
|
2022-05-19T16:16:54
|
|
Vulkan: Support DRM_FORMAT_MOD_LINEAR
Fix a bug while checking for dmabuf image image format support. The
value 0 is used for DRM_FORMAT_MOD_LINEAR, which is perfectly valid.
DRM_FORMAT_MOD_INVALID could be used instead for bail out.
Bug: angleproject:7065
Change-Id: If8eb366873b8f0fe2fd84de745a55171036093d4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645124
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
723cc880
|
2022-06-10T17:55:54
|
|
Reland "Reland "Vulkan: Destroy DescriptorSet cache when it becomes invalid""
This is a reland of commit 551a26aeedbfd971d6199c8eddb433a4f4ff871c
Original change's description:
> Reland "Vulkan: Destroy DescriptorSet cache when it becomes invalid"
>
> This is a reland of commit 0779ccbcd427dcb00e53afa6385fb4e8e2377993 with
> the fix for angleproject:7466. When DescriptorPoolhelper gets
> release/destroyed, we ensure all sharedCacheKeys are destroyed.
>
> Original change's description:
> > Vulkan: Destroy DescriptorSet cache when it becomes invalid
> >
> > When a new texture descriptorSet is allocated, we store one reference of
> > the cache key in ProgramExecutableVk and all TextureVks that it
> > associated with. When any of the TextureVk is destroyed or its view
> > destroyed, we immediately erase the descriptorSet from the cache and
> > track GPU progress and free the descriptorSet when it's GPU completed.
> > That way we delete the dead descriptorSet that will for sure never been
> > reused ASAP so that its space is avialable for reuse.
> >
> > Bug: b/235523746
> > Change-Id: Ib1b9662a254eea5a3f410dc6d5d89fca6727a647
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3700226
> > Reviewed-by: Lingfeng Yang <lfy@google.com>
> > Commit-Queue: Charlie Lao <cclao@google.com>
> > Reviewed-by: Ian Elliott <ianelliott@google.com>
> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
>
> Bug: b/235523746
> Bug: angleproject:7466
> Change-Id: I4413bec27ea0ca830010e2ca15036c2e667141c0
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3726964
> Reviewed-by: Ian Elliott <ianelliott@google.com>
> Commit-Queue: Charlie Lao <cclao@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: b/235523746
Bug: angleproject:7466
Change-Id: I6b88b884841c5dbc625ee7e0c52c45af09dec199
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3741027
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
7cb0622c
|
2022-06-30T00:00:00
|
|
BlitGL: Fix LUMAWorkaround for half-float copies
Use desktop HALF_FLOAT enum when running on desktop OpenGL.
Bug: angleproject:5038
Change-Id: I829f28ca51caa1f98b653d1a456ed775f8d362cb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3738261
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
defd99dc
|
2022-06-30T16:18:30
|
|
Update MSRTSS vulkan struct to final version
The public version of VK_EXT_multisampled_render_to_single_sampled
released in the 1.3.219 header does not include resolve modes in the
VkMultisampledRenderToSingleSampledInfoEXT struct. Remove them to
unblock the Chromium auto-roller.
Bug: None
Change-Id: I9d185a486227edfd3276ccb0df7063ca5101797b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3739583
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
4b745c2b
|
2022-07-01T01:25:36
|
|
Revert "Reland "Vulkan: Destroy DescriptorSet cache when it becomes invalid""
This reverts commit 551a26aeedbfd971d6199c8eddb433a4f4ff871c.
Reason for revert: Blink test failures at: https://ci.chromium.org/ui/p/chromium/builders/ci/WebKit%20Linux%20MSAN/15546/overview
Original change's description:
> Reland "Vulkan: Destroy DescriptorSet cache when it becomes invalid"
>
> This is a reland of commit 0779ccbcd427dcb00e53afa6385fb4e8e2377993 with
> the fix for angleproject:7466. When DescriptorPoolhelper gets
> release/destroyed, we ensure all sharedCacheKeys are destroyed.
>
> Original change's description:
> > Vulkan: Destroy DescriptorSet cache when it becomes invalid
> >
> > When a new texture descriptorSet is allocated, we store one reference of
> > the cache key in ProgramExecutableVk and all TextureVks that it
> > associated with. When any of the TextureVk is destroyed or its view
> > destroyed, we immediately erase the descriptorSet from the cache and
> > track GPU progress and free the descriptorSet when it's GPU completed.
> > That way we delete the dead descriptorSet that will for sure never been
> > reused ASAP so that its space is avialable for reuse.
> >
> > Bug: b/235523746
> > Change-Id: Ib1b9662a254eea5a3f410dc6d5d89fca6727a647
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3700226
> > Reviewed-by: Lingfeng Yang <lfy@google.com>
> > Commit-Queue: Charlie Lao <cclao@google.com>
> > Reviewed-by: Ian Elliott <ianelliott@google.com>
> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
>
> Bug: b/235523746
> Bug: angleproject:7466
> Change-Id: I4413bec27ea0ca830010e2ca15036c2e667141c0
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3726964
> Reviewed-by: Ian Elliott <ianelliott@google.com>
> Commit-Queue: Charlie Lao <cclao@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: b/235523746
Bug: angleproject:7466
Change-Id: Icdde2752c462b7ebbb51d46fd35ce749b5caf377
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3739585
Reviewed-by: Ian Elliott <ianelliott@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
6cd08bc2
|
2022-06-28T22:04:07
|
|
Vulkan: Don't optimize away flush after clear for single buffer
Bug: b/237449314
Change-Id: I04421398e2e68541d4713c7e8b80715be68672b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3733808
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
|
|
90edbd94
|
2022-06-30T11:49:33
|
|
Metal: Support GL_ANGLE_provoking_vertex
This allows some users to get improved performance while using flat
attributes by avoiding index buffer rewrites.
Bug: chromium:1340620
Change-Id: Ic55dec27e51d8929d6781758104632defc6861c3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3738260
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Auto-Submit: Geoff Lang <geofflang@chromium.org>
|
|
1e96beb9
|
2022-06-29T15:18:35
|
|
Suppress the new BestPractice VVL Error
Suppress the new best practice VVL Error
vkCmdBeginRenderPass-ClearValueWithoutLoadOpClear
to unblock the vulken-deps roller. A potential fix
is work in progress.
Bug: angleproject:7470
Bug: b/237542876
Change-Id: Iaea0cef58984acae79210e72b75be527d98e8286
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3736698
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
551a26ae
|
2022-06-10T17:55:54
|
|
Reland "Vulkan: Destroy DescriptorSet cache when it becomes invalid"
This is a reland of commit 0779ccbcd427dcb00e53afa6385fb4e8e2377993 with
the fix for angleproject:7466. When DescriptorPoolhelper gets
release/destroyed, we ensure all sharedCacheKeys are destroyed.
Original change's description:
> Vulkan: Destroy DescriptorSet cache when it becomes invalid
>
> When a new texture descriptorSet is allocated, we store one reference of
> the cache key in ProgramExecutableVk and all TextureVks that it
> associated with. When any of the TextureVk is destroyed or its view
> destroyed, we immediately erase the descriptorSet from the cache and
> track GPU progress and free the descriptorSet when it's GPU completed.
> That way we delete the dead descriptorSet that will for sure never been
> reused ASAP so that its space is avialable for reuse.
>
> Bug: b/235523746
> Change-Id: Ib1b9662a254eea5a3f410dc6d5d89fca6727a647
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3700226
> Reviewed-by: Lingfeng Yang <lfy@google.com>
> Commit-Queue: Charlie Lao <cclao@google.com>
> Reviewed-by: Ian Elliott <ianelliott@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: b/235523746
Bug: angleproject:7466
Change-Id: I4413bec27ea0ca830010e2ca15036c2e667141c0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3726964
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
785353fd
|
2022-05-24T12:40:16
|
|
Support Desktop OpenGL context creation in end2end tests
Validation of Desktop GL versions and profile masks is unimplemented.
Bug: angleproject:7360
Change-Id: Ifae94215b6aada895c2b02318a1d05c9515e9b96
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3664916
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
45def3d4
|
2022-06-15T13:49:08
|
|
Remove non-negative offsets restriction in D3D extension
The EGL_ANGLE_d3d_texture_client_buffer extension currently
fails if either EGL_TEXTURE_OFFSET_[X|Y]_ANGLE offsets are
negative. This restriction is unnecessary, as D3D allows
for negative offsets.
Bug: angleproject:7446
Change-Id: I2e258a3a558eae51794f6533e28a0c06532f156d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3715956
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
4298a54e
|
2022-06-23T23:17:12
|
|
Clean up OWNERS files
Bug: None
Change-Id: I93726b8e5226d4c3b40c7d3dc865cb7dbe7c17fe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3721567
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
fd9301c1
|
2022-06-17T12:25:10
|
|
Capture/Replay: Capture egl surface related calls
Creation from a pbuffer and generalized destruction are
implemented, as well as binding and releasing a TexImage
and making the context current with explicit draw and
read surfaces given.
Bug: angleproject:4964
Bug: angleproject:6180
Bug: angleproject:6512
Change-Id: Id8be6486125d45341905f3aabdbae4366cd568b7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3711741
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
d50b2276
|
2022-06-21T12:05:28
|
|
Reland "Vulkan: Support EGL_ANDROID_front_buffer_auto_refresh"
This is a reland of commit ef60d38ecf12d6663e9ecccacbff9803b1fba7c6
There are no fixes as the revert itself was a speculative one
Original change's description:
> Vulkan: Support EGL_ANDROID_front_buffer_auto_refresh
>
> Cache value of EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID attribute
> and set swapchain present mode accordingly when recreating
> swapchain in single buffer mode.
>
> Bug: angleproject:7224
> Tests: EGLAndroidAutoRefreshTest.Basic*
> Change-Id: I2dbb92ce5c3fa047e0b02ea9011725311f346027
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3707570
> Reviewed-by: Ian Elliott <ianelliott@google.com>
> Commit-Queue: mohan maiya <m.maiya@samsung.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Bug: angleproject:7224
Bug: angleproject:7465
Change-Id: Ia876ea17169c0f1b3afdb7753570e0b1aca985f5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3733521
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ba737f47
|
2022-06-27T11:04:21
|
|
Vulkan: Don't sync pipeline cache if warm up is effective
If the pipeline cache is being warmed up at link time, the blobs
corresponding to each program is individually retrieved and stored in
the blob cache. This should be enabled only on platforms where draw
time pipeline creation hits the cache due to said warm up. As a result,
there's no need to store the aggregate cache (the one owned by
RendererVk) in the blob cache too.
Bug: angleproject:5881
Bug: b/215230983
Change-Id: I2da5de835e6667b0b2d5859e6804791671888947
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3727227
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
bb373176
|
2022-06-24T14:19:05
|
|
Roll vulkan-deps from 11ad77222bfe to 137b026580e5 (1 revision)
Suppress new SYNC-HAZARD-READ_AFTER_WRITE.
https://chromium.googlesource.com/vulkan-deps.git/+log/11ad77222bfe..137b026580e5
Changed dependencies:
* vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/620b378993..a0e0e77a22
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 jonahr@google.com,ynovikov@google.com on the revert to ensure that a human
is aware of the problem.
To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://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:7456
Tbr: jonahr@google.com,ynovikov@google.com
Change-Id: I2ef42cccfabd575cd59c90e6f558b6a46202e028
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3723547
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
1dc3385a
|
2022-06-27T18:13:33
|
|
libstdc++: move FramebufferHelper to cache utils
vk_helper.h includes vk_cache_utils.h. FramebufferHelper was declared
in vk_helper.h. And FramebufferCache, in vk_cache_utils.h, requires
FramebufferHelper for its payload hashmap.
This was solved with a forward declaration. But, with std::pair
definition in libstdc++ this is not enough.
Bug: chromium:957519
Change-Id: I32e3e247c3c8bef8b52806aa2601e4012e6aa79e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3727671
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3a799ba5
|
2022-05-16T17:26:38
|
|
Fix ValidateES3TexImageParametersBase for glTexImage*D
From the OpenGL ES 3.2 spec: GL_INVALID_VALUE error is generated
if internalformat is not one of the valid formats in tables 8.2 or 8.3.
glTexImage*D should not accept compressed format.
Add check in validation to account for this.
Bug: angleproject:6441
Tests: KHR-GLES31.core.compressed_format.api.invalid_teximage_with_compressed_format
Change-Id: I7152aefa433f42dcc40cf693538639df26c31341
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3648587
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ce4e11d3
|
2022-06-17T12:21:01
|
|
libANGLE: Add a unique ID to the Surface
This is needed when capturing Pbuffer calls.
Bug: angleproject:4964
Change-Id: Id9f35683bf887f08f916de69bbab8c414e5e8872
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3711740
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2a5193f6
|
2022-06-22T17:46:15
|
|
Textures: Allow compressed texture from PBO
Apex Legends is using a pixel unpack buffer to populate a
compressed 3D texture. We had an explicit check in validation
that prevented it, possibly due to emulated formats.
Rather than prevent it altogether, check whether the format
is emulated and proceed if not.
Also add a test that exposes the problem.
Test: PBOCompressedTexture3DTest
Bug: b/236478448
Bug: angleproject:7464
Change-Id: I90105a396bf0a465c62d67910aad2819ba7f8831
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3719161
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
1ae9756e
|
2022-06-22T17:43:15
|
|
Textures: Centralize texture format emulation check
Refactor in order to use the check in multiple places.
Bug: b/236478448
Change-Id: I6df2e0d63c60fa3e8b2d65185fce164be0e7d961
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3719160
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
f8690429
|
2022-06-27T13:50:44
|
|
Revert "Vulkan: Destroy DescriptorSet cache when it becomes invalid"
This reverts commit 0779ccbcd427dcb00e53afa6385fb4e8e2377993.
Reason for revert: crashes in blink_web_tests on linux-rel
https://ci.chromium.org/ui/p/chromium/builders/try/linux-rel/1051045/overview
Original change's description:
> Vulkan: Destroy DescriptorSet cache when it becomes invalid
>
> When a new texture descriptorSet is allocated, we store one reference of
> the cache key in ProgramExecutableVk and all TextureVks that it
> associated with. When any of the TextureVk is destroyed or its view
> destroyed, we immediately erase the descriptorSet from the cache and
> track GPU progress and free the descriptorSet when it's GPU completed.
> That way we delete the dead descriptorSet that will for sure never been
> reused ASAP so that its space is avialable for reuse.
>
> Bug: b/235523746
> Change-Id: Ib1b9662a254eea5a3f410dc6d5d89fca6727a647
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3700226
> Reviewed-by: Lingfeng Yang <lfy@google.com>
> Commit-Queue: Charlie Lao <cclao@google.com>
> Reviewed-by: Ian Elliott <ianelliott@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: b/235523746, angleproject:7466
Change-Id: I7e5067de2f2add08af1f9804cc2e952238b2e942
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3726097
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
46ddcc44
|
2022-06-27T14:53:31
|
|
Revert "Vulkan: Support EGL_ANDROID_front_buffer_auto_refresh"
This reverts commit ef60d38ecf12d6663e9ecccacbff9803b1fba7c6.
Reason for revert: crashes in end2end tests on Win Intel Vulkan
Original change's description:
> Vulkan: Support EGL_ANDROID_front_buffer_auto_refresh
>
> Cache value of EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID attribute
> and set swapchain present mode accordingly when recreating
> swapchain in single buffer mode.
>
> Bug: angleproject:7224
> Tests: EGLAndroidAutoRefreshTest.Basic*
> Change-Id: I2dbb92ce5c3fa047e0b02ea9011725311f346027
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3707570
> Reviewed-by: Ian Elliott <ianelliott@google.com>
> Commit-Queue: mohan maiya <m.maiya@samsung.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Bug: angleproject:7224, angleproject:7465
Change-Id: Ia48a31124c8e0a3e4bcd4b7dc6f62b0782b42d97
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3726099
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
10f065e2
|
2022-06-23T13:23:09
|
|
Vulkan: support QCOM_shading_rate on Intel graphics
When querying fragment shading rates, we were limiting the result array
to 6 elements, which was not enough on Intel's Windows graphics drivers.
Those drivers report more than 6 fragment shading rates, including
a bunch of strange ones like 4x1 and 1x4.
Because we limited the list to 6 elements, and the Vulkan specification
requires that the rates be listed in order from largest width to
smallest, the feature check was missing the smaller shading rates
(including 1x2 and 1x1). This caused the supportsFragmentShadingRate
feature to be disabled.
Bug: angleproject:7461
Bug: angleproject:7172
Change-Id: I1b9a2924f93fdb803c20cfa388749754691b6e92
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3720732
Auto-Submit: Steven Noonan <steven@valvesoftware.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
|
|
de109f9e
|
2022-06-23T11:50:43
|
|
Metal: Maintain BufferPool freelist constraint
BufferPool needs to maintain the requirement of the free list that
buffers in use by the GPU are stored in FIFO order and that after the
first in-use buffer, the rest of the free list is in-use as well.
Bug: angleproject:7453
Change-Id: Ibae45fb0212030217d03fe4623c412d693674fd1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3717663
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
707323c1
|
2022-06-21T18:53:05
|
|
Miscellaneous C++17 refactoring
Bug: angleproject:6747
Change-Id: I792ba74e03145ff6c3cc97d4bff6327ab275a2c7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3719001
Commit-Queue: Eddie Hatfield <eddiehatfield@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
ef60d38e
|
2022-06-21T12:05:28
|
|
Vulkan: Support EGL_ANDROID_front_buffer_auto_refresh
Cache value of EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID attribute
and set swapchain present mode accordingly when recreating
swapchain in single buffer mode.
Bug: angleproject:7224
Tests: EGLAndroidAutoRefreshTest.Basic*
Change-Id: I2dbb92ce5c3fa047e0b02ea9011725311f346027
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3707570
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
|
|
4c5e9d47
|
2022-06-21T17:12:56
|
|
Do not defer clear if FBO attachment is AHB image
When application uses Android Hardware Buffer (AHB)
image as the Framebuffer Object (FBO) attachment,
it is possible the app doesn't call glReadPixels
to fetch the FBO color. In this case deferred clears
will not be flushed when the app reads the FBO pixel
color, and the app will read the old FBO color.
This CL fixes the issue by flushing the glClear calls
immediately when any of the FBO color attachments is
AHB image.
Bug: b/236394768
Bug: angleproject:7458
Change-Id: I9151ab57750007c4ac18af39c3fa4abe752ede5e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3715851
Reviewed-by: Lingfeng Yang <lfy@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
e50351cb
|
2022-06-10T22:28:58
|
|
Vulkan: Don't close render pass on framebuffer fetch
For applications that use framebuffer fetch in the same RP as
non-fetch programs, we can save some extra RenderPasses by always
creating our RP objects with input attachments enabled. This works
almost identically except for needing to use the images in a
"GENERAL" layout instead of "COLOR_ATTACHMENT_OPTIMAL". According
to partners it is possible to achieve performance parity even with
GENERAL layout.
To remove any potential negative impacts of using the GENERAL layout,
the context enters this always-framebuffer-fetch mode only and as soon
as a framebuffer fetch program is created. Applications that don't use
framebuffer fetch are thus unaffected.
This eliminates 20 render passes in the Genshin Impact trace (out of
about 58). On a Pixel 6 the resulting benchmark score speeds up by
~25%. For Real Racing 3, the speed up is ~30%.
Based on change by jmadill@chromium.org
Bug: angleproject:7375
Change-Id: Ib6c73e95d06229f8545d502b388ee2a55a582323
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3697308
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
91976352
|
2022-06-21T15:41:02
|
|
Use C++17 attributes instead of custom macros
Bug: angleproject:6747
Change-Id: Iad6c7cd8a18d028e01da49b647c5d01af11e0522
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3718999
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0779ccbc
|
2022-06-10T17:55:54
|
|
Vulkan: Destroy DescriptorSet cache when it becomes invalid
When a new texture descriptorSet is allocated, we store one reference of
the cache key in ProgramExecutableVk and all TextureVks that it
associated with. When any of the TextureVk is destroyed or its view
destroyed, we immediately erase the descriptorSet from the cache and
track GPU progress and free the descriptorSet when it's GPU completed.
That way we delete the dead descriptorSet that will for sure never been
reused ASAP so that its space is avialable for reuse.
Bug: b/235523746
Change-Id: Ib1b9662a254eea5a3f410dc6d5d89fca6727a647
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3700226
Reviewed-by: Lingfeng Yang <lfy@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
669d7b75
|
2022-05-25T15:14:35
|
|
Fix validation checks in glCompressedTexSubImage3D
- Add missing ASTC formats to the checklist in
CompressedSubTextureFormatRequiresExactSize.
- Add missing validation checks in ValidateES3TexImageParametersBase
relating to internal formats
Test: KHR-GLES32.core.compressed_format.api.invalid_format_array
Test: KHR-GLES32.core.compressed_format.api.invalid_offset_or_size
Test: *ETC2RGB8_CubeMapValidation*
Test: *CompressedTexture*Test*
Bug: angleproject:6441
Change-Id: Icc80d78602ea997be11606587b43d29e72e48f3a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3670768
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Brandon Schade <b.schade@samsung.com>
|
|
338c6539
|
2022-06-22T10:22:22
|
|
Set pixel unpack state in GL backend's CompressedTexImage3D.
A workaround added earlier wasn't applying to the GL backend because
of this missing call.
Covered by existing angle_end2end_test, but only reproduces on ASAN
build. A Chromium-side test is being added separately.
Bug: chromium:1335688
Change-Id: Ia33648054dfa647159ecfc62ca53415de04f625d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3715717
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|