|
45521eea
|
2025-09-17T15:57:04
|
|
Fix DrawWithMismatchedComponentCountLocationSpecified test bug
The test has a bug that enabling the wrong vertex attribute. Instead of
using hard coded attribute index (1), use colorLocation instead.
Bug: angleproject:42264298
Bug: b/439073246
Change-Id: I3ae652e0ea6abe0392e6698c01af2f1c255cba26
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6962956
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
25390156
|
2025-08-21T00:13:19
|
|
Suppress unsafe buffers on a file-by-file basis in src/ [1 of N]
In this CL, we suppress many files but stop short of actually
enabling the warning by not removing the line from the
unsafe_buffers_paths.txt file. That will happen in a follow-on
CL, along with resolving any stragglers missed here.
This is mostly a manual change so as to familiarize myself with
the kinds of issues faced by the Angle codebase when applying buffer
safety warnings.
-- Re-generate affected hashes.
-- Clang-format applied to all changed files.
-- Add a few missing .reserve() calls to vectors as noticed.
-- Fix some mismatches between file names and header comments.
-- Be more consistent with header comment format (blank lines and
trailing //-only lines when a filename comment adjoins license
boilerplate).
Bug: b/436880895
Change-Id: I3bde5cc2059acbe8345057289214f1a26f1c34aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6869022
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4be3143c
|
2025-04-10T15:18:52
|
|
Vulkan: Vertex attribute hole crash workaround
When the start vertex index of glDrawArrays is not 0, this hole
case will crash again.
* Added a condition to bypass the attribute update if the
attribute pointer is null.
* Added a glDrawArrays(GL_TRIANGLES, 3, 3) in unit test
VertexAttribPointerCopyBufferFromInvalidAddress
Bug: angleproject:359729255
Change-Id: I1d7f50dc56080ef0b4e48c4c3c983189a26171c1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6445172
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Auto-Submit: Mavis Deng <mavis.deng@arm.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
9e8b104e
|
2024-10-14T00:00:00
|
|
Do not test OpenGL backend on iOS
Added Metal platform to tests
that require instantiation.
Bug: angleproject:40050022
Bug: angleproject:42264029
Bug: angleproject:42266119
Bug: angleproject:42266226
Bug: angleproject:42266239
Bug: angleproject:42266249
Bug: angleproject:359136169
Fixed: angleproject:373478551
Change-Id: I915f09c7f24acce27bf0d489932645338ac3fbe8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5932659
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
91391c06
|
2024-10-02T16:07:02
|
|
Vulkan: Vertex attribute hole crash workaround
* Added condition to bypass reading from a streaming attribute
if the source pointer is null.
* Added unit test that crash if a vertex pointer is not defined
for an enabled vertex attribute.
* VertexAttribPointerCopyBufferFromInvalidAddress
* Credit for the original test: tingwei.guo
Bug: angleproject:359729255
Change-Id: I2592fed66f0eba8c7003ec02cc8ca802833f23b3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5899978
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e4be31ca
|
2024-08-29T14:30:11
|
|
Test: Add VertexAttribPointer test with different offset
The first test draw with VertexAttribPointer with smaller offset and
then followed by draw with VertexAttribPointer with larger offset. The
second test draw with larger offset and then followed by draw with
smaller offset. They will exercise logic in backend that may reuse the
conversion buffers (when forced format fallback is used).
Bug: b/357622380
Change-Id: If325a0547e5f80305125f448e9f987896f3e35bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5827285
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
6f97a8b3
|
2024-08-21T13:25:28
|
|
Vulkan: Add two tests for vertex conversion
Two glBufferSubData calls and then use the buffer (get down to the
vertex conversion code path, at least with forced fallback config). The
test will exercise the logic regarding the conversion with multiple
dirty ranges. Two tests are added in this CL, one with two overlapping
range and another with non-overlapping range.
Bug: b/357622380
Change-Id: Id8fa23a6e1511e2f03c002782ab99f167416ca02
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5805244
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
da572160
|
2024-07-23T16:36:10
|
|
Reland: GL: Forward client-side arrays to the driver when possible
The OpenGL driver can handle client-side arrays when the context is
OpenGL ES or a desktop GL compatibility profile. When in these
situations, use the driver default VAO for all frontend context VAOs
and forward client-side data directly to the driver.
Fix synchronizing the default VAO state for external contexts. There
is no valid VertexArrayStateGL for external VAOs so make sure it's
nulled and the VAO dirty bits are set so the correct VAO state is
reapplied.
Disable syncing to the default VAO for external contexts. The only
VAO that they can share with ANGLE's internal state is the default
VAO so avoid having to save and restore its state.
Bug: angleproject:355034686
Change-Id: I015bbbc854938fe4bc1e92d0ca8fe04628d0db16
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5743284
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
a0a832de
|
2024-07-26T12:33:37
|
|
Revert "GL: Forward client-side arrays to the driver when possible"
This reverts commit a6c2b4346516f228054b5bdd754bbc6f3ba1cba7.
Reason for revert: Fails some Chrome tests on Android after rolling: https://chromium-review.googlesource.com/c/chromium/src/+/5742024
Original change's description:
> GL: Forward client-side arrays to the driver when possible
>
> The OpenGL dirver can handle client-side arrays when the context is
> OpenGL ES or a desktop GL compatability profile. When in these
> sitatuions, use the driver default VAO for all frontend context VAOs
> and forward client-side data directly to the driver.
>
> Bug: angleproject:355034868
> Change-Id: I21a4459c4f7db780b51441d76e63d17bf737c101
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5736058
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Bug: angleproject:355034868
Change-Id: I76f95d66ca277bcbb67300179e49287b433c1ede
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5742647
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
a6c2b434
|
2024-07-23T16:36:10
|
|
GL: Forward client-side arrays to the driver when possible
The OpenGL dirver can handle client-side arrays when the context is
OpenGL ES or a desktop GL compatability profile. When in these
sitatuions, use the driver default VAO for all frontend context VAOs
and forward client-side data directly to the driver.
Bug: angleproject:355034868
Change-Id: I21a4459c4f7db780b51441d76e63d17bf737c101
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5736058
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
d193d51b
|
2024-06-17T22:46:08
|
|
Replace issue ids post migration to new issue tracker
This change replaces anglebug.com/NNNN links.
Bug: None
Change-Id: I8ac3aec8d2a8a844b3d7b99fc0a6b2be8da31761
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5637912
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
59adc191
|
2024-05-23T00:00:00
|
|
Metal: Ensure valid vertex buffer layout stride
Metal Validation causes runtime failures if the sum
of the vertex buffer binding offset and the related
vertex layout stride is greater than the buffer's
length.
Fixed: angleproject:342350849
Change-Id: I531f092c6130b37cb8b0b89b20804a222160ceb7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5565528
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
|
|
9742351b
|
2024-05-23T00:00:00
|
|
Move ConversionWithNoVertices to WebGL tests
Reliably passing the test requires either
extra validation or backend support.
Bug: angleproject:342419059
Change-Id: Ifd861f292b5d8f0eb63280a182842343078b7e0c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5569094
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b3ab67d3
|
2024-03-14T15:06:02
|
|
tests: Remove unnecessary .get() from RAII objects
Bug: chromium:40942995
Change-Id: I82509869bce3ad8f51811188fe04267f2de04786
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5370904
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e5cb7f1f
|
2024-03-12T16:06:37
|
|
Vulkan: Fix access to inactive attributes
... within range of active ones. Since a buffer is bound for inactive
attributes, it must be considered accessed.
Ultimately, the nullDescriptor feature could be used to avoid binding a
buffer for inactive attributes.
Bug: chromium:327807820
Change-Id: Ieceea9442310c23568c47cef7357b4094b7ebbb4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5369336
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
27423bff
|
2024-03-05T17:57:24
|
|
Metal: Generate names for rewritten inputs
When expanding multi-component fields to multiple single-component
fields, use AngleInternal namespace for the new names. The names are
generated with form "someField_0" where _0 is the component index.
If these are not created in AngleInternal, caller is able to create
a name clash by introducing single-component field "someField_0".
Fixes an assert where the vec4(a_) + vec4(a) would assert on size
mismatch because the variable lookup for "a_" would find a rewritten
variable for the expanded matrix row of "a".
Bug: angleproject:8558
Change-Id: I64b7a755d7d534543fdb0f4c43008dd5c63f4aad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5323060
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
|
|
e00995d4
|
2023-12-21T15:57:39
|
|
Vulkan: Invalidate pipeline with FBO draw buffer change
Enabling/disabling draw buffers can affect the graphics pipeline without
changing the render pass description. In that case, the graphics
pipeline was not being invalidated.
Bug: angleproject:8463
Change-Id: I6848472dcbb3d3ce4c34d95be28c8ec3fc50dcd7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5147847
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
|
|
8f966559
|
2023-12-07T00:00:00
|
|
Metal: Fix matrix vertex attributes with mixed sources
Updated VertexArrayMtl::setupDraw to support matrix
vertex attributes that use current and array values
simultaneously.
Simplified the helper function.
Fixed: angleproject:8456
Change-Id: I09a26a978cda4b9ac3747325ad571d5ad2fff72d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5116500
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
|
|
0b0b4b22
|
2023-12-07T00:00:00
|
|
Avoid UB in VertexAttributeTestES3.DrawWithUnalignedData
The test uses a signed normalized vertex attribute,
which requires a floating point vertex input.
Bug: angleproject:7001
Fixed: angleproject:7068
Change-Id: I97afc97b03a58130e0d6ee63ec7ee3e44f1e0230
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5105194
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d7077e9f
|
2023-12-05T00:00:00
|
|
Update macOS end2end expectations
Bug: angleproject:2273
Bug: angleproject:2408
Bug: angleproject:3837
Bug: angleproject:5325
Bug: angleproject:5360
Bug: angleproject:5594
Bug: angleproject:6358
Bug: angleproject:6418
Bug: angleproject:6454
Bug: angleproject:6457
Bug: angleproject:6540
Bug: angleproject:6702
Bug: angleproject:6751
Bug: angleproject:7068
Bug: angleproject:7309
Bug: angleproject:7445
Change-Id: I7f4c012ed2de6af83188ed69170b19f8d2bb19de
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5087774
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2155534b
|
2023-11-06T11:49:20
|
|
Don't set dirty bits for attribs that are out of range.
PrivateState::setAllDirtyBits sets all bits in mDirtyCurrentValues.
When the context has fewer max attibutes than MAX_VERTEX_ATTRIBS, this
can cause out-of-bounds access to
PrivateState::mVertexAttribCurrentValues if the dirty bits are iterated
over without range validation.
Bug: chromium:1496378
Change-Id: I65481c432263a6e353a9361bba741b97dc5e20b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5008034
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
383df961
|
2023-11-06T22:00:52
|
|
Metal: only convert vertex if offset is not multiple of 4.
Previously we always convert vertex attribute if its binding offset
is not multiple of the attribute's size. This requirement seems to be
unnecessary.
This CL removes that requirement so the only requirement left for offset
is that it must be multiple of 4.
Bug: chromium:1496807
Change-Id: I35c421951c7817b77bd0c006ed4b72cd04b5a8d7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5006359
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
|
|
67222ef4
|
2023-10-20T22:56:09
|
|
Reland "Vulkan: merge client buffer data."
This is a reland of commit 563569acfcaf56ea87916d2ab5d50f09c8e0094e
Original change's description:
> Vulkan: merge client buffer data.
>
> some old fashion game still use lots of interleaved
> client buffer. instead of copy each attrib alone.
> this cl try to merge all the attrib ranges. reduce
> allocated memory and do whole range memcpy.
>
> Bug: b/306763053
> Change-Id: I493d7f0e1ef593fb7059c36ae0ed2149c4595e42
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4960642
> Commit-Queue: Hailin Zhang <hailinzhang@google.com>
> Reviewed-by: Charlie Lao <cclao@google.com>
Bug: b/306763053
Change-Id: If079ab055b7b7a2d14235bee3311fd628f657f35
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4997325
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
|
|
fdf4c6a6
|
2023-10-24T12:09:51
|
|
Add test for attrib rebinding from ARRAY_BUFFER to client.
Failure was found in Dragonmania game, where on switching from
ARRAY_BUFFER to client attrib pointer without updating the stride,
ANGLE assumed no change in the pipeline.
Bug: b/306472834
Change-Id: I30f7a478ed62f4356317156b50558166cb7c4c01
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4977168
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
7f6e5354
|
2023-07-31T13:02:35
|
|
Vulkan: Skip vertex conversion if the draw has 0 vertices.
If the draw call start vertex is beyond the end of the buffer, vertex
conversion will no-op and no conversion buffer is created. Just skip
the entire conversion process in this case and bind the empty buffer.
Fix GetVertexCount not taking 0 stride into account.
Bug: chromium:1464690
Change-Id: Iaffcd329595c3319fe9cd5317aef2402f9db6b1e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4734811
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
113f847b
|
2023-06-26T12:07:52
|
|
centralize basic OS/platform detection functions
We had multiple different places that defined these, and with varying
naming schemes. Centralize them to be defined in platform_helpers.h.
Also renaming the IsApple(uint32_t) functions to IsAppleGPU(uint32_t) to
avoid ambiguous meaning: "IsApple" should mean "is Apple-vended OS"
while "IsAppleGPU" should mean "is Apple GPU vendor ID".
Bug: angleproject:8229
Change-Id: If4e3fc5ac1b5b8ad416663950a1b2ee912ccad99
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4647291
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Steven Noonan <steven@uplinklabs.net>
Auto-Submit: Steven Noonan <steven@uplinklabs.net>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f0e3d8f9
|
2022-10-18T13:51:31
|
|
Vulkan: Shader component type in GraphicsPipelineDesc
Currently, there's some program state used in creating pipelines
alongside what's in GraphicsPipelineDesc. This works because the
pipeline cache lives in the program executable.
With VK_EXT_graphics_pipeline_library however, we could create vertex
input and fragment output partial pipelines that are independent from
and are shared between multiple programs. To support this, any program
state that's necessary for pipeline creation should be part of the
GraphicsPipelineDesc structure.
This change places the state affecting vertex input in
GraphicsPipelineDesc. A follow up change will do the same for state
affecting fragment output.
Bug: angleproject:7369
Change-Id: Iccf691a1597d786efa1625f7b1c22f906201f2e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3964751
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
eaa71709
|
2022-10-14T11:47:07
|
|
Vulkan: s/ContextVk/Context in pipeline creation
With VK_EXT_graphics_pipeline_library, pipeline creation may happen on a
thread. This change prepares the interface such that only a vk::Context
is needed, instead of ContextVk.
Bug: angleproject:7369
Change-Id: Ib7e9e7e140e27a4af71bffee069c88e3d7f47dfa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3956935
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
496b3532
|
2022-10-07T15:49:08
|
|
fix typo
Bug: None
Change-Id: Ieca7fcd5b8172ad16cc73f453f6e2e2f29ae6016
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3939221
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9393fd54
|
2022-09-13T20:06:57
|
|
FrameCapture: Ignore GetActiveAttrib
Similar to how we skip glGetActiveUniform, we also need to skip
glGetActiveAttrib. Attribute active status varies based on the
underlying shader compiler. More aggresive stacks can find ways to
eliminate them. If the application asks about attributes above
GL_ACTIVE_ATTRIBUTES, a GL error is thrown, causing a trace to be
non-portable.
Tested with Eve Echoes and Monster Hunter Stories.
Also added an end2end test that showcases a way apps ask about
attributes, verified we can capture and replay it across multiple
vendors now.
Test: VertexAttributeTestES3.UnusedAttribsMEC
Bug: angleproject:7215
Bug: angleproject:7557
Bug: angleproject:7402
Change-Id: I3c655bcead0ddb1677f8e1d49cb7d3f3c6b4feba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3866041
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
89e38b57
|
2022-06-22T15:04:08
|
|
Refactor to use ANGLETest vs ANGLETestWithParam
Bug: angleproject:6747
Change-Id: I72ad52d0268eae0e1a401f12f3e94cc5efa402f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3719002
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
400d9fe4
|
2022-04-23T01:08:19
|
|
Rename feature files to *_autogen.h
To clarify further that they are not to be edited by hand.
Bug: angleproject:6435
Change-Id: Iaf79706d2b688a43b3ebb65700cfbdd71a49a742
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3603842
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8074061d
|
2022-04-09T01:03:53
|
|
Remove feature override platform methods
Instead, the tests now use the enable() functions to override the
feature at platform level.
This fixes the forceFallbackFormat feature mistakenly not having been
tested.
Bug: angleproject:6435
Change-Id: I605e4133407282bd52232887b595af0d2c13575d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3577369
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
797e627e
|
2022-04-08T22:49:51
|
|
Autogenerate list of features as enum
The WithX() and WithNoX() helpers are removed and replaced with enable()
and disable() member functions that take the name of the feature (as a
Feature::X enum constant). This has two benefits:
- Adding tests that override a feature no longer requires additional
helper functions to be written.
- There's no mistaking the feature name.
This change doesn't yet fix the main issue in anglebug.com/6435, but
does fix the following helpers using an old feature name (so they were
ineffective):
- WithMetalForcedBufferGPUStorage
- WithNoVulkanViewportFlip
A follow up would remove the old way of overriding features in tests and
replaces them with the new way.
Bug: angleproject:6435
Change-Id: Ida02b26ec72bc40d7a8938c76a93815bb903ca05
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3580982
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d4ddd0c1
|
2022-03-10T16:31:00
|
|
Vulkan: Handle the case where the bound buffer is empty
If vertex attribute is enabled and buffer is bound, but buffer size is
0, we should not crash. This CL skips mapImpl and data copy all together
if size is 0 to avoid crash when calling mapImpl while buffer is
invalid.
This CL also added a test for this.
Bug: chromium:1296467
Change-Id: I79af348f133e1d3b4427f044e370652d0875dc91
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3516700
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
70af5ff0
|
2022-02-18T14:35:59
|
|
FrameCapture: Skip invalid VertexAttribPointer calls in MEC.
In CaptureVertexArrayState when a non-default VAO is bound and no
GL_ARRAY_BUFFER is bound, VertexAttribPointer calls with a non-null
offset are invalid and will produce:
"Client data cannot be used with a non-default vertex array object."
Add a test that leaves a vertex array with an invalid vertex
attribute pointer and used to produce an invalid trace with MEC.
Test: angle_end2end_tests --gtest_filter="VertexAttributeTestES3.InvalidAttribPointer/*"
Bug: angleproject:7042
Bug: angleproject:7098
Change-Id: Iaf91fe7f191c44df79db47bb5455e5df922f2ed5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3475353
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
19fd3bc5
|
2022-02-28T13:23:20
|
|
Fix unaligned reads on armeabi-v7a
If an application provides unaligned data to glVertexAttribPointer,
we may attempt an unaligned read from this application-provided buffer.
This change detects such a case and copies the data byte-by-byte in
order to prevent SIGBUS errors on architectures that do not support
unaligned reads.
This fixes the issue ONLY for integer-to-float vertex attribute
conversion. Other vertex attribute processing functions may still be
affected by this problem.
Bug: angleproject:7001
Test: VertexAttributeTestES3.DrawWithUnalignedData*
Change-Id: Ic66a150a0bf9fe4df3afe5fc5c91646a46186e8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3448420
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
d98f4812
|
2022-02-17T15:22:22
|
|
FrameCapture: Capture empty buffer generation.
This avoids emitting VertexAttribPointer with non-null offsets when
the array buffer is empty and a vertex array is bound in MEC.
When no buffer is bound, which was also the case if the buffer was
empty, non-null offsets are not allowed in VertexAttribPointer and
will result in:
"Client data cannot be used with a non-default vertex array object."
Add EmptyArrayBuffer test to VertexAttributeTestES3.
Test: angle_end2end_tests --gtest_filter="VertexAttributeTestES3.EmptyArrayBuffer/*"
Bug: angleproject:7026
Change-Id: I0cb02a5588f5d2bbc85f58b75fd14493b644d52b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3468524
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
471f1852
|
2022-01-31T11:22:49
|
|
D3D11: Fix underflow with computing small strides.
When an attribute stride was less than the size of a vertex
element, and the D3D11 back-end emulates this vertex format, our
vertex streaming logic could decide that an unsigned int underflow
means our element count in a buffer is not computable and return
zero.
Fix this bug by using signed integers in the element conversion.
Bug: angleproject:6958
Change-Id: Ibd9a3599d780e953d492db739c7443662c7e6b82
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3427559
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4ae30a63
|
2021-11-22T16:25:11
|
|
Vulkan: Don't attempt to convert vertices in empty buffers
Bug: chromium:1271671
Change-Id: I869f30fd9c8a52c07263bb7a72978a31f2aceb9a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3297026
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9aa9f7c2
|
2021-10-08T14:04:41
|
|
Remove vertex attribute test suppressions.
Bug: angleproject:2797
Change-Id: I64b17d674e2d4a490c321357474e3260eb46f43c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212897
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
66c89b0f
|
2021-10-06T16:28:42
|
|
Fix and disable MSVC warnings
Needed because some warnings are no longer disabled after
http://crrev.com/c/3189512.
Also includes https://github.com/KhronosGroup/OpenCL-Headers/pull/179,
needed after clang upgrade to llvmorg-14-init-5410-gd0473681
Bug: chromium:1257173
Change-Id: I4f844aa972362c488cb6d37244439e2126f2c1c3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3210629
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
5a7b8c61
|
2021-08-31T14:58:06
|
|
Vulkan: Removed size check when handling mismatched vertex attributes
If locations are specified to be noncontiguous or out of order when
there is a mismatch between the attribute type specified by
glVertexAttribPointer and the shader, the program's attribute type
from ProgramExecutable's getProgramInputs() method would fail.
This is due to using attribIndex which refers to the attribute's
location rather than the position in the vector returned from
getProgramInputs().
This change removes the size check as it's not needed for
GL_ANGLE_relaxed_vertex_attribute_type.
Bug: angleproject:5762
Test:
VertexAttributeTestES3.DrawWithMismatchedComponentCountLocationSpecified
Change-Id: Ie15f2095e618e12403d1524273d1add74b00cdbd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3137273
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Brandon Schade <b.schade@samsung.com>
|
|
4964513a
|
2021-06-28T20:07:46
|
|
ANGLETest: When on WebGL compatibility then use index buffers
WebGL actually requires the use of index buffers, otherwise the
call is invalid, therefore explicitely request index buffers in
the according VertexAttributeOORTest tests.
In addition, assert on the indices when the glDrawElements call is
captured.
With that we can enable VertexAttributeOORTest.*
Bug: angleproject:6125
Change-Id: Id3855c78d4c5fcab5599f19dd74ce745d059fb1c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2999523
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
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>
|
|
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>
|
|
18c6d628
|
2021-03-09T13:46:13
|
|
GL: Support VAOs without native VAOs.
Share the default VAO state between all frontend VAO when
there is no native VAO support. Forcefully sync state every
time a new frontend VAO is bound.
Bug: angleproject:5577, chromium:1167179
Change-Id: Ieaedb5108ad28fc78e7e58b74495639c5246bb05
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2665266
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Peng Huang <penghuang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
a6b16d29
|
2021-03-02T19:04:57
|
|
Suppress UNINSTANTIATED_PARAMETERIZED_TEST failures on Ozone
We only support ES2 on Ozone, so tests that depend on ES3 or ES31
support are not instantiated there.
Bug: chromium:1183147
Change-Id: Id58bcd9b44a5b9a70b5ae8115e27c44f5dc81226
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2726550
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
ebf00703
|
2020-12-29T16:25:54
|
|
angle_end2end_tests passes on iOS!
Miscellaneous test skips and fixes for iOS.
Bug: angleproject:5417
Bug: angleproject:5491
Change-Id: Id0785e6243949fc756e4d7923dbbe77a411052f3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2606656
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
|
|
10b22c11
|
2020-11-24T15:28:05
|
|
Skip failing tests on Win AMD RX 5500 XT
BlitFramebufferANGLETest.BlitStencil
ClearTestES3.ClearMaxAttachments
RobustResourceInitTest.MaskedDepthClear
RobustResourceInitTestES3.InitializeMultisampledDepthRenderbufferAfterCopyTextureCHROMIUM
RobustResourceInitTestES3.MaskedDepthClearBuffer
RobustResourceInitTestES3.MultisampledDepthInitializedCorrectly
RobustResourceInitTestES3.TextureInit_IntRGB8
RobustResourceInitTestES3.TextureInit_UIntRGB8
VertexAttributeTest.DrawArraysWithShortBufferOffsetNotMultipleOf4
Bug: chromium:1004356, angleproject:5396, angleproject:5397
Bug: angleproject:5398, angleproject:5399
Change-Id: I5a6f16b38696b7cf3bb007363160d2ecbb06ac9a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2558932
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
8a275449
|
2020-10-25T03:22:10
|
|
Metal: Add ES3_METAL to ANGLE_ALL_TEST_PLATFORMS_ES3
Bug: angleproject:2634
Change-Id: Iacc3aaf17565c7b16879897db4b9dac16826d829
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2494526
Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8a50b42b
|
2020-10-24T19:29:12
|
|
Metal: Convert index & vertex format on GPU when possible.
- When converting vertex buffer:
- if there is no render pass active, use compute shader to convert.
- if there is a render pass active and device supports explicit memory
barrier then convert the buffer in vertex shader with direct buffer
write and insert a memory barrier.
- if there is a render pass active and device doesn't support explicit
memory barrier then convert the buffer on CPU.
Bug: angleproject:2634
Change-Id: I5346e3a2adb855f40e46a3912d9db404a4482e0f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2434025
Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
ed23dc84
|
2020-10-24T19:12:32
|
|
Metal: default integer attribs & offset mod for idx conv.
- Support default integer attributes.
- When converting index buffer, use offset modulo instead of offset to
reduce number of conversions if application uses many different
offsets to the index buffer.
Bug: angleproject:2634
Change-Id: I97aa9ea1826ffc9dbe5784fe5b5af2f99df63e2c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2494524
Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
04b7277e
|
2020-10-28T11:45:31
|
|
Fix unintialized data in VertexAttributeTest.
The test was initializing an extra element at the end of a vertex
buffer and never initializing it. I fixed this for one test but
the bug was actually replicated into several. This fixes the bug
by inializing the last vertex to the zero vertex value.
Bug: angleproject:3951
Bug: angleproject:4163
Bug: angleproject:4258
Bug: angleproject:4269
Bug: angleproject:5258
Change-Id: I226406475340d756bfb7624d163abeca7b807f20
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2505551
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
46075937
|
2020-10-28T10:30:44
|
|
Expand DrawArraysWithAlignedAndUnalignedBufferOffset supression
VertexAttributeTest.DrawArraysWithAlignedAndUnalignedBufferOffset/ES2_D3D11
flakes on all Windows platforms. Supressing the failure while we
investigate.
Bug: angleproject:5258
Change-Id: I25dbdd4201d02fe32d37c4ca9527f86093f1c243
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2505480
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
cb5c0b01
|
2020-10-21T00:12:57
|
|
Vulkan: Drop RelaxedPrecision from aliased attributes
Take the following example:
attribute mediump vec4 a; // location 0
attribute highp vec2 b; // location 0
f(b)
This was previously translated to:
attribute mediump vec4 a; // location 0
f(a.xy)
That difference here is that b was previously highp, but a.xy is
mediump. This change drops RelaxedPrecision from attributes so that
they are all highp.
Note that the temporary SPIR-V ids these attributes are loaded into
still retain their RelaxedPrecision decoration (if any), and the
precision of calculations in the shader is not increased by this
change.
Bug: angleproject:4249
Change-Id: Idca0fc667ad6e36ddf428b65ea03706272a9ed9c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2488131
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
883276cc
|
2020-10-21T16:20:35
|
|
Fix end2end tests VertexAttribute* failure
VertexAttributeTests used 'mediump' precision to sample ushort
with 65533/65534/65535 which exceed the range defined in ESSL Spec.
(Spec "4.5.2 Precision Qualifiers")
Change precision of attribute 'test' and 'expected' to 'highp'
for numbers that exceed the minimum range.
Bug: angleproject:5211
Change-Id: I01e5c999ec43d17a7390835d2ac88ce2bc0b4c5b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2491621
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d7475437
|
2020-10-20T15:04:18
|
|
Vulkan: Support vertex attribute aliasing for matrix types
This change builds on vertex attribute aliasing SPIR-V tranformation for
non-matrix types to add support for matrix attribute types. This is
done by turning every matrix attribute declaration into multiple vector
attribute declarations, and reusing the same mechanism for resolving
aliasing between non-matrix types.
Take the following example:
attribute mat4 a; // location 0
attribute vec3 b; // location 1
attribute mat3 c; // location 1
attribute vec4 d; // location 2
The shader is modified as such:
attribute vec4 a_0; // location 0
attribute vec4 a_1; // location 1
attribute vec4 a_2; // location 2
attribute vec4 a_3; // location 3
attribute vec3 c_0; // location 4
attribute vec4 d; // location 5
attribute vec3 c_2; // location 6
mat4 a;
mat3 c;
and in the beginning of main(), the following code is inserted:
a = mat4(a_0, a_1, a_2, a_3);
c = mat3(c_0, d.xyz, c_2);
The shader continues to use a and c as before.
Bug: angleproject:4249
Change-Id: Idfcb8c6037ca0c1f21de8203d7e2a1b66fed6e7e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2488128
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
9091de43
|
2020-10-17T00:33:57
|
|
Vulkan: Support vertex attribute aliasing for non-matrix types
Initial implementation that supports float and vecN types. In this
case, every attribute occupies a single location. When two attributes
alias, they are either the same size, or one is bigger than the other.
Take the following example:
attribute vec3 a; // location 0
attribute vec3 b; // location 0
attribute vec4 c; // location 1
attribute vec2 d; // location 1
The shader may access either a or b (but not both). Similarly, it can
access either c or d (but not both). The shader can be modified such
that:
- f(b) is replaced with f(a).
- g(d) is replaced with g(c.xy).
- b and d are removed
As a result, there are no longer any aliasing attributes. In other
words, when attributes alias, the larger attribute can be retained and
the other attributes can be replaced by selecting the appropriate number
of components from the retained attribute.
Bug: angleproject:4249
Change-Id: I7c5461f777d659c92977e2572091a8ce5e422704
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2482286
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
e3a57381
|
2020-10-18T15:42:58
|
|
Fix VertexAttributeTest.DrawArraysWithBufferOffset.
This test was reading past the end of a buffer into undefined data.
Bug: angleproject:3951
Bug: angleproject:4163
Bug: angleproject:4258
Bug: angleproject:4269
Change-Id: I54ab9aa0cd1442184692e60c7f99f2139a855d63
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2483842
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
da09d08f
|
2020-10-16T00:02:34
|
|
Regression tests for vertex attribute aliasing
Tests for the upcoming implementation of vertex attribute aliasing in
Vulkan.
Bug: angleproject:4249
Change-Id: Ic87e44b1815b376da4cda5e8887dd3a05c9cc35f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2477051
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1c654d54
|
2020-08-26T00:16:52
|
|
Metal: Fix handling of vertex attrib offset not multiple of 4
Metal requires the vertex attribute offset to be multiples of 4, and its
stride must not be less than attribute's size.
This should fix the WebGL's test:
conformance/attribs/gl-vertexattribpointer-offsets.html
Bug: angleproject:4846
Bug: angleproject:2634
Change-Id: I0784a8ccaedd5e6c58a266243bfa94ba36e53e11
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2374829
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d201ed8b
|
2020-08-02T16:29:35
|
|
Vulkan: Track used Images in RenderPass.
Adding a simple ImageSerial tracking map in our RenderPass allows us
to know when we do or do not need to close the RenderPass on a new
Image access. This simple tracking scheme improves Manhattan
performance by up to 25% on Android. The improved perf comes from
reducing our RenderPass count (23->18 RenderPasses in our capture
scene).
Adds a FastUnorderedSet class to manage the used RP Image serials.
Updates the Query helpers to explicitly flush the RP before inserting
queries.
Bug: angleproject:4911
Change-Id: I0c34fc8e307514ebdf3e81e08d8e5aedb70ebe8f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2334346
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b3545b42
|
2020-07-29T16:50:53
|
|
Get storage buffers/images from ProgramExecutable
Update StateCache::updateActiveShaderStorageBufferIndices() and
StateCache::updateActiveImageUnitIndices to get the storage buffers and
image bindings from the ProgramExecutable, respectively. This requires
updating the ProgramPipeline's ProgramExecutable to build up its vector
of buffers/images from each Program's ProgramExecutable.
Bug: angleproject:4869
Test: VertexAttributeTestES31.UsePpoComputeShaderToUpdateVertexBuffer
Test: SimpleStateChangeTestES31.InvalidateThenStorageWriteThenBlendPpo
Change-Id: I68b7d23eedda910c3dcbf5f9c50b74b5e80134d8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2327701
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
da6d12d0
|
2020-02-27T14:20:32
|
|
Fix out-of-bounds read in test.
The test wasn't reserving a large enough buffer when initializing
the vertex data. Fix the test buffer limits.
Bug: angleproject:4430
Change-Id: I4b9a98e1af1cc8088afb871816061d7ee4dd6a2c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2079153
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
660c0dd6
|
2020-02-25T13:30:33
|
|
Vulkan: Fix padding out Buffer allocations on AMD.
We would often pad incorrectly given the constraints of the max stride.
We shouldn't really be rounding up the buffer size, but we should
instead be adding the max alignment size to the end of the buffer.
Bug: angleproject:4428
Change-Id: Id2afc572c85985548a18f60b42cdc388d83d5c4c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2071235
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cbbb3aaf
|
2020-01-07T15:03:20
|
|
Suppress VertexAttributeTest.DrawArraysWithBufferOffset on Mac NVIDIA
The test fails with the following at a very low flake rate:
../../third_party/angle/src/tests/gl_tests/VertexAttributeTest.cpp:230: Failure
Expected equality of these values:
angle::MakeGLColor(255, 255, 255, 255)
Which is: White
angle::ReadColor((midPixelX + viewportSize[2]) / 2, midPixelY)
Which is: Transparent Black
TBR=jmadill@chromium.org
Bug: angleproject:4269
Change-Id: I82752acfbcb2a067ccb35a7a456def03299c359f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1987258
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
51e653f0
|
2020-01-02T13:53:03
|
|
Suppress flaky failure with MacOS/NVIDIA/OPENGL
Seeing intermittent failure on this test only on MacOS/NVIDIA/OPENGL.
Suppress for now.
Bug: angleproject:4258
Change-Id: Ibda30954019410e3b6d069986b2cd0ad26533c00
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1984850
Reviewed-by: Shrek Shao <shrekshao@google.com>
Commit-Queue: Shrek Shao <shrekshao@google.com>
|
|
ab42afa6
|
2019-11-21T10:13:44
|
|
Metal: fix vertex attribute's conversion lost after changing buffer binding.
After vertex buffer's attribute is converted and stored in conversion
buffer. Binding the same attribute to another buffer, then binding it
back to previous buffer will result in previous conversion
information lost. The conversion method would skip the conversion due to
buffer's content hadn't been changed, however it didn't reuse the old
conversion result.
This CL also changed the way binding offset is used in Metal backend.
- Previous, the offset would be assigned to the offset field of
MTLVertexAttributeDescriptor, then the buffer would simply be bound to
the command encoder with offset=0
i.e. setVertexBuffer(buffer, index, 0)
- However this approach has several disadvantages. Since Metal doesn't
allow MTLVertexAttributeDescriptor's offset to be larger than the
vertex attribute's stride, the old approach would force the back-end
to convert the attribute and store in conversion buffer.
New approach:
- MTLVertexAttributeDescriptor's offset will be zero. The offset will be
used to bind the buffer itself to the render command encoder.
i.e. setVertexBuffer(buffer, index, offset)
This way the "offset <= stride" restriction no longer exists. The only
restriction is the offset must be multiple of attribute's size.
Added 3 new tests:
- SimpleStateChangeTest.RebindTranslatedAttribute
- VertexAttributeTest.DrawWithLargeBufferOffset
- VertexAttributeTest.DrawWithLargeBufferOffsetAndLessComponents
Bug: angleproject:2634
Change-Id: I6c2fa8091436e4a24405d791f86d17d97df02d64
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1940009
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
f3d35f8f
|
2019-11-22T14:24:52
|
|
Suppress flaky failure with Win7/NVIDIA/D3D11
Seeing intermittent failure on this test only on Win7/NVIDIA/D3D11.
Suppress for now.
Bug: angleproject:4163
Change-Id: Idfa44516a194dcd5710622d11801ce089c1e829d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1931338
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
1a01b4b3
|
2019-11-11T16:41:07
|
|
Refactor end2end test macros
This is a foundational CL to enabling the end2end tests on swiftshader.
Refactored infrastructure with new ANGLE_INSTANTIATE_TEST_ES*
macros that will run tests over all various combinations of all
platforms for different ES versions.
Just skipping failing tests initially to get the refactor landed.
Bug: angleproject:4081
Bug: angleproject:4092
Change-Id: I017f6c3267179e49b6ae08cc7488096b423dcdb5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1904635
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
1850492e
|
2019-10-02T08:23:03
|
|
Vulkan: Disable OES_vertex_type_10_10_10_2 on GLES 2.0
- Because of the difference in the SNORM to FLOAT conversion formula
between GLES 2.0 and 3.0, OES_vertex_type_10_10_10_2 is disabled
when the context version is lower than 3.0.
- Modify test conversion formula to be compliant with GLES 3.0 equation
Bug: angleproject:3868
Test: angle_end2end_tests --gtest_filter=VertexAttributeTest*Packed*Vulkan
Change-Id: I8b85d8146ee05353bc40fa0022f05d6634c33110
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1792197
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
988f7170
|
2019-09-30T15:52:37
|
|
Vulkan: Base/max level fixes and cleanup
This CL cleans up references to base/max level bug and fixes
one lingering issue regarding special handling of depth/z for
arrayed surfaces.
Bug: angleproject:3148
Bug: angleproject:3184
Bug: angleproject:3948
Bug: angleproject:3949
Bug: angleproject:3950
Test: dEQP-GLES3.functional.texture.mipmap.*base_level*
Test: dEQP-GLES3.functional.texture.mipmap.*max_level*
Test: Texture2DArrayTestES3.DrawWithLevelsOutsideRangeWithInconsistentDimensions
Change-Id: Iad72005a111507c50b8be9726adc32285bbae52b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1832757
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
cb16fb5f
|
2019-08-29T16:53:55
|
|
Vulkan: Support texture base and max levels
The Vulkan backend uses a vkImage that matches the number
of effective levels in the GL texture. This is due to the fact
that GL textures can have really strange layouts that only make
sense when base level and max level are applied.
For instance, take the following layout with disjoint mip levels:
Level 0: 4x4 RGBA
Level 1: 2x2 RGBA
Level 2: 10x10 RGB
If base level is set to zero and max level is set to 1, the image is
still considered mip-complete:
Level 0: 4x4 RGBA ==> Base Level 0 ==> Level 0: 4x4 RGBA
Level 1: 2x2 RGBA ==> Max Level 1 ==> Level 1: 2x2 RGBA
Level 2: 10x10 RGB
If base and max level are then both set to 2, the texture is still
considered complete, but of a different size and format:
Level 0: 4x4 RGBA
Level 1: 2x2 RGBA
Level 2: 10x10 RGB ==> Base/Max Level 2 ==> Level 2: 10x10 RGB
When the base or max level is changed, we must recreate the vkImage to
match the new level count.
To support that, we:
- Stage updates from the current image to the new image
- Only stage updates if there aren't already staged updates for a level
- Free the current image and so it can be recreated at the next draw
This CL does the following:
- Refactors TextureVk::copyImageDataToBuffer to support staging updates
without flush
- Adds TextureVk::copyImageDataToBufferAndGetData to support previous
use model
- Adds TextureVk::changeLevels, triggered during syncState, which stages
updates and releases the current image.
- Updates ImageHelper::flushStagedUpdates to understand base/max levels
- Updates TextureVk::ensureImageInitialized and TextureVk::generateMipmap
to account for base/max level
- Tracks base and max levels in ImageHelper
- Adds ImageHelper::stageSubresourceUpdateFromBuffer to support
this use case
- Adds ImageHelper::isUpdateStaged to determine if changeLevels
should propagate data
- Makes gl::TextureTypeToTarget available for use outside of ImageIndex
- Enables several deqp and end2end tests
Bug: angleproject:3148
Test: dEQP-GLES3.functional.texture.mipmap.*base_level*
Test: dEQP-GLES3.functional.texture.mipmap.*max_level*
Change-Id: I14ca071c9c62eb310dfed7ef9290dc65fc3ff696
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1776933
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
d4c75347
|
2019-09-18T10:49:34
|
|
Vulkan: Enable GPU conversion from RGB16F to RGBA16F
- Add proper GPU conversion routine when the source and destination
format of vertex attribute is half float data type.
- Add an end2end test which utilizes half float GPU conversion path.
Bug: angleproject:3802
Test: angle_end2end_tests --gtest_filter=*VertexAttributeTest.HalfFloatBuffer*
Change-Id: Ia88a4984156f8967796bea3852c3cde714f2acab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1824799
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
fea65766
|
2019-09-19T09:30:38
|
|
Vulkan: Add support for OES_vertex_type_10_10_10_2
- Add support to CPU/GPU convert vertex formats
- Add test cases for type conversion in angle_end2end_tests
- Fix a bug in shader script by adding a ceil when calculating bytes
Bug: angleproject:3192
Test: angle_end2end_tests --gtest_filter=VertexAttributeTest*Packed1010102*
Change-Id: I57bab9fc1c1041cd734746d0e52a33717b635ec0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1788495
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
b1580a27
|
2019-08-27T18:08:56
|
|
Vulkan: Set half float vertex format to valid in 2.0 context
- OES_vertex_half_float extension requires this patch
- Add end2end tests to verify OES_vertex_half_float extension
BUG=angleproject:3191
BUG=angleproject:3802
Test:
angle_end2end_tests --gtest_filter=*VertexAttributeTest.HalfFloatClientMemoryPointer*
3DMark Icestorm GT1
Change-Id: Ia597021a5ae6b4853ee1199989ec3f9cc23c7fac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1793354
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
7e50f4cd
|
2019-07-25T09:58:51
|
|
Vulkan: Fix ES 3.1 vertex attribute bindings
When handling dirty bindings, we were treating binding indices as if
they were attribute indices, causing strange behavior. This change fixes
the dirty bit handler to use the provided index properly and update the
attributes that correspond to the binding index.
Test: ./angle_end2end_tests --gtest_filter='VertexAttributeTestES31.OnlyUpdate*/ES3_1_Vulkan'
Bug: angleproject:3598
Change-Id: I2bc3cd4da5f639a1301776fcf057a74368812c56
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1718786
Commit-Queue: James Dong <dongja@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
020abb8b
|
2019-07-24T11:33:49
|
|
Vulkan: invalidate translation buffers for SSBOs
Translation buffers weren't being marked dirty after running a compute
shader in which they are bound as SSBOs.
This change invalidates all SSBOs after a draw or compute call.
Bug: angleproject:3739
Change-Id: I66b56df7e619b55afc7e3da6b5613b6d050e06bb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1717144
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: James Dong <dongja@google.com>
|
|
765ee7b7
|
2019-06-19T14:19:52
|
|
Vulkan: support for new vertex attribs in GLES 3.0
Fixes handling of packed vertex formats, adds new overrides for 32-bit
[SU](NORM|SCALED) vertex types, and handles half-precision floats
correctly.
Pixel 2 does not natively support certain 10-10-10-2 vertex formats;
this change does not add support for them.
Test: ./angle_deqp_gles3_no_gtest --deqp-egl-display-type=angle-vulkan -n 'dEQP-GLES3.functional.vertex_arrays.*'
Test: ./angle_end2end_tests --gtest_filter='AttributeLayout*/ES3_Vulkan'
Test: ./angle_end2end_tests --gtest_filter='VertexAttribute*/ES3_Vulkan'
Bug: angleproject:3193
Change-Id: I5ae4edd743e86e3e89e2697034c04dc4d9ecd1f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1668230
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: James Dong <dongja@google.com>
|
|
375ddfc5
|
2019-07-12T11:12:14
|
|
Signal different dirty bit for vertex buffer change.
We use new logic to compare if the attribute format changes before
setting dirty bits. This improves performance of VBO-only state changes
significantly. On the VBO change Vulkan microbenchmark gives about a
30% improvement.
Bug: angleproject:3256
Change-Id: Ifaf1c92ed7a09422156ef79b5983e7349de63346
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1684294
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
cc82c3f0
|
2019-06-21T16:04:24
|
|
Vulkan: Enable VertexAttributeTest* for ES3_Vulkan
VAO support is present, so this is just enabling the necessary testing.
The tests being skipped are being worked on with issue 3193, which is
adding support for integer values.
Bug: angleproject:3207
Test: VertexAttributeTest end2end tests
Change-Id: Ic0bbcc0e05673aece203e93d8765ac8e90dc6a59
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1672445
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
fce1e2d1
|
2019-06-04T15:02:08
|
|
Extend eglGetPlatformDisplay to allow feature overrides.
Add EGL_FEATURE_OVERRIDES_ENABLED_ANGLE and
EGL_FEATURE_OVERRIDES_DISABLED_ANGLE to submit lists of strings naming
the features that should be overridden (either enabled or disabled) on
display creation.
Bug: angleproject:1621
Change-Id: I4bb75c5dbab0e3b701a72069c38f8c60ecfffad2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1646595
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
776694cd
|
2019-05-08T10:28:55
|
|
Change all ANGLE workarounds to use struct definition with info.
Change each workaround from a simple bool to a struct with info
including name, workaround set, description, and bug IDs. This will help
with future workaround integration with Chrome.
Bug: angleproject:1621
Change-Id: Ia27c180abaf845e280060c803e5994cc3152a057
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1593917
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5cbaa3f8
|
2019-05-07T15:49:22
|
|
Don't inherit ANGLETest SetUp and TearDown.
Instead of inheriting from testing::Test's SetUp and TearDown we add
new methods 'testSetUp' and 'testTearDown'. This helps prevent a common
error of forgetting to call the base class method.
Also add a check in the ANGLETest destructor that SetUp and TearDown
have been called.
Bug: angleproject:3393
Change-Id: Iab211305cc06ffea9ca649e864ddc9b180f2cba0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1593960
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ddc4d33a
|
2019-05-01T15:11:46
|
|
Remove several underused platform configs.
* Removes D3D11 Warp and Reference configs from tests.
* Removes several permutations of OpenGL back-end specific configs.
* Removes FL 9_3 since it is no longer supported.
* Removes present path "Copy" since it's redundant with normal D3D11.
Reduces number of configs from over 60 to 25.
Bug: angleproject:3393
Change-Id: Ia5a23de3c4865b17ee50673a4066757b901a4b5a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1574675
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b8149075
|
2019-04-30T16:14:44
|
|
Clean up ANGLE test extension functions.
None of these functions needed to be member functions. Also make the
naming more consistent.
Bug: angleproject:3393
Change-Id: I7aafe2269a48af703a87bd9a8cf4cfab9e177dd3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1574673
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d18c048a
|
2019-04-04T19:56:43
|
|
Remove Nexus 5X Vulkan test suppressions.
SimpleStateChangeTest.DrawArraysThenDrawElements
TextureUploadFormatTest.All
VertexAttributeTest.UnsignedByteNormalized
VertexAttributeTest.ByteNormalized
EXTMultisampleCompatibilityTest.DrawAlphaOneAndResolve
was skipped on all Android for unspecified reason in
https://chromium-review.googlesource.com/c/angle/angle/+/451877
seems to be passing now.
Make some suppressions OpenGL ES specific:
MultisampleCompatibilityTest.DrawCoverageAndResolve
RobustResourceInitTest.TexImageThenSubImage
RobustResourceInitTest.ReadingPartiallyInitializedTexture
RobustResourceInitTestES3.MultisampledDepthInitializedCorrectly
RobustResourceInitTest.MaskedDepthClear
RobustResourceInitTestES3.MaskedDepthClearBuffer
RobustResourceInitTest.MaskedStencilClear
RobustResourceInitTestES3.MaskedStencilClearBuffer
TransformFeedbackTest.OffsetResetOnBeginTransformFeedback
Bug: angleproject:3262
Bug: angleproject:3124, angleproject:2657, angleproject:2797
Change-Id: I3ed7a3f0ebbb4598bff75e2b3bd8b3b0630779f8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1572484
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
49c9dfe3
|
2018-12-29T16:48:20
|
|
Fix the SSBO sync bug in two dispatch calls
We should make sure that the raw buffer is the latest buffer before each
dispatch call since the dispatch itself can update the raw buffer content.
Bug: angleproject:3037
Change-Id: I75dddfd3e57b3c9cbcc58c02ed057c66cc8e1785
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1392379
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
d51fbe34
|
2019-01-25T15:03:39
|
|
Fold buffer access validation into extensions.
We only need to perform vertex array buffer validation if the WebGL
compatiblity extension is enabled and robust access is not available.
Although sometimes the range checks are useful for determining
undefined behaviour they are not required by the OpenGL spec. They also
slow down state updates significantly.
This migrates the OOR tests into specific WebGL tests. It also requires
a change to a Chromium test on the passthrough decoder.
Improves perf by about 10% in the Vulkan VBO state change test.
Also fixes some robust resource access cases for D3D11.
Bug: angleproject:3000
Change-Id: Ice37f38f01c2f27bf32ed55657a30e69d8508335
Reviewed-on: https://chromium-review.googlesource.com/c/1390362
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
611bbaab
|
2018-12-06T01:59:53
|
|
Vulkan: Convert vertex attributes in compute
In this commit, VertexArrayVk::convertVertexBuffer() is renamed to
VertexArrayVk::convertVertexBufferCpu() to explicitly show it does a CPU
readback. A new VertexArrayVk::convertVertexBuffer() function is added
that has the same functionality in gpu (with some assumptions, where the
CPU fallback is used should those assumptions fail). Currently, the
only requirement is that buffer offset/stride are divided by the
component size.
ConvertVertex.comp is the shader responsible for this conversion, and it
implements the functionality in renderer/copyvertex.inc, minus a few
functions that are not used in the Vulkan backend.
Bug: angleproject:2958, angleproject:3009
Change-Id: I8ec9a5f4672509bcf7b9e352cd27663970ad4653
Reviewed-on: https://chromium-review.googlesource.com/c/1364451
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
35cd7332
|
2018-12-02T12:03:33
|
|
Refactor test shader style.
This change enforces a lot more consistency. We pass const char * to
the Compile functions instead of std::string. Also fixes the
indentation of C++11 block comments to be more consistent.
Bug: angleproject:2995
Change-Id: Id6e5ea94055d8cbd420df4ea2e81b2d96cb5ce78
Reviewed-on: https://chromium-review.googlesource.com/c/1357103
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b980c563
|
2018-11-27T11:34:27
|
|
Reformat all cpp and h files.
This applies git cl format --full to all ANGLE sources.
Bug: angleproject:2986
Change-Id: Ib504e618c1589332a37e97696cdc3515d739308f
Reviewed-on: https://chromium-review.googlesource.com/c/1351367
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fcf10b62
|
2018-09-19T12:53:18
|
|
Fix the regression bug for ComputeBoids
The old implementation missed considering compute program would also enter
into applyActiveAttribLocationsMask. However, there was no bindVertexArray
before updateAttribEnabled which resulted the previous VAO state was modified
in unknown. And that's why ComputeBoids example wouldn't work correctly.
This change adds a checking to not enter propagateProgramToVAO if it's a
compute program since compute shader doesn't have vertex attributes. And
an ASSERT is added to make sure that the right VAO is bound when
updateAttribEnabled is called in applyActiveAttribLocationsMask.
Bug: angleproject:2810
Change-Id: I6e77853498a527ef3b755bbb1da5826a9134b164
Reviewed-on: https://chromium-review.googlesource.com/c/1226227
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
5dc0a6f9
|
2018-09-20T14:30:45
|
|
Vulkan: Vertex buffer should be format aligned.
The address of each attribute in a vertex buffer must be aligned
according to its format. See section 20.3 of vkspec.
Currently we don't handle this when using DynamicBuffer as vertex
input buffer. This loosely fixes the issue by using max alignment for
all formats.
BUG=angleproject:2797,angleproject:2405
Change-Id: I2b27950dacc8fda75dcb646ef4b4d66ff27d629a
Reviewed-on: https://chromium-review.googlesource.com/1234281
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
624fbdcf
|
2018-10-01T11:54:05
|
|
Refactor CompileProgram utility
Tests often need to call gl functions to set up program related state
after glCreateProgram has been called but prior to glLinkProgram is
called. Add a callback function to the CompileProgram utility function
to fulfill this need. This reduces code duplication considerably in
several tests.
An alternative way to improve CompileProgram would be to split it into
several different utility functions. This might be slightly easier to
read, but would also be a larger refactoring and require more checks
at the call site.
This will make it easier to implement EXT_blend_func_extended tests,
which need to bind fragment outputs to different slots.
BUG=angleproject:1085
TEST=angle_end2end_tests
Change-Id: I3ac8b7bdc21c6a1f14517bc7df0cf6f35abd7612
Reviewed-on: https://chromium-review.googlesource.com/1254062
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
63aa0e5b
|
2018-09-05T16:15:46
|
|
Fix 64-bit -> 32-bit implicit conversions in libangle.
../../third_party/angle/src/libANGLE/renderer/gl/StateManagerGL.cpp(910,63): warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long long') to 'GLuint' (aka 'unsigned int') [-Wshorten-64-to-32]
const gl::ImageUnit &imageUnit = glState.getImageUnit(imageUnitIndex);
~~~~~~~~~~~~ ^~~~~~~~~~~~~~
../../third_party/angle/src/libANGLE/renderer/gl/StateManagerGL.cpp(914,30): warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long long') to 'GLuint' (aka 'unsigned int') [-Wshorten-64-to-32]
bindImageTexture(imageUnitIndex, textureGL->getTextureID(), imageUnit.level,
~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~
../../third_party/angle/src/libANGLE/renderer/gl/StateManagerGL.cpp(920,30): warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long long') to 'GLuint' (aka 'unsigned int') [-Wshorten-64-to-32]
bindImageTexture(imageUnitIndex, 0, imageUnit.level, imageUnit.layered, imageUnit.layer,
~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~
../../third_party/angle/src/tests/gl_tests/VertexAttributeTest.cpp(1080,66): warning: implicit conversion loses integer precision: 'GLsizeiptr' (aka 'long long') to 'GLuint' (aka 'unsigned int') [-Wshorten-64-to-32]
glVertexAttribFormat(mTestAttrib, 1, GL_FLOAT, GL_FALSE, inputRelativeOffset);
~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~
BUG=chromium:879657
Change-Id: Ic6e8e5ebc0dc5fd38c15a48a936ceafd5407bba8
Reviewed-on: https://chromium-review.googlesource.com/1208315
Commit-Queue: Will Harris <wfh@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0a17e484
|
2018-08-31T17:19:11
|
|
Vulkan: Fix sync of initially disabled attributes.
If an attribute was never enabled or disabled the default state was not
properly synced in our implementation. This wasn't caught by currently
enabled tests. Those tests are now enabled in VertexAttributeTest.
Bug: angleproject:2800
Change-Id: I97c063651911379e16de4ee557d9840782114c54
Reviewed-on: https://chromium-review.googlesource.com/1199724
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
89e82979
|
2018-08-28T11:32:53
|
|
Vulkan: Allow gaps in vertex attributes by packing them.
Work around restrictions with setting null vertex buffers on command buffers
by binding ranges of non-null buffers.
Enable VertexAttributeTest on ES2/Vulkan
BUG=angleproject:2792
BUG=angleproject:2797
Change-Id: Ief9db1e60c8c9045a4101abe859302d529decbcb
Reviewed-on: https://chromium-review.googlesource.com/1194282
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8707af51
|
2018-08-23T15:49:14
|
|
Add a test case for enabled-but-inactive vertex attributes
Bug: angleproject:2138
Change-Id: Ia5331845d34f60a31280e6da041d13dc3da29232
Reviewed-on: https://chromium-review.googlesource.com/1187364
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|