|
9aef81c7
|
2018-04-30T14:56:15
|
|
Validate blitFramebuffer for overflows on all platforms
We can validate to avoid triggering driver issues even if the native
GLES spec is not telling us to.
This will fix WebGL in Chromium when it's being run with the
--use-cmd-decoder=validating --use-angle=gl config.
BUG=chromium:830046
TEST=WebGL conformance tests
Change-Id: I2d61182cb6cbe46b52e1d9b7ed6b4035defee082
Reviewed-on: https://chromium-review.googlesource.com/1033743
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
41529e5e
|
2018-05-01T10:06:04
|
|
Refactor StateChangeTests to use essl1_shaders instead
Bug: angleproject:2474
Change-Id: Ia558c2e266422f8f8b55523c9542379688a7058d
Reviewed-on: https://chromium-review.googlesource.com/1037164
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
94ae660d
|
2018-04-23T13:58:59
|
|
Vulkan: Create tests to validate we created the pipeline when needed
1- Link program with a shader and draw with it, relink with another shader and draw again.
2- Release program that is reading from a uniform.
Bug: angleproject:2397
Change-Id: Icb4211c5cf71efaf41833d9d5afd83ce8410c598
Reviewed-on: https://chromium-review.googlesource.com/1028580
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c6f82872
|
2018-04-24T14:14:50
|
|
ES31: Add REFERENCED_BY_GEOMETRY_SHADER as program interface property
This patch implements GL_REFERENCED_BY_GEOMETRY_SHADER as a valid
property of program interfaces.
BUG=angleproject:1941
TEST=angle_end2end_tests
dEQP-GLES31.functional.geometry_shading.query.referenced_by_geometry_shader
Change-Id: Id9659313d371dbfc7d00bf9d816df4449fbf29ec
Reviewed-on: https://chromium-review.googlesource.com/1025281
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
|
|
69643438
|
2018-04-27T12:23:47
|
|
D3D11: Reorder VAO synchronization.
The index range was being resolved in the call to
VertexArray11::syncStateForDraw but the code which invalidates the input layout
was being executed before this.
BUG=837002
Change-Id: I4e00b53cdc51f8758b0e2ba9e2dfc93b5e22556c
Reviewed-on: https://chromium-review.googlesource.com/1032633
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f1bcd017
|
2018-04-27T14:21:55
|
|
Supress failures in BlitFramebufferTest.MultisampleDepth on Mac OpenGL
BUG=837717
Change-Id: I1ac659b18bd9aef2f24f798d23f49d1efbb81938
Reviewed-on: https://chromium-review.googlesource.com/1033478
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
de279590
|
2018-04-26T12:25:13
|
|
Add test coverage for BlitGL
Scaling and flipping of the framebuffer with blitFramebuffer are now
covered by end2end_tests. The test configurations are set so that the
BlitGL shader-based blit is also covered.
The tests reveal a bug in the D3D11 backend implementation of
blitFramebuffer when using an oversized source area.
BUG=angleproject:2486
BUG=angleproject:2519
BUG=angleproject:2521
TEST=angle_end2end_tests
Change-Id: Ica48e564a5b4180241ec4c4c6be06c58cc6dc29b
Reviewed-on: https://chromium-review.googlesource.com/1030171
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
b221486a
|
2018-04-26T07:25:48
|
|
Vulkan: Fix TexSubImage2D state change test.
Was simply a matter of triggering a new write node in the subImage
call.
Bug: angleproject:2495
Change-Id: I06334ba6ee816f671e5c599c8e8f079f56adb25e
Reviewed-on: https://chromium-review.googlesource.com/1028729
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
|
|
0086de17
|
2018-04-25T11:41:32
|
|
Vulkan: Add test to reproduce graph issue when draw->subImage->draw
Bug: angleproject:2495
Change-Id: Ibc6c060e8924f19562da62ce15d48d9f6820b372
Reviewed-on: https://chromium-review.googlesource.com/1028228
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
197d5294
|
2018-04-25T14:29:00
|
|
Wrap all preprocessor code in the angle namespace.
BUG=836820
BUG=801364
Change-Id: I08b6a2f9f12b689e09df6efd916c313e71e8a051
Reviewed-on: https://chromium-review.googlesource.com/1028581
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
23dc90b8
|
2018-04-23T09:01:49
|
|
GLES1: Enable/disable for texture targets
BUG=angleproject:2306
Change-Id: I08ac9ef91753112f8185d16423925cf265f0384e
Reviewed-on: https://chromium-review.googlesource.com/1023987
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f827123d
|
2018-04-25T13:08:24
|
|
Handle negative float to uint conversion robustly
Converting a negative float to uint is undefined in the GLSL ES 3.00.6
spec.
However, it improves portability if we don't trigger undefined results
in C++ in this case. To do this, we cast negative floats first to
signed integer before casting them to unsigned integer.
We also issue a warning about an undefined conversion in case a
negative float was converted to uint.
BUG=chromium:835868
TEST=angle_unittests
Change-Id: I9835a739ec80699d420a4f91a3bfa112c9a13604
Reviewed-on: https://chromium-review.googlesource.com/1026681
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
f9749eaf
|
2018-04-24T15:34:53
|
|
Vulkan: Enable UnpackAlignmentTest and remove useless warning.
Bug: angleproject:2492
Change-Id: I9e821632bdb3b8ba90d5ce47198a3445d2b684de
Reviewed-on: https://chromium-review.googlesource.com/1026510
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
1a186b16
|
2018-04-24T15:25:35
|
|
Vulkan: Fix issue with texsubimage2d barriers
Also re-enable the Windows AMD tests that were suppressed because of
that bug.
Bug: angleproject:2492
Change-Id: Ie9b5eb4c5705bbb390c3899fe4c66d3e47eff00d
Reviewed-on: https://chromium-review.googlesource.com/1026461
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
10434f67
|
2018-04-24T10:06:37
|
|
Vulkan: Issue when drawing with a texture and rebinding after.
Added 2 tests in StateChangeTest.cpp to validate the behavior and
reproduce the issue I saw in dEQP.
Bug: angleproject:2479
Change-Id: I29c3da0474ec2b13a10fc266284cb19a07675da2
Reviewed-on: https://chromium-review.googlesource.com/1025951
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
023371b3
|
2018-04-24T17:43:32
|
|
Fix setting mip level metadata on GL backend
LUMA texture workarounds are now being used correctly in case texture
levels that have only been touched by generateMipmap are used to draw.
BUG=angleproject:2498
TEST=angle_end2end_tests
Change-Id: I739550d59f99a4a22ffae766a5ee52c07610d78a
Reviewed-on: https://chromium-review.googlesource.com/1025995
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
f2807385
|
2018-04-24T15:25:35
|
|
D3D: Use an alignment of 1 when uploading zero data to initialize textures.
BUG=836131
Change-Id: I1206c8eda465da563e15cf43f2e5c9320bb65eae
Reviewed-on: https://chromium-review.googlesource.com/1026460
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
33e05bab
|
2018-04-23T15:12:34
|
|
Vulkan: Bugfix in TextureVk::setSubImage and DynamicBuffer
Bug 1) The offset wasn't plumbed through for setSubImage.
Bug 2) The DynamicBuffer allocation sometime allocates a bit more
than requested, but we were using the size requested as the next offset
instead of the actual allocated size. This could get us in a situation
in certain corner cases where the next allocation would be done on the
said buffer instead of using a new allocation as it should.
Also enables a bunch of new texture_specification_* tests that were
unable to run successfully without these 2 bug fixes.
Found a weird issue on WIN AMD only and suppressed these tests for now.
Will investigate part of the same bug number as a separate change.
Bug: angleproject:2495
Bug: angleproject:2492
Change-Id: I490b1bf2d1795b7a1033365e29eac12a8bc50bff
Reviewed-on: https://chromium-review.googlesource.com/1024380
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
66410530
|
2018-04-20T12:47:45
|
|
Vulkan: Textures mipmaps support
Note that generate mipmaps is not yet supported, but uploading mipmaps
is. This also enables 64 tests in dEQP gles2 to validate the changes.
While trying to enable tests in functional.texture.mipmap.*, I found
an issue where the graph ends up in an invalid state and triggers and
assert in onReadResource in ContextVk.cpp:188. It seems like an
unrelated bug to mip maps, I will investigate to enable these tests
separately in a following CL.
Bug: angleproject:2479
Change-Id: If51776d8ef3d994bee620d6a1cf982bb51838ff0
Reviewed-on: https://chromium-review.googlesource.com/1022232
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8d5571ac
|
2018-04-23T12:29:31
|
|
Restrict BlitFramebuffer dimensions in WebGL mode
Don't allow blitFramebuffer dimensions to overflow 32-bit integer
range as specified in WebGL 2.0 section 5.41.
BUG=chromium:830046
TEST=WebGL 2 conformance tests, angle_end2end_tests
Change-Id: Ia232291b09c94e1e4f837441c6720a78bab672fb
Reviewed-on: https://chromium-review.googlesource.com/1023856
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
00689191
|
2018-03-27T17:34:20
|
|
GL: Fix the CPU readback path of CopyTextureCHROMIUM.
1. BlitGL's resources were not being intialized.
2. The format/type information was not enough to know if the destination
texture was SRGB.
BUG=693090
Change-Id: I3fc277a175772d3b6acace1810cb43f4a9bdc473
Reviewed-on: https://chromium-review.googlesource.com/982642
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
6ce24cf2
|
2018-04-23T07:52:15
|
|
Vulkan: Lift suppressions because of vulkan validation
layer regression
Bug: angleproject:2484
Change-Id: Ib46caa8924c7815154beeb46a291520e57b5cc4f
Reviewed-on: https://chromium-review.googlesource.com/1023833
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
40786bdf
|
2018-04-18T13:58:57
|
|
ES31: Add validation on geometry shader interface blocks matching
This patch adds the validation on checking if there is any mismatch
among geometry shader interface blocks and the ones defined in other
graphics shaders in the same program.
BUG=angleproject:1941
TEST=angle_end2end_tests
Change-Id: I1f65e3c49390135bbe9f9323098daf28c9b838c7
Reviewed-on: https://chromium-review.googlesource.com/1016175
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
20610901
|
2018-04-19T14:41:13
|
|
Vulkan: Implement Texture wrap modes and non-mipmapped filtering modes
Also added a test to validate we can change the filter mode between
two draws successfully.
Bug: angleproject:2478
Change-Id: I80730cdafc6bbdbf61839c6c8eb98d85f7423d92
Reviewed-on: https://chromium-review.googlesource.com/1020084
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e7e072ef
|
2018-04-19T15:06:30
|
|
Use EGL_KHR_no_config_context in Android GLES backend, when available
Create ANGLE's real context with EGL_NO_CONFIG_KHR.
This allows ANGLE to advertise EGLConfigs which previously were hidden
due to incompatibility with ANGLE's context.
Also enable EGLContextCompatibilityTest on ES2_OPENGLES to test this.
BUG=angleproject:2468
Change-Id: I6fbbe01b4b93db7df39606980f0f58eb74b11e31
Reviewed-on: https://chromium-review.googlesource.com/1022088
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
629bb259
|
2018-04-20T11:01:33
|
|
Fix WebGL compat feedback loop null deref.
This regressed in "Optimize ValidateDrawAttribs: Part 2."
Bug: chromium:834943
Bug: angleproject:1391
Change-Id: I217719d76b0524ed7900e18bcc4ca1280ec7b6ff
Reviewed-on: https://chromium-review.googlesource.com/1020280
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3ec304db
|
2018-04-18T14:14:25
|
|
Vulkan: Support struct initializers in shaders
Also adds a new test in GLSLTest to validate the initialization of
a struct on the same line as its declaration.
Bug: angleproject:2459
Change-Id: Ib37e20378f8ec76541db26392663bcba03390756
Reviewed-on: https://chromium-review.googlesource.com/1017340
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
b0f917fa
|
2017-12-05T13:41:54
|
|
Fix being unable to request some extensions implemented in the GL layer.
Some extensions are forced on in Context::initCaps even though the
backend's native extensions do not mark the extension as supported.
These extensions were not requestable because the
Context::isExtensionRequestable only checks if the backend supports the
extension.
Make GL_OES_vertex_array_object requestable to cover the issue.
BUG=angleproject:1523
Change-Id: Ie64df8e270924727ecf9cd3f993443abeb3ef658
Reviewed-on: https://chromium-review.googlesource.com/809197
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
025aafdf
|
2017-10-30T15:16:37
|
|
Make EGL image extensions enableable.
BUG=angleproject:1523
Change-Id: I6e890380bafb9f81595ab603996259fe6177e9e0
Reviewed-on: https://chromium-review.googlesource.com/744447
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
d54d3045
|
2017-11-07T14:56:07
|
|
Make EXT_texture_storage enableable.
BUG=angleproject:1523
Change-Id: I55ef1233fb42e2dc3eda26c3aa4e14c700f98bf0
Reviewed-on: https://chromium-review.googlesource.com/756868
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
e24032a2
|
2018-03-28T15:41:46
|
|
The 'format' of unsized SRGB internal formats should be SRGB too.
EXT_sRGB requires calling TexImage with SRGB as the 'format' parameter.
This was causing issues when we would take an InternalFormat struct
representing an unsized sRGB format and be unable to use it's format
member to make GL calls without transforming it.
BUG=693090
Change-Id: I8b9baf2591a998a0088e5275f42ffc568e37100d
Reviewed-on: https://chromium-review.googlesource.com/984965
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
1d97a4d0
|
2018-04-18T15:51:32
|
|
Revert "Fix dEQP renderbuffer unspecified attachment test."
This seems to have caused a regression in Chrome. I'm reverting the
change and suppressing the test that is failing on our end because of
it. Once we can confirm this solves the problem, we'll need some help
investigating further.
This reverts commit c0db9addeaebc76c7cc99b26aa27df5e432097ac.
Bug: angleproject:2321
Bug: chromium:833809
Change-Id: I5e40364217e15ae6117f5288a4754b25d983ca0a
Reviewed-on: https://chromium-review.googlesource.com/1017763
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
eeec3b14
|
2018-04-16T11:00:03
|
|
dEQP: Add override for ES2 Color Clear Test.
This test has a bug where the masked clear flag is not being set
properly, leading to incorrect test behaviour and missing coverage.
Until this bug is fixed in dEQP we can override it with a fixed
version.
Also remove a prior override that had an upstreamed fix.
Bug: angleproject:2455
Change-Id: Ia2c57251b2a97eb5b4d8a4bdb0ce31796a66ea01
Reviewed-on: https://chromium-review.googlesource.com/1013859
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
abb09f12
|
2018-04-16T10:43:53
|
|
GLES1: Client vertex array pointer API
glVertexPointer
glNormalPointer
glColorPointer
glPointSizePointerOES
glTexCoordPointer
BUG=angleproject:2306
Change-Id: Id022b467ac998ea116130c5cec0c77afefb0dd4c
Reviewed-on: https://chromium-review.googlesource.com/1014381
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
fe22e23a
|
2018-04-16T14:15:11
|
|
Vulkan: Use SH_INITIALIZE_UNINITIALIZED_LOCALS in ShaderVk
Re-enable the flaky test InitUninitializedStructContainingArrays that
was failing because of this option missing.
Bug: angleproject:2460
Change-Id: Icf794a5fdca48619756d575faa4cb04f0323712e
Reviewed-on: https://chromium-review.googlesource.com/1014271
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
0986f1cc
|
2018-04-16T13:47:23
|
|
Vulkan: Implement depth_range dirty bit and enable tests
- Additional fix in GlslWrapper.cpp to remove the @@ markers for unused
attributes.
- Enables 28 dEQP gles2 tests in functional.depth_range.*
Bug: angleproject:2454
Change-Id: I1a6f72d846b476ba681140d4b242208d24e18b95
Reviewed-on: https://chromium-review.googlesource.com/1014262
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
f1d3c20c
|
2018-04-16T07:44:27
|
|
Vulkan: Fix the issue with unused attributes / varyings
When an attribute, a uniform or a varying isn't used, we now remove
their layout and in/out qualifiers so that the shader can still refer
to these var names.
Bug: angleproject:2456
Change-Id: I5f1241d91bd46f663750adfab2562ef87ce69ae5
Reviewed-on: https://chromium-review.googlesource.com/1014009
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
ef2fda72
|
2018-04-18T07:44:14
|
|
Vulkan: Fix issue in GlslWrapper and maxVaryingVectors calculation (2nd try)
The layout needed to also have a component qualifier so that the
registerColumn wouldn't be ignored.
Bug: angleproject:2460
Bug: angleproject:2483
Change-Id: I3adcd6208aca4afebd45311ded93d00087b60a99
Reviewed-on: https://chromium-review.googlesource.com/1016680
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5804dc8e
|
2018-04-13T14:11:46
|
|
Refactor GL tests to use a shader library
Instead of having the same simple shaders repeated over and over in
the test code, reuse a single shader library.
BUG=angleproject:2474
TEST=angle_end2end_tests
Change-Id: I13f8ca8c0125e6d30f1761639bf8c3f69e0e77d2
Reviewed-on: https://chromium-review.googlesource.com/1012078
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
c97e900c
|
2018-04-17T19:11:39
|
|
Revert "Vulkan: Fix issue in GlslWrapper and maxVaryingVectors calculation"
This reverts commit 1d882aaa0720b0dee0e8fc807d93d0e3f3e6bc67.
Sorry about this Luc. I think there was a missing suppression. You can
even see a flaky failure in the CQ when you landed this - it seems the
flakiness of the failure let it through. This is blocking another fix
from landing which fixes the fact the CQ is on fire. The revert button
is also missing from Gerrit which means this is a manual revert.
Failures:
https://ci.chromium.org/p/chromium/builders/luci.chromium.try/win_angle_rel_ng/361
Original CL Message:
The layout needed to also have a component qualifier so that the
registerColumn wouldn't be ignored.
Bug: angleproject:2460
Bug: angleproject:2483
No-Try: True
Change-Id: I84c38497fbda43d9defbc6d5d3ff0f9c133e6e46
Reviewed-on: https://chromium-review.googlesource.com/1015323
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1d882aaa
|
2018-04-13T10:12:05
|
|
Vulkan: Fix issue in GlslWrapper and maxVaryingVectors calculation
The layout needed to also have a component qualifier so that the
registerColumn wouldn't be ignored.
Bug: angleproject:2460
Bug: angleproject:2483
Change-Id: Ib5b15c4dc0ce42633f4994648f1eb22d8b63336a
Reviewed-on: https://chromium-review.googlesource.com/1011680
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
01074436
|
2018-04-16T10:19:51
|
|
GLES1: gl(Enable|Disable)ClientState
+ Introduce the GL_OES_point_size_array extension for point size array
support.
BUG=angleproject:2306
Change-Id: Ib1a60b7dcd0497eb807f0d3c80bc95b4748d9a96
Reviewed-on: https://chromium-review.googlesource.com/1014282
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
86de76b6
|
2018-04-17T08:29:55
|
|
Vulkan: Suppress ClearIssue test.
This test was flaky, the failure was missed on the CQ.
Bug: angleproject:2484
Change-Id: Ic3c32bcd385620683e9a01acf37d62bbf3ca8797
Reviewed-on: https://chromium-review.googlesource.com/1014733
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
41c43ce7
|
2018-04-16T08:42:56
|
|
Roll (2/2) to latest LVL as of 4/16/18
Moving to HEAD of LVL master on morning of 4/16/18.
Made some updates to BUILD.gn to add use debug_utils files now
instead of debug_report.
Re-enable ANGLE Vulkan build.
Bug: angleproject:2482
Change-Id: Ic2ab2a1cd7ecdba3152d433efcdbf427864e7e2b
Reviewed-on: https://chromium-review.googlesource.com/1014258
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0cb6dc4c
|
2018-04-16T10:36:39
|
|
Vulkan: Fix texture descriptor set alloc count.
We were reserving half the required descriptor sets for our pool. This
fixes the counting and ensures we won't regress by adding a test.
Also enables the cube map texture sample, and removes an UNIMPLEMENTED
warning that was spurious.
Bug: angleproject:2318
Change-Id: I371cd7c5b42e1ce980cce7bb0ef04885db72b614
Reviewed-on: https://chromium-review.googlesource.com/1014165
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
a4fa9c27
|
2018-04-13T07:00:56
|
|
Vulkan: drawElements with GL_LINE_LOOP and an offset
Also enables a test in LineLoopTest that validates this case.
Bug: angleproject:2473
Change-Id: Icb4c5735c11be40cdeceaa051f5a5cef33fd22c6
Reviewed-on: https://chromium-review.googlesource.com/1011669
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
20fa8d5c
|
2018-04-15T10:09:32
|
|
Vulkan: Implement cube map texture sampling.
This changes the TextureVk class to have a queue of staging
copies, instead of a single copy at a time. This will allow
us to upload multiple sub regions of a texture image at once
when we need to resolve the Image at sampling time.
Enables the remainder of the texture.format tests, and all
non-mipped tests in the texture.size tests. Also updates the
expectations with the bug number for mipmap support.
Bug: angleproject:2318
Change-Id: Ie55f8f2dc24d7b133ad735e37f0f78937f022b5b
Reviewed-on: https://chromium-review.googlesource.com/980775
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1dc4414f
|
2018-04-13T13:39:23
|
|
Suppress self-assign warning in angle_deqp_decpp and angle_deqp_libtester
Compiling dEQP with clang started failing after clang roll
https://chromium-review.googlesource.com/1012028
BUG=chromium:832753
Change-Id: I532872a68c3c8d916c6bfd2b5370501746076193
Reviewed-on: https://chromium-review.googlesource.com/1012382
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
a912046d
|
2018-04-12T13:11:03
|
|
Vulkan: DrawElements with line loops client side memory support
- Also enables 6 new tests in LineLoopTests.cpp in angle_end2end
Bug: angleproject:2458
Change-Id: I4aec12b0ac780e81e6811f1199a5acaf17d9b982
Reviewed-on: https://chromium-review.googlesource.com/1010411
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
983c429f
|
2018-04-10T13:05:45
|
|
Vulkan: Lineloops edge base bugfix and new tests
The dynamic buffer we are using in the LineLoopHelper wasn't able
to support switching between different allocation sizes. Fix this by
simply using a min alignment of the maximum allocation size we can
reach.
Adds 2 new tests to validate these calls in StateChangeTest.cpp
Bug: angleproject:2458
Change-Id: I9d224e7dcfcd7627010832ca30dd9e1b9eceea4e
Reviewed-on: https://chromium-review.googlesource.com/1007335
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
bb5ce5cc
|
2018-04-09T08:08:46
|
|
GLES1: Built-in matrix operations
glRotate
glTranslate
glScale
glFrustum
glPerspective
glOrtho
BUG=angleproject:2306
Change-Id: Ia9321d52f5824ef7c15b56d94e23ff3b1fbc3151
Reviewed-on: https://chromium-review.googlesource.com/1002915
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
56c8577b
|
2018-04-06T16:31:47
|
|
TextureD3D_2D::CopyImage clear using initializeContents
When using glCopyTexImage2D clearing of the mip level needs to happen
when running in WebGL or robust resource init mode and any pixel would
be sampled outside of the framebuffer. Previously the code was using
"setImage" for this purpose, causing issues when a PIXEL_UNPACK_BUFFER
was bound.
Also add a regression test.
BUG=chromium:827667
Change-Id: I03be20d8272730ab30afdab2f8919be853e729b6
Reviewed-on: https://chromium-review.googlesource.com/1000182
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
bfb5df15
|
2018-04-12T12:45:26
|
|
Vulkan: Suppress flaky test in GLSLTest on Windows
Bug: angleproject:2460
Change-Id: I4dba274e29a147c3066848a729f37297951a7f77
Reviewed-on: https://chromium-review.googlesource.com/1010405
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c1e0268a
|
2018-04-11T11:02:55
|
|
Vulkan: drawArrays followed by drawElements bugfix
Also add a test in StateChangeTest.cpp to validate the behavior.
Bug: angleproject:2458
Change-Id: I58848772c0b4f71aaa3ee187778e49fa08e6800d
Reviewed-on: https://chromium-review.googlesource.com/1007320
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
6d5af92b
|
2018-04-09T14:37:15
|
|
Vulkan: Enable GLSLTest tests for Vulkan
- Suppress tests that don't pass yet.
Bug: angleproject:2460
Change-Id: I7c95ae9504a8d5e112fd9d1bb8536cc9bbf16e7b
Reviewed-on: https://chromium-review.googlesource.com/1003099
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
14f4817c
|
2018-04-11T08:43:28
|
|
Vulkan: Simplify viewport / scissor updates
Stop tying the viewport and the scissor together. Instead, we simply
use a very large (0->maxInt) scissor when scissor isn't enabled
and we use the clipped scissor to the renderArea size when its
enabled.
Bug: angleproject:2443
Change-Id: If7454793a050b1833c7d3166ea6b380192085c8f
Reviewed-on: https://chromium-review.googlesource.com/1006996
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d8c632c8
|
2018-04-10T12:31:44
|
|
Vulkan: Cleanup some TODOs in TextureTest.cpp
Bug: angleproject:2364
Change-Id: I316db1f6796a4a2efe344dd4b0a4a6e7bf2ead90
Reviewed-on: https://chromium-review.googlesource.com/1005556
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ebd6e2df
|
2018-03-23T17:07:55
|
|
Take all attributes into account when checking for aliasing
This makes ANGLE to follow GLSL ES 3.00.6 spec section 12.46. The spec
requires that all attributes are taken into account when checking for
aliasing, regardless of if they are active or not. WebGL 2.0 spec was
also recently changed to reflect GLSL ES 3.00.6 correctly. Aliasing
checks for GLSL ES 1.00 shaders are left as-is.
BUG=chromium:829541
TEST=angle_end2end_tests, WebGL conformance tests
Change-Id: I71c36ac123f18dadf075e81f93af29321c15136b
Reviewed-on: https://chromium-review.googlesource.com/1005077
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
568fc39b
|
2018-04-09T07:57:23
|
|
GLES1: glMultMatrix(f|x)
BUG=angleproject:2306
Change-Id: I178b051c23da51d8eaf24c2a0df97f01ae5f3aaa
Reviewed-on: https://chromium-review.googlesource.com/1002914
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3a41af64
|
2018-04-09T07:28:56
|
|
GLES1: glLoadIdentity / glLoadMatrix(f|x)
BUG=angleproject:2306
Change-Id: I46fe961e6eb87b2f41c39afe1e943d9146a0abfa
Reviewed-on: https://chromium-review.googlesource.com/1002913
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3e1302bd
|
2018-04-10T15:36:28
|
|
Skip RobustResourceInitTestES3.MaskedStencilClearBuffer on Mac NVIDIA.
Flaky.
BUG=angleproject:2408
Change-Id: I20a6cbf8c4daa722c9d3f91aa3b55227cfff94b5
Reviewed-on: https://chromium-review.googlesource.com/1005811
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
d17bdfe5
|
2018-04-05T13:50:10
|
|
Vulkan: 3 Final bugfixes to enable all dEQP depth_stencil tests
- The scissor when clearing should not be clipped against the viewport.
- The render pass was created with a render area == to the current
viewport, but the viewport can be changed by the tests multiple times
per render pass, so we should always keep the renderArea to the full
framebuffer instead.
- Enables an additional 163 dEQP tests.
- We should clip the scissor to the framebuffer dimensions instead of
the viewport. Its valid to do a cmdClearAttachments outside the
viewport, but not outside the full framebuffer's dimension.
Bug: angleproject:2443
Change-Id: I79168e9f0c782d6dec77470fef938b85ad7a8794
Reviewed-on: https://chromium-review.googlesource.com/998448
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
785b20b7
|
2018-04-10T13:09:27
|
|
Vulkan: PointSprite suppress 3 tests that are failing the android tests
Bug: angleproject:2447
Change-Id: Ib5a8176e2836374fbeb70ccd05586495c388680b
Reviewed-on: https://chromium-review.googlesource.com/1005438
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
4416247c
|
2018-04-06T13:20:45
|
|
Vulkan: Enable point sprite end2end tests
Bug: angleproject:2447
Change-Id: I92a6ed730dd2048b055d32d1f149a29172c7f38a
Reviewed-on: https://chromium-review.googlesource.com/999822
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
d91c3793
|
2018-04-06T09:36:36
|
|
Vulkan: Implement support for structs in uniforms
- Also enables 174 additional dEQP tests.
Bug: angleproject:2446
Change-Id: I07cce46815d2f7a80fd48e7fd9407f7d528b397f
Reviewed-on: https://chromium-review.googlesource.com/998406
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
bb52c523
|
2018-04-06T10:22:22
|
|
Invariant declaration doesn't make a variable active
Invariant declarations didn't affect static use before, but now they
are also skipped in CollectVariables so an invariant declaration is
not enough in itself to mark a variable as active. This fixes an
assert in CollectVariables.
BUG=chromium:829553
TEST=angle_unittests
Change-Id: I3e51d2916f091bcc283af136a4abc846ff71447d
Reviewed-on: https://chromium-review.googlesource.com/999532
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
6c59e4a1
|
2018-04-05T21:35:37
|
|
Migrate from <tr1/tuple> to <tuple> types.
Bug: 829773
Change-Id: I9bfe3c7b585acb7c91303f59ee448ce2d2dc2786
Reviewed-on: https://chromium-review.googlesource.com/999181
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Victor Costan <pwnall@chromium.org>
|
|
9cceac42
|
2018-03-31T14:19:16
|
|
Vulkan: Update resource dependency semantics.
This removes passing the Serial around to several methods, so that
dependency management is a bit more automatic.
This makes life a bit easier when dealing with state updates when
resources are in use by Vulkan.
The FramebuffeVk no longer stores an extra serial of the last draw,
instead it will trigger creation of a new writing node on a state
change update.
Bug: angleproject:2318
Change-Id: Ie58ec66e6e8644ba4d402c509255c3795d363dd3
Reviewed-on: https://chromium-review.googlesource.com/985201
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
5ae64c94
|
2018-04-06T11:27:03
|
|
Fix writing hex values in ImmutableStringBuilder
The old code was accidentally using letters offset by 10 when writing
out hex values >= 10. Now the letters a to f are used as they should.
This is one issue that changed shader output when ImmutableString was
introduced, so it is a potential cause for a regression detailed in
bug 824062, though this has not been verified.
BUG=chromium:824062
TEST=angle_unittests
Change-Id: Idb871dffba32a3ab20df0fe17b4b1a98ec00b7fa
Reviewed-on: https://chromium-review.googlesource.com/999480
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e547aac7
|
2018-04-05T09:39:20
|
|
GLES1: gl(Push|Pop)Matrix
BUG=angleproject:2306
Change-Id: I96498aebbbc62ebd53e5320db17ef6a54d20d2dc
Reviewed-on: https://chromium-review.googlesource.com/998308
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d2488aba
|
2018-04-04T09:25:48
|
|
GLES1: glMatrixMode
BUG=angleproject:2306
Change-Id: I83e15990c10d9354c2db00766ddc7b0ab960aa5c
Reviewed-on: https://chromium-review.googlesource.com/996019
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
8836f631
|
2018-04-05T07:26:53
|
|
Vulkan: Bugfix in depth/stencil clearing
In the situation when we try to clear the depth OR the stencil
buffer but we have a packed depth/stencil attachment, we were still
clearing both of them since Vulkan doesn't allow setting just the depth
or the stencil image aspect bit on the clear call. The workaround is to
use the vkCmdClearAttachments command that allows us to clear one or
the other easily.
Bug: angleproject:2443
Change-Id: I6814e1927c019d9ec9255d79c6bc7b913a8c99e9
Reviewed-on: https://chromium-review.googlesource.com/997752
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4002e92a
|
2018-04-04T16:55:34
|
|
Guard traversers used during parsing against stack overflow
Traversers used during parsing can be vulnerable to stack overflow
since the AST has not yet been validated for max depth. Make sure to
check for traversal depth in traversers used during parsing.
We set the maximum traversal depth in ValidateGlobalInitializer and
ValidateSwitchStatementList to 256, which matches the default value
for validating general AST complexity. The depth check is on
regardless of compiler options. In case the traversers go over the
maximum traversal depth, they fail validation.
BUG=angleproject:2453
TEST=angle_unittests
Change-Id: I89ba576e8ef69663ba35d7b9050a6da319f1757c
Reviewed-on: https://chromium-review.googlesource.com/995795
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
dd196e0b
|
2018-04-04T11:41:44
|
|
Vulkan: Implement color mask and depth mask bits
These two features are heavily used in the
functional.depth_stencil_clear.* dEQP tests.
Enable a bunch of color/depth/stencil clear tests, however there is
still 2 tests in particular that are giving me trouble. I will work
on them separately in a subsequent change.
Bug: angleproject:2443
Bug: angleproject:2455
Change-Id: Ic93420c7b525b424e9641f78265e264ddb163ab1
Reviewed-on: https://chromium-review.googlesource.com/996035
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5fec7ab2
|
2018-04-04T11:58:33
|
|
Identify functions by unique id in BuiltInFunctionEmulator
Now that unique ids of all builtins are compile-time constants, we can
use them to look up functions in BuiltInFunctionEmulator. This is
simpler than using a custom struct with the name and parameters for
identifying functions.
This requires that we store a reference to a TFunction in those
TIntermUnary nodes that were created based on a function.
This decreases shader_translator binary size by about 6 KB on Windows.
BUG=angleproject:2267
BUG=chromium:823856
TEST=angle_unittests
Change-Id: Idd5a00c772c6f26dd36fdbbfbe161d22ab27c2fe
Reviewed-on: https://chromium-review.googlesource.com/995372
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
fd643283
|
2018-04-04T16:12:09
|
|
Disallow case statements nested in blocks
The GLSL ES 3.00.6 spec is a bit unclear on this, but it does disallow
case statements "inside control flow". GLSL ES 3.10 clarifies this and
disallows any nesting of case or default labels within other
statements.
BUG=angleproject:2452
TEST=angle_unittests
Change-Id: I289bb39abb5227eab7117638af388b0a57dc5dd8
Reviewed-on: https://chromium-review.googlesource.com/995478
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
038dd539
|
2018-03-29T17:31:52
|
|
GLES1: glMultiTexCoord4(f|x)
BUG=angleproject:2306
+ common validation for multitexturing units
+ clang-format
Change-Id: I6eb456c273490e85fc7008e7e11d15e22dd20276
Reviewed-on: https://chromium-review.googlesource.com/987298
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
364a9557
|
2018-03-29T09:44:51
|
|
Vulkan: Implement stencil test support
All the fragment_ops.depth and the fragment_ops.depth tests in dEQP are
now working, but not the fragment_ops.depth_stencil. Still debugging
these separately and will come up with a fix for them in another
commit.
Bug: angleproject:2443
Change-Id: I84c3a22f612fb6dcf30598434f96c2100fd29f9c
Reviewed-on: https://chromium-review.googlesource.com/993654
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a8af3a69
|
2018-03-29T14:44:24
|
|
Vulkan: Depth/stencil scissored clears
- Generalize cmdClearAttachments to be able to clear
depth/stencil/color individually.
- The clear of the stencil part is implemented, but cant be tested
until stencil state support is implemented in the next commit.
Bug: angleproject:2427
Change-Id: Ib1fc7f66b2bd232761d374e217812605d3ff9152
Reviewed-on: https://chromium-review.googlesource.com/992874
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
0946393d
|
2018-04-04T05:26:59
|
|
Move Buffer Subject/Observer to front end.
This makes BufferImpl into an Observer Subject. It also refactors
the Vertex Array updates for the D3D11 backend use more of a dirty
bit coding style.
This change makes it so Buffer contents changes trigger front-end
dirty bits from the back-end, which may be undesirable.
Bug: angleproject:2389
Change-Id: Iac8ce1171284a86851c18cd1373ddf24fcefe40b
Reviewed-on: https://chromium-review.googlesource.com/979812
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
59c5b897
|
2018-04-03T11:44:50
|
|
Validate gl_FragData and gl_FragColor access after parsing
After this simply declaring both variables invariant is not treated as
static use.
This simplifies ParseContext a bit, but the effect on compiler
performance tests seems marginal.
BUG=angleproject:2450
TEST=angle_unittests
Change-Id: Ib90cb1d2bd1331542d1cd37732f24efb7833036a
Reviewed-on: https://chromium-review.googlesource.com/992112
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
62059a55
|
2018-03-29T07:01:35
|
|
Vulkan: Support for bools and bvec* uniforms
- Also enables the dEQP tests for bools and bvec*
Bug: angleproject:2442
Change-Id: Ib9ea017008293bf407bf7e5b5b881f376f226cd0
Reviewed-on: https://chromium-review.googlesource.com/985954
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6bc264ae
|
2018-03-31T15:36:05
|
|
Fix potential bad access in LinkProgram.
This could happen when linking a program with missing attachments
and shaders that have no compiled sources.
Also re-enables the EGL program cache control tests, which were
disabled due to a wrong extension name check.
Bug: chromium:827158
Change-Id: I181f878093c6e3a4acc51552ade8e7c084733a3d
Reviewed-on: https://chromium-review.googlesource.com/989262
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
94bbed1e
|
2018-03-20T14:44:53
|
|
Collect static use information during parsing
We now collect metadata for variables in the symbol table. The
metadata is stored in a map using the variable unique id as a key, so
we can store the variables themselves as constexpr while still having
dynamic metadata.
For now we collect whether a variable is statically read or written.
This can be used to more accurately determine whether a variable is
statically used, but can also enable more optimizations in the future,
such as pruning variables that are never read or folding variables
that are never written after initialization. The collection is done
during parsing, so that nothing is pruned from the AST before the
static use is recorded.
Static writes are flagged in ParseContext::checkCanBeLValue, as that
function is already called for all variables that are written.
Static reads are flagged whenever there's an operation that requires
a variable to be read. This includes:
* Unary and binary math ops
* Comma ops
* Ternary ops
* Assignments
* Returning the variable
* Passing the variable as an in or inout argument to a function
* Using the variable as a constructor argument
* Using the variable as an if statement condition
* Using the variable as a loop condition or expression
* Using the variable as an index
* Using the variable as a switch statement init expression
In case there are statements that simply refer to a variable without
doing operations on it, the variable is being treated as statically
read. Examples of such statements:
my_var;
my_arr[2];
These are a bit of a corner case, but it makes sense to treat them as
static use for validation purposes.
Collecting correct static use information costs us a bit of compiler
performance, but the regression is on the order of just a few percent
in the compiler perf tests.
BUG=angleproject:2262
TEST=angle_unittests, angle_end2end_tests
Change-Id: Ib0d7add7e4a7d11bffeb2a4861eeea982c562234
Reviewed-on: https://chromium-review.googlesource.com/977964
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
89398b65
|
2018-03-21T17:30:50
|
|
Avoid mangled name comparisons of 3-parameter functions
The hash values used for looking up built-ins now encode whether the
mangled name contains arrays, structs or interface blocks in its
parameters list. This is written in the most significant bit of the
hash value.
We check this bit at the start of built-in lookup and if the bit is
set we exit early. After that we know that the lookup name doesn't
contain array, struct or interface block parameters.
When we find a hash that matches a hash of a built-in function, we now
know 3 things:
1) the length of the mangled name matches
2) the open parentheses in the mangled name matches
3) the lookup doesn't contain array, struct or block parameters.
Additionally, we have an if statement checking whether the function
name matches. Collisions are only possible with functions that
1) have the same name
2) have the same number of parameters
With these preconditions we can check beforehand whether collisions
are possible for 3-parameter functions. If there are no collisions, we
don't need to compare the full mangled name. This is similar to what
was already being done with functions that had 0 to 2 parameters.
This reduces shader_translator binary size by around 4 KB on Windows.
Besides increased complexity, the tradeoff is that an exhaustive
search of hash values for possible 3-parameter combinations is costly,
so the gen_builtin_functions.py code generation script now takes
around one minute to run on a high-end workstation. Due to this, the
script now exits early if it detects it has already been run with the
same inputs based on a hash value stored in
builtin_symbols_hash_autogen.txt.
BUG=angleproject:2267
BUG=chromium:823856
TEST=angle_unittests
Change-Id: I3ff8c6eb85b90d3c4971ac8d73ee171a07a7e55f
Reviewed-on: https://chromium-review.googlesource.com/973372
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
30b604d8
|
2018-03-12T17:26:57
|
|
Check that transform feedback will not overflow its buffers.
Also fix the check for uniform buffer size to use the actual buffer
size instead of the size of the bound range.
Bug: 820639
Change-Id: Iaa2a617ee7ce5ce7cfabbf64bd1d6f8c82c46b65
Reviewed-on: https://chromium-review.googlesource.com/965627
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5a7e61bb
|
2018-03-29T16:50:32
|
|
GLES1: glNormal3(f|x)
BUG=angleproject:2306
Change-Id: I42834078b14aaa20c4d4e6b67c097c810f5a17a3
Reviewed-on: https://chromium-review.googlesource.com/987297
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b1de5a7e
|
2018-03-28T14:07:57
|
|
Prevent stack overflow due to recursive swizzle of an l-value
Long chains of recursive swizzling could previously cause a stack
overflow in checkCanBeLValue. Fold recursive swizzling when it is
parsed to prevent this.
BUG=angleproject:2439
TEST=angle_unittests
Change-Id: I83b4c27442185709f6762d5ec23b93244010da05
Reviewed-on: https://chromium-review.googlesource.com/983593
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
beafe1a8
|
2018-03-29T18:23:50
|
|
Skip ComputeShaderTest.groupMemoryBarrierAndBarrierTest on NVIDIA D3D11
BUG=angleproject:2280
Change-Id: If2469e037b197b5e54f8fadce7a5094c5d3159a2
Reviewed-on: https://chromium-review.googlesource.com/987015
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
5cf4d06c
|
2018-03-29T13:33:18
|
|
Further reduce number of uniforms in UniformsBenchmark.Run/gles_matrix
Because Perf bots have Android K with worse driver than GPU.FYI Android L
BUG=angleproject:2431
Change-Id: I9b7a7d34f64a9832c57f9d26573b7c63594e1773
Reviewed-on: https://chromium-review.googlesource.com/986653
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
a43994c9
|
2018-03-29T07:21:41
|
|
GLES1: glColor4(f|ub|x)
BUG=angleproject:2306
Change-Id: I4a57732d4c470c821a3847a7ee012cf3ccbba197
Reviewed-on: https://chromium-review.googlesource.com/986454
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
489243fb
|
2018-03-28T16:55:28
|
|
Vulkan: Add support for ivec* for uniforms
- This also enables 93 dEQP tests to validate these.
Bug: angleproject:2441
Change-Id: I1e0a749dde309788d7921e369cb35881c12c9a33
Reviewed-on: https://chromium-review.googlesource.com/985095
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2371acad
|
2018-03-27T16:03:03
|
|
Vulkan: Support for uniform arrays
- Enable dEQP tests for uniform arrays
- Fix the shader translator to support arrays
- Fix for finding the uniforms location
- Support get/set of uniform array values
Bug: angleproject:2416
Change-Id: I7d0e9c602840ffb915f8ea3ba5d832d03bd74985
Reviewed-on: https://chromium-review.googlesource.com/984599
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
4733585d
|
2018-02-12T15:41:55
|
|
ES31_GLSL: support invocation and memory control functions
Implement shader invocation control functions and shader memory
control functions on D3D backend.
BUG=angleproject:2280
TEST=angle_end2end_tests.ComputeShaderTest.ShaderInvocationAndMemoryControl
Change-Id: I836c3abde35f19dd40a68cf82ae7c5417c551ab4
Reviewed-on: https://chromium-review.googlesource.com/911986
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
96310cda
|
2018-03-28T11:56:28
|
|
GLES1: glClientActiveTexture
+ adds query for GL_MAX_TEXTURE_UNITS
BUG=angleproject:2306
Change-Id: Ie89fa6a067551170856bf0f7e6d7b4452b3da132
Reviewed-on: https://chromium-review.googlesource.com/984894
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a3b220f3
|
2018-03-06T16:22:13
|
|
Vulkan: Adding null driver as device option
Bug: angleproject:2159
Plumbing to allow VK Mock ICD to be selected as the Vulkan driver.
Adding new ANGLE env var "ANGLE_VK_ICD_JSON" to point to json file
of mock ICD in angle and use this to override Vk loader ICD search
path.
At Vulkan renderer initialization time, enable the Mock ICD if device
is EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE.
Default physicalDevice is still the first detected device.
If Mock ICD is requested but not available, fall back to the first
device that was detected.
Added a VULKAN_NULL() testing config that uses Vulkan as renderer but
NULL as device. Turned on Vulkan NULL testing for DrawCallPerf.
Change-Id: I04e15c14e998448f8c98f9fd72e796389f297993
Reviewed-on: https://chromium-review.googlesource.com/961494
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8a02d3b5
|
2018-03-27T12:39:16
|
|
Vulkan: Enable depth render state dEQP tests
Bug: angleproject:2430
Change-Id: Ia6fec6b622c7e235d041ec4e383a4ca2f1f191a3
Reviewed-on: https://chromium-review.googlesource.com/984898
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
3b678745
|
2018-03-21T12:59:19
|
|
Use a specialized hash function for mangled names
The hash values used for looking up built-ins now encode the string
length and the location of parentheses as six-bit values, so that we
don't need to check for these if the hash matches.
This decreases shader_translator binary size on Windows by around 10
KB.
BUG=angleproject:2267
BUG=chromium:823856
TEST=angle_unittests
Change-Id: If8c28e1c8851750633509ec6273f556e06e91cd1
Reviewed-on: https://chromium-review.googlesource.com/973243
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
2231b4e0
|
2018-03-26T16:44:59
|
|
Add a FixedVector class to have "variable" size vectors on the stack.
Wraps a std::array and a size parameter to give the std::vector interface
without making allocations.
BUG=angleproject:2435
Change-Id: I7df0be1310446a2f163766149bf631a8692be9ad
Reviewed-on: https://chromium-review.googlesource.com/981267
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
78c5eb2a
|
2018-03-28T11:40:19
|
|
Skip RobustResourceInitTestES3.MaskedStencilClearBuffer on Intel Mac.
BUG=angleproject:2408
Change-Id: I5994b5ade3c533743c9fc52915aa1d5faca3dd8f
Reviewed-on: https://chromium-review.googlesource.com/984292
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|