|
938f4372
|
2022-11-30T15:30:23
|
|
Move trace_event into anglebase
This originates from Chromium's base/trace_event/ so it doesn't need to
be under a third-party folder.
Bug: b/260093525
Change-Id: Iab7a40569b6c1f91454f099c07bf51e3ce4b65df
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4068342
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c991eb22
|
2022-12-01T14:05:07
|
|
Move the anglebase folder up a level
This code originates from Chromium's base/ directory so it doesn't have
to be under a third-party folder.
Bug: b/260093525
Change-Id: I0bf6950095c685f36c5c237093980a64cf6e74f0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4068339
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Nicolas Capens <nicolascapens@google.com>
|
|
8ee1b89f
|
2022-11-04T13:10:37
|
|
Refactor pixel local storage options
The various different PLS options were getting scattered and unruly. We
are also in need of more backend-specific PLS options that would be
difficult to add as-is. This CL refactors them into a single
"ShPixelLocalStorageOptions" struct that gets initialized all in one
place, and shared between the compiler and the backends.
Bug: angleproject:7279
Change-Id: Ic58dccb8d1ba350a0b6cc5848ce15bd687e30fad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4006715
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
a4db9477
|
2022-10-06T10:35:39
|
|
Implement pixel local storage with metal::read_write textures
Metal's programmable blending feature isn't available on non-Apple
Silicon, so on these devices we have to polyfill pixel local storage
using read_write textures, which can also be coherent if
raster_order_groups are supported.
This change leverages the existing PLS transformation to images, and
implements just enough shader image functionality in Metal to support
the pixel local storage usecase. Missing shader image features are
marked with UNIMPLEMENTED().
Bug: angleproject:7279
Bug: angleproject:7792
Bug: angleproject:7794
Bug: angleproject:7797
Bug: angleproject:7803
Change-Id: Ia96a714693d352d57351a1bae4f45437dde000e4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3993363
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
|
|
fa37af38
|
2022-07-12T22:47:22
|
|
Translator: Support SSO's built-in redeclaration
EXT_separate_shader_objects requires that gl_Position and gl_PointSize
be redeclared in the vertex shader. This is not adopted by GLES3.2, but
is nevertheless required to be supported if the shader enables this
extension explicitly.
Bug: angleproject:6590
Change-Id: I3428851ff9f00fb63573e4322bb62fe04bf0a095
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3757918
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2ecb3217
|
2022-11-28T15:24:39
|
|
Vulkan: Turn CPU throttling into fail safe
CPU throttling is moved back to after queue present instead of before.
Doing it before was a mistake, as the app had already recorded the
command buffers, there was no point in delaying its submission.
Proper throttling would have been moving the wait from after recording
commands (before present of frame i+2) to before recording (after
present of frame i+1). However, throttling is the responsibility of the
app and this change triggers throttling one frame later (after present
of frame i+2) as a fail safe.
Currently, CPU throttling is relied upon for acquire semaphore
recycling. If the two are untangled, CPU throttling can be removed.
CPU throttling can also be trivially weakened by increasing
kSwapHistorySize (currently 2).
Bug: angleproject:7268
Change-Id: Ib7a8be6f8e72c6b8589d4e8b5de7ceaf6a28bb8e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4060454
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
31c40936
|
2022-11-25T12:28:27
|
|
Vulkan: Rework present semaphore recycling
Present semaphores and old swapchains are now associated with a fence
for clean up. The fence is the one coming from the _next_ acquire of
the same image index.
See doc/PresentSemaphores.md for more details.
Bug: angleproject:7847
Change-Id: I16891ccf6df7ac39d8b17328aac35afc422eede0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4058286
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
90b4541c
|
2022-11-28T11:39:24
|
|
Vulkan: Pass signal semaphore by value to async thread
Otherwise the signal semaphore is pointing to whatever was passed in
from the main thread. Currently, this is ok because:
- For external semaphores, ensureNoPendingWork is called
- For surfaces, there's a fixed buffer of semaphores
However, an upcoming change passes a semaphore specified on the stack,
and the thread should not be referencing it.
Bug: angleproject:7847
Change-Id: I9a823214bde59b9d7ff23313694c1749a76e6b8e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4060453
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
7f4caaf5
|
2022-11-23T15:40:53
|
|
Vulkan: Fix VulkanPerformanceCounterTest.SubmittingOutsideCom
VulkanPerformanceCounterTest.SubmittingOutsideCommandBufferDoesNotCollectRenderPassGarbage
depends on the implementation detail on how we flush and submit
commands. The recent change crrev.com/c/4038095 fixes one issue that we
are now having one less submission on pixel 6 device. This CL adjust the
test to account for that.
This CL also changed to set mHasDeferredFlush to true only when there is
a started renderpass upon FBO bind.
This CL also opt in swiftshader into preferSubmitAtFBOBoundary feature
for test coverage and ease of debugging since ARM GPU (which enables
this flag) is not been tested on CI.
Bug: b/255414841
Change-Id: I295cec33a8ca257a5d5a98604b8c4c0c29e97cdf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4054101
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
1434697f
|
2022-11-23T14:47:38
|
|
Add a vk feature flag to only enable precision match fixer on IMG
According to
https://gitlab.khronos.org/vulkan/vulkan/-/merge_requests/5273,
RelaxedPrecision does not need to match in the interface matching
rules. However, removing the precision match is causing triangle
clipping issues on IMG hardware. This change adds a feature
flag to only run the code path that applies precision match in
SpirV if the hardware is IMG.
This is a follow-up change to https://crrev.com/c/4049421.
Instead of adding back the code path that handles varying
precision mismatch for every hardware, only enabling the code
path if the vendor is IMG.
Test:
On Pixel6:
$ adb shell setprop debug.angle.feature_overrides_enabled
varyingsRequireMatchingPrecisionInSpirv
$ out/AndroidDebug/angle_end2end_tests
--gtest_filter="GLSLTest_ES3.MismatchPrecision*" --verbose
Bug: angleproject:7488
Change-Id: Ia0155f14d523195df2f47b852ed6642918270e2a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4054100
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
2de99d47
|
2022-11-17T12:19:35
|
|
Reset instance/device extensions in RendererVk::onDestroy()
RendererVk::initialize() adds a nullptr to the end of
RendererVk::mEnabledInstanceExtensions (presumably to ensure the
VK implementation crashes if it tries to read past?). If
RendererVk::onDestroy() fails to clear this nullptr, it can lead
to a crash when sorting the extension lists when the renderer
is re-initialized the second time.
Bug: b/249457381
Test: cvd start --gpu_mode=guest_swiftshader
Test: EGLDisplayTest.InitalizeTerminateInitalize/ES3_Vulkan_NoFixture
Change-Id: Ib24af11024cad6b28284f3a75cc862c48abec258
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4035646
Commit-Queue: Jason Macnak <natsu@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b301b822
|
2022-11-07T09:37:14
|
|
Capture/Replay: emit context setup for pre-MEC contexts only
When a context is made current for the first time it is added to
the shared context set. If this happens after the mid execution
capture has started, then the call to the context setup function
is created, but the according function implementations was not
emitted leading to compilation failure of the so created trace.
Since a context that was never current doesn't actually have any
setup that needs to be done when starting a MEC replay. Hence,
there is no need to emit the calls fot SetupReplayContextXX.
So track which context where actually in the shared context set
when MEC started, and only emit the according calls to the setup
functions.
Bug: angleproject:7805
Change-Id: I83f8714733ead5c0d71560013c360b5671f0822a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4008199
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
000b3bfa
|
2022-11-28T15:06:06
|
|
Vulkan: Init mLast***Serials from CommandQueue::initialize
Exposed by a recent test from Jason crrev.com/cl/4035646, If RendererVk
gets re-initialized, we can't rely on CommandQueue's constructor to do
initalization. We have to manually initialize mLastSubmittedSerials to 0
since destroy will set it to Infinite.
Bug: b/249457381
Change-Id: I90e654981fb821324cbfb177712f604b67ccc70c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4063046
Reviewed-by: Jason Macnak <natsu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b00fa5e5
|
2022-11-23T12:10:47
|
|
Vulkan: Pipeline graph dump vs pipeline libraries
The pipeline graph dump code is now made aware of partial pipelines.
Vertex input and fragment output pipelines are also output. As a
collateral, UtilsVk pipelines are also included.
Bug: angleproject:7369
Change-Id: I327fbd07b83ae42d27766847d70637ada04d86cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4051623
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
35d1736f
|
2022-11-28T09:27:06
|
|
Update enabled instance extenion handling
- Null terminating the instance extensions at the end of
initialize to potentially avoid having the nullptr interact
poorly with other initialization code that scans through the
enabled instance extensions.
- Ensure the enabled instance extension sort happens after all
desired instance extensions have been added.
Bug: b/249457381
Test: cvd start --gpu_mode=guest_swiftshader
Change-Id: I2a479065444ffdfd97ecbf281fe6a777e22d584c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4060238
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jason Macnak <natsu@google.com>
|
|
86a194c3
|
2022-11-24T00:00:00
|
|
Fix expected texture target for 3D blocks
ASTC 3D blocks are supported only for TEXTURE_3D targets.
Bug: angleproject:3675
Change-Id: I5fa2ee87666bd69272419dc1d604348f7376aa46
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4055649
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
71ead7b4
|
2022-11-20T15:56:42
|
|
Tests: Add Diablo Immortal trace
Test: angle_trace_tests --gtest_filter="*diablo_immortal*"
Bug: angleproject:7402
Bug: angleproject:7837
Change-Id: I7c7ccc0099707714213564740f58f04f7965a275
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4041134
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
6458178e
|
2022-11-18T11:39:16
|
|
Vulkan: Clean up flushCommandsAndEndRenderPass APIs
ContextVk::flushCommandsAndEndRenderPassWithoutQueueSubmit is calling
flushCommandsAndEndRenderPassImpl(QueueSubmitType::SkipQueueSubmit).
This is a bit odd and creates confusion and trouble with future CLs.
This CL removes QueueSubmitType and straight up the submission code and
removes some function that was doing little but to call another
function.
Bug: b/255414841
Change-Id: I0ed2122a98b0fc5b819fd331173bf6945d23ff8a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4038095
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7dd8478e
|
2022-11-17T10:11:02
|
|
Vulkan: Make ResourceUse::serial an FastVector of Serials
In preparation for per context queue serial, this CL makes
ResourceUse::serial a FastVector of Serial. Right now we still limited
to one serial index so that it still work the same way as before. This
CL adds necessary data type and change the function names to reflect
that tracking GPU progress needs a ResourceUse object instead of a
single Serial number.
Bug: b/255414841
Change-Id: Ic60cdf5ec8da45d1821f65a55947f5c553f65737
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4034548
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
0e12695c
|
2022-11-23T08:31:43
|
|
Suppress VUID-VkGraphicsPipelineCreateInfo-renderPass-06040
Bug: angleproject:7843
Change-Id: I013dd1d2942c7b9d340ae4e3c4124b592dc9b94b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4049765
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6384f76b
|
2022-11-16T21:47:04
|
|
Vulkan: Move PipelineCacheAccess to namespace vk
In preparation for a change that uses it in that namespace.
Bug: angleproject:7369
Change-Id: Icc75b8839d702fd3e6d3d00c1d8f81619cdd89cc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031150
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
11de5157
|
2022-11-14T14:48:33
|
|
Capture/Replay: Reset Shaders
We've been resetting Programs correctly, but not Shaders. This hasn't
been a blocker so far, but it has been identified as a performance
problem for traces that compile mid-trace. We're not getting cache
hits because the persistent blob cache is not updated until a shader
is deleted.
Part of the challenge here is ShadersIDs and ProgramIDs share a
ResourceIDType, so separating them requires a bit more tracking.
To fix, start tracking which ShaderProgramIDs are actually
shaders and emit the correct glDelete* command.
Test: diablo_immortal MEC
Bug: angleproject:7823
Change-Id: I934f6eee243ab9681dca5fdebdad33ba31457cf5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4029226
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
494640e5
|
2022-11-18T12:02:28
|
|
Capture/Replay: Make secondary contexts current during MEC
When replaying, the context is made current at the beginning of
the context setup function, and is still current when we hot the
validation point at the end of the setup function. When a context
is current is has a valid default framebuffer, and hence, during a
replay of the trace the context serialization will contain this
framebuffer. However, during MEC the secondary contexts were not made
current during capture, and hence they dind't have a default
framebuffer which resulted in a validation error.
Therefore, make the secondary contexts current when they are captured
during MEC to make sure we also capture the default framebuffer.
Bug: angleproject:7812
Change-Id: Iaccc4150e8a71a02286e772882fb150bef1d82a8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4037982
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3db679eb
|
2022-11-22T10:37:31
|
|
Revert "Vulkan: Remove useRelaxedPrecision" and "Vulkan: remove SpirvVaryingPrecisionFixer"
This reverts commit cb618b3d42d9013c48b5aa233efc4d80a9c4efa4
and commit 427086a9c7612da7325cb36054859a929c3727d5
Reason for revert: IMG reported that they need to keep the
"precision qualifier matching" feature to make triangle clipping
work properly, because the clipping needs to to know the decoration
in vertex shader output in order to sort the data correctly for
clipping.
Original change's description:
> Vulkan: Remove useRelaxedPrecision
>
> Bug: angleproject:7488
> Change-Id: I30ca3e2740d8810a01615ca778eb072d77ad34d9
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3856658
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Original change's description:
> Vulkan: remove SpirvVaryingPrecisionFixer
>
> Bug: angleproject:7488
> Change-Id: I957839bd8fbdf1cd849d5ed7e9edd65fd1a5f2cb
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780874
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Bug: angleproject:7488
Change-Id: I90b584cbc549a663bca734a59d135a1d1d5bcbfc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4049421
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
27727e50
|
2022-11-21T00:00:00
|
|
Fix ProvokingVertex typos
Aligned the parameter name with the upstream specs
Moved ValidateProvokingVertexANGLE to validationESEXT.cpp
Bug: angleproject:2829
Change-Id: I820a90c20ef0a1873640c933b1de52526cac7e70
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4043701
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
b2f55ec3
|
2022-11-14T16:07:19
|
|
Vulkan: Add memory allocation/deallocation counter
* Added a counter to the renderer object to keep track of the
memory allocations and deallocations per allocation type.
* The counters are updated with the functions onMemoryAlloc() and
onMemoryDealloc(), which can be added next to the allocation or
deallocation point.
* Currently used for buffer memory and image memory.
* Removed some of the redundant arguments from vk_helper and
suballocation functions.
Bug: b/242641395
Change-Id: I58b38f619df7bef0ba5fa3373a8db5aed0ef142c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4014164
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c5724a8d
|
2022-11-17T15:48:16
|
|
Vulkan: Retain mCurrentGraphicsPipeline if RP started
ContextVk::mCurrentGraphicsPipeline is created before renderpass
started. Right now we retain mCurrentGraphicsPipeline immediately. In
future CL of per context queue serial, renderpass will not have queue
serial until started, which means we can only retain pipeline object
after renderpass started. This CL moves the
mRenderPassCOmmands.retain(mCurrentGraphicsPipeline) call to renderpass
start time. This exposed a bug that ContextVk may have a dangling
mCurrentGraphicsPipeline pointer to an already destroyed object, if the
program has been destroyed. When ProgramExecutableVk::resetLayout()
calls ContextVk::onProgramExecutableReset () we early out because
executable no longer matches. This causes mCurrentGraphicsPipeline still
point to now deleted pipeline object. This CL fix this dangling pointer
bug by always clear mCurrentGraphicsPipeline to null in
ContextVk::onProgramExecutableReset() without checking if program
executable is the one gets reset.
Bug: b/255414841
Change-Id: I6d698c517d7a948b65c465eaaa59ea0bca24e2c8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4035107
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
fc1c8cd1
|
2022-11-01T00:00:00
|
|
Refactor validation of partial compressed texture uploads
Optimized ValidCompressedSubImageSize for valid usage
and simplified its control flow.
Fixed false negative validation when the replaced
image region does not fill the entire level but
nevertheless reaches the image boundaries.
Updated InternalFormat::getCompressedImageMinBlocks
to use IsPVRTC1Format helper function.
Fixed InternalFormat::computeCompressedImageSize for
3D compressed texture blocks.
Removed redundant checks from ValidateES3TexImageParametersBase.
Optimized IsPVRTC1Format helper function to be a constexpr.
Adjusted tests, added suppressions for Intel and Adreno.
Bug: angleproject:7473
Change-Id: I6fadce949785a35e2706b06eeb00e878aa3710a7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4037671
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
15c8a055
|
2022-11-22T13:31:39
|
|
GL: Only reset transform feedback varyings when necessary.
ProgramGL sychronizes all state before linking. This means setting the
transform feedback varyings to 0 when transform feedback is not used.
Skip this call to synchronize transform feedback varyings when it will
have no effect.
This is a speculative fix for crashes on IMG drivers. Some of the logs
mention glTransformFeedbackVaryings reading invalid memory.
Bug: chromium:1322820
Change-Id: Ib4ba9c6ea6f9ab8accb82f243472c4d4443b7fd5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4049420
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
68b47e58
|
2022-11-16T10:46:59
|
|
Vulkan: Initial support for VK_EXT_graphics_pipeline_library
When available, this change uses VK_EXT_graphics_pipeline_library to
create pipelines. Currently, it is only used when
graphicsPipelineLibraryFastLinking is available. This restricts the use
of this extension to devices where monolithic pipelines are not any more
performant than linked libraries.
A future change adds support for other implementations by providing
async pipeline creation.
Bug: angleproject:7369
Change-Id: I1e3b7ac4aa56e75c7d6f4d0d5ea91cb0b862e581
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031489
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Steven Noonan <steven@valvesoftware.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f37a32f0
|
2022-11-14T14:11:06
|
|
Remove DisplayGbm and SurfaceGbm.
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>
|
|
0c0bbcf5
|
2022-11-18T22:18:55
|
|
Revert "Vulkan: Only allocate default attribute if needed"
This reverts commit 85c98a92bb763452133bd7b4580d80625bb2c75d.
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>
|
|
8378032e
|
2022-11-15T11:47:55
|
|
Vulkan: Remove get API for mLastCompletedQueueSerial
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>
|
|
c7414946
|
2022-11-16T10:35:33
|
|
Vulkan: Enable async pipeline cache sync by default
Bug: b/246683126
Change-Id: I593650364250f8802e9f546ab9957cf1c30e596a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031487
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
81e9dc56
|
2022-11-04T00:00:00
|
|
Reland "Metal: Skip disabled draw buffers"
This is a reland of commit 4b084310d7bbb33631d58a461eb5814c12220926
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>
|
|
70cf2322
|
2022-11-16T10:25:07
|
|
Vulkan: Move async pipeline cache sync feature to backend
Bug: b/246683126
Change-Id: I194e488e04580cee7055c0674091f1228984edf9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031486
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Solti Ho <solti@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
386ef2ee
|
2022-11-17T13:16:27
|
|
Fix EGL validation of core robustness attribute.
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>
|
|
7e7a47df
|
2022-11-16T21:29:20
|
|
Vulkan: Adjust logicOp dynamic state workaround
Bug: chromium:1379201
Change-Id: I355d0034de12e5aaf95c160efcace34ff7062337
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031149
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jie A Chen <jie.a.chen@intel.com>
|
|
91ee237f
|
2022-11-17T03:19:34
|
|
Revert "Metal: Skip disabled draw buffers"
This reverts commit 4b084310d7bbb33631d58a461eb5814c12220926.
Reason for revert: Crashing in webgl2_conformance_metal_passthrough_tests https://chromium-review.googlesource.com/c/angle/angle/+/4003180/comments/6e35ee21_38288238a
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: I485691bdcc4214ed6958f606591f23331bfbea53
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4032391
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Austin Eng <enga@google.com>
Reviewed-by: Austin Eng <enga@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
03e69803
|
2022-11-16T15:49:44
|
|
Fix a document error
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>
|
|
2dde7357
|
2022-11-16T10:39:32
|
|
Vulkan: `const` render passes
Bug: angleproject:7369
Change-Id: I1ee1449bd8ea8c6a3e26e50a7f3734fad91dc911
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031488
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5ef24b26
|
2022-11-16T11:17:53
|
|
Vulkan: Limit logicOp dynamic state workaround to old mesa
Bug: chromium:1379201
Change-Id: I618507b118b4420793ec172f3ed1f0dddbb2ae86
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031492
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
3f9223b2
|
2022-11-15T20:31:55
|
|
Shader: Initialize mMaxComputeSharedMemory
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>
|
|
4b084310
|
2022-11-04T00:00:00
|
|
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>
|
|
2fa255da
|
2022-11-09T16:44:02
|
|
FrameCapture: Don't capture trailing zeros in shader strings.
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>
|
|
66fda678
|
2022-11-14T11:10:54
|
|
Capture/Replay: Delete buffer after test support for coherent
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>
|
|
8028bffc
|
2022-11-14T16:45:07
|
|
Vulkan: Flatten GarbageAndSerial class
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>
|
|
9483002d
|
2022-11-14T16:01:15
|
|
Vulkan: Clean up submitFrame/submitCommands
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>
|
|
139b9df8
|
2022-11-14T15:53:15
|
|
Vulkan: getCommandBufferOneOff could reuse if serials are equal
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>
|
|
85c98a92
|
2022-11-11T17:01:40
|
|
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>
|
|
44d8fef8
|
2022-11-01T00:00:00
|
|
Add ANGLE_provoking_vertex spec
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>
|
|
40e4bc63
|
2022-11-09T12:40:48
|
|
Make DrawRangeElements validation consistent with DrawElements
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>
|
|
4878b317
|
2022-11-14T11:41:20
|
|
Fix variable names
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>
|
|
f62405c5
|
2022-10-31T18:47:52
|
|
Add utilities to get the Android backtrace
* Added getBacktraceInfo(), which returns the backtrace information
from the ANGLE code, including the addresses and the symbols if
possible
* Returns the data in an instance of the new class BacktraceInfo.
* In order to access this function, backtrace_utils.h has been
included in vk_utils.h
* New GN flag to make use of this feature:
* angle_enable_unwind_backtrace_support
* Current only available on Android (debug mode)
* If the flag is disabled, getBacktraceInfo() returns an empty
object.
* Added functions in util/ (per platform) to print the BacktraceInfo
data.
* Example of usage:
angle::printBacktraceInfo(angle::getBacktraceInfo());
* Minor edit: Moved cstdint from android_util.cpp to its header.
Bug: b/258475923
Change-Id: I6115462a1a2845d40c7cafc14ce52df09ecdcf34
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3995843
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
9c019cb3
|
2022-11-08T13:29:08
|
|
Vulkan: Features for graphics pipeline library
Bug: angleproject:7369
Change-Id: I561cc095dcf2d4c71d24de8a6ca08d45567ad937
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4014519
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
e99e40c9
|
2022-10-11T12:27:18
|
|
FrameCapture: Implement shadow memory for coherent buffers.
On certain devices like the Pixel 6 it is not possible to mprotect
Vulkan allocated memory required for coherent buffer tracking.
To overcome this limitation implement a shadow memory for coherent
buffers when running FrameCapture that is exposed to the app and
syncronized with the Vulkan memory and can be mprotected for coherent
buffer tracking.
Add a test to determine whether memory protection can be used directly
or will require shadow memory. Run this test only on build
configurations with assertions enabled.
Determine the requirement of shadow memory through a deny list of
device manufacturers and models, which is checked against ANGLE's
SystemInfo.
Add ANGLE_CAPTURE_FORCE_SHADOW environment setting and Android
equivalent to force enable shadow memory.
Test: angle_end2end_tests --gtest_filter="BufferStorageTestES3.*/ES3_Vulkan"
Bug: angleproject:7402
Change-Id: I74b7930259d3bc1846ef96fffa782f8bc553b043
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3945018
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5a89387b
|
2022-11-01T10:50:26
|
|
Vulkan: Remove the best-practices layer
It doesn't produce anything actionable in ANGLE (any more), but is
regularly a source of false positives.
Bug: angleproject:5336
Bug: angleproject:7470
Bug: angleproject:7795
Bug: b/166641492
Bug: b/166793850
Change-Id: I7fb322386e779c8c1f9a7805eb522926d8780446
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3996803
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7fefd230
|
2022-10-20T00:00:00
|
|
GL: Adjust APPLE_clip_distance exposure
Partial revert of
I458cad29c10b9d9193c5233e24bac53361ba104e
APPLE_clip_distance cannot be implemented on top of
EXT_clip_cull_distance because the former is defined both
for ES 2.0 and ES 3.0 while the latter is defined only for ES 3.0.
Although some ES 3.0+ drivers allow gl_ClipDistance built-in in
ESSL 1.00 shaders, this behavior is not specified so ANGLE should
not allow it.
Added independent ESSL 3.00 gl_ClipDistance and gl_MaxClipDistances
definitions.
Adjusted translator unit tests.
Bug: angleproject:4452
Change-Id: Ib582ce0ac7ccb65f0200ef1d17eaab0c83b228cf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963745
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
78e28cb8
|
2022-11-03T11:05:48
|
|
Vulkan: Remove glslang fallback
ANGLE's SPIR-V generator is battle tested by now.
Bug: angleproject:6210
Change-Id: I2ed88642e3ede435e3f906fbd701133be6873fb7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4002868
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
5b218196
|
2022-11-06T11:39:23
|
|
Metal: Remove compilation through SPIR-V
Direct metal generation is stable.
Bug: angleproject:6081
Change-Id: If9e76f61ad38f2fc9963f0181dfd03c99ffa3e2b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4003675
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
e64c4493
|
2022-11-07T15:34:38
|
|
IWYU: add unistd.h for access in rx::DeviceVkLinux
Bug: chromium:957519
Change-Id: Ie23c3ceb6757ac48f2aca97c8c212103c81d4fda
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4009019
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
335b5aba
|
2022-11-07T09:28:10
|
|
Capture/Replay: Make CaptureMidExecutionSetup param constant
There is no need for for the context parameter to be non-constant.
Bug: angleproject:7805
Change-Id: I1d998cf40f61a977ebce6d1160a859e082d99688
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4008198
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
109604b8
|
2022-11-07T09:26:05
|
|
Capture/Replay: remove unused context param from scanSetupCalls
Bug: angleproject:7805
Change-Id: I4e00876ad6174c15aaa9503cf9eeaa6ea041c2a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4004416
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c47e7711
|
2022-11-04T10:32:14
|
|
Metal: remove duplicate code in RenderPassDesc conversion
Remove duplicate code that was due to a rebase error in
"Metal: Remove use of ANGLE_MTL_AUTORELEASE from mtl_state_cache"
415ff51b8005ab462c3bd883dff75d31499132dc
Bug: angleproject:7813
Bug: angleproject:6833
Change-Id: If4af7a49033f31dfa1e10571388e8ad9922939e8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4003223
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
9bda9a79
|
2022-10-22T22:05:11
|
|
Add Store Ops to pixel local storage
Browsers will need the ability to pre-empt pixel local storage, which
means every plane will need a backing store to dump to. Store Ops allow
the app to still avoid memory transactions at the end of PLS even if
their plane has a backing texture.
Bug: angleproject:7279
Change-Id: I3a3efa21773f87c03cd346a996e3c638028c68ab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3974652
Commit-Queue: Chris Dalton <chris@rive.app>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
a032bd10
|
2022-11-04T10:36:07
|
|
Vulkan: Handle extension enumeration returning less than requested
Speculative fix for b/249457381 where we have previously seen
extensions enabled/disabled based on settings which may be
loaded/changed between vkEnumerate*() calls.
Bug: b/249457381
Change-Id: I36aa8aec38037ff3d8c9a036d27289e1abb930fb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4006713
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7fa69511
|
2022-11-04T10:10:05
|
|
FrameCapture: Skip glGetActiveUniformBlockName calls.
Since moving to plain C traces removed references to uniform block
indices, this call should also be part of the related skip list.
This fixes capturing traces using the call an not hitting UNREACHABLE
when handling TUniformBlockIndex.
Bug: angleproject:7731
Bug: angleproject:7402
Change-Id: I510aceaa0965c2469367212784b504ea251a2541
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4003222
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
3605b399
|
2022-10-20T17:00:02
|
|
Move PLS clear values back into context state
The API that required packing raw data into a buffer was un-ergonomic
for developers and difficult to implement for WebGL vendors.
Bug: angleproject:7279
Change-Id: If7c98908c285462c5775e8e2d8811883be139f64
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3972376
Commit-Queue: Chris Dalton <chris@rive.app>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3226cce3
|
2022-11-02T16:02:46
|
|
Update EGL_ANGLE_metal_shared_event_sync implementation.
Rename the extension's .txt file to match the current name of the
extension.
Update function signatures to take EGLSync rather than EGLSyncKHR. The
two types are conceptually incompatible. This extension requires the
use of eglCreateSync rather than eglCreateSyncKHR because the latter
takes an array of EGLInt, but EGLAttrib is needed to express pointers
(to MTLSharedEvents) in the attribute list.
Revise ContextMtl::flush to use WaitUntilScheduled on older operating
systems not supporting MTLSharedEvent.
Bug: angleproject:7809
Change-Id: I39197616dc3e1e7ec6dc68dd83b4fde05184debf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4000941
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
dd560015
|
2022-09-28T14:40:01
|
|
Reland "Vulkan: Implement EGL_EXT_device_drm[_render_node]"
This is a reland of commit 8900cbf96a3127880b1667d2242dc13a98cfe029
Original change's description:
> Vulkan: Implement EGL_EXT_device_drm[_render_node]
>
> These extensions are needed by Exo for zwp_linux_dmabuf v4 support.
>
> Unfortunately `VkPhysicalDeviceDrmPropertiesEXT` doesn't give us the
> information about the filesystem layout, needed by the EGL version.
> As ChromeOS is currently the only user, implement the extension only for
> Linux where we can reasonably assume `/dev/dri/...` file paths.
>
> We do not, however, limit us to the GBM backend - having the extension
> working in e.g. a nested X11 or Wayland environment is quite helpful.
>
> Bug: angleproject:7686
> Change-Id: I6de14e68ffbc479450bd22a182bc138365efb516
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3996703
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:7686
Change-Id: I66dfd7aa51f76cb9668dbfbd0f3e1f32123bff7c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4003941
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
71d28a9b
|
2022-11-02T13:19:20
|
|
Vulkan: Remove unused ShaderAndSerial
The serial in the ShaderAndSerial is unused. This CL removed
ShaderAndSerial and replaced with ShaderModule directly.
Bug: b/257116399
Change-Id: I50d42af7818a12888309a80423531d75135e0bfd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3998747
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9340f01d
|
2022-11-03T00:00:00
|
|
Metal: Restore load actions after attachment updates
Framebuffer invalidation sets attachment load actions
to MTLLoadActionDontCare. Restore them to MTLLoadActionLoad
after content changes, which may be caused by texSubImage uploads.
Fixes:
* SimpleStateChangeTestES3.InvalidateThenSubUploadThenBlend
* conformance2/renderbuffers/invalidate-framebuffer.html
Bug: angleproject:7397
Change-Id: I8a1b223c92b1fd082f4961161efafaf6b60f8698
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4001808
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
319f8228
|
2022-11-03T16:58:07
|
|
Revert "Vulkan: Implement EGL_EXT_device_drm[_render_node]"
This reverts commit 8900cbf96a3127880b1667d2242dc13a98cfe029.
Reason for revert: anglebug.com/7811
Original change's description:
> Vulkan: Implement EGL_EXT_device_drm[_render_node]
>
> These extensions are needed by Exo for zwp_linux_dmabuf v4 support.
>
> Unfortunately `VkPhysicalDeviceDrmPropertiesEXT` doesn't give us the
> information about the filesystem layout, needed by the EGL version.
> As ChromeOS is currently the only user, implement the extension only for
> Linux where we can reasonably assume `/dev/dri/...` file paths.
>
> We do not, however, limit us to the GBM backend - having the extension
> working in e.g. a nested X11 or Wayland environment is quite helpful.
>
> Bug: angleproject:7686
> Change-Id: I6de14e68ffbc479450bd22a182bc138365efb516
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3996703
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:7686
Change-Id: I703351e93c4befbd3415b9ba04730066ee9c6afd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4003857
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
8900cbf9
|
2022-09-28T14:40:01
|
|
Vulkan: Implement EGL_EXT_device_drm[_render_node]
These extensions are needed by Exo for zwp_linux_dmabuf v4 support.
Unfortunately `VkPhysicalDeviceDrmPropertiesEXT` doesn't give us the
information about the filesystem layout, needed by the EGL version.
As ChromeOS is currently the only user, implement the extension only for
Linux where we can reasonably assume `/dev/dri/...` file paths.
We do not, however, limit us to the GBM backend - having the extension
working in e.g. a nested X11 or Wayland environment is quite helpful.
Bug: angleproject:7686
Change-Id: I6de14e68ffbc479450bd22a182bc138365efb516
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3996703
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5e95a4d9
|
2022-10-07T00:52:38
|
|
Add an EXT_shader_pixel_local_storage impl of PLS
Translates ANGLE_shader_pixel_local_storage shaders directly to
EXT_shader_pixel_local_storage.
Polyfills load/store operations using internal fullscreen draws.
Since the ANGLE extension needs the ability to preserve all active PLS
planes to textures, we can only support this extension when the backend
context also has access to ES 3.1 shader images.
Bug: angleproject:7279
Bug: angleproject:7771
Change-Id: Id348bde412efcc081ff29ee05ec59ad652f77569
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3966075
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1b88c41f
|
2022-10-31T10:58:09
|
|
Vulkan: Remove the disableFifoPresentMode feature
Workaround was added for old Intel bots, no longer applicable.
Bug: angleproject:3153
Change-Id: Ib248927fbb1be33d8bd89a0c8185761f7f1ed6fa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3993361
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
8f420fd0
|
2022-11-01T18:51:41
|
|
Repurpose enableCompressingPipelineCacheInThreadPool
For platforms with a higher blob cache limit, say 32MB, compressing the
bigger pipeline cache data is better delegated to a background thread.
This change repurposes this default disabled workaround as a feature for
such platforms.
This change also enables enableCompressingPipelineCacheInThreadPool for
mesa venus driver.
Bug: b/246683126
Test: apps runs normally and cts passing
Change-Id: Ied1d9b3ee351f71abedeed04d21c700c1ad7cd18
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3997592
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9f693aa3
|
2022-10-22T14:45:59
|
|
Implement an allow list for PLS
In order to guarantee no data is lost while using the
EXT_shader_pixel_local_storage extension, we need to restrict
applications to a small subset of commands while pixel local storage is
active. This CL implements the allow list for GL entrypoints using
wildcard matching inside the code generator, and adds custom validation
for the more specific restrictions that go into effect when PLS is
active.
Bug: angleproject:7279
Change-Id: I5dd48bd93c10e8775f32be32a4fcf17855eb2f0e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3932552
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
27561f04
|
2022-10-30T09:38:00
|
|
Capture/Replay: Emit always gContextMap2 when capturing traces
Bug: angleproject:7800
Change-Id: I12fc39d709527865a9b248a00c95d281c4e4d743
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3993317
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
67ee4976
|
2022-10-31T15:34:19
|
|
Vulkan: Skip BestPractices-ImageBarrierAccessLayout
Bug: angleproject:7795
Change-Id: I98f6840f9cd2956f7e73d0496a26f504516c48e2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3993364
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
805e00b8
|
2022-10-27T00:00:00
|
|
D3D11: Add clip and cull distance support
Added gl_ClipDistance and gl_CullDistance
support to HLSL translator.
Added enabled clip distance GL state emulation.
Added limitSimultaneousClipAndCullDistanceUsage
limitation.
Expanded and optimized related end2end tests.
Bug: angleproject:4452
Change-Id: Id66312505254ceff43d5258d486ddcdb0462db47
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3990944
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
7b102c18
|
2022-10-31T10:29:45
|
|
Vulkan: Disable logicOp dynamic state on Intel/Mesa
Hits a stack overflow inside the driver.
Bug: chromium:1379201
Change-Id: I52e5254b37688a027cbcf5ee5752de36b9b2a3aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3993360
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
32fb3be6
|
2022-10-27T16:05:30
|
|
Vulkan: disable rasterization order feature if isQualcomm
It is simpler to just disable it for Qualcomm.
Bug: b/255837430
Change-Id: I884a9635ed2c6049fa4f79e10613f87f3f40f199
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3989644
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Chia-I Wu <olv@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5fc46a22
|
2022-10-27T16:02:31
|
|
Vulkan: Specify rasterization order only when there is fb fetch
The original change had a performance impact on Qualcomm open source
driver on some traces
trex_200 22ms -> 39ms
car_chase 80ms -> 190ms
because it is expensive to make fb fetch coherent on Qualcomm
hardware. This fixes the regression by making sure we specify the
rasterization order only when there are indeed fb fetches.
But we believe other workloads can still be hit by the issue even
after this fix. We will disable rasterization order for Qualcomm
driver in the next commit.
Bug: b/255837430
Change-Id: If240dcbfd73112a72dc1e537821636ca16290eaf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3989166
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Chia-I Wu <olv@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Chris Dalton <chris@rive.app>
|
|
ce62d52f
|
2022-10-27T18:41:11
|
|
Fix Mid Execution Capture for External Texture
How we capture eglCreateImage and eglCreateImageKHR
have changed recently. Fix the code that recreate
eglCreateImageKHR calls for external texture type
in Mid Execution Capture.
Bug: angleproject:7758
Change-Id: I2bd35ec3349f1d4f1aef1bf7f76ac50d4abca53d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3989645
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
4abae6f9
|
2022-10-28T11:09:15
|
|
Metal: Fix 8-bit type name
This fixes a probable typo for the 8-bit unsigned integer value type.
Test: build ANGLE with Metal renderer enabled on iOS.
Bug: None
Change-Id: I2a332d996633fd81d01eece75817efb5683a5b31
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3989426
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
9b9d8032
|
2022-10-19T14:57:03
|
|
Avoid mExtensions for initializing
mExtensions tracks the currently enabled extensions, while
nativeExtensions tracks which extensions are available on a platform.
This makes nativeExtensions more suitable for initializing data, as
extensions may be disabled at initialization and enabled later.
Bug: angleproject:7769
Change-Id: I9ee821a931045fc89091473f35e2b306ee653613
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3965610
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Sean Risser <srisser@google.com>
|
|
53abcf15
|
2022-10-25T15:26:44
|
|
Vulkan: Bug fix in supportsTimestampSurfaceAttribute
Move the initialization of "vkGetPastPresentationTimingGOOGLE"
and the assert check to after vkDevice creation.
Bug: angleproject:7489
Change-Id: I1ef50d64af3bea44a182be95dd182532b2c60d36
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3979994
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
81a244de
|
2022-10-10T15:32:25
|
|
Adding a class to perform ASTC texture decompression on the CPU
This significantly improves performance by caching and re-using the ASTC
decoder context, and using multi-threaded decompression.
This code was originally written for gfxstream.
Bug: b/250688943
Change-Id: I1727447907f2e25cf9b854ffcc9ccfc04db2fb91
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3929008
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ef8350a6
|
2022-10-21T06:30:51
|
|
GLES1Renderer: Handle GL_BGRA the same way we handle GL_RGBA
Fixes minetest
Bug: angleproject:7774
Change-Id: Iacbe8cb9aa434ec624bfaf056092b77bda468b3f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3970417
Commit-Queue: Constantine Shablya <constantine.shablya@collabora.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Constantine Shablya <constantine.shablya@collabora.com>
|
|
c97edf51
|
2022-10-24T00:00:00
|
|
Metal: Enable APPLE_clip_distance
Adjusted direct-to-Metal shader translator to support
gl_ClipDistance built-in.
Bug: angleproject:6291
Change-Id: Ice4cc3e4d7c131cbaac9726e845a5c1e59787e69
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3976428
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
dc62b3ee
|
2022-10-10T21:00:16
|
|
Capture/Replay: Add trace interpreter.
Also adds a self-test using the retrace script.
Bug: angleproject:7752
Change-Id: I1985b47250bef99726d2ca2d90bef859208e357e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3965128
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
a41c6173
|
2022-10-16T08:28:53
|
|
Simplify trace test names.
Originally we had a lot of conditionally enabled test configs
in angle_perftests, that we enabled behind a flag because the
total runtime would be too large if we left everything enabled.
This CL switches to using a single test set, one for each
trace, and using a the same command-line API we use in dEQP
and the ANGLE samples to pick a single configuration. This
makes it easier to pick exactly what configurations you want
from the command line.
Because we only run one configuration each time, we don't need
to specialize the test name to include the configuration info.
We can also simplify TracePerfTest -> TraceTest since these
tests are run for both perf and correctness.
Old name: TracePerfTest.Run/vulkan_trex_200
New name: TraceTest.trex_200
Example for tests that don't use default arguments:
Old args: --enable-all-trace-tests
Old name: TracePerfTest.Run/native_offscreen_trex_200
New args: --use-gl=native --offscreen
New name: TraceTest.trex_200
Bug: angleproject:7755
Change-Id: Id93cf5725eff2e2c6b3b14804bc2902f38306e7e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3966535
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
06ecc918
|
2022-10-10T20:59:38
|
|
Capture/Replay: Optionally emit C sources.
This adds an option that controls if we can write out simplified C
replays. Once the work is finished we can remove the option and
only allow emitting C instead of both C and CPP.
Required emitting multi-line strings differently, as well as
conditionalizing a few other language differences.
Bug: angleproject:7713
Change-Id: I3303134316ed3fc1b4286bcd32961e8f7ecfbb06
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3953339
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
596c2acf
|
2022-10-20T18:59:04
|
|
FrameCapture: Fix FenceSync for MEC
Follow up to:
https://chromium-review.googlesource.com/c/angle/angle/+/3957164
Test: MEC for Grimvalor
Bug: angleproject:7758
Change-Id: Ia0895e923d9bee41bcfbff48d15bf9aa86e29d17
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3969519
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
adde4265
|
2022-10-19T23:33:48
|
|
Vulkan: Separate pipeline cache query and insertion
In preparation for VK_EXT_graphics_pipeline_library usage, the query and
insertion functions of the graphics pipeline cache are separated. This
will allow the implementation using VK_EXT_graphics_pipeline_library to
query the monolithic pipeline cache, and if a pipeline is not found,
create it through the pipeline library caches.
Bug: angleproject:7369
Change-Id: Iebf7669ae3ea95e180646198c4861cc59d67e580
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963854
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
5c0b329e
|
2022-10-19T16:59:58
|
|
Vulkan: Clean up rotation spec const update
Update during makeCurrent was done by invalidating the program, and then
at pipeline creation time the spec const was updated. This is changed
so that makeCurrent updates the spec const directly, and avoid
invalidating the pipeline.
Also removes spec const usage calculation, as it's unused.
Bug: angleproject:7369
Change-Id: I79444ce4173c4db9c6800fb02afd9e8447a25f82
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963853
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
6193274a
|
2022-10-10T21:00:12
|
|
Capture/Replay: Redesign in-memory call capture replay.
This will allow the replay to use the call captures returned
by the interpreter's parser.
Bug: angleproject:7752
Change-Id: If1b281d9ce7ccfbdc23bea615e1e2258c8a029f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963367
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
fd45cec3
|
2022-10-10T20:59:58
|
|
Entry Points: Move enum helper to registry_xml.
This will make it accessible to other generators.
Bug: angleproject:7752
Change-Id: I91bc9a4d6c919266ea329f66d271bf881d99d17a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963364
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
01e6be3c
|
2022-10-19T20:42:30
|
|
Actually use EXT_shader_framebuffer_fetch_non_coherent for PLS
Bug: angleproject:7279
Change-Id: I37099a917303ab41d86dbe1203183ac55229942f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3966074
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|