|
1ab6d214
|
2021-06-07T08:49:09
|
|
Capture: Create group variable for BlockMemberInfo
Also declare GroupScope as NO_DISCARD.
Bug: angleproject:6016
Change-Id: I738f137727d52a0930cd8c400fbc05f1cc8cfdad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2943927
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ee4a5266
|
2021-06-01T14:57:24
|
|
Vulkan: SPIR-V Gen: Function calls
This change implements function calls. As a result, transform feedback
tests are enabled as well as support for transform feedback emulation
(which contains functions and if blocks).
`const` and opaque uniform function arguments take intermediate values,
while the rest take memory objects. If the argument being passed is an
unindexed lvalue, it can be directly given to the function. Otherwise a
temporary variable is made which is initialized by the parameter if
necessary (in and inout parameters) and later overwrites the parameter
if necessary (out and inout parameters).
Bug: angleproject:4889
Change-Id: I8976cdd17870c35d5a2daeed3c38de57ada931d9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2930363
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c1932fb5
|
2021-06-07T12:25:47
|
|
Serializer: Print FBO attachment name instead of a number
Bug: None
Change-Id: I419a0ca6d1c2e3c47dc84b106baf40dc0abb85cb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2943930
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0a6c6c00
|
2021-06-01T10:59:17
|
|
Vulkan: Submit Dispatch commands outside renderpass
Compute dispatch commands must be submitted outside a renderpass,
but their associated debug event markers were being submitted
on the renderpass commandbuffer. The dispatch debug event markers are
now handled separately from those for draw calls and are now submitted
on the correct commandbuffer.
Failure manifested in malformed AGI traces for Ragnarok M:
Eternal Love
Bug: b/181611786
Change-Id: I768eeccd76be38818fc99d6d56f5899290c8fc5b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2930818
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
26a54260
|
2021-05-26T16:53:29
|
|
Reland "Vulkan: Handle immutable sampler state change in TextureVk"
This is a reland of 349c08300e08bc809c448d62e0ad969ecb17c047
Skip YUV tests on Pixel2
Original change's description:
> Vulkan: Handle immutable sampler state change in TextureVk
>
> Transitioning between sources in RGB and YUV colorspace or between
> YUV formats with different layout should force the recreation of
> pipeline layout and the invalidation of texture's sampler.
>
> Only textures that are EGLImage targets are handled for now.
>
> Bug: b/155487768
> Bug: angleproject:5033
> Bug: angleproject:5773
> Test: ImageTest.SourceAHBTarget2DExternalCycleThrough*Vulkan
> Change-Id: I02d5763e7f89b910313e14b57bfc5403113dfbb2
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2924415
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Bug: b/155487768
Bug: angleproject:5033
Bug: angleproject:5773
Change-Id: Ie3791bc6f6e9b53eb0db23759a14fdc038c8f5b6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2939354
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
03d8e7c9
|
2021-06-04T21:22:52
|
|
Revert "Vulkan: Handle immutable sampler state change in TextureVk"
This reverts commit 349c08300e08bc809c448d62e0ad969ecb17c047.
Reason for revert: anglebug.com/6028
Original change's description:
> Vulkan: Handle immutable sampler state change in TextureVk
>
> Transitioning between sources in RGB and YUV colorspace or between
> YUV formats with different layout should force the recreation of
> pipeline layout and the invalidation of texture's sampler.
>
> Only textures that are EGLImage targets are handled for now.
>
> Bug: b/155487768
> Bug: angleproject:5033
> Bug: angleproject:5773
> Test: ImageTest.SourceAHBTarget2DExternalCycleThrough*Vulkan
> Change-Id: I02d5763e7f89b910313e14b57bfc5403113dfbb2
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2924415
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Bug: b/155487768
Bug: angleproject:5033
Bug: angleproject:5773
Bug: angleproject:6028
Change-Id: Ib8b3b54ff61f26910df2af4a6b894b3d2d5906bb
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2941547
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
|
|
046f70a3
|
2021-06-04T15:40:16
|
|
Revert "Remove unused code from ValidateES2CopyTexImageParameters"
This reverts commit fcd7affb6bfd9e17d6c12e836158f8f0fc634b14.
Reason for revert: Differences in format checks make the validation
logic trip a newly added ASSERT.
Bug: chromium:1216276
Original change's description:
> Remove unused code from ValidateES2CopyTexImageParameters
>
> Compressed formats are rejected earlier with
> ValidateCopyTexImageParametersBase
>
> Bug: angleproject:5731
> Change-Id: I7809140af84f2c565008e211adf0f998a0e57e91
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2741580
> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Bug: angleproject:5731
Change-Id: I7734d9bce538e5679c8ee672f547941f5f693261
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2940904
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
349c0830
|
2021-05-26T16:53:29
|
|
Vulkan: Handle immutable sampler state change in TextureVk
Transitioning between sources in RGB and YUV colorspace or between
YUV formats with different layout should force the recreation of
pipeline layout and the invalidation of texture's sampler.
Only textures that are EGLImage targets are handled for now.
Bug: b/155487768
Bug: angleproject:5033
Bug: angleproject:5773
Test: ImageTest.SourceAHBTarget2DExternalCycleThrough*Vulkan
Change-Id: I02d5763e7f89b910313e14b57bfc5403113dfbb2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2924415
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
683064b7
|
2021-06-02T02:59:55
|
|
Vulkan: Fix missing operand list in OpExecutionMode parser & builder
Bug: angleproject:4889
Change-Id: Ie864031caeddfcf5202044b0f9c197b3883ceaf7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2934782
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
16b10a54
|
2021-05-21T15:35:00
|
|
Revert "Capture/Replay: Emit SetupReplay() late"
This reverts commit 54ba6f0135715737a55f2dc4fc1cb86874fb98f9.
Reason for revert: breaks MEC.
Bug: angleproject:5999
Original change's description:
> Capture/Replay: Emit SetupReplay() late
>
> Only emit SetupReplay() after all captured frames have been run,
> so that InitializeReplay() is called with values of
> readBufferSize and the maxClientArraySize that are sufficiently
> large for all frames.
>
> Bug: angleproject:5965
> Bug: angleproject:5895
> Change-Id: Ic59597dc27f733fb210d7cc5a144a86e54cd2040
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2894486
> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Bug: angleproject:5965
Bug: angleproject:5895
Change-Id: Ia901183b2052fa2b4552ad2e09818a2894fbdf6b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2911878
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
9ba86e06
|
2021-06-03T13:41:39
|
|
Revert "FrameCapture: Write the frame cpp file even if frame is empty"
This reverts commit 6619c464e5f6237d7465ec945d24164372aa4196.
Reason for revert: breaks MEC.
Bug: angleproject:5999
Original change's description:
> FrameCapture: Write the frame cpp file even if frame is empty
>
> The index file will add a reference to this file, and the replay will
> also expect that the frame execution function and the context function
> exist, so write the file even if the frame is empty
>
> Bug: angleproject:5939
> Change-Id: I265d061fdae51b86131d145116ad1c0f9ca8c93f
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2882581
> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
> Reviewed-by: Cody Northrop <cnorthrop@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Bug: angleproject:5939
Change-Id: I759d44ba847c69faf1caf97a9818836d1be3b058
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2937737
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
cf853b30
|
2021-06-03T13:54:44
|
|
Add missing buffer validation to BeginTransformFeedback.
A change to Vulkan exposed this missing validation. In the Vulkan
back-end we do some caching on BeginXFB, which would perform an
invalid memory access. Adding the missing validation correctly
traps the error before we reach the back-end.
Bug: chromium:1171685
Bug: angleproject:4622
Change-Id: I5c92575a07149e431c4f260a4555ff196822c64e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2937022
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
152450f8
|
2021-06-02T15:38:35
|
|
Fix ContextVk::handleNoopDrawEvent() for when no cmd buffer
ContextVk::handleNoopDrawEvent() was created to handle no-op
glDraw*'s. However, it assumed/assert'd a valid
mRenderPassCommandBuffer. That is not always the case.
Fix this by having handleDirtyEventLogImpl() check for a valid command
buffer.
Bug: b/189967673
Bug: b/184888395
Change-Id: Ice7c5da842a6f41f27c24af8e858147d01be86bc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2935756
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
bcb678a5
|
2021-05-27T16:50:55
|
|
Vulkan: Fix deferred clears vs 3D textures
Two bugs are fixed in this change.
One is that framebuffer attachments to 3D textures should not attempt to
defer clears. The clear staged for the 3D texture applies to all
slices, not just the slice the framebuffer is attached to (and that
would get cleared through deferred clears).
Secondly, when clearing an attachment to a 3D texture, the clear must be
applied immediately through a render pass loadOp to affect only the
slice that's attached. This was already handled for layered
framebuffers where the clear was applied immediately if the 3D texture
render target had more layers than the framebuffer. The condition for
this is generalized to check whether the 3D texture has more slices
(regardless of whether the render target is layered or not).
Test is based on one written by Austin Eng <enga@chromium.org>
Bug: angleproject:5967
Change-Id: I43cf5fc24673323eda8390021641e2238be6e375
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2923785
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
41b817f3
|
2021-05-31T17:38:43
|
|
CL: Add buffer enqueue commands
Add buffer enqueue commands to front end and pass-through back end.
Bug: angleproject:6015
Change-Id: I936530d31903e395550e4540339ebec2e6702e65
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2928425
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
daf18594
|
2021-05-31T12:04:42
|
|
CL: Refactor front end entry functions
Move all front end functions that are only called from the OpenCL
entry points to a separate section at the top of the front end
object class bodies, which improves readability.
Bug: angleproject:6001
Change-Id: Id360adbf0c439e4068c379aa4ea1da25e99f7b53
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2928419
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
baca10b7
|
2021-05-29T16:26:57
|
|
CL: Remove object cache and fix multi-threading
All CL front end objects used to be cached to be able to determine
if an object has been created by the front end to check its validity.
The validity is now checked with the existence of an intrinsic value
(the dispatch table pointer), which is consistent with the patterns
found in Mesa and clvk (though clvk uses a magic value).
This allows the removal of all cached objects.
The cached objects were stored with std::unique_ptr. These are now
gone and all remaining pointers are now custom intrinsic reference
count pointers.
Also remove global lock which causes deadlocks, e.g. when CL API
is called from a separate thread to unlock a blocking call with
a user event. Most of the front end is constant and already
thread-safe. The ref count is also thread-safe now (atomic).
A few remaining locks will follow.
Without the global lock it was now possible to make the API
reentrant, and to remove the workaround with the Khronos ICD
loader to skip ANGLE's OpenCL library.
Bug: angleproject:6001
Change-Id: I7d3b52db9011a02cb7ea9ebdeb6e22c4c702ef5b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2927395
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
076974a9
|
2021-05-28T11:44:54
|
|
CL: event creation for front end & passthrough
Add event object to back end and implement creation and info query.
Bug: angleproject:6001
Change-Id: Id4951b726b66afa289fafe1a716a7cfdb6f5826d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2925477
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
d7aa0130
|
2021-04-26T16:56:15
|
|
Upstream Apple's direct-to-Metal backend: compile translator.
This change is meant to merge the translator changes from Apple's
direct-to-Metal backend. Taken from Kyle Piddington's CL:
https://chromium-review.googlesource.com/c/angle/angle/+/2857366/
The goal of this CL is to merge the translator code in a state that
compiles, but not to switch the Metal backend over to use this
translator backend yet.
Bug: angleproject:5505
Change-Id: I68a6354604498cd5fd1eb96c13fc56f3b38f2bd0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897536
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
9459456b
|
2021-05-27T13:43:41
|
|
CL: kernel creation for front end & passthrough
Add kernel object to back end and implement creation and info query.
Bug: angleproject:6001
Change-Id: I6e3fdd2b35d7e73ed56144dc938bf21436d3559f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2922150
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
51ab3dc3
|
2021-05-25T16:54:11
|
|
CL: Improve validation readablity
Improve validation readablity by introducing a bit field class
and by changing how the CL error code is returned.
Bug: angleproject:6001
Change-Id: I51deb745454e5281de725481edef85eb30be28c7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2919690
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: John Plate <jplate@google.com>
|
|
c12f594a
|
2021-05-31T10:48:20
|
|
GL: Chunk uploads of texture data >120kb on Mac.
Mac drivers are hanging and crashing after large glTexSubImage uploads.
Chunk those uploads to avoid this problematic path in the driver.
Bug: chromium:1181068
Change-Id: I7dca0b8e49420f015ff7830283c14283a0515826
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2928098
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
a44b16d3
|
2021-05-26T09:35:56
|
|
Capture/Replay: Force validation on when capturing
Genshin Impact is using EGL_KHR_create_context_no_error to create a
context that exposes GL_KHR_no_error. If it successfully creates
the context, it sends down call sequences that check query
results available immediately after genning query objects:
glGenQueries(1, reinterpret_cast<GLuint *>(gReadBuffer));
UpdateQueryID(415, 0);
glGetQueryObjectuiv(gQueryMap[415], GL_QUERY_RESULT_AVAILABLE, ...);
This throws errors on every platform I have access to, with either
native or ANGLE as the driver. The spec is ambiguous as to whether
this should cause an error, but practically we can't allow this if we
want error free playback of traces.
To support this, we will force validation on in the context when
FrameCapture is enabled. When the app submits invalid calls, they
will be dropped by FrameCapture.
Test: Genshin Impact MEC
Bug: b/181794064
Change-Id: If882d27d74661cd95bc23687eff3056a0f64e3cc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2921068
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
fe93fcdd
|
2021-05-27T13:28:18
|
|
Workaround Mesa 20 Intel driver bug with GLX_OML_sync_control
Disable the use of this extension on Mesa 20/intel, it's causing GPU
hangs.
Bug: chromium:1187475
Change-Id: Ic7029b1f72bd0b0f4a2c11a7fceb0a59f51be8aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2920811
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
b6bd039c
|
2020-10-06T13:34:53
|
|
Vulkan: Fine-grained depth stencil layout transition barrier
Gfxbench Manhattan uses depth attachment as texture in the same render
pass, which creates a feedback loop. The layout we are using for this
has kAllShadersPipelineStageFlags even though it only used by fragment
shader. This creates an unnecessary vertex/fragment dependency that
hurts performance on some mobile GPUs. This CL split
DepthStencilReadOnly to DSAttachmentReadAndFragmentShaderRead,
DSAttachmentReadAndAllShadersRead, and DepthStencilAttachmentReadOnly,
so that if it is used by fragment shader, we only barrier against
fragment stage. If not used by any shader, we don't block any shader
stages. To make names consistent, this CL also renames
DepthStencilAttachmentAndFragmentShaderRead to
DSAttachmentWriteAndFragmentShaderRead, renames
DepthStencilAttachmentAndAllShadersRead to
DSAttachmentWriteAndAllShadersRead.
Bug: b/169891513
Change-Id: Iede497e8af028861f9166a32d122f26dc7aa864a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2453599
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
5e631c5f
|
2021-05-20T11:21:18
|
|
Vulkan: Disable shadowBuffers feature
For PixelUnpack, if the feature is enabled, it always create a shadow
CPU mapped memory. Then when mapBuffer is called, it let user write to
the shadow memory. At unmapBuffer time, it memcpy the shadow buffer data
to context's staging buffer and then issue a vkCmdCopyBuffer from
context staging buffer to the PixelUnpack buffer. This involves too
many data copies. The proper way to do it is simply make sure to create
the buffer as CPU map-able and let user directly write to it. If we find
cases that CPU waiting for GPU to finish is causing performance issues,
there are two ways to improve/fix it: 1)Add event at end of each
renderpass or FBO so that we know if GPU access is finished or not
without have to wait for entire frame to finish rendering. 2) Create
multiple buffers and ping-pong between them, at least there will be no
VkCmdCopyBuffer call involved like shadow buffers do. But we will leave
that to future time when we find such need.
Bug: angleproject:5986
Change-Id: Ib8300e46e779d20533c1f7f81624de0ce003788b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2909758
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d151af7b
|
2021-05-20T10:52:46
|
|
Vulkan: Improve generateMipmapsWithBlit barrier usage
ImageHelper::generateMipmapsWithBlit() implements glGenerateMipmap using
vkCmdBlitImage. For each level it changes layout to
VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL and issue a blit. In order to keep
all mipmap levels' layout consistent, it issues a vkCmdPipelineBarrier
call for the the very last mipmap level to change it to
VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL as well. This creates an
unnecessary barrier for the next operation, that now it sees a barrier
against transfer stage. This CL changes all levels to
VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL so that the whole image will
have consistent layout. After glGenerateMipmap call, the next reasonable
usage is use it in fragment shader, so the barrier is not wasted.
Bug: angleproject:5986
Change-Id: I3690ae8417d97bc504fcf036d016f289e6370526
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2909757
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
a29a64a6
|
2021-05-26T09:34:52
|
|
Capture/Replay: Skip GLGetActiveUniformsiv
Test: Genshin Impact MEC
Bug: b/181794064
Change-Id: Ib0edfa8d1c063d43c34a65be0144bc5efc4cf19b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2921067
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
5ee4a0cb
|
2021-05-25T14:15:14
|
|
Capture/Replay: Support GetUniformIndices
Test: Genshin Impact MEC
Bug: b/181794064
Change-Id: I69e2c78678b8e279478ae946131b7e1730070cb0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2921066
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
565bba3d
|
2021-05-26T17:58:18
|
|
Revert "GL: Skip redundant flushes."
This reverts commit 7a38f3f50f3bb2f747ad3731d307f6af4c0552d2.
Reason for revert: caused numerous test failures on FYI waterfall per http://crbug.com/1213507 .
Original change's description:
> GL: Skip redundant flushes.
>
> Skip flushes when there is no work submitted since the last
> flush.
>
> Clone of geofflang's:
> https://chromium-review.googlesource.com/2911879
>
> Bug: chromium:1181068
> Change-Id: Idd8a1c61b814d746bf1e0225cfc4ca375a7bb224
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2915675
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Bug: chromium:1181068
Bug: chromium:1213507
No-Try: True
Change-Id: Icd1662e4ea541375b44bddaa839a5241cdad5302
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2919503
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f410e81a
|
2021-04-20T14:26:54
|
|
GL: Implement multisampled_render_to_texture
Bug: angleproject:2894, angleproject:5988
Change-Id: I17b55f0655d32d9f41cb55a0467b93a00fba751b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2841084
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f97b8193
|
2021-05-12T12:28:57
|
|
Make ANGLE's program hash key deterministic.
ANGLE's program hash iterates over hash maps which do not guarantee
a determinisitic iteration order. Copy these maps to std::map before
iteration.
It's unclear what must change to make these maps iterate differently,
EGLBlobCacheTest.Functional does cover this path but doesn't trigger
any issues.
Bug: angleproject:5913
Change-Id: Ib5f2c0a0a4e05cbaeeec5d9c889718d53c5fcf1c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2892254
Reviewed-by: Sunny Sun <sunny.sun@arm.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
1aa88398
|
2021-05-24T14:19:05
|
|
CL: program object creation for front end and pass-through
Add program object to back end and implement creation and info query.
Bug: angleproject:6001
Change-Id: If94db8ab8b491e1ac21c767347cabb6f4f3b3cba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2912465
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: John Plate <jplate@google.com>
|
|
a280c671
|
2021-05-24T19:05:44
|
|
Vulkan: Move framebuffer dirty bits handling after texture
When texture changes, it notify the observer. Framebuffer object is one
of the observer and is able to respond to the changes in texture object.
In this specific case, when texture called TextureVk::releaseImage and
requires framebuffer object to syncState and call
TextureVk::initRenderTargets. The problem right now is that framebuffer
object's dirty bits are processed before texture, which means if the
texture is being used by currently bound framebuffer object, it will not
trigger the FBO's dirty bit handling. This CL moves container object
dirty bit (DIRTY_OBJECT_DRAW_FRAMEBUFFER and
DIRTY_OBJECT_READ_FRAMEBUFFER) after texture/image object's dirty bits.
Bug: chromium:1212206
Bug: chromium:1197431
Change-Id: I95723da1ce5b8936d66692242f2e25e7a73bafe6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2915764
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e3dd7161
|
2021-05-24T12:47:38
|
|
CL: sampler object creation for front end and pass-through
Add sampler object to back end and implement creation and info query.
Bug: angleproject:6001
Change-Id: If5b7d09564d773d6aeda7612728e19bfec7f6155
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2912806
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a6210a8f
|
2021-05-23T19:02:46
|
|
CL: image object creation for front end and pass-through
Add image object to front end and implement creation and info query.
Cache more Device info for Image validation.
Bug: angleproject:5956
Change-Id: I38374f4c2c85287109c464ac90eb1bf49b07fa0a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2912805
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7a38f3f5
|
2021-05-21T15:07:44
|
|
GL: Skip redundant flushes.
Skip flushes when there is no work submitted since the last
flush.
Clone of geofflang's:
https://chromium-review.googlesource.com/2911879
Bug: chromium:1181068
Change-Id: Idd8a1c61b814d746bf1e0225cfc4ca375a7bb224
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2915675
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
efd8da4d
|
2021-05-21T15:39:11
|
|
CL: buffer object creation for front end and pass-through
Add Buffer object to front end and Memory object to back end.
Implement creation of buffer and sub-buffer objects.
Make cl::Object destructor virtual to support destruction of Buffer.
Cache more Device info for Buffer validation. Add missing and move
existing version checks into validation.
Bug: angleproject:5956
Change-Id: Iea7665be5f6bdd8469e81f5fe4935a9fb0e03436
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2912677
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: John Plate <jplate@google.com>
|
|
81db1a46
|
2021-05-20T13:45:26
|
|
Vulkan: TextureVk inherits a few attributes from ImageHelper
Cache VkImageCreateFlags in ImageHelper. This allows texture target
siblings to inherit a few VkImage create attributes thus avoiding
image respecification in certain code paths.
Bug: angleproject:2514
Bug: angleproject:5281
Test: PbufferTest.ClearAndBindTexImageSrgbSkipDecode*Vulkan
Change-Id: Ic7397fabdce185264e06488355ca47f809338519
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2910473
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fad9053f
|
2021-05-20T15:52:38
|
|
infra: Add isolated script tests to Pixel 4.
This includes angle_perftests and angle_restricted_trace_gold_tests.
Bug: angleproject:5941
Change-Id: I6f24d2c2752086ae6f7abba26880070c4a4f0472
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2911034
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
e697e379
|
2021-03-10T23:59:45
|
|
Vulkan: Allow certain usecases to have non-zero stride
When glVertexAttribPointer is called with a type parameter that doesn't
match the vertex attribute binding's type in shader, the vulkan backend
used to force the stride to 0. This is acceptable since this usecase is
unspecified in spec.
To allow for better app compatibility, introduce a new extension that
requires normal glVertexAttribPointer functionality to be maintained if
the mismatched vertex attribute type is a mismatched integer type sign.
This change also modifies the VkFormat used when a mismatch in
signedness occurs to use a VkFormat with the same component width as
the type parameter.
Bug: angleproject:5762
Test: VertexAttributeTestES3.DrawWithRelaxedVertexAttributeType*
Test: VertexAttributeTestES3.DrawWithMismatchedComponentCount*
Change-Id: I7e5281500afc3d77f0775821447cabfad3ff2d66
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2765012
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
1f1e0e6c
|
2021-05-13T12:35:43
|
|
Remove linear filtering requirement on depth textures
Linear filtering depth is an odd operation that doesn't yield
particularly useful information.
In the primary instance where it'd be used, the GLES3.1 spec
(8.17) specifically denies its use, and enforcing the capability
can lead to issues with hardware designed without support in
mind.
We think the check isn't necessary as a result.
Bug: angleproject:5964
Change-Id: I69f243f7cc078cd5383de2cc4bf1cfc3b6f2bc3b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2894424
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
dd312cc6
|
2021-05-21T08:49:48
|
|
Reland "Vulkan: Add support for EXT_texture_border_clamp"
This is a reland of 4b92e089c01e94730fe26c4c743d76d6c935088d
Initializes mPadding to 0 in SamplerDesc::update
Original change's description:
> Vulkan: Add support for EXT_texture_border_clamp
> Add support for GL_EXT_texture_border_clamp. This is implemented by
> using VK_EXT_custom_border_color.
>
> Bug: angleproject:3577
> Test: dEQP-GLES31.functional.texture.border_clamp*
> Change-Id: Ie9fa1eb5dd03b997b5ae182787641a53080a9e51
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2830192
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Bug: angleproject:3577
Change-Id: I8684242c4bce6e1a006dbe926defaa495fcc2282
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2911571
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
a4ccd684
|
2021-05-17T10:28:38
|
|
Capture/Replay: Write some bytes when serializing blobs
Seeing a few bytes of the buffers might help to get an understanding
of what goes wrong when blob check sums don't match.
Bug: None
Change-Id: I482af2b3d885afca39057d0841923449ec65d611
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2900218
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
44fabb7b
|
2021-05-21T00:51:06
|
|
Revert "Vulkan: Add support for EXT_texture_border_clamp"
This reverts commit 4b92e089c01e94730fe26c4c743d76d6c935088d.
Reason for revert: breaks "Linux MSan Tests" bot
https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20MSan%20Tests/28489/overview
Original change's description:
> Vulkan: Add support for EXT_texture_border_clamp
>
> Add support for GL_EXT_texture_border_clamp. This is implemented by
> using VK_EXT_custom_border_color.
>
> Bug: angleproject:3577
> Test: dEQP-GLES31.functional.texture.border_clamp*
> Change-Id: Ie9fa1eb5dd03b997b5ae182787641a53080a9e51
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2830192
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Bug: angleproject:3577, angleproject:5996
Change-Id: I6b62f1a4a43fcfe2d0df2c73de24db83606ce430
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2911533
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
2add8d9f
|
2021-05-19T18:47:40
|
|
Don't use VK_EXT_debug_utils with non-Android Vulkan < 1.1.91
Due to a bug in Vulkan Loader < 1.1.91
https://github.com/KhronosGroup/Vulkan-Loader/pull/95
Bug: chromium:1205999
Change-Id: Icdedc2e80abe3c5578e811759f66ddbb71abb2ec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2907095
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
26973584
|
2021-05-20T12:22:46
|
|
D3D11: Fix respecifying 3D textures.
The missing check for the "Depth" dimension could lead to a bug
where we would not recreate a texture when the dimension changed.
Bug: chromium:1210414
Change-Id: Id59097ad14ae77ff80d27081f61786dad17a77ea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2911032
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e2fc818a
|
2021-05-05T11:51:00
|
|
Reland Change to module directory when loading swiftshader ICD.
This is a reland of commit 3b10dda6a479612a07673b5c87d3560e0941d41b.
Extra changes:
Be explicit about calling GetModuleHandleA
Do not use the general GetModuleHandle, which may use wide strings
Refactored ConcatenatePath and add tests
GetModuleDirectory should return the full path, not relative.
ANGLE wasn't able to locate the vulkan ICD file because it was
searching down an invalid relative path. This can be fixed by
ensuring the module directory is always the full path.
on some platforms.
Original change's description:
> When loading vulkan, we can be running from any directory. We need
> to change to the module directory to ensure the swiftshader ICD is
> loaded properly. For example, in some Chrome releases, libGLESv2.dll
> and libvk_swiftshader.dll are in a subdirectory relative to chrome.exe
>
> Bug: chromium:1198567
> Change-Id: I9e68927e512b239728fb2903d1a04702508a4948
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2873452
> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Bug: chromium:1198567
Bug: angleproject:5949
Change-Id: I63fbe93f8492b7f23566f8193b1b8fe784a34f71
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2904586
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
6619c464
|
2021-05-10T13:00:48
|
|
FrameCapture: Write the frame cpp file even if frame is empty
The index file will add a reference to this file, and the replay will
also expect that the frame execution function and the context function
exist, so write the file even if the frame is empty
Bug: angleproject:5939
Change-Id: I265d061fdae51b86131d145116ad1c0f9ca8c93f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2882581
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c37b1ef8
|
2021-05-13T14:31:59
|
|
Balance debuglabel begin/end pairs for skipped drawcalls
Some drawcalls may be no-op'd due to shader issues or having
zero instance or element counts. In these cases, the ANGLE markers
used for AGI will become imbalanced as it is the drawcalls that
trigger the 'begin' marker. This patch ensures that the dirty-bit
draw event handler is called for no-op'd drawcalls to keep the
AGI commandTree in balance.
Bug: b/184888395
Change-Id: I1041d2f06fb313934365340c35e458bc5a66ba64
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2895330
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
10a8182c
|
2021-05-19T21:00:05
|
|
CL: Fix querying default device if non exists
Bug: angleproject:5992
Change-Id: Ie43f905fbb9cf41b0f6f88b2db27ebe9de9c37e8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2906993
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
54ba6f01
|
2021-05-13T20:33:46
|
|
Capture/Replay: Emit SetupReplay() late
Only emit SetupReplay() after all captured frames have been run,
so that InitializeReplay() is called with values of
readBufferSize and the maxClientArraySize that are sufficiently
large for all frames.
Bug: angleproject:5965
Bug: angleproject:5895
Change-Id: Ic59597dc27f733fb210d7cc5a144a86e54cd2040
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2894486
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
45ee87e2
|
2021-05-17T13:45:25
|
|
Capture/Replay: Don't try to serialize blob without data
The construct std::vector v; &v[0] doesn't go well with
a checked STL, because the element 0 doesn't exists in an
empty vector, and obviously it doesn't know that whether the
pointer gets de-referenced later.
Bug: angleproject:5980
Change-Id: I690c99bd12d74112fe1081ea3134b6ffb11ad23b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2900226
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
6622d2b4
|
2021-05-18T21:26:39
|
|
CL: command queues for front end and pass-through
Bug: angleproject:5956
Change-Id: I6d9d4e4e7dfc5402408e3b002e66e4eae752967d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2903091
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: John Plate <jplate@google.com>
|
|
dee8dad4
|
2021-04-20T23:26:55
|
|
Vulkan: Fix geometry shader qualifier validation
Added missing validation to handle in/out
qualifier for geometry shaders
Test: KHR-GLES32.core.geometry_shader.nonarray_input.*
Bug: angleproject:5579
Change-Id: I9ee0853526ce296df1f56fb7783f9847b31e49bc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2901256
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9bc837f6
|
2021-04-07T15:24:12
|
|
Vulkan: Generate SPIR-V directly from the translator; Part 1
This is the first change in a series to generate SPIR-V directly from
the translator's AST, instead of the generating text GLSL and feeding it
to glslang.
This change implements the majority of the work needed to map AST types
to SPIR-V types, and declare types and interface variables in SPIR-V.
Additionally, it lays the infrastructure to conditionally enabling this
path in end2end tests.
No tests are currently enabled as the change doesn't actually generate
code for function bodies yet.
Bug: angleproject:4889
Change-Id: Iacb28b6907fd48c50e4cc5a0e7ad72f6eed241d4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2889603
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
88156d26
|
2021-05-18T23:55:32
|
|
Revert "[Vulkan] Add DisplayVkNull"
This reverts commit cbbaf76b758fb6a37175795b1f424549d535fbdc.
Reason for revert: Suspecting this breaks the fuchsia_x64 bot WebGL
tests.
Ex:
https://chromium-review.googlesource.com/c/chromium/src/+/2904812
Original change's description:
> [Vulkan] Add DisplayVkNull
>
> Currently all DisplayVk implementations depend on VK_KHR_swapchain and
> VK_KHR_surface extensions. When running Chromium on Fuchsia these
> extensions are never used (content is shown on the screen using
> ImagePipe API without dependency on swapchain). ANGLE still depended
> on these extensions for DisplayVkFuchsia.
> This CL adds DisplayVkNull, which allows to run ANGLE without dependency
> on swapchain. It's usable only offscreen and cannot present content on
> a surface.
>
> Bug: chromium:1203879
> Change-Id: I4d1307060967ffa68877c4300ea4d5590eeb2152
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2861313
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Bug: chromium:1203879
Change-Id: I6701ffff48fcb925f387e63b356d2d5cf360ea7e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2904183
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
eaa6961d
|
2021-05-17T18:56:53
|
|
Revert "Vulkan: Disable BufferVk suballocation"
This reverts commit 76181384075c6eb0a5788bf1b732a1e05f6d73bc.
Reason for revert: Bug exposed by this is fixed in https://chromium-review.googlesource.com/c/angle/angle/+/2896168
Original change's description:
> Vulkan: Disable BufferVk suballocation
>
> There are still unresolved bugs.
>
> Bug: angleproject:5719
> Bug: chromium:1209197
> Change-Id: I6a971c421d0ae266404d1ecbf8741a9747a4e809
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897545
> Reviewed-by: Cody Northrop <cnorthrop@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Tim Van Patten <timvp@google.com>
Bug: angleproject:5719
Bug: chromium:1209197
Change-Id: I5c24b5f6476eab98ed5a7b90b3d1796ffc7ca106
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2896169
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
421c665c
|
2021-05-13T21:17:16
|
|
Capture: Make writeCppReplayIndexFiles a method of FrameCapture
This is useful to not pass a large amount of parameters around.
Bug: angleproject:5965
Change-Id: I3890a0ca852729bbf74725fb9e5f4062e20e9158
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2894485
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
ffb71dc2
|
2021-05-18T15:10:58
|
|
Revert "Reland Change to module directory when loading swiftshader ICD."
This reverts commit c8c414b084fa3b6550b10dff48cf429719e04579.
Reason for revert: Breaking fuchsia_x64 and ANGLE autoroller
Original change's description:
> Reland Change to module directory when loading swiftshader ICD.
>
> This is a reland of commit 3b10dda6a479612a07673b5c87d3560e0941d41b.
>
> Extra changes:
> Be explicit about calling GetModuleHandleA
> Do not use the general GetModuleHandle, which may use wide strings
>
> GetModuleDirectory should return the full path, not relative.
> ANGLE wasn't able to locate the vulkan ICD file because it was
> searching down an invalid relative path. This can be fixed by
> ensuring the module directory is always the full path.
> on some platforms.
>
> Original change's description:
> > When loading vulkan, we can be running from any directory. We need
> > to change to the module directory to ensure the swiftshader ICD is
> > loaded properly. For example, in some Chrome releases, libGLESv2.dll
> > and libvk_swiftshader.dll are in a subdirectory relative to chrome.exe
> >
> > Bug: chromium:1198567
> > Change-Id: I9e68927e512b239728fb2903d1a04702508a4948
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2873452
> > Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
>
> Bug: chromium:1198567
> Bug: angleproject:5949
> Change-Id: Ib34067002c788f00b5ae2fa11d1e465f57bd7be8
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2893503
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Cody Northrop <cnorthrop@google.com>
> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Bug: chromium:1198567
Bug: angleproject:5949
Change-Id: Ic0be8949cc27b231be4f982ea6e22beed590d24d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2903786
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4b92e089
|
2021-05-12T09:20:24
|
|
Vulkan: Add support for EXT_texture_border_clamp
Add support for GL_EXT_texture_border_clamp. This is implemented by
using VK_EXT_custom_border_color.
Bug: angleproject:3577
Test: dEQP-GLES31.functional.texture.border_clamp*
Change-Id: Ie9fa1eb5dd03b997b5ae182787641a53080a9e51
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2830192
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
40f11af8
|
2021-05-17T23:05:16
|
|
Capture/Replay: Ignore delete of non-genned buffers
Instead of asserting that the app is calling glDeleteBuffers
on buffers we've seen created, ignore buffer names that we
haven't seen. This is allowed by the spec:
Buffer objects are deleted by calling
void DeleteBuffers(sizei n, const uint *buffers);
Unused names in buffers are silently ignored, as is the value zero.
Test: SAKURA School Simulator MEC
Bug: b/188488065
Bug: angleproject:5987
Change-Id: Id4704e544f644dbe3edf6efdf70b5c3ef9ccaba7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2902442
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
7107a0f3
|
2021-05-16T15:37:44
|
|
CL: Load OpenCL without search path modification
Make it possible to load libGLESv2 and OpenCL_ANGLE without adding
ANGLE's binary directory to the search path.
Bug: angleproject:5904
Change-Id: Ie810466b39e1101e4da5b9fd199d26683b129281
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897250
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
c2fd3388
|
2021-05-15T22:28:27
|
|
CL: Add front end object references to back end objects
Add front end object references to back end objects, which requires
a significant amount of refactoring, because the back end objects
have to be constructed during the construction of the front end
objects, so that the references can be passed to the back end objects,
which then can be passed to the front end member initialization.
That would have been easier with inheritance than with PImpl.
Bug: angleproject:5904
Change-Id: Ib58e6a698e76987bdd63cd8088f923424d6c622b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897249
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
a7ae63e4
|
2021-05-14T21:55:52
|
|
CL: Move object cast from entry points to stubs and front end
Move the OpenCl object cast from the generated entry points to the
stubs and front end, to make it possible to properly use static_cast.
This removes the limitation that the front end objects have to be
standard layout (and makes it possible to use virtual functions),
which is consistent with other front end objects.
Move the back end initialization from the stubs to the entry point
functions, which fixes a bug where the back ends were not initialized
during validation.
Move more code from the stubs to the front end, to keep the stubs
light.
Remove unused function `default_return_value` from
`generate_entry_points.py`.
Bug: angleproject:5904
Change-Id: Id999ad6c537888017bf3252c6f6e088b7d4c7984
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897245
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
835bcb1e
|
2021-05-08T13:24:58
|
|
Vulkan: Support GL_EXT_texture_sRGB_RG8
For completeness, added mappings of R8_SRGB and R8G8_SRGB
to OpenGL and Metal.
Bug: angleproject:4932
Change-Id: Ic8e44e3a94c114e985f6965fcd43fbcb8071432d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2880661
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
cf3af29a
|
2021-05-14T16:49:36
|
|
Vulkan: Optimize respecifying an image
When recreating a texture image to change a usage flag or the base/max
levels, this change directly places the levels of the previous image as
updates to the new image. This is instead of copying the image to a
temp one and staging that.
Bug: angleproject:4835
Change-Id: Ibc210b9ff0e8d11cba10b1cd9ab262c8f706cea5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2898417
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
8bd3d7d5
|
2021-05-17T13:45:33
|
|
Vulkan: Fix a bug releasing DynamicBuffer-owned buffer
There was one instance of BufferVk releasing a buffer it had allocated
from a DynamicBuffer. This shouldn't have happened as the DynamicBuffer
owns the buffers.
Bug: angleproject:5720
Change-Id: I435512f4bb099130126bf3efb48a238fcd9f3ddb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2896168
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4b071880
|
2021-05-13T16:20:05
|
|
Capture/Replay: Add const to string pointer
Traces that have shader compiles in the middle of the run are reusing
the string pointers on each go through. On some (multiple) platforms,
the string pointer is no good on the second run through. This may
only happen for large strings.
Adding a const qualifier on the pointer itself, not just the string,
avoids the issue. This has the effect of changing strings from this:
const char *glShaderSource_string_0[] = {
const char *glShaderSource_string_1[] = {
to this:
const char* const glShaderSource_string_0[] = {
const char* const glShaderSource_string_1[] = {
Test: Pokemon Go MEC
Bug: b/188091629
Bug: angleproject:5968
Change-Id: Id6a05c955adb3e1c43d2723450be6b5278d99fba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2895328
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
83d22b66
|
2021-05-13T16:10:54
|
|
Capture/Replay: Skip glGetActiveUniform
Apps are querying GL_ACTIVE_UNIFORMS and then walking through them all
numerically, calling glGetActiveUniform on each one. Before this CL,
our trace would also walk through them all, exactly as the app.
But, the active uniform count can vary on different platforms
depending on how aggressive the underlying compiler is. We have at
least one that does cross stage optimizations eliminating more active
uniforms than others.
Rather than check each call against the actual number of active
uniforms, we can just drop the calls to glGetActiveUniform. We don't
actually use any of the results from the call. For example, this is
what we generate before this CL:
glGetActiveUniform(gShaderProgramMap[144], 31, 1024,
reinterpret_cast<GLsizei *>(gReadBuffer),
reinterpret_cast<GLint *>(gReadBuffer),
reinterpret_cast<GLenum *>(gReadBuffer),
glGetActiveUniform_name_30);
This has the downside of moving away from reflecting what the app
actually sent down. The alternatives are too intrusive though, and
we want to stay as close to speed of light as we can.
Test: Pokemon Go MEC
Bug: b/188091629
Bug: angleproject:5968
Change-Id: I1263f2256c6a964dac54d9997a1c1c2dceac711b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2895327
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
8ea11eb7
|
2021-05-13T15:54:41
|
|
Capture/Replay: Reset programs on loop
Apps that create new programs during the run need to have them
deleted on loop. This CL handles that. It does not handle programs
that have been deleted and need to be recreated, or that have been
modified otherwise. An assert has been included to catch that for
future needs.
With this CL, entries like this will show up in ResetReplay:
...
glDeleteProgram(gShaderProgramMap[120]);
glDeleteProgram(gShaderProgramMap[121]);
...
Test: Pokemon Go MEC
Bug: b/188091629
Bug: angleproject:5968
Change-Id: I78c425e8fe95792fc626484641d067613dfae971
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2895326
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9c262ad0
|
2021-05-14T12:26:48
|
|
Vulkan: Cleanup texture image respecify
Prior to this change, respecifying a texture image due to usage, base or
max level changes incurred a copy of every level and layer to a
temporary buffer which was then staged as an update to the new image.
This code was somewhat messy (for example with respect to depth/stencil
images), error prone (e.g. previously had bugs with compressed textures)
and disallowed further optimizations such as in anglebug.com/4835.
This change does the following:
- ImageHelper::SubresourceUpdate now takes ref-counted images, instead
of image pointers. This allows the same image to be staged for
multiple updates.
- Respecifying an image is still done through a copy, but to an
identical (temp) image instead of buffer, and each level of the image
is staged as an update.
* Further optimization is to stage the old image itself directly as
updates to the new image
Bug: angleproject:4835
Change-Id: I4a3ef2d616c9ab459ff65f918b0fb6d9a2161b73
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897537
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
9e8fea5b
|
2021-05-13T07:04:05
|
|
Vulkan: Fix desc set cache bug with xfb offset
Prior to this change, the transform feedback buffer offset was not
stored in the descriptor set key, so if the offset changed, stale
descriptor sets could be used.
Bug: angleproject:5963
Change-Id: I3dec4ab9fa82092a65e9a75bdd19c5f2cf49521c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2894513
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
31cd0e98
|
2021-05-10T10:37:54
|
|
Capture/Replay: track robustResourceInit
Bug: angleproject:5938
Change-Id: I7c9ab9bebd1ec2dc572a071844a860f99d0befe6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2882580
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
ce7bc0c8
|
2021-05-14T17:00:46
|
|
Vulkan: Fix AGI hierarchy
The GLES hierarchy of debug-util markers given to AGI was wrong for
several games. The problem is that glDrawBuffer* was treated as a
draw call, instead of as the state-setting call that it is.
Bug: b/184888395
Change-Id: I6911bd3aae42b5f29b3f40466a615c614651ca8a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2898472
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
76181384
|
2021-05-14T15:31:24
|
|
Vulkan: Disable BufferVk suballocation
There are still unresolved bugs.
Bug: angleproject:5719
Bug: chromium:1209197
Change-Id: I6a971c421d0ae266404d1ecbf8741a9747a4e809
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897545
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
5a0925de
|
2021-05-14T15:25:07
|
|
GL: Recreate textures on eglReleaseTexImage.
Texture data should be reset on eglReleaseTexImage but ANGLE sometimes
skipped this because it generated GL errors on Mac. Instead, delete
and recreate the native texture to make sure ANGLE doesn't hold any
references.
Bug: chromium:1181068
Change-Id: I1252b0900361852f66f73b8c9d20a29c53897ee4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897544
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
35f59118
|
2021-05-12T09:19:49
|
|
Bug fix in glTexParameter and glGetTexParameter validation
It is invalid to pass in GL_TEXTURE_BUFFER to either
glTexParameter or glGetTexParameter. Return GL_INVALID_ENUM
for such usecases.
Bug: angleproject:3573
Bug: angleproject:3577
Test: dEQP.KHR_GLES31/core_texture_border_clamp_texparameteri_errors
Change-Id: Ia0573c24d38c6be9d1b79a83a05e2ffbc62c8918
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2892023
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
cbbaf76b
|
2021-04-29T16:09:09
|
|
[Vulkan] Add DisplayVkNull
Currently all DisplayVk implementations depend on VK_KHR_swapchain and
VK_KHR_surface extensions. When running Chromium on Fuchsia these
extensions are never used (content is shown on the screen using
ImagePipe API without dependency on swapchain). ANGLE still depended
on these extensions for DisplayVkFuchsia.
This CL adds DisplayVkNull, which allows to run ANGLE without dependency
on swapchain. It's usable only offscreen and cannot present content on
a surface.
Bug: chromium:1203879
Change-Id: I4d1307060967ffa68877c4300ea4d5590eeb2152
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2861313
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
09dad082
|
2021-05-07T17:28:15
|
|
Vulkan: Add feature flag to flush at framebuffer boundary
Testing shows most app traces seeing performance improved on ARM GPU
when we flush at FBO boundary instead of one submit per frame. This
likely due to more frequent submission means less chance of GPU
starvation. This also helps ANGLE to detect GPU finish at finer grain
since the queue serial is per submission. Finer grain detection of
object completion means memory gets recycled quicker and mapBufferRange
able to hit fast code path more often. With this CL, manhattan 3.1
offscreen score also score improves 7%. This may also helps onscreen
performance if frame time is on the edge of 16ms by submit FBO rendering
earlier instead of been blocked by vkAcquireNextImage.
Bug: b/187993625
Bug: angleproject:5295
Change-Id: I2946a7159231d36019ace89805a69ac8e906ce94
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2888709
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
48b835cf
|
2021-05-09T22:47:00
|
|
CL: Implement context for front end and passthrough
Bug: angleproject:5904
Change-Id: I23b764bba87be3a51a1b5b44b13968fc572efde9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2883773
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: John Plate <jplate@google.com>
|
|
b0c217ba
|
2021-05-13T13:56:27
|
|
Disable GL_EXT_shader_framebuffer_fetch_non_coherent on Arm/QCOM
Thie is a shorter-term work-around to games not checking extensions
properly.
Bug: b/177320565
Bug: b/186643966
Bug: b/186783762
Change-Id: Ic348396db1d081925cd9747cdd9406f5929313b9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2894407
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
bccb0d56
|
2021-05-11T13:53:05
|
|
Add messages for framebuffer completeness errors.
This also creates a common code path for all framebuffer
completeness errors (FramebufferStatus::Incomplete) which
helps for adding a debug breakpoint.
Bug: angleproject:5949
Change-Id: Ib102dbf86e020777e56c6dc6b78dda8ebdba2127
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2888110
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e354ff1a
|
2021-03-05T04:07:21
|
|
Vulkan: Allow DynamicBuffer suballocation in BufferVk
When allocations are made from DynamicBuffer, they suballocate from a
possibly larger BufferHelper. In BufferVk, the offset of the
suballocation was discarded, which limited the use of DynamicBuffer to a
pool of small buffers.
This change applies any such offset that may arise from suballocations
everywhere, and makes BufferVk use a larger buffer size when the
GL_DYNAMIC_* buffer usage hints are provided.
Bug: angleproject:5719
Change-Id: I3df3317f7acff1b1b06a5e3e2bb707616a7d0512
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2738650
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b300dc52
|
2021-05-09T00:35:24
|
|
CL: device partitioning for front end and passthrough
Partitioning is the creation of sub-devices. Also add reference
counting for CL objects, which is needed now for sub-devices.
Also fix CL print format strings, since cl_ulong is actually
always 64 bit and not unsigned long.
Bug: angleproject:5904
Change-Id: I006699fad2f953ce312bca87c9b6362b5d77a18a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2880665
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b0d39ba2
|
2021-05-12T16:06:15
|
|
Add array bounds checks for WebGL shaders
WebGL shaders may contain OOB array accesses which in turn
cause undefined behavior, which may result in security
issues. This was detected as an UNKNOWN READ by UBSAN while
testing with SwANGLE.
Bug: chromium:1189110
Change-Id: I00f56e771ed0c675abb465fc3a3dc9d62ea8ed51
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2892286
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
|
|
51d02ca0
|
2021-05-06T15:16:16
|
|
FrameCapture: Use gl*Separate functions only when required.
Use non-separate stencil and blend functions that do not
distinguish between front and back buffers or color and alpha,
if they apply.
This prevents capturing GLES2 functions on GLES1 contexts.
Bug: angleproject:5893
Change-Id: I8303ee5b279268ea9c21e2c6465e1b155d1cc54d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2877238
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
859ed396
|
2021-05-11T16:58:55
|
|
Follow up on Vulkan headers update to 1.2.177
Removing duplicate definitions in ANGLE.
Bug: angleproject:5905
Change-Id: Ie62ad39a1ebc0d8b0d2c005723f461bc7309eade
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2889831
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
93aff937
|
2021-05-08T16:46:22
|
|
Refactor CL platform object
Move GetPlatformInfo implementation from stubs to cl::Platform,
because stubs are meant to be small.
Also move CLPlatformImpl::Info instance to cl::Platform as it is
more efficient to be accessed from there, and more consistent with
cl::Device.
Bug: angleproject:5904
Change-Id: I4c0ba6390467d6ef357e38a5ef08f54b0a88d423
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2880663
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
e369a282
|
2021-05-08T14:08:28
|
|
Implement CL device object for front end and passthrough
Bug: angleproject:5904
Change-Id: I17f6d10ed59c62fe9126d29b7de2c127c5d0039a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2880662
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: John Plate <jplate@google.com>
|
|
4901ac64
|
2021-05-06T15:15:57
|
|
FrameCapture: Capture GLES1 specific states.
Implement capturing GLES1 specific state by checking the difference to
the default state using getEnableFeature.
When getEnableFeature is called from a context version higher than 1 and
a GLES1 state is requested, an assertion is hit. Therefore the context
version needs to be determined before calling getEnableFeature.
Use the available isTextureTargetEnabled function to determine
GL_TEXTURE_2D and GL_TEXTURE_CUBE_MAP states in getEnableFeature.
Return false in isTextureTargetEnabled when mTextUnitEnables is empty,
so the vector is not accessed when not initialized, which was the case
for a default state.
Bug: angleproject:5893
Change-Id: I66ee41c3bf7a8e1f04a8a4ce0461fddc16f9a013
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2877237
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
46a139ad
|
2021-05-06T11:20:51
|
|
Vulkan: set DS layout before using it in the endRenderPass
In CommandBufferHelper::endRenderPass(), we are checking depth stencil's
initialLayout to change storeOp to None if the layout is read only. But
the layout was set after that check, which essentially voids the
optimization. This CL moves the finalizeDepthStencilImageLayout() call
before the layout is used.
This CL also moves the depth stencil loadOp/storeOp to a new function
finalizeDepthStencilLoadStoreOp(). When depthImage gets deleted before
renderpass ends, we could also apply the same load/store optimization
just like we did at endRenderPass() time.
Bug: b/187425444
Change-Id: I89814274352f09cbf1f7b58a91bbaf131b983fb1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2877933
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
83e5bb97
|
2021-05-06T15:15:42
|
|
FrameCapture: Don't capture shader functions on GLES1.
Since an internal default shader is created and captured here in the
GLES1 case, we need to check for the context version to skip capturing
glUseProgram and emit an update call in GLES1 traces.
Bug: angleproject:5893
Change-Id: Iac9bc05234fbc87c1f64264b5c12b9b117522bad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2877236
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
078ebbcf
|
2021-05-06T17:07:14
|
|
FrameCatpure: Move capturing default vertex attribs to function.
Don't capture these on GLES1, due to the unavailability of
glVertexAtrrib4fv.
Bug: angleproject:5893
Change-Id: Iafbc9219cfc0a0c1d0a55e112ee88d7180ed94f7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2877235
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
e40edf92
|
2021-05-06T17:06:58
|
|
FrameCapture: Add GLES1 support to CaptureVertexArrayData.
Implement CaptureVertexPointerES1 that captures specific GLES1 vertex
pointer functions depending on the attribute index.
Use GLES1 capture functions in CaptureVertexArrayData by detecting the
current context version.
Implement VertexArrayType function in GLES1Renderer to get a
ClientVertexArrayType enum from a vertex attrib index.
Bug: angleproject:5893
Change-Id: I442b2e29475ca817860388cafc120db90a0fb9c4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2846838
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
84d22197
|
2021-04-26T17:11:27
|
|
Vulkan: Add device local fallback in findCompatibleMemoryIndex(...)
When finding a compatible memory index for an external buffer,
we need to have a fallback path that requires just the
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT property.
Bug: angleproject:5909
Change-Id: Id3faffb3e357be2e5e6f5fce9e64f0f2889d199a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2862561
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
bca7c408
|
2021-05-09T15:09:45
|
|
Update entry points for GL_EXT_texture_sRGB_RG8
Bug: angleproject:4932
Change-Id: Ie210a9dd342581adb71af4782383be2bb3ffd6a3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2880667
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
78fb9314
|
2021-04-29T18:05:12
|
|
FrameCapture: Capture GLES1 vertex buffer pointers.
CaptureVertexPointerGLES1 was expecting only client-side vertex arrays
and not checking whether a vertex buffer was bound. This patch fixes
offsets in vertex buffers for GLES1, which can be seen in apps like
Dr. Driving.
The mClientVertexArrayMap index is now retrieved by entrypoint name, as
the arrayClientPointerIndex is unset in the vertex buffer case.
Bug: angleproject:5751
Change-Id: If40cae56bcdbed57885e83c49291cb000a884b0e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2859826
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
7828506a
|
2021-04-06T23:42:16
|
|
Vulkan: Cleanup buffer format fallbacks
- Fallbacks for formats that have required vertex attribute support are
removed.
- Fallbacks are changed to ones with smaller sizes
- A bug is fixed where CopyNativeVertexData wasn't initializing the
alpha channel appropriately, which was not exercised due to fallback
to 32-bit float formats.
Bug: b/184163871
Change-Id: Icd9afa49d94c65545d1f3fcf521881726d64529d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2809441
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2d5df9d9
|
2021-05-01T12:50:55
|
|
Vulkan: Don't assume host visibility for external buffers
When importing external buffers, Vulkan ICDs could choose to
import the memory into a memoryType that doesn't support the
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT property. Account for this
possibility.
Bug: angleproject:5073
Bug: angleproject:5909
Change-Id: Ied063b38fa48d0c8508c4aaca9214cc526f393ad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2783669
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|