|
044612ec
|
2023-02-27T14:59:29
|
|
Vulkan: Remove iterator from FixedQueue class
Previously there was code that still walking each element of FixedQueue,
that was mostly removed in previous CLs. The only remaining usage is for
assertion which the value is minimal. This CL removes the iterator from
FixedQueue so that it behaves just like queue, thus avoiding potential
risk of misuse.
Bug: b/255411748
Change-Id: I4c0debf5b6c8b603e384c681f1a123c2ee06dcbb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4294695
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
31bd0c58
|
2023-03-01T10:52:30
|
|
Vulkan: Do immediate cleanup after finishOneCommandBatch
This is follow up for crrev.com/c/4244823. This adds postSubmitCheck in
RendererVk::queueSubmitOneOff(). It adds immediate clean up in
finishOneCommandBatch and renamed to finishOneCommandBatchAndCleanup.
Bug: b/255411748
Change-Id: I1d3dbd7dfe9642f4bc77b17552281a4c7b6c2d69
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4300098
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
62e58704
|
2023-03-01T14:46:54
|
|
Vulkan: Attempt to fix the tsan complain regarding volk.
In certain cases, I am seeing volk function pointer been set while it is
still being accessed. See
https://chromium-swarm.appspot.com/task?id=60b37aa811f8b410. My guess it
is related to some tests configs that end up with RendererVk gets
initialized while other instance is still running. This is attempt to
fix the tsan complain by only load volk function pointer if needed.
Bug: angleproject:8055
Change-Id: I5dcc62876bf93a250080de1f8e1b97d2b7570ab8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4300072
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
18a1022e
|
2023-03-01T13:55:41
|
|
Manual roll VK-GL-CTS from c0a0038a1bed to 04e5d38379bd (12 revisions)
Manual roll requested by abdolrashidi@google.com
* Skipped the following test from KHR-GLES3*
* shaders.negative.non_precision_qualifiers_in_struct_members
https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/c0a0038a1bed..04e5d38379bd
2023-02-24 anna.lesniewska@intel.com Add depth tests running on local
heap with host visible memtype
2023-02-24 piotr.byszewski@mobica.com Merge vk-gl-cts/vulkansc-cts-1.0.1
into vk-gl-cts/main
2023-02-24 piotr.byszewski@mobica.com Merge vk-gl-cts/opengl-cts-4.6.3
into vk-gl-cts/main
2023-02-24 rgarcia@igalia.com Add GLES_ALLOW_DIRECT_LINK CMake option
2023-02-24 piotr.byszewski@mobica.com Test textureSize for oob lod
2023-02-24 syoussefi@google.com Tests for surface/swapchain maintenance1
2023-02-24 michal.jakubek@mobica.com Add coverage of
vkGetImageMemoryRequirements2 for multiplanar formats
2023-02-24 Andrew.Fobel@amd.com Fix BufferView access tests for scaled
types
2023-02-24 piotr.byszewski@mobica.com Merge vk-gl-cts/vulkan-cts-1.3.5
into vk-gl-cts/main
2023-02-22 piotr.byszewski@mobica.com Merge
vk-gl-cts/dev/VK_EXT_pipeline_library_group_handles into vk-gl-cts/main
2023-02-14 ziga@lunarg.com Remove invalid new linked pipeline test with
null layout
2023-02-13 piotr.byszewski@mobica.com Merge vk-gl-cts/opengl-cts-4.6.3
into vk-gl-cts/main
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll
Please CC abdolrashidi@google.com,angle-team@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:8045
Tbr: abdolrashidi@google.com
Change-Id: Ie7e145113c58ede9ba718499b54b0cb32b36f268
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4301430
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
a2efea13
|
2023-03-01T00:00:00
|
|
Add ANGLE_stencil_texturing
This extension allows texturing of the stencil
component of a packed depth stencil texture on
OpenGL ES 3.0 contexts.
Trivially exposed on backends that support
OpenGL ES 3.1, which requires this feature.
Adjusted the tests to check for the new
extension string instead of the context
version.
Bug: angleproject:8051
Change-Id: I4d833acbc72e7374bde91d4c861598a0fdaf9b90
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4295312
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
35c44b40
|
2023-02-28T14:47:38
|
|
PoolAlloc: unpoison memory before potentially re-using it
std::vector uses special ASan annotations to catch accesses to memory
between v.data()+v.size() and v.capacity() -- which are valid memory
locations but outside the container.
A recent libc++ change [1] made these annotations work with custom
allocators as well. This caused a problem when PoolAlloc re-used memory
that previously held a std::vector with such annotations without having
run the vector's destructor.
To fix it, this change makes PoolAlloc unpoison memory when it's
returned to the allocator via the pop() method.
[1] https://reviews.llvm.org/D136765
Bug: chromium:1419798
Change-Id: I919dd7d7734b36bf770f25e096a94669703d75d2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4296797
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
5fd68d59
|
2023-03-01T14:31:15
|
|
Skip FramebufferTest_ES3.RenderSharedExponent on iOS Metal
Bug: angleproject:8043
Change-Id: Ib7e28ac1a2d658056e960272783ef322e1f009d8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4294902
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
eb0475c0
|
2023-02-23T22:59:14
|
|
Vulkan: Cleanup RendererVk::allocateQueueSerialIndex method.
Currently this method makes 2 distinct tasks:
- allocates QueueSerialIndex.
- gets LastSubmittedSerial.
In case of "queueSubmitOneOff()" (and future uses) "LastSubmittedSerial"
is not necessary. This produces extra work and makes code more complex.
This CL makes two separate functions:
angle::Result allocateQueueSerialIndex(SerialIndex *indexOut);
angle::Result allocateQueueSerialIndex(QueueSerial *queueSerialOut);
The "queueSubmitOneOff()" was simplified. Additionally, fixed possible
SerialIndex leak if method fails before "releaseQueueSerialIndex()".
Bug: b/267806287
Change-Id: I1dfb91b9f409aa17e8f1de222f7b01345109e6d3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4289749
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
1ca860ac
|
2023-02-22T00:00:00
|
|
Add extension stubs
* GL_EXT_conservative_depth
* GL_EXT_depth_clamp
* GL_EXT_render_snorm
Bug: angleproject:8046
Bug: angleproject:8047
Bug: angleproject:8048
Change-Id: I7deb4f25f76008103c2754747db2d90be880b6ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4296803
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
190a3214
|
2023-02-20T17:42:02
|
|
Tests: Add Arknights trace
Test: angle_trace_tests --gtest_filter=TraceTest.arknights
Bug: b/270523023
Change-Id: I147927e5ada7470a91d8aee540cf217fcb1e4ec1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4294655
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Mike Schuchardt <mikes@lunarg.com>
|
|
e2cf65ed
|
2023-02-22T00:00:00
|
|
Implement QCOM_render_shared_exponent
Fixed: angleproject:8043
Change-Id: Ia76b8e4b60a640180bae77cba523142749051398
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4289140
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
e180ed5e
|
2023-02-27T14:40:10
|
|
Vulkan: Apply postSubmitCheck to async submission code path
postSubmitCheck is doing CPU throttling if we accumulate excessive
amount of garbage. There is no good reason this should not apply in
async submission. This CL moves the call so that it applies to both
cases.
Bug: b/255411748
Change-Id: Ib36344dfe9e6f1c0120734302c0d4083073e004c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4295366
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
e88b061c
|
2023-02-17T13:36:24
|
|
Vulkan: Follow up fix and enable asyncCommandBufferReset flag
This CL makes any follow up fix for crrev.com/c/4244823 and enables
asyncCommandBufferReset feature flag. It changes
CommandQueue::checkCompletedCommands only do the check and update
mLastCompletedSerials. It makes async command processor thread always
call checkCompletedCommands if mNeedCommandsAndGarbageCleanup is true so
that we can clean up more garbages. This CL also makes garbage clean up
always done in async thread even if asyncCommandBufferReset is disabled.
Bug: b/255411748
Change-Id: I1d63aa9f1f565d81780a39c29b919da3dd5a68be
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4264175
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Charlie Lao <cclao@google.com>
|
|
33df630f
|
2023-02-28T11:16:08
|
|
MSRTSS uses AppendToPNextChain due to non-NULL pNext.
As discussed in:
https://chromium-review.googlesource.com/c/angle/angle/+/4116675/comment/3097cb31_16922d39/
Not currently causing issues as it requires very recent drivers but I
saw the `ASSERT(ptr->pNext == nullptr);` in AddToPNextChain fail
somewhere.
Bug: angleproject:7899
Change-Id: Id46162a5aacd3d8599382ce1dfca25aca5e730e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4296801
Auto-Submit: Roman Lavrov <romanl@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
6d282d62
|
2023-02-08T16:51:07
|
|
Vulkan: Move retireFinishedCommands/garbageCleanup to worker thread
This CL separate out the logic of mLastCompletedQueueSerial update and
retireFinishedCommands and garbage clean up into different functions. At
submission, previously we are always check fence and update
mLastCompletedQueueSerials and calling reset on finished commands and do
garbage clean up. With this CL, we only do the fence check and update
mLastCompletedQueueSerials. Then it request worker thread to do the
command buffer reset and garbage cleanup. We uses the CommandProcessor's
thread for the reset and cleanup, since async submission path needs to
handle this clean up anyway.
This CL also added a new feature flag asyncCommandBufferReset and it is
disabled right now. This will be enabled in the follow up CL.
Bug: b/255411748
Change-Id: I6da558f8d4c962eb038e2378ccc76c464101cde2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4244823
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
dd6d8302
|
2023-02-28T14:24:43
|
|
Suppress VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912
New VUID added in
https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/5277
Bug: chromium:1420265
Change-Id: I139815fdfd90439c5a2ea79e467a60ba54ecbc0e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4296799
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
a1f9b9aa
|
2023-02-20T00:00:00
|
|
Implement more texture border color adjustments
D3D11:
* Exposed EXT_texture_border_clamp extension string,
to ensure that the relevant CTS tests are running.
* Updated StateManager11::setSamplerState to adjust
the border color based on the texture format.
* Refactored ShaderConstants11::updateSamplerMetadata to
correctly adjust the border color for integer formats.
* Removed unused SamplerMetadata.internalFormatBits
D3D9:
* Updated Renderer9::setSamplerState to adjust the border
color value based on the current texture format.
* Added borderColorSrgb feature required for some drivers.
GL:
* Copy alpha value to green for A and LA legacy formats to
workaround driver bugs when lumaWorkaround is not used.
Tests:
* Added ES 2.0 tests for texture formats
that require border color adjustments.
Fixed: angleproject:7969
Change-Id: I3d36cce43e76e6d5069a51865152c2250ecbb017
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4291000
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
2c7447e2
|
2023-01-19T16:17:39
|
|
Always keep track of memory allocation counts
* Memory allocation counts are now tracked at all times, similar to
allocation sizes.
* Changed the per-heap allocation trackers from vectors to arrays of
atomic variables.
* Added asserts to the getter functions related to memory allocation.
* mMemoryAllocationMutex is now used for enabled debug layers only.
* Added memory type index in allocation and deallocation debug logs.
* Capitalized static functions regarding memory allocation in
RendererVk.cpp.
Bug: b/262029018
Bug: b/266466279
Change-Id: Idb740048f934f3d725240c78c978341697895f6c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4182550
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
6f7fec7b
|
2023-02-24T18:17:26
|
|
Convert all raw pointers in Renderer11 to ComPtr
In preparation for refactoring of device caps, found a couple of
memory leaks in error conditions due to incorrect COM lifetime
management.
Rather than wrestle with manual AddRef/Release during the
refactoring, decided to first convert all manual AddRef/Release
to angle::ComPtr.
Bug: angleproject:8041
Change-Id: I1211fcd0afd0c629793cebd3051b98fbece70a26
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4292695
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
1365f5b3
|
2022-09-09T17:19:26
|
|
Vulkan: Fix Swapchain Acquire Image Semaphore wait stage flags.
There is a screen tearing on G996B with single
"glClear(GL_COLOR_BUFFER_BIT)" no scissor in the frame.
Fixed by defining "kSwapchainAcquireImageWaitStageFlags" and
adding "VK_PIPELINE_STAGE_TRANSFER_BIT" stage flag.
Also added "VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT" stage, because first
use of the Swapchain Image after Acquire may be in the
"glBlitFramebuffer()" command.
This fix may slightly affect performance. In such case, a better fix
should be implemented (include only stages based on the actual first
use). However, this may be not trivial.
Additionally, "kSwapchainAcquireImageWaitStageFlags" is used as a source
stage mask in the "ImageLayout::Present" pipeline barrier. This is
needed in order to build a dependency chain from the Acquire Image
Semaphore to the layout transition's first synchronization scope, so
that layout transition happens after acquire semaphore is signaled.
Reference:
https://github.com/KhronosGroup/Vulkan-Docs/wiki/Synchronization-Examples#combined-graphicspresent-queue
https://vulkan-tutorial.com/Drawing_a_triangle/Drawing/Rendering_and_presentation
Alternative fix of both issues is to define:
kSwapchainAcquireImageWaitStageFlags = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT
This might potentially delay command buffer execution relative to the
Swapchain Acquire Image Semaphore signal operations, but will relax
the pipeline barrier.
Bug: angleproject:8030
Test: angle_end2end_tests --gtest_also_run_disabled_tests --gtest_filter=EGLSurfaceTest.DISABLED_RandomClearTearing*
Change-Id: I29f58862c4b369524b2555dd944e2fb67eebe956
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4271377
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
8875ba4e
|
2023-02-24T22:40:22
|
|
Rename WebSwapCGLLayer to ANGLESwapCGLLayer outside WebKit.
WebKit doesn't use gn or ninja, so these changes will not affect it.
Verified locally that this silences the warning in the bug.
Fixed: angleproject:7123
Change-Id: Iff28c0f5b9274543ee7724e023461d31c8ad4aa6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4292705
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ef6d1473
|
2023-02-24T08:27:33
|
|
Tests: Add Into the Dead 2 trace
Test: angle_trace_tests --gtest_filter="*into_the_dead_2*"
Bug: b/270605668
Change-Id: I80d1aa8058a8d970888725ca850ed934a100588b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4290021
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
5bc6bf32
|
2023-02-20T00:00:00
|
|
Include DXT1 sRGB in RGBDXT1TexturesSampleZeroAlpha
Bug: angleproject:3729
Change-Id: Id5404e4601a3165051ee4b249646b7ca000bedbe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4290988
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
13f246de
|
2023-02-20T17:43:57
|
|
Tests: Add Cookie Run Oven Break trace
Test: angle_trace_tests --gtest_filter=TraceTest.cookie_run_oven_break
Bug: b/270534812
Change-Id: I39109fc119cc82914e563b06cce912409a5c0434
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4289587
Commit-Queue: Mike Schuchardt <mikes@lunarg.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
8fef41a8
|
2023-02-23T18:44:02
|
|
vulkan: improve EtcToBc transcoding precision.
Bug: b/262352590
Change-Id: I6b127acdec28053423423f64ebc6e8561614f0ab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4290347
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
|
|
9f4ebedf
|
2023-02-22T14:51:35
|
|
Tests: Add TMNT: Shredder's Revenge trace
Test: angle_trace_tests --gtest_filter="*tmnt_shredders_revenge*"
Bug: b/270426257
Change-Id: I36598eafdc37c77418e052f1539901cd6bb6aae8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4284638
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
2ec90ada
|
2023-02-23T21:33:40
|
|
TraceTests: Update screenshot name for keyframe
Ensure we use the member variable screenshot instead
of global when naming the screenshot.
Test: into_the_dead_2 with keyframe 10
Bug: angleproject:8035
Bug: b/270426257
Bug: b/270605668
Change-Id: Ib5c5c1764005cd0b2fc4603ca11e10d19a50a152
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4288617
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
9566011b
|
2023-02-23T15:01:59
|
|
Add support for permissive pixel comparison
Adds support for running ANGLE pixel tests with a more permissive
inexact matching algorithm. This is done by passing in
--use-permissive-pixel-comparison=1 to the test runner.
This is intended to reduce the amount of manual triage work
required on CLs that are expected to have a larger amount of
differences, such as SwiftShader rolls.
On the bots, this will normally be disabled, but will be enabled
if "Use-Permissive-Angle-Pixel-Comparison: True" is present as
a CL footer.
This footer is not yet included automatically anywhere, so
there should be no functional change as a result of this CL yet.
Bug: angleproject:7985
Change-Id: Ie815fac42edb2198dd4d115fc50650504df136c0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4288612
Auto-Submit: Brian Sheedy <bsheedy@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
f8e56b0c
|
2023-02-23T16:29:52
|
|
Tests: Add SLAM DUNK from TV Animation trace
Test: angle_trace_tests --gtest_filter=TraceTest.slam_dunk_from_tv_animation
bug: b/270534814
Change-Id: I2062819c1f64c114ada23723188d8f090f57ab46
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4288749
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
d9dbc20e
|
2023-02-23T17:10:06
|
|
TraceTests: Add a screenshot frame member variable
Instead of modifying a global when detecting KeyFrames are
in use by a trace, update a new value tracked per trace.
Also consolidate the option handling for gRunToKeyFrame since
its needs align with gMaxStepsPerformed.
Test: Batching traces that include one with a keyframe
Bug: angleproject:8035
Bug: b/270426257
Change-Id: I2ed4215d9f310dddb317debf09921aa45c6822bf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4288616
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
7189e4cf
|
2023-02-23T11:03:40
|
|
vulkan: fix depth buffer renderpass loadOp issue.
when change the depth compare function, Renderpass need to
change the mAcess flag accordingly.
Bug: b/269929460
Change-Id: I83826c1b07c6d22600d6cd039e7d8bfd0b5b39c3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4284624
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
|
|
b0739436
|
2023-02-13T14:28:17
|
|
Traces: Add key frame support
Allow specifying a key frame in the trace JSON, i.e:
"KeyFrames": [ 20 ],
This allows our infra to use a frame other than 1 when
taking screenshots for quality comparison.
Adds new flag `--run-to-key-frame`, which will stop the
trace once key frame has been reached. If no key frame in
JSON, frame 1 will be used.
Note the name in JSON is plural, but we only support one
key frame for now. Multiple key frame support can come
in the future.
This CL also updates the code to allow ending traces
early with `--max-steps-performed` which has been broken
since http://crrev/c/4008998
It also removes `--one-frame-only` which is superseded by
`--run-to-key-frame`, and can be replicated using
`--max-steps-performed 1`.
Test: angle_trace_tests --gtest_filter="*tmnt_shredders_revenge*"
Bug: angleproject:8035
Bug: b/270426257
Change-Id: Ib02ef60d887ae5efb0288f5a9b8c2914dafc6efc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4284637
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
b42c2332
|
2023-02-20T00:00:00
|
|
Refine sRGB mipmap generation
Compute average of the decoded floating-point
values instead of the truncated 8-bit values.
Fixed: angleproject:8034
Change-Id: I1ad9c98ff6bbebe63912fb3339faa471c30f43be
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4279710
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
3a7904e1
|
2023-01-25T23:56:56
|
|
Vulkan: Use VMA suballocation for images
There is a maximum limit for device memory object allocation. On some
platforms, there can be an error regarding too many object allocations
when 4096 device memory handles have been allocated. Suballocation can
help mitigate this issue. In this CL, some images will be allocated
using VMA API calls, which use suballocation.
* Added a new feature (useVmaForImageSuballocation).
* Added VMA allocation for ImageHelper, which is used in initMemory().
* Suballocation is used for VMA image allocation.
* If enabled, mVmaAllocation will be initialized in the ImageHelper
object (instead of mDeviceMemory).
* It is currently used for all platforms.
* Minor change to the name of an arg in CreateBuffer() declaration.
* Added test to make sure we can allocate at least 4096 images on
supported platforms (8000 in the test).
* Skipped the test "NonZeroBaseEmulatedClear" when run on Linux/Intel
if this feature is enabled (due to output color mismatch).
* Skipped several tests for capture/replay on Windows.
Bug: b/218891184
Change-Id: Ibf80c9c8c485b301da7d23b5ba4bcbb1a8e3194f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4191202
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
48588a89
|
2023-02-17T11:03:56
|
|
Update the common cube map texture in MipmapTest
In MipmapTest, mTextureCube is defined so that one side is set to blue.
However, the other sides are not explicitly defined. This seems to be
causing capture/replay errors due to context mismatch after updating
the image memory allocation method to use VMA.
(CL: https://crrev.com/c/4191202)
* Added definition for the other sides of mTextureCube, now set to
white.
Bug: b/267811497
Change-Id: Icaca67ba6032e5156c9f4bbf3913459d863c2f1d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4264172
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
cba2a0d5
|
2023-02-16T19:48:30
|
|
Keep MemoryBarrier macro defined
Macro was originally undefined in crrev.com/c/361291.
Undefining it breaks UWP build with newer compilers.
Keeping the macro defined doesn't affect libGLESv2 exported symbols,
so it looks like there is no need to undefine it.
Bug: chromium:1380553
Change-Id: I6476aa015949e5f2639160fac80db39da710bfb7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4262071
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
177936ac
|
2023-02-18T14:51:29
|
|
Metal: disable 32-bit float filtering on iOS
Update Metal format tables according to the Metal Format Tables.
Disables OES_texture_float_linear on current iOS hardware, since
R*32Float filtering is not available.
Fixed: angleproject:8028
Change-Id: I29603d308f1992feb62ee997b0f69f8e6d0d385e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4266915
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
31684d8c
|
2023-02-18T11:11:57
|
|
Vulkan: Lazily create swapchain image views
In compliance with
VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT.
Bug: angleproject:7878
Big: b/269606195
Change-Id: I917c6888b325f768dbc6384828a6e462792d3c0b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4267510
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
|
|
7d8e2778
|
2023-02-13T10:04:08
|
|
Vulkan: Remove usage of VK_EXT_external_memory_host
This extension is no longer used by ANGLE
Bug: angleproject:7959
Change-Id: If6c0e89e63b8b06fd03f7b6a0b083a18bada34fe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4244599
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1633a1bb
|
2023-02-17T15:16:06
|
|
Fix EGLImage importing problem
Chrome DrDC uses EGLImage to share textures between contexts.
Sometimes, chrome will create texture with a GLES 3.x context,
and then create EGLImage from it, and then import EGLImage to
a GLES 2.0 (WebGL 1.0) context. In this case, ANGLE may report
errors if the original texture is created with formats which
are not supported with GLES 2.0, but actually the texture can
be sampled and rendered by ANGLE. Fix the problem by adding
mIsTexturable & mIsRenderable in Image, and calculating them
against the original context which owns the texture.
Bug: chromium:1417294
Change-Id: I4c304422f0d0fc01a48c942d05758f8c2ce438e4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4265252
Commit-Queue: Peng Huang <penghuang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
9a4a9f3f
|
2023-02-16T17:33:52
|
|
Revert "Fix dEQP-EGL.functional.mutable_render_buffer#basic"
This PARTIALLY reverts commit:
629da7fc9cd4886dd87f07a069c259551e892936.
Fix dEQP-EGL.functional.mutable_render_buffer#basic
From the reverted CL:
This CL also addresses similar issue in some other
rx::vk::ImageLayout items in kImageMemoryBarrierData.
These were unnecessary changes that may harm performance:
- adding BOTTOM_OF_PIPE for source stage when transition from
LAYOUT_UNDEFINED may add unnecessary GPU bubble.
- Transition to LAYOUT_PRESENT_SRC_KHR does not require barrier.
All writes will be automatically made visible for Presentation Engine.
Execution dependency satisfied by VkSemaphore.
- Transition from LAYOUT_PRESENT_SRC_KHR is RAR/WAR. Execution
dependency satisfied by VkSemaphore.
- Some layouts may not be a destination so BOTTOM_OF_PIPE is OK.
Bug: b/264420030
Change-Id: I8b57b1636e1f5cf5b647003adf1502bd3286c5a3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4262067
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
dd1cf777
|
2023-02-16T00:00:00
|
|
Add EXT_texture_mirror_clamp_to_edge entry points
Bug: angleproject:7968
Change-Id: I04b0c5d7b5148fbaca24d77a2c8688ea7a96cb64
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4262073
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Auto-Submit: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
facd07ec
|
2023-02-14T14:11:00
|
|
Vulkan: Prune all statements without side effect
Bug: chromium:1417461
Bug: angleproject:6061
Change-Id: I6e2b74589021ee60c99448e43ee3eb7f06796ede
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4250278
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b7505d98
|
2023-02-21T12:04:59
|
|
Metal: Fix crashes in EXT_b_f_e using temporaries
Implementation of EXT_blend_func_extended made all uses of gl_FragData,
with or without the extension, crash.
Function-local constexpr char arrays are temporaries.
Their address cannot be used to construct ImmutableStrings.
Use static arrays instead.
Fixed: angleproject:8031
Change-Id: I91d27f6204374613e19d45f6e04e425985d519f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4272832
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
dbd5d6df
|
2023-02-17T00:00:00
|
|
Vulkan: Fix border color adjustment for emulated formats
Emulated opaque ETC compressed formats are decoded to
RGBA8 so the border color must have its alpha as one.
Generalized AdjustBorderColor to enforce opaque alpha
for opaque formats and to support both ways, in which
ANGLE could emulate LUMA formats.
Moved AdjustBorderColor to renderer_utils so it could
be used with other backends.
Bug: angleproject:5978
Change-Id: I9ec44444fd373b1ca6116ebc4447063a014025ce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4265514
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7586f8c8
|
2023-02-20T22:10:55
|
|
Translator: Validate correct op usage in nodes
Bug: angleproject:2733
Change-Id: Id555398cd6633ce38e1d4d900c7b739fd9990ad1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4274045
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
057a92bf
|
2023-02-20T14:45:36
|
|
Vulkan: Fix invalid assert in ContextVk::onSurfaceUnMakeCurrent
Old assert checked "mHasWaitSemaphoresPendingSubmission". However this
will be true even after "mWaitSemaphores" are flushed to the Renderer.
Correct assert is to check that everything is flushed, but may be
pending submission.
Bug: angleproject:8017
Change-Id: I831ece236fb0cecb8520315ebaa5207f90d3dfc6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4270931
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
05e62f39
|
2023-02-16T23:16:46
|
|
Vulkan: Don't close render pass if rebind to same fbo
In the Vulkan backend, the render pass can occasionally (and
transiently) be in a state of "open but inactive". This is when the
render pass is closed, but has the potential for future modifications
(for example to add a resolve attachment). Under many circumstances, it
is expected that an open render pass cannot be in such a state.
This assumption can be broken in this scenario:
- Open render pass, draw, etc
- Change framebuffer binding
- Change framebuffer binding back to original
- Masked Clear
When ContextVk is synced before clear, it sees that the framebuffer
binding is changed (though it hasn't really), and it closes the render
passes and sets the render pass dirty bit. If a draw were to follow, a
new render pass would have started (unnecessarily). However, in the
case of a masked clear, UtilsVk notices that the render pass is started,
assumes it must be active, and continues recording to it. While the
operation itself succeeds, the assumption that the render pass is active
is false (and fails assertion).
This change makes sure that framebuffer binding change is no-oped if the
framebuffer is the same one that has opened the current render pass. If
any application does unnecessary binding changes and back, it will be
optimized by this change as well.
Bug: chromium:1411210
Change-Id: I37a3a9f2eaa1a81a1b3393840b9458ec71a87377
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4261215
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e1dfc00a
|
2023-02-15T16:21:37
|
|
Vulkan: Make waitForPendingPresent drain work in the calling thread
Since we are waiting, there is no point to have work done in
CommandProcessor's worker thread. It can just wait and drain the task in
the calling thread. This is consistent with
waitForResourceUseToBeSubmitted. This allows us to remove mutex and
condition variable from SwapchainStatus.
Bug: b/269524271
Change-Id: I9d7e17c77c879b6957fc3b74aab02f7f5c9db052
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4257252
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
79bfee1c
|
2023-02-15T15:33:56
|
|
Vulkan: Clean up CommandProcessor::queuePresent
Right now queuePresent API returns VkResult in two places, via return
value and SwapchainStatus structure. This CL makes it only return via
SwapchainStatus::lastPresentResult so that two code path are the same.
Bug: b/269524271
Change-Id: I7ab3c2bee08961a10718a2e5daa1c7f03e97e85d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4257927
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
c402ea1c
|
2023-02-15T12:01:38
|
|
Vulkan: Rename hasUnfinishedUse to hasResourceUseFinished
Most usage of hasUnfinishedUse is for !hasUnfinishedUse, and there was
feedback that negative API is not preferred. This CL changes it to
positive API name. Similarly renamed hasUnsubmittedUse to
hasResourceUseSubmitted.
Bug: b/267348918
Change-Id: Idb10b0f998ec50116ffb6aada19a98a516e87824
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4257105
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5dba27e0
|
2023-02-15T10:24:38
|
|
Vulkan: CommandProcessor API name clean up
This CL is mechanical change only and limited to CommandProcessor class.
This CL renames submitCommands to enqueueSubmitCommands,
queueSubmitOneOff to enqueueSubmitOneOffCommand, queuePresent to
enqueuePresent, flushWaitSemaphores to enqueueFlushWaitSemaphores,
flushOutsideRPCommands to enqueueFlushOutsideRPCommands,
flushRenderPassCommands to enqueueFlushRenderPassCommands. This CL also
renames CommandProcessor::mLastSubmittedSerial to mLastEnqueuedSerials,
and getLastSubmittedSerial to getLastEnqueuedSerial, hasUnsubmittedUse
to hasResourceUseEnqueued (opposite meaning).
Bug: b/267348918
Change-Id: I611889815f5824837dc6e0f547e3cddc595d447b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4255809
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
b4116fea
|
2023-02-17T16:14:27
|
|
Disable supportsSwapchainMaintenance1 feature on Android
Temporarily disable upportsSwapchainMaintenance1 feature on
Android devices to unblock the ANGLE-To-Android roller, while
the auto-roller failure investigation is taking place.
Bug: b/269606195
Change-Id: I8a122b04996c9f0f02cbaaedcba5c6fb0615e5e3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4264812
Commit-Queue: Solti Ho <solti@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
3307e8d2
|
2023-02-16T10:26:20
|
|
Vulkan: Add ostream operator for ResourceUse/QueueSerial
This is some debug logging code I have been using in the past. Want to
land it for convenience.
Bug: None
Change-Id: Ife044dd7dc733d3d38283949bdfc11b203cbe429
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4177488
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1148a662
|
2023-02-15T08:25:51
|
|
Update GL_ARM_shader_framebuffer_fetch token support
These were missed during initial implementation because the target app
doesn't use them, and there are no tests for vendor extensions.
The implementation is basically a noop, but allows setting and
querying state, unblocking apps.
Also add a test that has basic usage.
Test: FramebufferFetchES31.BasicTokenUsage_ARM
Bug: b/269233744
Bug: angleproject:8025
Change-Id: Ic107150d4afd9c4c4984c58a1dafb1c18e608997
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4255965
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
fcba0d43
|
2023-01-17T19:21:31
|
|
Fix "RefCountObjectReleaser" move-assignment operator.
Current operator properly assigns only to an empty object.
No actual problem in the current code.
May be problems in a new, especially in a debug code like this:
releaseImage = {};
The above line will not release resources as expected, and may waste a
lot of time during debugging process.
Bug: None
Change-Id: I0fe064b68ade9211fdef5790ed3c41b0101cfa93
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4262069
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8cac53cd
|
2023-01-17T19:22:57
|
|
Vulkan: Fix incorrect "SharedPresent" barrier.
Previous fix swapped top/bottom barriers:
629da7fc9cd4886dd87f07a069c259551e892936
Fix dEQP-EGL.functional.mutable_render_buffer#basic
Above fix is only partial, because it only includes execution dependency
without memory barriers (top/bottom stages has no memory access).
Fixed by forcing all possible stages for "SharedPresent" images.
Better solution requires creating specific versions
of "ImageLayout::SharedPresent".
Added new test that skips "glFlush()" before "glReadPixels()".
Performing flush executes present and may "fix" the barrier problem.
New test fails on "Samsung Galaxy S22+ S906B"
Bug: b/264420030
Test: angle_end2end_tests --gtest_filter="EGLSingleBufferTest.SharedPresentBarrier*"
Change-Id: Icbb50900d99e42d2e9482cd6109981bbc460348a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4262068
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a6dba4b4
|
2023-01-17T19:24:18
|
|
Vulkan: Minor fix in "WindowSurfaceVk::hasStagedUpdates()".
This CL adds check to prevent checking buffer that is not technically
acquired.
Also if in the future this function will be called for double buffered
surfaces it will not check a previous buffer.
Bug: b/237449314
Change-Id: I79f1a2c4cd05a5424e963503891449f310177e93
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4262070
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9d84ad7d
|
2023-02-14T10:47:54
|
|
Translator: Fix sampler-in-struct when struct is unused
Standalone symbols as statements are also pruned. For example in the
below:
```
x;
g();
```
The line that only contains `x;` is pruned. In particular, this was
causing a bug with sampler-in-struct processing where the code ASSERTs
that if an instance of the struct is visited during traversal, that
it's already processed as part of an index chain (like s.member), but
in the above situation that is not true.
Bug: chromium:1416152
Change-Id: I49e9a5826fc4d8c1fef1fa6f1d38c65f33f8acfd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4247584
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
6f092c31
|
2023-02-16T08:45:18
|
|
Tests: Add star trek fleet command trace
Test: angle_trace_tests --gtest_filter=TraceTest.star_trek_fleet_command
bug: b/269577054
Change-Id: I2e7ae40d47b89b854a3ecbb87aba7fe8fcfdf8ce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4261952
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
8d23f34e
|
2023-01-18T16:20:05
|
|
Reland: DisplayEGL should support targeting specific EGL platforms
This is a reland of 01c641d58c7b4e4809163e48f570145af89c4acc
Updated changes:
The value is used only if non-zero
and marked as one of the supported platforms. For the moment the only
platform listed as supported is EGL_PLATFORM_SURFACELESS_MESA since
it's the only relevant platform value that the EGL_ANGLE_platform_angle
extension is listing as acceptable value for the
EGL_PLATFORM_ANGLE_NATIVE_PLATFORM_TYPE_ANGLE attribute.
When validated, and with relevant EGL extensions listed in the client
EGL extensions list, a display object for the desired EGL platform is
retrieved through the eglGetPlatformDisplayEXT entrypoint.
Original change's description:
> DisplayEGL should support targeting specific EGL platforms
>
> DisplayEGL should use the
EGL_PLATFORM_ANGLE_NATIVE_PLATFORM_TYPE_ANGLE
> value, if provided, to target specific platforms when constructing the
> native EGL display.
>
> The value is retrieved from the display attributes map and propagated
> to FunctionsEGL::initialize(). If non-zero, and if the
> eglGetPlatformDisplayEXT entrypoint is successfully loaded, then a
> display object for the desired EGL platform is retrieved.
>
> Bug: angleproject:7942
> Change-Id: I3d8dd70c4c5c80259ae647dce039cfe741b0cf7d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4152531
> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Bug: angleproject:7942
Change-Id: I75212b48e0e0edceef92e38bf68791017fb30a56
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4178310
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
81c7a7d9
|
2023-02-15T11:33:05
|
|
Use per-channel fuzzy threshold
Switches the fuzzy threshold used in Gold-backed pixel tests to be
per-channel instead of the sum of all channels. This means that a
difference of [1, 1, 1, 0] between two pixels will now pass,
whereas before that would have required a threshold of 3.
This is intended to only ever auto-approve changes that can be
attributed to rounding errors.
Bug: angleproject:7985
Change-Id: Id057534c3e92ee9a4fbd1545fd1a16b28fea61b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4256778
Auto-Submit: Brian Sheedy <bsheedy@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
8c2fcc70
|
2023-02-02T00:00:00
|
|
Metal: Implement EXT_blend_func_extended
Fixed: angleproject:8015
Change-Id: Ic92a8823869bf097349aee6241f6cfb86942c945
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4242128
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
|
|
ceb49b1c
|
2023-01-17T19:21:43
|
|
Vulkan: Fix crashes when Surface is not current.
It is possible to destroy Surface while some resources are still
in use (by CPU/GPU):
1. Make Surface current.
2. Draw something.
3. Make other Surface current (same Context).
4. (optional - if test Surface is Window Surface) Draw something.
5. Delete Surface.
6. UnMake the Context from current.
7. Different crashes possible depending on Surface type and what
is done in step 2.
Bug: angleproject:8017
Test: angle_end2end_tests --gtest_filter="EGLSurfaceTest.DestroyNotCurrent*Surface*"
Change-Id: I3102aa237075b301b3222b420415753c83ba192a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4227073
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
13e8dabc
|
2023-02-15T14:34:05
|
|
Add EGL_PLATFORM_ANGLE_DISPLAY_KEY_ANGLE
To allow the creation of multiple EGLDisplays on the same graphics
device, we need a value to key for the display cache. When the
display key is specified, the cache will return a new display for
that key, even if there is an existing display on the same graphics
device.
Bug: chromium:1251724
Change-Id: I55e169776770734fc33b8bc8e1265ea6f7472fe3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4255730
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
c4912744
|
2023-02-15T09:55:09
|
|
Vulkan: Clean up CommandProcessor mutex name
This CL is mechanical change only and limited to CommandProcessor class.
It renames mTasks to mTaskQueue, renames mWorkerMutex to
mTaskEnqueueMutex, rename mSubmissionMutex to mTaskDequeueMutex.
Bug: b/267348918
Change-Id: I7a8c6820eb3bd27d4e6aacb1abe7275f3c0ec5c5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4255807
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
629da7fc
|
2023-01-26T12:25:04
|
|
Fix dEQP-EGL.functional.mutable_render_buffer#basic
These are vulkan commands submitted between
glClear() and glReadPixels() when the EGL_RENDER_BUFFER
is EGL_SINGLE_BUFFER (ImageLayour is SharedPresent):
```
vkCmdClearColorImage()
vkCmdPipelineBarrier: (
VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,//srcStageMask
VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,//dstStageMask
VK_ACCESS_MEMORY_WRITE_BIT,//srcAccessMask
VK_ACCESS_MEMORY_WRITE_BIT|VK_ACCESS_MEMORY_READ_BIT//dstAccessMask
)
vkCmdCopyImageToBuffer()
```
This means that operations at the bottom of pipeline
in vkCmdCopyImageToBuffer() need to wait for operations
at the top of pipeline in vmCmdClearColorImage(), which
translates to vkCmdCopyImageToBuffer() does not have
to wait for vkCmdClearColorImage() to finish.
Even the dstAccessMask ensures that
vkCmdCopyImageToBuffer() will invalidate cache before
copying image, it is possible that it will retrieve the
old Framebuffer color attachment data as the
vkCmdClearColorImage() has not finished.
This CL fixes the bug by making the srcStageMask to
be VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT and the
dstStageMask to be VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
when the ImageLayout is SharedPresent.
This ensures that vkCmdCopyImageToBuffer() waits for
vkCmdClearColorImage() to finish.
This CL also addresses similar issue in some other
rx::vk::ImageLayout items in kImageMemoryBarrierData.
Bug: b/264420030
Change-Id: If47ab071afaf96e396357cb0f50131339fa58509
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4198476
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
79b0d80b
|
2023-02-14T14:29:59
|
|
Remove d3dcompiler_old.dll references
d3dcompiler_old.dll was retained for compatibility with Windows 7 but
can now be removed. It will be missing from future toolchain packages
and we no longer need code to handle it.
This also updates a doc page to change python to python3.
Bug: chromium:1416385, chromium:1385856
Change-Id: I80c9b6dec887bc403f6fe3dac4007acb1f164ea6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4251620
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
|
|
a52c0a6c
|
2023-02-06T16:01:27
|
|
Capture/Replay: Add and handle new resource type for EGLSync
So far calls involving EGLSync were not tracking the actual
sync objects, and this may lead to race conditions in
multi-threaded and multi-context scenarios.
This CL adds the type EGLSyncID and some specialized code
handling of egl::Sync to distinguish EGLSync from the already
existing GLSync objects in order to track them separately.
Bug: angleproject:7911
Change-Id: I91b188a41069bc0620f51c55ee516d23b55bdd38
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4200095
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
94ff37bb
|
2023-01-17T19:11:50
|
|
Fixed bugs in "FastVector" class.
Bugs:
- items resources may not be freed after resizing to a lesser size.
- reusing capacity may use old values for the new items.
Fixed by resting removed items to default values.
Alternative fix is to disallow dangerous operations on non trivially
constructible/destructible types.
Bug: angleproject:8021
Test: angle_unittests --gtest_filter="FastVector.DestroyOldItems"
Test: angle_unittests --gtest_filter="FastVector.ReuseCapacity"
Change-Id: I8bc616a9476608c9301e3f7af3a0d504e7e2d2db
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4249960
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
31d576ca
|
2023-02-15T00:34:07
|
|
Tests: Add SuperTuxKart trace
Test: angle_trace_tests --gtest_filter=TraceTest.supertuxkart
Bug: angleproject:8023
Change-Id: I9d427700a5e3badde0e66e55b24d50725c338251
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4251637
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
111aca40
|
2023-02-15T14:06:15
|
|
Capture/Replay: Emit NULL instead of nullptr in trace
When created C traces the value "nullptr" is not defined, so
emit NULL instead, because this is supported in both, C and C++.
Bug: angleproject:8018
Change-Id: I77584c462b1b02df39871929c1979d7ee7624361
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4254388
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
1145a497
|
2023-01-17T19:22:45
|
|
Vulkan: Very minor "rx::vk::BindingPointer" move-ctor update.
Initialize "mRefCounted" in member initializer list to avoid unnecessary
initialization with "nullptr" provided by the default member
initializer.
Optimizer will eliminate extra store in release builds but not in debug.
This change is more for code cleanness than for performance.
Bug: None
Change-Id: I1127a543468bb4138ae12d8941af27591ec4a2e8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4251638
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5a77200b
|
2023-02-08T17:10:28
|
|
Metal: Implement parallel shader linking.
Update the Metal library cache to be thread safe. Change
absl::flat_hash_map back to std::unordered_map because the value types
now contain a mutex which must not move.
Only generate async compilation tasks for shaders that were not already
compiled and in the cache.
Collapse some of the link methods in ProgramMtl that only had one call
site. All linking is now done in ProgramMtl::link and
ProgramMtl::load.
Support disabling parallel linking using the new
enableParallelMtlLibraryCompilation feature.
Bug: chromium:1385510
Change-Id: I71ba71a34d994066729df7e4170911f88c89de4a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4234153
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
2e70fa15
|
2023-02-13T23:01:51
|
|
Tests: Add Top War: Battle Game trace
Test: angle_trace_tests --gtest_filter=TraceTest.top_war
Bug: b/269178202
Change-Id: I4537fb99227b6a357a2d16d83da6514ecfd2a39e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4246716
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Mike Schuchardt <mikes@lunarg.com>
|
|
9e33b83a
|
2023-02-14T11:47:17
|
|
Vulkan: Fix bug in EGLMultiContextTest.ReuseUnterminatedDisplay
This test is not destroying the context properly, which leads to
eglTerminate(dpy) not actually destroying the RendererVk. When the next
test app runs, it calls RendererVk::initialize again and calls
volkLoadInstance(mInstance). Because the previous RendererVk object is
still there, and the two CommandQueue shares the same volk instance,
writing to volk function table causes tsan to complain that other thread
is still using the old function pointer that now gets overwritten.
The test really should clean up properly here in order to have other
test to continue to run.
Bug: angleproject:7602
Change-Id: I93cd2439194aba9f28ce478aaf79ae8b81c6426b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4249984
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
f2617a09
|
2023-02-13T20:59:05
|
|
Vulkan: Minor fix when waitFor*ToBeSubmitted() may skip error.
Calling "checkAndPopPendingError()" without "mSubmissionMutex" lock
may cause situation, when new error is added to "mErrors" right after
the call. This new error may be for the work we are waiting for, and
it processing will be skipped.
Current CommandProcessor error handing should be rewritten in the
future anyway, but I think this minor error should be addressed now.
Bug: b/267348918
Change-Id: I65c49f7dc8e1984696d464c38f13fcdce93337bf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4245421
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
8374bf5f
|
2023-02-13T20:35:32
|
|
Fix bug in FixedQueue::clear() and refactoring.
- bug: "mSize" used to end the loop but also changed inside the loop by
call to the "pop()" method.
- refactoring: "mBackIndex" name is not correct, because variable
references to the "index for next write", in other words - to the
element past "back" (last written). Renamed to "mEndIndex" to match
the "std" terminology.
Bug: b/267348918
Test: angle_unittests --gtest_filter="FixedQueue.Clear"
Change-Id: Ic65291a7ff2ff6f4eed223ca80fef187e42df3e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4245420
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
25e9686c
|
2023-02-09T11:51:24
|
|
[ios]: fix missing caps for D16_UNORM
Fixes "Assert failed in updateCaps (third_party/angle/src/libANGLE/ \
Context.cpp:4368): getClientVersion() < ES_3_0 || \
formatMaxSamples >= 4" as D16_UNORM caps were missing, which resulted
in GenerateTextureCapsMap skipping that format.
Bug: angleproject:6597, chromium:1413715
Change-Id: I031271e2db07d129e0c383107db2080794a11da1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4236537
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
91d55479
|
2023-02-13T21:18:13
|
|
Vulkan: reverted back SuballocationGarbage logic.
This commit:
Vulkan: Switch CommandQueue::mInflightCommands to FixedQueue
ad81cc95509379a213b9fddc6e7fe1cafc79115a
changes how SuballocationGarbage is processed in the "submitCommands()"
method. New logic allows clearing entire "mInFlightCommands" queue.
In case if this change was intentional, it should also remove this text
from the comment:
// But if there is only one command buffer in flight, we do not wait
// here to ensure we keep GPU busy.
Bug: b/267682377
Change-Id: Ia280c468c79f45dd44791cff09887982094521e3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4245422
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ee64836f
|
2023-02-11T17:56:06
|
|
Revert "Metal: Optimized BufferSubData per device"
This reverts commit 968041b54770af8917001d8fe9b52a881cfed0b2.
Includes the following patches:
git revert -n 995db1f66bcf87fc9e47d908fb2a885e810d2567 \
9a6c90c8f802b4d107a081bfccaf4be007e7af54 \
dbd47e378582ef86db52c7379cd220cf0b2c8193 \
369b320f92f54774879e8b8faff834fc8db0793e \
4abae6f97586448712e2dc1cced4a678b0901d7b \
968041b54770af8917001d8fe9b52a881cfed0b2
Several conflicts with top-of-tree were resolved during this revert.
The aim is to reland this with additional code which will reduce the
amount of excess buffer memory allocated, and release the resources
associated with temporary buffer allocations.
Bug: angleproject:7544
Change-Id: Ib7a6bc2ab1c2f23cb43112cd980106e2898c3826
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4240556
Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Gregg Tavares <gman@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
5c2a6010
|
2023-02-13T16:32:58
|
|
Vulkan: Fix loading instance extension entry points
This change makes sure instance extension entry points are loaded right
after the instance is. Previously, this was done after all features are
initialized, including device features, but the code that decides the
device features was using the instance entry points.
Bug: angleproject:7959
Change-Id: I6869f40261eec7a3146c9e0e05b3fc139bc9223a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4247097
Commit-Queue: Ian Elliott <ianelliott@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
be5e767e
|
2023-02-01T11:03:26
|
|
dump_shader_source: Also dump program links.
When the dump_shader_source is enabled, dump a small file for each
program link containing which shaders were attached to the program.
This allows us to build perf tests knowing which shaders can link
together.
Bug: angleproject:7760, chromium:1385510
Change-Id: I0713e9f04cc157c3a3eeeec6d597db27b08575d1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4214011
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
48b6ebad
|
2023-02-13T16:37:15
|
|
Test: Move code of EGLSurfaceTest::runWaitSemaphoreTest().
To improve readability, code moved from class body closer to the tests.
Bug: angleproject:7995
Change-Id: I2c0aef593b28cfffe2b04de308274d0007d863c5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4245177
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
689e523c
|
2023-02-07T14:33:23
|
|
Vulkan: Remove vkResetQueryPoolEXT null-check hack
This was observed to be nullptr in some builds and assumed to be a
driver bug. However, this was due to a bug in implementation where the
code that was supposed to load the entry point was actually loading
another entry point.
This was fixed in
https://chromium-review.googlesource.com/c/angle/angle/+/4224582
Bug: chromium:1273344
Change-Id: I8c2003b322878fcab9282c793a8b1901d5d8e7a5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4227990
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
cad19f01
|
2022-02-01T17:36:03
|
|
Vulkan: Wait forever when waiting on fences
If a timeout occurs while waiting for the VK queue to be idle during
context destruction, there is no way to safely delete the resources
without potentially crashing as the driver is still reading them.
Instead, wait forever and let Chrome's watchdog tear the process down.
Bug: chromium:1223346
Change-Id: Ifa91465270f54b62a5ead88e8f26b3315072c380
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3430243
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
54951da2
|
2022-12-18T17:11:33
|
|
Vulkan: Refactor extension vs core version checks
Extensions are now grouped based on promotion-to-core status, and
initialization code is generally cleaned up. ANGLE currently doesn't
attempt to use a core version above Vulkan 1.1, as extensions are always
assumed to be exposed even if promoted to core in later versions.
With this change, it would be simpler to use a newer core version if
ever necessary.
Bug: angleproject:7959
Change-Id: Ia5fd3e06c18f7289e9e5a63af0f039a6dc89c687
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4224582
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
91bd7e6e
|
2023-01-09T15:57:35
|
|
Capture/Replay: VertexArrayState: also track binding index too
We have to capture the case when only the binding index is not
at the default value.
Bug: angleproject:7912
Change-Id: Id08b20788422694db60f38c6e0b8b4a9191890c0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4143841
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
62d35a60
|
2023-02-10T13:05:14
|
|
Metal Fix norm16 subimage uploads w/ signed types
The supported texture format tables would have entries for
a signed or unsigned internal format and matching type.
The texSubImage variants do not communicate the sized internal format,
rather unsized format type. Data parameters are validated based on
format, not internal format. For these, the signed variants were
missing.
Add texture format table entries for signed types that match the format
parameters.
Add a precautionary validation case so that future such bugs would not
pass the control flow forward, into the copying phase.
Fixed: angleproject:8014
Change-Id: I5b00cca8672691fdb953f62093d62feaa724db99
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4238881
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
90ddd7c7
|
2023-02-10T16:47:32
|
|
Tests: Add Mini Block Craft trace
Test: angle_trace_tests --gtest_filter="*mini_block_craft*"
Bug: b/267795849
Change-Id: Ia6087066476992367f432d5d032f6f5542eeb2d3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4241403
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
2ca14a9f
|
2023-02-10T13:58:19
|
|
EGL: No-op dma_buf import modifiers on some Mali devices.
Some of the vendor checks in the EGL_EXT_image_dma_buf_import_modifiers
enablement logic disable the extension on older Mali devices while
Chrome depends on the presence of this extension, even if the
implementation is no-op'ed.
Refactor the logic into DisplayEGL with a tri-state:
* Extension exposed and forwarded to the driver
* Extension exposed and no-op'ed (Mali)
* Extension not exposed (ARM)
Bug: angleproject:7664
Change-Id: Idca7bb609423366779a65cd65093c9d5a65f0c19
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4241483
Reviewed-by: Brian Ho <hob@chromium.org>
Auto-Submit: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Brian Ho <hob@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
a57e36dc
|
2023-02-10T12:21:36
|
|
Tests: Add Durak Online trace
Test: angle_trace_tests --gtest_filter="*durak_online*"
Bug: b/267794160
Change-Id: Id8047921bf5c48109fd7b59e8262849571701c5c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4241398
Commit-Queue: Roman Lavrov <romanl@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Auto-Submit: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
2eb5d29a
|
2023-02-10T11:42:58
|
|
Vulkan: Linked pipelines always need the layout
A fix in the spec made it clear that the pipeline layout is always
necessary when creating the linked pipeline. This change removes the
comment that marks it as a driver workaround.
Bug: angleproject:7369
Change-Id: I7d068d330a7517fbc6e064fe2e796c2c53f6b859
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4241397
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
9d7292a8
|
2023-02-09T15:56:57
|
|
Vulkan: Unsupress fixed VUs
Bug: chromium:1412096
Change-Id: I6b5f2c0e894d354216cb49deba3a65aa7782004f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4237579
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
0d0e8c37
|
2023-02-08T17:33:39
|
|
Vulkan: Fix mutable render buffer with protected content.
Original implementation used Unprotected submission unconditionally.
In case of protected content/commands this may cause undefined
behavior.
New test works OK despite the bug.
VVL also did not show error, but should report:
VUID-VkSubmitInfo-pNext-04120
If the pNext chain of this structure does not include a
VkProtectedSubmitInfo structure with protectedSubmit set to VK_TRUE,
then each element of the pCommandBuffers array must be an
unprotected command buffer
Also from spec:
protectedSubmit specifies whether the batch is protected.
If protectedSubmit is VK_TRUE, the batch is protected.
If protectedSubmit is VK_FALSE, the batch is unprotected.
If the VkSubmitInfo::pNext chain does not include this structure,
the batch is unprotected.
It is a bug in VVL. It ignores check entirely if VkSubmitInfo::pNext
chain does not include VkProtectedSubmitInfo structure.
Bug: angleproject:3966
Test: angle_end2end_test --gtest_filter="EGLProtectedContentTest.ProtectedContextWithProtectedMutableRenderBufferWindowSurface*"
Change-Id: I0e0762e5fdfe19ce6c2184a36d057a95c2c79f00
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4232115
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
aa1f7e19
|
2023-02-08T21:05:35
|
|
Vulkan: Fix CommandQueue Wait Semaphores asyncCommandQueue race.
Recently implemented fix has a problem:
When using "asyncCommandQueue", wait semaphores flush performed in
the context thread, while submit in the async thread. Both operations
protected by the mutex, so there is no data race or other UB.
It is a potential performance problem: submit operation may attach
wait semaphores prematurely, before corresponding commands flushed into
the primary command buffer.
Fix adds "CustomTask::FlushWaitSemaphores" to ensure wait semaphores and
commands flushed in order.
Bug: angleproject:7995
Change-Id: I7d3cfad867c59d3cd0a5c0bb3f81ae8d98238362
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4231844
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
b2cfe726
|
2023-02-07T14:35:24
|
|
Vulkan: Make queueSubmit without holding CommandQueue::mMutex
VkQueueSubmit and VkQueuePresent could potentially take long. Right now
it is called while holding CommandQueue::mMutex lock. In previous CL we
moved mInFlightCommands to FixedQueue, which allows push/pop occur
concurrently. This CL moves queueSubmit and queuePresent to not take
mMutex but uses mSubmissionMutex. This allows other thread to
checkCompletedCommands etc while we doing submit/present.
The tricky part is that mPrimaryCommands is shared between all contexts.
It can contain commands from different contexts, thus the vkQueueSubmit
ordering must strictly follow the order of RendererVk::submitCommands()
call. The mMutex and mQueueSubmitMutex are managed in a way that does
the lock relay so that we always have a lock covering the
submitCommands call all the way to vkQueueSubmit.
Bug: b/267682377
Change-Id: Ic556cd4c64d334ad1cfc68942b803e401c6b0cc1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4218198
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5d97cbd1
|
2023-02-07T12:54:26
|
|
Vulkan: Move post submit code into a separate function
This CL is mostly a clean up and refactoring and prepare for next CL. No
actual functionality change is expected. It added a new function for the
post queueSubmit logic. It moves CommandQueue::queueSubmit() into the
same location as queuePresent.
Bug: b/267682377
Change-Id: I240934dc4db06ce1277955938427a9e257211277
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4226006
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
995db1f6
|
2023-02-08T10:40:08
|
|
[ios] Fix build failure on iOS.
In CL https://chromium-review.googlesource.com/c/angle/angle/+/4217712
a switch was added that is not really supported on iOS but will cause
an error with -Wswitch. Return MTLResourceStorageModeShared for that
code path.
Bug: angleproject:7975
Change-Id: I68e326da4a733892d9282460c3f57e0aac58df08
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4233079
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
ad582b26
|
2023-02-07T00:00:00
|
|
GL: Expose EXT_texture_border_clamp
* Adjusted validation
* Exposed both EXT and OES extension names
* Fixed border color when lumaWorkaround is enabled
Bug: angleproject:7969
Change-Id: Ia5622d4ecbc0b6338ee3651ab58bf1ca5276bbc4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4231843
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|