|
605af42e
|
2020-03-04T21:52:53
|
|
Vulkan: Move ICD overrides to a common place
We also need the bundled ICDs and selection logic for certain tests that
create a vulkan instance. If we don't, the tests will use default vulkan
even if ANGLE is using swiftshader-vulkan. Tests of driver specific
handle types (e..g opaque fd) will fail in this case.
Bug: angleproject:4092
Change-Id: Iff089c9341b8b533ee8634923d0177c5dbcd5cc8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2088659
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
f623bd2e
|
2020-04-14T10:35:13
|
|
Tests: Add program pipeline object tests
This CL adds two program pipeline object (PPO) tests based on code
inspection during review. They are both disabled awaiting fixes.
* The first (DetachAndModifyShader) tests a bug that shaders aren't
detached immediately on call.
* The second (DifferentTextureTypes) tests PPOs with mismatched
texture types. They should not link if the programs use a texture in
non-matching ways.
Test: ProgramPipelineTest31.DetachAndModifyShader*
Test: ProgramPipelineTest31.DifferentTextureTypes*
Bug: b/151462886
Bug: b/151449648
Bug: angleproject:3570
Change-Id: Ief0937397d31c972bf5e3a8d56b02d2dbd5a604b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2146997
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
a48f3c38
|
2020-04-29T10:03:14
|
|
Implement setBinaryRetrievableHint
Remove the UNIMPLEMENTED() macro. Doing nothing is an acceptable
implementation at this time.
Test: Angry Birds 2
Bug: b/154930384
Change-Id: Ie46c084feb2015aa5fecdbbf2295d46e5087e3dc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2172711
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
2071b5c3
|
2020-05-01T15:41:04
|
|
Expose EGL 1.5.
This is helpful for figuring out if we can support the DEBUG
property when initializing an EGL context. It also will be
necessary down the line for Android.
Bug: angleproject:4596
Bug: b/154921118
Bug: angleproject:4606
Change-Id: I01c2cbaa21495e3620b7858f2a309c9a884033ec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2176277
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
040e4f6f
|
2020-05-01T14:50:59
|
|
Vulkan: Minor command buffer refactor
Fix a couple minor nits with command buffer handling in ANGLE:
1. Make initialize() common CommandBufferHelper function
2. Reduce some common code when starting renderpass
Bug: b/154030403
Change-Id: Ie9cfcd7c053c8605b16bc2dee7f8d69418922492
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2175106
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
10ee839c
|
2020-04-30T16:15:41
|
|
Vulkan: Improve viewport and scissor for pre-rotation
Handle all 4 rotations and non-full-screen viewports & scissors.
Test: Running NBA 2K20 while flipping phone left and right (90 & 270) + watching it in Visual Studio and with Android logcat INFO messages
Bug: b/150329969
Bug: angleproject:4431
Change-Id: Icd555dbc2419aac1413452c1b306d6227784dc27
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2174961
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
1c3e322c
|
2020-05-01T12:22:20
|
|
Work around strange git cl format issue.
For some reason this line of code confused git cl format
in that it would generate different results depending on when
it was called:
"PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC
ANGLE_EGL_StreamConsumerGLTextureExternalAttribsNV;"
I wasn't able to root cause the bug. Instead I worked around
it by changing the signatures for this file.
Bug: angleproject:4596
Change-Id: I4f18e03d27d378480b19831de51c4e85d815ca66
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2176157
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
|
|
c9e0edc2
|
2020-04-30T14:48:40
|
|
Handle 3D texture entire-mip initialization for FBO attachments
FramebufferAttachmentObject::initializeContents clears the entire mip
level for layered textures (not including cube map). This was done by
special casing 2D array and 2D multisample array textures but did not
work for 3D.
Generalize the logic to work for all layered texture types.
Handle clearing the entire 3D texture mip in Vulkan.
TEST=conformance2/misc/uninitialized-test-2.html
BUG=angleproject:4602
Change-Id: I35bb9fc3304f0553e8de68d205b0843845bf7549
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2174264
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
5b16123d
|
2020-05-01T08:26:28
|
|
Capture/Replay: Refactor default uniform handling for arrays
Instead of walking through uniform locations, walk through
the uniforms themselves and emit arrayed uniforms, which consume
multiple locations.
Test: MEC capture of Manhattan on Windows
Bug: angleproject:3662
Change-Id: Ifd25528721982847d4f0938f469a914a1cb908c5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2175994
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
428e4415
|
2020-04-27T12:27:00
|
|
Vulkan: Migrate trace events and occlusion queries
Moved GPU trace event and occlusion query commands that were on the
primary command buffer to the SecondaryCommandBuffer (SCB). Putting
these commands on outside render pass SCB and flushing those commands
to primary on-demand as needed to maintain ordering of commands.
For resetQueryPool command used by occlusion query, allow the SCB
to queue up that command for inside RenderPass SCB. This avoids
ending a renderPass prematurely and allows all outstanding reset
commands to be executed before the beginRenderPass command since
the resets must occur outside of a renderPass.
This is groundwork to simplify the hand-off of SCBs from the main
thread to a worker thread. Long-term we'd like a single SCB that
can handle both inside and outside renderPass commands at the same
time to pass to the worker thread for processing into a primary CB.
Bug: b/154030403
Bug: angleproject:4603
Change-Id: Ic1023ae27a9b14435743549ea9933edf1c4b318b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2168114
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
942796f6
|
2020-04-30T16:55:28
|
|
Capture/Replay: Use BindAttribLocation to force MEC compat.
In some cases we'd end up with attributes that are optimized
out by the GL driver. BindAttribLocation forces the programs
to use the same attribute indexing numbers so that the command
stream works mostly the same even if some attributes aren't
active in the shader.
Bug: angleproject:4598
Change-Id: I2d02dd38d29a1489706ae70bcc0b262b1c076942
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2174266
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
e09f7a14
|
2020-04-30T17:43:12
|
|
Validation: Fix some function types.
These were slightly mismatching the header types. They seemed
to link fine despite producing some warnings in a tool.
Bug: angleproject:4598
Change-Id: I19cfe4d87eca409c82a7c8cf25fff6f8a4c83ca9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2175057
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
57d95828
|
2020-04-30T17:35:50
|
|
Revert "Add type for attribute locations."
This reverts commit 9349c14344b2d1fd6bc357063b602bc2626c140f
and commit d43b057435e6c9e3194dd20627681ffca0c0808e.
It's no longer needed after we bind attribute locations before link.
Original CL message:
This will allow the capture/replay tool to easily intercept and label
attribute locations for remapping.
There's some inconsistency in implementation in the GL desktop front-
end. This is a quick fix and the full implementation is left for when
we implement the full desktop GL API set.
Bug: angleproject:4598
Change-Id: Ic510159d4d1982eff41560503cabf983a1be0381
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2174076
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
df31624e
|
2020-04-30T13:28:24
|
|
Vulkan: Reduce the onBufferRead/onBufferWrite API verbosity a bit
This adds helper functions to handle common use case for onBufferRead
and onBufferWrite to reduce the API verbosity a little bit. Also fix the
transform feedback bug that we are passing in wrong access/stage flags
when it is emulated by vertex shader.
Bug: b/155122200
Change-Id: Id2549ca00cad184a90c6230dc3665aaff44dda08
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2174265
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
67da0051
|
2020-04-30T17:53:58
|
|
Vulkan: Fix dbg util label bug
Courtney noted this bug from a review. Should begin label on pushGroup
instead of insert label.
Bug: b/154030403
Change-Id: I5f4da5762e1ef03fe27b414740e34d2064af86b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2171951
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
85ae836f
|
2020-03-30T16:03:47
|
|
GL: Implement EGL_EXT_image_dma_buf_import
Add support for the EGL_EXT_image_dma_buf_import on EGL implementations
that support it natively. This extensin is used on ozone to import
native compositing buffers.
This patch also adds new tokens in EGL_EXT_image_dma_buf_import_modifiers
which are used in eglCreateImageKHR.
BUG=angleproject:4529
Change-Id: I49bff831b591fb19fcdcec1145c7a61f5d8020c4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2128190
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
a56537a3
|
2020-04-29T11:14:03
|
|
Enable GL_BGRA_EXT for es backend
It's required on Chrome OS.
Based on spec EXT_texture_format_BGRA8888, this format is renderable.
Bug: angleproject:4594
Change-Id: Ibde0f0de18f4b8079a23f4b13123c6b5c8794a89
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2172638
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
d43b0574
|
2020-04-30T14:17:21
|
|
Capture/Replay: Fix tool after parameter change.
'index' became 'indexPacked' for attribute locations. It
also changed the type.
Bug: angleproject:4598
Change-Id: I6393e09dd1d5c1a7c5d0e2ca8a67e4f7bbb05411
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2174263
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9349c143
|
2020-04-29T16:36:17
|
|
Add type for attribute locations.
This will allow the capture/replay tool to easily intercept and label
attribute locations for remapping.
There's some inconsistency in implementation in the GL desktop front-
end. This is a quick fix and the full implementation is left for when
we implement the full desktop GL API set.
Bug: angleproject:4598
Change-Id: Ibf11bcb8669d27265ea376494a2e3124825cf3be
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2171933
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
9cac3c58
|
2020-04-30T09:52:13
|
|
Capture/Replay: Disable default uniform updates for arrays
We aren't properly handling them, were already firing UNIMPLEMENTED,
but can't continue with the loop. Will follow up with real support.
Test: MEC capture of Manhattan on Windows
Bug: angleproject:3662
Change-Id: I7b77350b39971fda702eac8b19c6f29f36f78146
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2171759
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
f07d0072
|
2020-04-27T16:51:05
|
|
Vulkan: use fine grain stage for buffer barriers
We are using VK_PIPELINE_STAGE_ALL_COMMANDS_BIT for
mGlobalMemoryBarrierStages, which is used for both src and dst. This
will cause a full pipeline stall whenever a buffer object introduces a
barrier. This CL will let the caller pass in the specific stage it
will be used for, allowing us to track write and read stage dependencies
separately and request the corresponding barriers.
Bug: b/155122200
Change-Id: I8b8bd291a03b77d07cfbcbe7c3cda2d3771588b9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2169014
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
95741743
|
2020-04-27T18:09:42
|
|
Validation fix for draw with primcount <= 0
A buffer size validation check was returning an invalid
operation error based on buffer size, even when primcount
is <= 0 (so the buffer isn't used).
Fixes the following WebGL 1.0.4 test with SwANGLE:
conformance/extensions/angle-instanced-arrays-out-of-bounds.html
Bug: b/154628007
Change-Id: Ibfe4eb57f17cd07100fb8dfbe8069e9ec7515160
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2168546
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
|
|
5540a307
|
2020-04-29T11:57:24
|
|
GL loaders: Add 'ANGLE' symbol prefix.
This should prevent debuggers like RenderDoc from getting confused
about symbol names. It's also generally good practice to avoid
overloading names.
Change-Id: Ie9fd3f77f45479bdf6925dae3e03fb4ac85bdb8a
Bug: angleproject:4596
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2171684
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
78f2e4b8
|
2020-03-24T16:21:40
|
|
Add gles1 covegl test compile
Covegl test is hard to suit gtest, so just compile it without gtest
(angle_gles1_covegl_no_gtest), we can get the test result by exit code.
Bug: angleproject:2303
Change-Id: I67a930c91f23c02e72022329c712a0749e4a903c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2126587
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
fa03eb9d
|
2020-02-05T15:25:52
|
|
Vulkan: Use DynamicBuffer for BufferVk
When there is glBufferData API call, if the current
VkBuffer is in use, we copy to a staging buffer to
be gpu copied later. Instead of doing this second copy,
write directly to a new buffer that will be used for
subsequent gpu operations.
BufferVk now has a DynamicBuffer to handle
the logic of acquiring a new/free buffer to be used.
Bug: angleproject:4380
Change-Id: I207f334013ae944090eb48c26c692a09e8815f74
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2040513
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
92b3a720
|
2020-04-27T15:52:56
|
|
Capture/Replay: Generate code integration.
This sources the trace list from a json file and uses that to make the
"glue" that works with each individual trace test.
Bug: angleproject:4590
Change-Id: I40808cbd0e00f9ed01f93c4cfbd678401db3fec0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2168539
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
45bb2b9c
|
2020-04-22T17:09:41
|
|
Vulkan: Add debug label commands to SecondaryCommandBuffer
Add begin/end/insert DebugUtilsLabel commands to SecondaryCommandBuffer.
Switch use of these commands to the outside renderpass command buffer
instead of directly in the primary command buffer.
This change should maintain the exact same sequence of commands but
avoids some direct use of the primary command buffer. This is
desirable for the threaded refactor where a worker thread will
process the SecondaryCommandBuffer into a primary and the main
thread will no longer use the primary command buffer directly.
Note that because the debug utils label has an arbitrarily long
string that we need to adjust the command allocation to allow for
the string size exceeding the default allocation size. In this case
we just make a single larger allocation to accommodate the command
with the large string.
Bug: b/154030403
Change-Id: Iab7832ffc3d38ce168da2d624bd5b5d5b33ec11b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2161955
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
d93b9559
|
2020-04-16T16:16:27
|
|
Translate uniform block with large matrix array to StructuredBuffer
There is a slow compiling issue if translate a uniform block with
a large matrix array member to cbuffer, so translate the uniform
block to StructuredBuffer. But pack_matrix pragma directive is
invalid for matrix element of StructuredBuffer, so pack the matrix
into a structure firstly, and then specifies packing alignment for
the matrix in this structure, last the structure is used as
StructuredBuffer element.
Bug: angleproject:4206
Change-Id: I5a2a512e57b37dcdb88c3060d0d078b46f72eb5e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2154525
Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
718ae508
|
2020-04-28T08:42:07
|
|
Vulkan: Always query EGL_WIDTH and EGL_HEIGHT
This fixes the failures of the dEQP EGL resize tests on Android.
Those tests don't actually resize the window (which would allow the
tests to pass), but do change internal Android Surface values that
vkGetPhysicalDeviceSurfaceCapabilitiesKHR queries. Therefore, by
freshly querying these values the test passes.
Bug: b/153329980
Change-Id: Ie966f221bfaa14988c1503c7f5503f0b21476bcb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2165639
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
448b14bb
|
2020-04-27T13:46:08
|
|
Vulkan: Apply binding size in updateBuffersDescriptorSet.
Previously we would bind the full Vulkan buffer size in cases of
unsized arrays in storage buffers. This then would lead to problems
when binding a dynamic buffer that used sub-allocation or larger
internal sizes. Instead use the GL binding size or GL buffer size as
the size limits.
Bug: angleproject:4380
Change-Id: Ia579bfeae3b8d068813336cbd5e1babee9f4f345
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2168020
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d9268889
|
2020-04-22T20:24:16
|
|
Take into account baseVertex for drawElementsImpl D3D11
Also add test for GL_DYNAMIC_DRAW and GL_STREAM_DRAW with vertex
color data updating before each draw call to make sure index range
is retrieved correctly.
Bug: angleproject:3402, angleproject:3911
Change-Id: I5f209292b6e316e4b50505a98b361eb8761a7d6b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2162132
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shrek Shao <shrekshao@google.com>
Commit-Queue: Shrek Shao <shrekshao@google.com>
|
|
1398080c
|
2020-04-27T16:16:15
|
|
Capture/Replay: Simplify .gni integration.
Moves a lot of the code out of the gni file into tests/BUILD.gn. In
preparation for auto-generating the gni file as a simple array of trace
test names.
Bug: angleproject:4590
Change-Id: Iaa2b7872dc6e705d59108fa7532594bdc65d365a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2168359
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
4262ea04
|
2020-01-31T22:59:13
|
|
Vulkan: Add gles1 conformance support.
For Khnoros CTS1 support, ANGLE needs to add conformant and
rendererType for OpenGL ES1 version.
Bug: angleproject:4457
Change-Id: I58ac4672352d3d42e4b8403b80f86154b6a76edc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2160515
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
fbc2f063
|
2020-04-24T13:00:11
|
|
Vulkan: Refactor AttachmentOpsArray.
Will allow for more flexibly setting ops when we defer clears.
Bug: angleproject:4517
Change-Id: I7d9116bc92e90eb41a1030fea242eadf1cc74562
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2165629
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
6193fd69
|
2020-03-07T21:19:05
|
|
OpenGL: Implement OES_draw_buffers_indexed
OpenGL state sync issues as few GL commands as possible to update the
blend state regardless of an application input.
Enhanced ClearTestES3.MaskedIndexedClearMultipleAttachments
regression test.
Disabled OES_draw_buffers_indexed on Windows/AMD/OpenGL.
Bug: angleproject:4394
Change-Id: I244ac2975678bc559634152cf4eb997d9dbe83d0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2145874
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
6e7d7296
|
2020-04-24T15:40:57
|
|
Fix clearing compressed textures with Vulkan backend
When making sure a texture's data is initialized in ANGLE, it
is illegal to attempt to clear it when using the Vulkan backend.
The Vulkan spec, regarding vkCmdClearColorImage, mentions that:
"image must not have a compressed or depth/stencil format"
The proper way of initializing the memory of a compressed image
in Vulkan is to do a buffer to image copy instead. This was added
to ImageHelper::stageRobustResourceClear() so that it may now
handle compressed textures properly.
Bug: angleproject:4092
Change-Id: I073ed0603d9e92e787b9be8992751dbc0c8978db
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2165636
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
|
|
d6c7bac9
|
2020-04-18T01:41:14
|
|
Add BlendStateExt helper structure
It provides compact storage and comparison operations for
per-drawbuffer blend states.
Added BitSetT::Zero() static constexpr.
Bug: angleproject:4394
Change-Id: I66d6275facb7b28022fc24ff9cc0d8c3c976c99d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2154669
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
226bba3c
|
2020-04-24T09:57:10
|
|
Add -Wno-pointer-to-int-cast
This is the last remaining instance of the warning across Chromium. It's
fixed upstream but I can't seem to figure out how to successfully roll
deqp. So suppressing it here for now.
This can be removed once the deqp in Angle has
https://github.com/KhronosGroup/VK-GL-CTS/pull/199.
Change-Id: Ie954bb2a3d86ea0de644e2a78051531b396e88a8
Bug: chromium:1054220
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2165365
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
3cb9c4be
|
2020-03-13T13:56:47
|
|
Statically link vulkan-loader on Mac
Disable angle_shared_libvulkan on Mac since we are the only client.
Re-add codepaths to support this.
Bug: angleproject:4477
Change-Id: Ie128c83adaae741636541bbfd6105d160d874a8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2102954
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
0f2747e9
|
2020-04-24T13:10:14
|
|
Vulkan: Clean up ClipRectToScissor.
Refactoring change only. Split off to make the main CL for deferring
clears simpler.
Bug: angleproject:4517
Change-Id: I5728a7dcf09de8952d5810061d1d8b135b625339
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2165630
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
35e389cc
|
2020-04-24T13:33:36
|
|
Vulkan: Remove unicode character from error string.
Will fix presubmit checks on Windows.
Bug: angleproject:4586
Change-Id: I36cec3e850c88a015f33d8a0bb7cc8f8c26402d0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2165628
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
21c5af31
|
2020-04-20T10:29:13
|
|
Vulkan:Migrate events and queries to secondary Cmd Buffer
Replace flushAndGetPrimaryCommandBuffer() function with
endRenderPassAndGetCommandBuffer() for events and queries. The end
result should be the same, but this allows a number of places that were
putting commands directly into the primary to put the commands into
ANGLE's custom SecondaryCommandBuffer (SCB) instead.
This also fixes a couple of minor bugs related to command buffer
ordering. flushAndBeginRenderPass() now flushes any outside
RenderPass (RP) commands first. Also, when insideRP commands are
flushed to the primary, set "mHasPrimaryCommands = true;"
Bug: b/153666475
Change-Id: I68413f25d27175afed0a20bc49f22f4c8d01e4fb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2156932
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
5578fc84
|
2020-04-22T09:34:30
|
|
Vulkan: Disable EXT_texture_sRGB_R8
Due to a dEQP bug, EXT_texture_sRGB_R8 cannot be exposed before
EXT_texture_sRGB_decode is available. This change disables
EXT_texture_sRGB_R8 on the vulkan backend.
Bug: angleproject:3609
Test: dEQP-GLES31.functional.srgb_texture_decode.skip_decode.sr8.*
Change-Id: I261c80986484e489f6903eb54ac6865433050bfa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2161985
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
23621826
|
2020-04-23T10:09:03
|
|
Vulkan: Manual Validation Layer Roll
Latest Vulkan validation layer roll is hitting new error so added
exception and rolling manually.
Bug: angleproject:4583
Change-Id: Id9f8be7d2e20156ad8397ee0ba7ea5fcc12f6d28
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2163133
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
e20f36f4
|
2020-04-21T15:45:44
|
|
EGL: Implement EGL_ANDROID_native_fence_sync on vulkan
Check the following -
1. Vulkan ICD supports VK_KHR_external_fence_fd
2. ExternalFenceProperties and ExternalSemaphoreProperties
support Android FD.
eglCreateSync - if FD was provided import to VkFence,
else create VkFence with new FD and then
flush and submit VkFence on next vkQueueSubmit.
eglGetSyncAttrib - for status call vkGetFenceStatus.
eglDupNativeFenceFdANDROID - return FD from vkGetFenceFD call.
eglClientWaitSync - call vkWaitForFences.
eglWaitSync - dup FD, create VkSemaphore and import FD, then
flush() and add VkSemaphore to next vkQueueSubmit
as a waiting semaphore.
Extended end2end test suite with nativefence test cases.
Bug: angleproject:2517
Test: angle_end2end_tests --gtest_filter=EGLSyncTest.AndroidNativeFence_*
Change-Id: I8f6a6f4c3d71d83007f662b78377aa015a740035
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2026177
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
963759a3
|
2020-04-21T15:14:56
|
|
Vulkan: Mask out implementation dirty bit in sync.
This would needlessly create many redundant sampler objects.
Bug: angleproject:4517
Change-Id: Ib8ef28b9bcbbeec804c493fbe677cbee7d9a750d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2159296
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
492ec932
|
2020-04-21T13:38:41
|
|
Vulkan: Track allocated sampler counts.
Helps to diagnose perf bugs where resources are over-allocated. Also
can be useful to evaluate caching strategies.
Bug: angleproject:4517
Change-Id: I48df5a09fbc394fa0b1712fa8cf28a179665e6e7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2159293
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
6fc0066a
|
2020-04-21T17:40:54
|
|
Vulkan: Add a sampler cache.
This uses a packed sampler description to re-use samplers for multliple
VkImages. The samplers will persist for the lifetime of RendererVk. In
the future we could look at doing cache eviction for large object
counts.
Reduces the active VkSampler cache in Manhattan from over 1200 to 9.
Also should reduce the number of VkSamplers used with Chrome.
Bug: angleproject:4491
Change-Id: Idca00e4ed8cb660a0865281544aaa57cf884bbdb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2160771
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4671bcf0
|
2020-04-21T18:12:46
|
|
Fix program interface queries for arrays and built-ins
Program interface queries for arrays should return an invalid index
value for indices with leading zeroes.
Program interface queries should return invalid locations for built-in
variables.
Bug: angleproject:3596
Test: KHR-GLES31.core.program_interface_query.*
Change-Id: I484ab6e21dbe0c8a984e135ac947c4583a3fbfa2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2159646
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
913f4f42
|
2020-04-15T00:54:37
|
|
Vulkan: Support VS, FS, and CS in the same PPO
This CL adds support for a Program Pipeline Object to have a VS, FS,
and CS attached to the same PPO and then using that PPO for both draw
and dispatch calls.
Bug: angleproject:3570
Test: KHR-GLES31.core.compute_shader.sso*
Change-Id: I262cdbdfd442f6db5ba2b45d1308003102b237cb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2150078
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
78dcba58
|
2020-04-21T15:20:13
|
|
Refactor SyncHelper with vk::Resource
Set SyncVk's SyncHelper to inherit from vk::Resource.
Bug: angleproject:2517
Change-Id: I499414d97e611d029abc12622f19436cbdb3e1f5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2160126
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
1fc354fa
|
2020-04-22T11:49:00
|
|
Re-land: "Vulkan: Forward RenderBuffer/Surface dirty messages."
Re-land fixes ASSERT on Android GLES.
Previously we were only forwarding Texture staging changes to the
Framebuffer for re-sync. We could miss out on clears that were staged
in Surfaces and Renderbuffer attachments. Complete the chain by making
the SurfaceVk and RenderbufferVk forward notifications from the
VkImage.
Bug: angleproject:4517
Change-Id: I91d31213b115a58546b574caa574eebbb098266c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2159294
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0e1798d6
|
2020-04-20T11:25:32
|
|
Vulkan: PPO: Allocate uniform descriptor set if list is empty
When a Program is used to draw, the buffers to hold uniforms are
allocated as part of updateUniforms(), and then if a buffer is
allocated, a corresponding descriptor set is allocated for each shader
stage with uniforms. However, if that Program is later bound to a PPO,
the PPO's descriptor set list is cleared as part of creating the
pipeline layout. This means the uniform descriptor sets need to be
re-allocated but using the previously allocated buffers so the
'anyNewBufferAllocated' flag isn't enough - we also need to check if
the PPO's list of descriptor sets is empty.
Bug: angleproject:3570
Test: KHR-GLES31.core.sepshaderobjs.StateInteraction
Change-Id: Id8df587b4f5552012590a29d120b6899bbdf677b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2156936
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
dadd1986
|
2020-04-21T01:50:00
|
|
Implement GL_APPLE_clip_distance
- Built-in variable gl_ClipDistance has been added to compiler.
- Desktop GL: gl_ClipDistance is supported since GL 3.0. Enable/Disable
each gl_ClipDistances[i] works out of the box via glEnable().
- Vulkan/Metal: Use uniform variable to control writing to each
gl_ClipDistance. One bit flag controls one element in the gl_ClipDistance
array. The writing to the disabled element in vertex shader will be
ignored, and turned into zero assignment instead.
- Direct3D/Mobile GL: Not implemented yet.
- Added ClipDistanceTest to gl_tests and compiler unittests.
- GL_APPLE_clip_distance is a subset of GL_EXT_clip_cull_distance, so
GL_EXT_clip_cull_distance could be implemented in future if needed.
Bug: angleproject:4452
Change-Id: I571ac8b56826989808a680226a04bec4cf59988e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2084324
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
927ea225
|
2020-04-21T19:42:18
|
|
Vulkan: add vulkan error code in the error message
If driver returns error code that we do not know, we simply output
"unknown vulkan error code". Instead we should at least include the
actual errorCode here so that people can search up to see what it is.
Also remove the double period at the end of string and added a few other
vulkan error strings.
Bug: b/154665382
Change-Id: Ic4138e90534b4e7d97520fe10ac1477d2930d9c8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2160130
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
b5992a55
|
2020-04-21T07:58:47
|
|
Add capture support for FenceSync
This allows us to capture Angry Birds 2 traces.
Bug: b/153652100
Change-Id: I99a47f9e41a84218b3bb3d9740df4bb7fc2a01fa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2144763
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
b7d6949b
|
2020-04-17T13:36:14
|
|
Vulkan: Enable persistently mapped buffer objects
The VMA allocator has a handy feature where during memory
allocation we can request persistently mapped memory.
This saves IOCTL overhead for apps that update buffers
frequently.
Bug: angleproject:2162
Change-Id: I870d880033beec343efae6de06f1c5935de4c2c1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2155131
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
fe60973b
|
2020-04-21T11:21:03
|
|
Vulkan: Allow commands to completely fill allocation
If the remaining allocation size for commands in the
SecondaryCommandBuffer class is equal to the command allocation
size and the follow-on header, then we can fill the allocation.
Previously we were conservative and if the size needed exactly
equals the size remaining, we would allocate a new block.
Bug: b/154030403
Change-Id: Ie31f0f5d33782d12adbaea9e3b02598a004d7643
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2158817
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
9dc322d7
|
2020-04-21T11:41:43
|
|
GL: Make sure primitive restart emulation is disabled below GL 3.1
If the GL driver version is below 3.1, we cannot set the primitive
restart fixed index (ES3 wont be supported anyway). Make sure the
feature is disabled.
Speculative fix for crbug.com/1073020
BUG=chromium:1073020
BUG=angleproject:3997
Change-Id: I67756b377aa951da2e70c26f7db978ede9010586
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2159289
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
03c18fbd
|
2020-04-13T16:01:01
|
|
Vulkan: Skip load if depth/stencil value are undefined
EGL1.5 spec says depth/stencil data are undefined after swap. This CL
will track the depth/stencil data and mark it as undefined and skip the
load if it is undefined.
Bug: b/153885625
Change-Id: Ifb3d88d442da547fa78c1eae091cbae08a20d0ab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2148179
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
764d572b
|
2020-04-21T11:15:41
|
|
Vulkan: Refactor SecondaryCommandBuffers class
A strictly cosmetic change to move code into alphabetical order.
In working with SecondaryCommandBuffer commands in separate CLs,
it can be difficult/annoying to track which commands are already
in place as some of them are out-of-order. This change puts the
command enums, functions, and processing in alphabetical order
to simplify searching and adding new commands.
Bug: b/154030403
Change-Id: I6dba4cf48d6f27c056585ac633c694e083b1a263
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2158816
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
e5491253
|
2020-04-17T12:37:00
|
|
Don't redefine VMA_IMPLEMENTATION in build files and source
VMA_IMPLEMENTATION is defined in the build files, it doesn't need
to be redefined in vk_mem_alloc_wrapper.cpp.
BUG=angleproject:2162
Change-Id: Ie4eceedd2dd3051f8431c7c8c86403250e93f98b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2154538
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
623d0443
|
2020-04-21T15:15:03
|
|
Revert "Vulkan: Forward RenderBuffer/Surface dirty messages."
This reverts commit 3fb33ade6ec8f286797bff5645304df580b1a963.
Reason for revert: Causing WebGL test failures on GLES/ANGLE/Android.
Bug: chromium:1072739
Original change's description:
> Vulkan: Forward RenderBuffer/Surface dirty messages.
>
> Previously we were only forwarding Texture staging changes to the
> Framebuffer for re-sync. We could miss out on clears that were staged
> in Surfaces and Renderbuffer attachments. Complete the chain by making
> the SurfaceVk and RenderbufferVk forward notifications from the
> VkImage.
>
> Bug: angleproject:4517
> Change-Id: I15f36c225517e915f656d0c2464a99631ef9f945
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2150699
> Reviewed-by: Cody Northrop <cnorthrop@google.com>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
TBR=cnorthrop@google.com,timvp@google.com,jmadill@chromium.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: angleproject:4517
Change-Id: I4fd4d79dc11da0ba86065d3a80975de4c791a2a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2159288
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
293c36c0
|
2020-04-20T17:35:19
|
|
Vulkan: Manual validation roll
Manually roll validation layers to latest and ignore two more VUIDs that
are being flagged with latest layers.
Bug: angleproject:4578
Bug: angleproject:4579
Bug: angleproject:4580
Change-Id: I4fc46d9df3fa3be4be1f8b773eb2d63e6f4bbd92
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2158265
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
902b5587
|
2020-04-19T13:54:48
|
|
CGL/EAGL: Fix default FBO size on Retina displays
This was found while trying to fix
https://github.com/glfw/glfw/issues/1169
VulkanSurfaceMtl and metal/SurfaceMtl already handle contentsScale
correctly.
Change-Id: I234d7b0901dd7c075cf1e9d58466f52140ab1e2b
Bug: None
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2154670
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
cff64a83
|
2020-04-16T17:32:40
|
|
Capture/Replay: More mid-execution capture support
Test: Temple Run MEC capture and replay
Bug: b/152512564
Bug: angleproject:3662
Change-Id: I31be6e7ad9d290c2077f2f4d975c2d66779eb558
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2155490
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
edc7614c
|
2020-04-17T17:20:08
|
|
Capture/Replay: Handle default uniforms during MEC
During mid-execution capture, when processing uniforms for a program,
capture their values and repopulate during replay.
Test: Temple Run MEC capture and replay
Bug: b/152512564
Bug: angleproject:3662
Change-Id: If84711ead144b7c88710e6b12d0968e80e263c69
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2155489
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
8f48ba9f
|
2020-04-16T17:30:45
|
|
Capture/Replay: Use TexStorage for immutable images
When we detect a texture is immutable, create it with TexStorage
and populate with TexSubImage.
Test: Temple Run MEC capture and replay
Bug: b/152512564
Bug: angleproject:3662
Change-Id: I1948a0376d2634957329d1da35d60ded3608479a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2155488
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
139f8149
|
2020-04-20T14:04:25
|
|
Vulkan: Suppress VUID-vkCmdClearColorImage-image-01993
The latest VVL roll is generating many new errors for
VUID-vkCmdClearColorImage-image-01993. This CL will suppress the
error messages to prevent the test failures until they can be fixed.
Bug: angleproject:4577
Change-Id: I3ea4986c1f43c7d7921761e537d6d51cac3327e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2157853
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
54a3d7cb
|
2020-04-20T12:02:02
|
|
Vulkan: Use DontCare for the presentable surface's last renderpass depth/stencil storeOp
The EGL spec says depth/stencil value are undefined after swap. We dont
need to store depth/stencil value if this is the very last renderpass of
a presentable surface and the endRenderpass call is from swap call.
Bug: b/153885625
Change-Id: Ie853d2686c8eb15a4fa9dbdd80eb66e9fc037d24
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2157886
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
f13689b6
|
2020-04-17T14:43:28
|
|
Vulkan: Use renderpass' finalLayout to transit to ImageLayout::Present
This detects the last renderpass is actually rendering to the image we
are going to present and this is the very last renderpass to that image.
We use finalLayout of the renderpass to do layout transition to
VK_IMAGE_LAYOUT_PRESENT_SRC_KHR instead of a standalone barrier call.
Bug: b/153885625
Change-Id: Ifc17c77a1ba12f22c9d6038775f3e254c35655ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2155250
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ebc4846d
|
2020-04-17T10:42:02
|
|
Vulkan: Suppress VUID-vkCmdCopyImageToBuffer-srcImage-01998
The latest VVL roll is generating many new errors for
VUID-vkCmdCopyImageToBuffer-srcImage-01998. This CL will suppress the
error messages to prevent the test failures until they can be fixed.
Bug: angleproject:4572
Test: BindUniformLocationES31Test.ArrayOfArrays/ES3_1_Vulkan_SwiftShader
Change-Id: I6b36ab64cea8490e577f9077bb44fc7e5023fbda
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2154833
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8cae5e19
|
2020-04-08T12:28:03
|
|
GL: Re-enable emulatePrimitiveRestartFixedIndex
This workaround is needed when the GL driver is less than 4.3 (all
MacOS). The driver will generate many errors during execution without
this enabled which blocks GL driver error checking.
Add additional workarounds for Intel drivers that need a sufficiently
large primitive restart index when doing DrawArrays calls.
BUG=angleproject:3997
Change-Id: Idd293ff1dbc0a3609b11ea1d6b30da0a99e8f5c5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2141714
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
a5e46552
|
2020-04-20T09:33:21
|
|
Vulkan: glDrawElements used old offset into index buffer
When the vertex array binding is changed, the value of
ContextVk::mLastIndexBufferOffset must be reset so that an
old/cached offset (from a previous draw call) is not used for a
new draw call.
This addresses rendering artifacts and Vulkan validation errors
seen with running NBA 2K20 on Android (or the ANGLE trace on
Windows).
Bug: b/153682968
Bug: angleproject:4575
Bug: angleproject:4576
Change-Id: I69089964b8d278c7fc8610ab003548864a215dab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2152850
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
de2935dd
|
2020-04-14T21:18:43
|
|
Add PackedEnums for blend state parameters
Bug: angleproject:4394, angleproject:2169
Change-Id: I6c218af3871a1215c2b103847250bbc782159cb3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2149645
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4d10efbc
|
2020-04-15T15:14:11
|
|
Vulkan: Store ImageType in ImageHelper.
We ended up needing this to recover the image type in the RenderTarget.
Otherwise we don't have direct access to this information in the
FramebufferVk sync state code.
Bug: angleproject:4517
Change-Id: I387947e0b7394e1f63f313dd4792bb042b8da73a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2151170
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
33b58ebb
|
2019-11-25T16:31:43
|
|
Vulkan: Give unsized arrays at least 1 entry
The function ShaderVariable::getNestedArraySize needs to return at least
1 entry for unsized arrays to ensure the shader buffer sizes are
reported correctly.
This also allows ANGLE to treat unsized arrays of structs and basic
types the same way, allowing for the special treatment of unsized arrays
in TraverseStructArrayVariable() to be removed.
Bug: angleproject:3596
Test: dEQP-GLES31.functional.program_interface_query.shader_storage_block.buffer_data_size.*
Change-Id: I3b2a3a68c25e0913b79e989d7c719b34ce9b75fd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1934952
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
2d5da029
|
2020-04-15T17:15:37
|
|
Minor angle_end2end_tests cleanups.
Minor refactoring and call consolidation. Was done while working on
deferring clears in the Vulkan back-end.
Bug: angleproject:4517
Change-Id: I60d80d4f9646c990c4cb8bbc349fc0051389bf02
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2151171
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
dc3477f3
|
2020-03-14T17:22:41
|
|
Separate GLES1's state enum switch code from GLES2+
Some enum values such as GLES1's GL_CLIP_PLANE0 and GLES2+'s
GL_CLIP_DISTANCE0_EXT have the same value.
Thus, the enum switch code has to be separated for GLES1 & GLES2+
Bug: angleproject:4481
Change-Id: I2fcb95f3f75f1fe683a072bee02e797a95686480
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2145284
Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
8c67c079
|
2020-04-16T14:42:15
|
|
Vulkan: store ImageLayout in PackedAttachmentOpsDesc
The layout in the PackedAttachmentOpsDesc only have 5 bits, not enough
for raw VKImageLayout enums. This change will store vk::ImageLayout
which are ANGLE defined and packed for 5 bits and able to handle the
extension bits of VKImageLayout.
Bug: b/153885625
Change-Id: Ida268a974094188d8aeee39c61019eef30a60507
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2153845
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f93cc8bd
|
2020-04-16T10:29:16
|
|
Vulkan: Skip failing BlendIntegerTest tests
Several BlendIntegerTest tests are failing due to an update to the
Vulkan Validation Layers that are now checking if formats support
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT and generating an error
if not while pipeline.pColorBlendState.pAttachments[0].blendEnable
is VK_TRUE.
Bug: angleproject:4571
Test: BlendIntegerTest*
Change-Id: Ibbfe415af3d6d6a879a502adb6541a5bfe8cd13a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2152947
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
aefa3aa9
|
2020-04-15T14:27:12
|
|
Vulkan: Make staged clears store aspect mask.
This will allow us to store depth- or stencil-only clear when we defer
clears in FramebufferVk syncing. Currently a refactoring change only.
Bug: angleproject:4517
Change-Id: Ifc9bf8f9ebab993509155cf6cf66db5b11f35163
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2151169
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3fb33ade
|
2020-04-09T15:27:12
|
|
Vulkan: Forward RenderBuffer/Surface dirty messages.
Previously we were only forwarding Texture staging changes to the
Framebuffer for re-sync. We could miss out on clears that were staged
in Surfaces and Renderbuffer attachments. Complete the chain by making
the SurfaceVk and RenderbufferVk forward notifications from the
VkImage.
Bug: angleproject:4517
Change-Id: I15f36c225517e915f656d0c2464a99631ef9f945
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2150699
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1033d55d
|
2020-04-07T14:01:24
|
|
Pass binding enum to Framebuffer::syncState.
Will allow us to determine if we're clearing the read or draw FBO. Then
we can stash clears for the draw FBO only and issue them immediately
for the read FBO in the Vulkan back-end.
Bug: angleproject:4517
Change-Id: Ifc043317d6156a75749b13f9d2c44a17e14ee378
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2139997
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
943c3bc1
|
2020-04-16T11:25:02
|
|
Vulkan: Fix transform feedback on AMD platform
Make sure pCounterBufferOffsets is never a null pointer when
counterBufferCount is greater than zero.
Bug: angleproject:3206
Change-Id: If161473239b53d2a65b1cccaaf1426a4fefd243a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2152030
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
49ad8eaa
|
2020-04-13T17:55:25
|
|
Enable allowClearForRobustResourceInit for Intel drivers
NVidia drivers have no trouble clearing textures without showing
corruption. AMD ones do.
Intel drivers that have trouble have been relegated to the DX9 runtime
by Chromium.
Bug: angleproject:4460
Change-Id: I9ffbfa041e0f7ef8e05edcc14274bf9530eafae3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2147821
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
|
|
1478ec3c
|
2020-03-18T09:42:37
|
|
Add gles1 primtest tests
Bug: angleproject:2303
Change-Id: Idece2eb2fb291799c9aae811ce63dafdd9333887
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2143029
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d5ba916d
|
2020-04-07T17:59:08
|
|
Vulkan: Change to record transform feedback related APIs per spec
Fix not to record vkCmdBindPipeline and vkCmdBindTransformFeedbackBuffers
during transform feedback is active.
Initiated by Hyunchang Kim hckim.kim@samsung.com
https://chromium-review.googlesource.com/c/angle/angle/+/1971953
Pause Transform feedback on binding graphics pipeline and
end of render pass. Set a new dirty bit to indicate transform
feedback may need resume when invalidate graphics pipeline.
Test: dEQP-GLES3.functional.transform_feedback.*
Test: angle_end2end_tests --gtest_filter=TransformFeedbackTest*
Bug: angleproject:3206
Change-Id: I6c70ef461a31dcd618058b167835ac278a21d04a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2139474
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6e0d718a
|
2020-03-31T18:41:57
|
|
Vulkan: Implement device memory sub-allocation
Use AMD Vulkan Memory Allocator for device memory sub-allocation.
We now have a mempool from which all glBuffer memory is allocated.
The CPU overhead involved in repeated IOCTL calls to the kernel is
reduced significantly.
Bug: angleproject:2162
Change-Id: Id7681ffe2ac3d2853141ebe34c7df7b7fdd0d55e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2124519
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
d26fb99e
|
2020-04-10T16:04:26
|
|
Add DrawBaseVertexVariants Tests
This tests different DrawElements*BaseVertex draw calls
from different extensions including OES_draw_elements_base_vertex,
EXT_draw_elements_base_vertex, and ANGLE_base_vertex_base_instance,
with various combinations of base vertex, base index values.
Bug: angleproject:4536
Change-Id: I3cd256522684c6040199d7704aac8575237dbd96
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2146292
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shrek Shao <shrekshao@google.com>
Commit-Queue: Shrek Shao <shrekshao@google.com>
|
|
7ce8f3e0
|
2020-04-14T11:07:25
|
|
Enable perFrameWindowSizeQuery by default on Mali
It doesn't return out of date error after the native window
has resized, so we need to enable perFrameWindowSizeQuery
on Mali GPU.
Bug: angleproject:4564
Change-Id: Ib454898c5653fbb1b05dc542f7266dfffb03e793
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2145879
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
83678e51
|
2020-04-14T08:47:29
|
|
Tests: Update dEQP KHR GLES 3.1 expectations
Last fix for this test group was merged here:
https://github.com/KhronosGroup/glslang/pull/2175
Test: KHR-GLES31.core.shader_bitfield_operation.*
Bug: angleproject:4402
Bug: b:153165560
Change-Id: Icfd8fcc0b4ef293870bff6fdc0852e85784bb16e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2148960
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
dee4d7a5
|
2020-04-10T10:22:56
|
|
Vulkan: Early fragment tests optimization
Checks if early fragment tests as an optimization is feasible and enable
it if we can. In the link time, if context state diagrees with
optimization (in rare case), then remove the
ExecutionModeEarlyFragmentTests sprv op code.
Bug: angleproject:4508
Change-Id: Ifbb06c0ffb050a9f3ddb16ab50362e908b4b9cf6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2136490
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
cf2c8e60
|
2020-04-09T18:52:29
|
|
EGL: Relax test skip conditions for a few colorspace ImageTests
Relax test skip conditions for the following colorspace
ImageTests -
- SourceRenderbufferTargetTexture_Colorspace
- SourceRenderbufferTargetTextureExternal_Colorspace
- SourceRenderbufferTargetTextureExternalESSL3_Colorspace
For these tests, it is sufficient to check for support of
EGL_EXT_image_gl_colorspace extension
Bug: angleproject:3756
Tests: angle_end2end_tests --gtest_filter=ImageTest.SourceRenderbufferTargetTexture*_Colorspace*
Change-Id: I123fb14fc79e8f949a903b7586a0badf54297cfa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2144549
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
c68dfaf3
|
2020-04-01T16:36:25
|
|
Avoid GPU-GPU copy for StructuredBuffer
If uniform block is translated to StructureBuffer on D3D backend,
must do a GPU-GPU copy when updating uniform buffer. If buffer's
latest usage is StructuredBuffer, directly upload to structured
buffer.
Bug: angleproject:3682
Change-Id: I7303866d08705a43238732e5f5ae4858f0a33d63
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2131871
Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
405f8e7b
|
2020-02-24T17:38:10
|
|
Vulkan: Support Program Pipeline Objects
Add support for PPOs to the Vulkan back end.
Bug: angleproject:3570
Change-Id: I5403456929847c185467b008d810f31ecfcb60cc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2072652
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
c12c1f57
|
2020-04-03T01:33:54
|
|
D3D11: Skip setting BlendState for integer attachments
Some D3D11 drivers may produce unexpected results when blending is
apllied to integer attachments.
Minor cleanup: early exit for nullptr attachments.
New BlendIntegerTest in angle_end2end.
Bug: angleproject:4548, angleproject:4547, angleproject:4525, angleproject:4394
Change-Id: I236ac6db1f8dcaca54e9bc1b0803e1775fd75632
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2134448
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
dac5cc3b
|
2020-04-08T18:26:46
|
|
EGL: Add support for EGL_EXT_image_gl_colorspace extension
Add support for creating images with custom colorspace.
Bug: angleproject:3756
Tests: angle_end2end_tests --gtest_filter=ImageTest*
Change-Id: I9c332c012541c094728d9d9bde7add4189084a33
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2104088
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
2caf7ffd
|
2020-03-23T12:12:42
|
|
Address a TODO for instance uniform block
This patch resolves one TODO that Support to translate instance uniform
block containing only a large array member to Structured buffer on D3D
backend when necessary.
Bug: angleproject:4205
Change-Id: If2cd6cf633080820ea33e52269d7d86cd587c9ee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2114912
Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
23196076
|
2020-04-08T10:47:33
|
|
GL: Protect against infinite loops with CONTEXT_LOST in CheckError
If the GL context generates a CONTEXT_LOST error, stop checking for errors.
This error will be generated continuously and result in an infinite loop.
BUG=angleproject:3020
Change-Id: Ib78d1ff3f84103e658307f2f892538700916449d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2142312
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|