The Gbm classes were used to emulate WindowSurfaces on ChromeOS for
testing. These emulated features are not used in any shipping
configuration and cause issues because ANGLE opens drm devices
uneccessarily.
Bug: chromium:1344962
Change-Id: If564e40744f7825035bbbd63c141b154c534ed72
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4023096
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Brian Ho <hob@chromium.org>
This reverts commit 85c98a92bb.
Reason for revert: This caused regression on pixel 6, https://ci.chromium.org/ui/p/angle/builders/ci/android-arm64-exp-test/1969/overview
Original change's description:
> Vulkan: Only allocate default attribute if needed
>
> mDirtyDefaultAttribsMask has all bits set when starts.
> ContextVk::handleDirtyGraphicsDefaultAttribs() is looping all dirty bits
> and try to allocate buffer for it, which means we are looping 16
> times when app starts. This CL changes to allocate a buffer only if used
> by program.
>
> Bug: b/258862506
> Change-Id: I2f0a75d1fe141c9ac3101088fdc4ce4f60b0c4ee
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4024544
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
> Commit-Queue: Charlie Lao <cclao@google.com>
Bug: b/258862506
Change-Id: Iff7d9c6d605613773f0b91a5539cefd6da6454eb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4038449
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: Charlie Lao <cclao@google.com>
New parameter parsing code needs a small tweak to handle
partial flag matches.
For instance, a new flag being added would trigger as if an
old one had been provided:
new: --fixed-test-time-with-warmup
old: --fixed-test-time
And if equals notations were being used:
--fixed-test-time-with-warmup=value
the code before this CL will treat the entire thing as
--fixed-test-time and attempt to consume the next argument
as value
Bug: angleproject:7755
Change-Id: I57eae2847053d664338d40b0191d5223ddd95852
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4038494
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
In preparation for per context queue serial, this CL makes
mLastSubmittedQueueSerial and mLastCompletedQueueSerial private to
CommandQueue. Before this CL, we have a get function to return the last
submitted serial and last completed serial and passing these serials
around. This works because the serial is a single uint64_t number. With
per context queue serial, this will be an array of serials and there is
potential risk associated with access it from different threads. This CL
makes these serials private to CommandQueue and when you want to know if
GPU is completed with resource, you ask RendererVk/CommandQueue
directly. This way we can ensure they have thread safe access in the
CommandQueue (no lock is necessary, but all access will be restricted to
one class).
Bug: b/255414841
Change-Id: Ica565decce4a80588e0b447e179a2b634b55d7c3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4021676
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
This is a reland of commit 4b084310d7
Do not try to create a command encoder with no attachments
since it may crash some Metal drivers.
Do not reset pipeline descriptors.
Original change's description:
> Metal: Skip disabled draw buffers
>
> When creating render pass descriptors, do not
> assign textures to disabled color attachments.
>
> When creating pipeline descriptors, reset
> pixel formats of disabled color attachments.
>
> Exit early when MTLRenderCommandEncoder is not created.
>
> Added:
> * DrawBuffersTest.None
> * DrawBuffersTest.NoneWithDepth
> * DrawBuffersTest.NoneWithStencil
> * DrawBuffersTestES3.DrawWithDisabledIncompatibleAttachment
>
> Fixes:
> * conformance2/rendering/fs-color-type-mismatch-color-buffer-type.html
>
> Bug: angleproject:6430
> Change-Id: I7f650c761f757985b027388c350c01340a83fd51
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4003180
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Bug: angleproject:6430
Change-Id: I13977bd7ef32c4c85420706215b4f4d3a65629ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4030310
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Implement EGL validation of EGL_CONTEXT_OPENGL_ROBUST_ACCESS.
Previously, only the _EXT flavour was validated.
Note that EGLRobustnessTest was changed to only exercise the
core version.
Bug: chromium:1385480
Change-Id: I51f93d6cd344d073cd9656c9fff9636ca4eac99d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4030882
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
This patch fixes an error of the document, which describes
the translation from uniform block to StructuredBuffer.
Bug: angleproject:7832
Change-Id: Ice98f41ce558a47a6c19983e24ddbd3ea435d59d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4029670
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
This allows a Mask function to be implemented for BitSetArray, which is
added in this CL. When using larger bitsets on 32-bit systems, the
current Mask implementation prohibits its use.
This is in preparation for a follow up change that uses Mask on such a
bitset.
Bug: angleproject:7369
Change-Id: If995d96ec1583a546f20bff277f3223e2f2490f5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031493
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
For now only applies to Windows Nvidia (GTX 1660) bots
where I tested this. Default clocks boost to 1800+
reporting 110W+ initial power usage which can't be dissipated by
the setup and and gpu quickly hits ~90C and enters aggressive
throttling. Locking to 1410MHz yield a much more modest 50~60W usage
with reasonable gpu temps in the 70C~80C range over long runs at
100% utilization.
Also log gpu temperature before/after running tests.
Bug: angleproject:7671
Change-Id: Id43bede3b1d6a445f8caee6bbbaa43f7f380199b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031495
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Uninitalized values are causing retrace failures.
mMaxComputeSharedMemory is otherwise only set when the shader
is compiled.
Test: retrace_restricted_traces.py
Bug: angleproject:7815
Change-Id: I9884ac3c8550775d435d6fa7b11d7aebc63c14d5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4026669
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
When creating render pass descriptors, do not
assign textures to disabled color attachments.
When creating pipeline descriptors, reset
pixel formats of disabled color attachments.
Exit early when MTLRenderCommandEncoder is not created.
Added:
* DrawBuffersTest.None
* DrawBuffersTest.NoneWithDepth
* DrawBuffersTest.NoneWithStencil
* DrawBuffersTestES3.DrawWithDisabledIncompatibleAttachment
Fixes:
* conformance2/rendering/fs-color-type-mismatch-color-buffer-type.html
Bug: angleproject:6430
Change-Id: I7f650c761f757985b027388c350c01340a83fd51
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4003180
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
This prevents C build errors like the following when
applications provide incorrect shader string lengths:
error: null character(s) preserved in string literal
Bug: angleproject:7402
Change-Id: Iac7bab58533d152c4b6ed525f0cbcbcb8a7c35ad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4020417
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
The buffer created to test coherent and persistzent mapping is
not used later, so it should be deleted.
Since this buffer is created and deleted before any VAO is created,
we also have to check whether a VAO exists before the buffer may
be detached from it.
Bug: angleproject:7814
Change-Id: I875f845e592325093dd90b48ba9cd3c7228fad47
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4023047
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
ObjectAndSerial templated class is only used by GarbageAndSerial. The
serial number here means queue serial. This CL simply flattens the
template class to GarbageAndQueueSerial to clarify the serial here is
the queue serial that tracks GPU completion.
Bug: b/259148812
Change-Id: I81e88a03ccffcf8fb632e3ac7dce886375dc51a5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4023098
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
This reverts commit 05d86e0600.
Reason for revert: this helped caught an issue https://anglebug.com/7550#c6, but recent outputs seem normal so no longer needed
Original change's description:
> Add temporary logging of gold_session.Initialize stdout.
>
> Normally looks like:
> Loaded 1549 known hashes
> ...
>
> Suspecting that in failure cases it's going to result in something
> different.
>
> Bug: angleproject:7550
> Change-Id: I0190d4f679fc4161fc36a3008ba2e7d6d4764277
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3804752
> Commit-Queue: Roman Lavrov <romanl@google.com>
> Reviewed-by: Brian Sheedy <bsheedy@chromium.org>
Bug: angleproject:7550
Change-Id: I7c6e1569299ca4c834f29fcd01c3e707e373de16
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4024759
Reviewed-by: Brian Sheedy <bsheedy@chromium.org>
Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
Auto-Submit: Roman Lavrov <romanl@google.com>
ContextVK has two functions, submitFrame, and submitCommands.
ContextVk::SubmitFrame means to be frame boundary or FBO boundary,
usually refers to submission triggered by API, for example,
glFlush/glFinish or FBO switches. ContextVk::submitCommands was added
later to mean any kind of submission. It could be triggered by internal
logic, for example, when we think we have accumulated too much staged
updates. The odd thing is that ContextVk::submitFrame calls
ContextVk::submitCommands, which calls RendererVk::submitFrame. I
believe this is because when we introduced ContextVk::submitCommands, we
did not bother rename RendererVk's API. This CL renames
RendererVk::submitFrame and CommandQueue::submitFrame and
CommandProcessor::submitFrame to submitCommands to be consistent with
ContextVk's function names.
This CL also removes unused function ContextVk::isSerialInUse()
This CL also removes unnecessary vk:: namespace in CommandProcessor
Bug: b/259148812
Change-Id: If074e381168950143ad56a728f23caa298e5f355
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4027284
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
When one off commands serial is equal to last completed serial, it means
completed. We should reuse command buffer instead of allocate a new one.
Bug: b/259148812
Change-Id: Ibc006a93e1ee775a436396a0d35cf4ab2b363940
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4023097
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Not necessary as we only call it on termination but if ReleaseFixtures
is called for e.g. eviction testing, it leaves bad state behind.
Bug: b/258723409
Change-Id: I345c9197742f78ec952cacecdc9ba55b518f9f53
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4024757
Auto-Submit: Roman Lavrov <romanl@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
valgrind rightfully reports these as leaks
Bug: b/258723409
Change-Id: I02dbd771c6f7bd9e7df2269c77d8bd95af593044
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4025992
Auto-Submit: Roman Lavrov <romanl@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
mDirtyDefaultAttribsMask has all bits set when starts.
ContextVk::handleDirtyGraphicsDefaultAttribs() is looping all dirty bits
and try to allocate buffer for it, which means we are looping 16
times when app starts. This CL changes to allocate a buffer only if used
by program.
Bug: b/258862506
Change-Id: I2f0a75d1fe141c9ac3101088fdc4ce4f60b0c4ee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4024544
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Renamed provoking vertex enums to use _ANGLE suffix.
The newly defined enums alias those from the
desktop OpenGL extensions.
Updated tests to use the new enum names.
Bug: angleproject:2829
Change-Id: I72b686773536d3d54a653114cee5292007510a55
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4013700
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
According to the WebGL specification, when an empty buffer is bound to
GL_ELEMENT_ARRAY_BUFFER binding point, one of the possibilities is to
return an error when trying to draw with an index count other than
zero. This is the behavior of DrawElements variants but not
DrawRangeElements.
This change brings variants of DrawRangeElements behavior in line with
that of DrawElements.
Bug: angleproject:7822
Change-Id: I6844efd1038d95c652b72e52209dfdd74f006f9b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4015418
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
UpdatePreCacheActiveTextures and
updateExecutableActiveTexturesForShader
do similar things but there seems to have been some naming confusion.
Bug: b/242887117
Change-Id: Ib568f922c79b6ea36a225b4547e2abfc73b8ec08
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4022143
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>