|
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>
|
|
aecfa71b
|
2018-04-20T11:18:59
|
|
Print more logs
1. Really print WARN with default platform
2. Print UNREACHABLE, was getting lost because ~LogMessage was not reached
BUG=angleproject:1660
Change-Id: I56fad24895adfec8d81539c6628e65ec2f9e7722
Reviewed-on: https://chromium-review.googlesource.com/1021592
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
8ceea819
|
2018-04-10T03:07:13
|
|
Refactor packed enum generation to support EGL enums.
Convert the very simple EGL texture type enum.
BUG=angleproject:1618
Change-Id: Ieea382a282a8f2544f2982627e8445e6e5cea826
Reviewed-on: https://chromium-review.googlesource.com/1019386
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
7b19a49b
|
2018-04-20T09:31:52
|
|
Use LIKELY and UNLIKELY macros to wrap error generation.
BUG=609673
Change-Id: I247f561712e30aa10bad77fabf614501d596915e
Reviewed-on: https://chromium-review.googlesource.com/1021995
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@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>
|
|
4bba74f0
|
2018-04-19T14:40:45
|
|
Refactor Texture::syncState to pass down the Context
Also returning a gl::Error everywhere.
Bug: angleproject:2478
Change-Id: Ic8cae0ee7aee318bb95b3588044c34c62707b578
Reviewed-on: https://chromium-review.googlesource.com/1020083
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@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>
|
|
427064d2
|
2018-04-13T16:20:34
|
|
Fix perf regression with checkStatus.
Returning an Error was costing us performance in extra
error checks. This intead uses the Context to process the
Error immediately, and returns a value from isComplete and
checkStatus.
Improves performance in draw call validation.
Bug: chromium:822235
Change-Id: I0793fc690e86137425fed593d45083e40aee8db9
Reviewed-on: https://chromium-review.googlesource.com/1011370
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
02c9c04f
|
2018-04-17T13:43:48
|
|
Optimize ValidateDrawAttribs: Part 2.
This moves much of the math into cached values in the VertexAttribute
and VertexBinding.
Bug: angleproject:1391
Change-Id: I1b6c0553bf57fef864c27c5193c7dd7ca9b56f53
Reviewed-on: https://chromium-review.googlesource.com/1008274
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@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>
|
|
c90d4d38
|
2018-04-17T13:11:15
|
|
Fix problematic query in TOutputGLSLBase::visitDeclaration.
There was an invalid derefernce that for some reason was not
caught on the bots.
Bug: angleproject:2456
No-Try: True
Change-Id: I088e9671122fd25077027cb2eb577aa099fdcacf
Reviewed-on: https://chromium-review.googlesource.com/1015287
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
|
|
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>
|
|
aed1b56a
|
2018-04-17T11:47:46
|
|
Prerequisite code for simpler GlslangWrapper.
This makes two changes for the linking step:
* allows symbol names in TOutputGLSLBase::writeVariableType
* stores a list of inactive varying names in VaryingPacking
Bug: angleproject:2456
Change-Id: Id651721a008c049508303d18c45c6b96c76114d9
Reviewed-on: https://chromium-review.googlesource.com/1014707
Reviewed-by: Luc Ferron <lucferron@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>
|
|
e4c38be0
|
2018-04-17T11:09:16
|
|
Vulkan: clearRegionWithScissor did not determine the region correctly
When the scissor region given was completely outside the renderArea,
we were calling vkCmdClearAttachments with the unmodified rectangle.
Instead, we just need to actually skip the clear call since there is
nothing to clear if we have a scissor region outside the render area.
Bug: angleproject:2484
Change-Id: If2c7c5b91e07081f1d2e4f4d8d13f8c8a842ea0b
Reviewed-on: https://chromium-review.googlesource.com/1014958
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@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>
|
|
51af38b8
|
2018-04-15T08:50:56
|
|
Optimize ValidateDrawAttribs: Part 1.
This moves several loop checks outside the loop, and uses more of the
gl::AttributesMask class to do bitset operations instead of using
checks and for loops.
Bug: angleproject:1391
Change-Id: I90a1a7db550390ecd1402cf5a8a6677fd852b7b0
Reviewed-on: https://chromium-review.googlesource.com/1008273
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a7be1f77
|
2018-04-13T15:16:26
|
|
Vulkan: Rename StagingStorage to PixelBuffer.
This more closely matches the OpenGL "Pixel Buffer" concept.
Bug: angleproject:2318
Change-Id: I930b24f68cde2995488737908aae469c86b74092
Reviewed-on: https://chromium-review.googlesource.com/1012456
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@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>
|
|
016105bb
|
2018-04-12T16:38:31
|
|
Store shader information in ShaderMap in class Program and Compiler
This patch is the first one in the series of using ShaderMap as
the container of the resources for each type of shader everywhere
in ANGLE.
This patch defines the new data structure ShaderMap and use it in
class Program and Compiler in ANGLE front-end.
The following work includes:
1. Use ShaderMap in D3D back-ends.
2. Use ShaderMap in Vulkan back-ends.
BUG=angleproject:2169
Change-Id: I1c284d95f5a071c45bb468901eabc15694fffe38
Reviewed-on: https://chromium-review.googlesource.com/1011722
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
76b2c385
|
2018-03-19T15:51:29
|
|
Store invariant declarations in variable metadata
This is simpler than storing the information in symbol table levels.
Invariant declarations can only be present at the global scope, so
storing the information per level is not required.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: Idb07d734950c8a0a8bda5b2380e181902f9eb633
Reviewed-on: https://chromium-review.googlesource.com/1007060
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
15215261
|
2018-04-11T12:14:55
|
|
Enable unneeded-internal-declaration compiler warning
No longer have issues with unneeded internal declarations
now that Tokenizer.cpp has been updated so re-enable
compiler warning to catch future issues.
BUG:angleproject:2451
Test: build
Change-Id: I30daadc8c7374bcae753a7e69cb9a72855a1f548
Reviewed-on: https://chromium-review.googlesource.com/1007965
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
bcef3224
|
2018-04-13T15:19:11
|
|
Move client attribs mask to front-end.
The Vulkan and GL back-ends both had a client attributes mask.
This consolidates them into the front-end, where it can also
be used in the validation layer.
Also includes a fix which was incorrectly setting the enabled
mask in setVertexAttribFormatImpl.
Bug: angleproject:1391
Change-Id: I5e45c1e2a56b30a36dec1482d170592c30a16d40
Reviewed-on: https://chromium-review.googlesource.com/1008272
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@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>
|
|
cc129377
|
2018-04-12T09:13:18
|
|
ImageIndex: Consolidate layer/cube face.
In terms of the Texture or Image resource, a cube face
refers to a layer of a 2D texture. This layer has a special
meaning for cube textures, but it is represented as a layer
with a layer index. Cube array textures are no different,
they just use a different indexing scheme for the array
layers.
This also cleans up the ImageIndex helper to have a class
structure with private data, and cleans up a few cases to
use generic Make functions and iterators where they were
setting properties of the index directly.
This will make it easier to have ImageIndexes address
entire levels of a Cube map in the future, and makes the
layer count logic in Vulkan cleaner.
Bug: angleproject:2318
Change-Id: Iea9842e233f974a9896282ca224cb001f7882bd1
Reviewed-on: https://chromium-review.googlesource.com/987525
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ed8d5ec7
|
2018-03-20T10:08:05
|
|
Add json build file generation
gen_angle_gn_info_json.py can be used to generate a json description
of the build for given targets. This information can then be used
to generate build files for other tool chains (e.g. Android blueprint)
Bug: angleproject:2418
Change-Id: Ief8f43e30ae1f469e3fcfa795306675e29a90a2f
Reviewed-on: https://chromium-review.googlesource.com/967225
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@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>
|
|
416aaf95
|
2018-04-10T08:10:16
|
|
Autogenerate ANGLE extension entry points
Modify autogeneration script to pull data from gl_ext.xml and generate
entry_points_gles_2_0_ext_autogen.cpp/h as a replacement for
entry_points_gles_2_0_ext.cpp/h
Bug:angleproject:2263
Bug:angleproject:1309
Change-Id: Ie21079f8ec5f85c657b891f6d6d59306a4c3b5fe
Reviewed-on: https://chromium-review.googlesource.com/1005409
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@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>
|
|
a56467e0
|
2018-04-11T16:19:41
|
|
VertexArray: Use switch macro for faster iteration.
Has a small but noticeable impact on performance on a microbenchmark.
Seems to improve a synthetic score by about 1%. Should have a very
small improvement in real-world performance.
Note that the odd formatting is an idiosyncrasy of clang-format.
Bug: angleproject:2389
Change-Id: I888bf101c6d8b80a0fbafdb9c5a84205c9c8fee6
Reviewed-on: https://chromium-review.googlesource.com/962963
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@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>
|
|
2dadd1d0
|
2018-04-11T09:25:18
|
|
D3D11: Fix inactive attrib VAO perf regression.
In the case there are any dirty inactive attributes, we were
continually invalidating the Vertex Buffer and Input Layout
bindings. This fixes the invalidation to only happen when
there are any dirty active attributes.
This regressed in "Move Buffer Subject/Observer to front end."
Bug: chromium:829906
Bug: angleproject:2389
Change-Id: I8ed616bb696e0be548344192037ad6cc6f9c595c
Reviewed-on: https://chromium-review.googlesource.com/1006998
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c4f27e4b
|
2018-03-31T14:19:18
|
|
Texture: Pass ImageIndex to relevant methods.
The Vulkan back-end will be using this helper struct, so make it
available everywhere. This cleans up a lot of the code for D3D.
Potentially in the future we could generate these in the entry
points if we supported packing multiple arguments into one.
Also changes a few parameter types to GLint for compatibility.
Also updates the Vulkan Texture implementation check the stored
vk::Format on setImage changes.
Bug: angleproject:2318
Change-Id: I57cea4a42483ab51859229517d783b58f206b8e7
Reviewed-on: https://chromium-review.googlesource.com/985203
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
|
|
22f12fed
|
2018-04-08T14:23:40
|
|
Vulkan: Rename vk::LineLoopHelper.
This more closely follows the general pattern laid out by the naming
in vk_helpers.h. It also changes the dynamic buffer that the helper
wraps to be stored by-value since the header include order problem is
fixed.
Bug: angleproject:2318
Change-Id: I1de9e1edee2125d3afd490b4f9c99cf70c61215c
Reviewed-on: https://chromium-review.googlesource.com/1001654
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Commit-Queue: 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>
|
|
78acf5b5
|
2018-04-10T20:39:06
|
|
D3D11: Fix primitive topology dirty bit tracking.
syncPrimitiveTopology checks the transform feedback state, so it needs
to be called whenever the transform feedback state changes. This fixes
flakes in the WebGL 2 conformance test
transform_feedback/simultaneous_binding.html
Bug: 696345
Change-Id: I4e17bbf60b4a387cc23dc55bd5a051f5da9fa66e
Reviewed-on: https://chromium-review.googlesource.com/1006489
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
Commit-Queue: Jamie Madill <jmadill@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>
|
|
ec0a7028
|
2018-04-10T17:24:32
|
|
D3D11: Add more debug names.
Bug: None
Change-Id: Iedf69564f465ad1a48fd5cebfe384ace6787a720
Reviewed-on: https://chromium-review.googlesource.com/1006050
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@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>
|
|
26084d0a
|
2018-04-09T13:44:04
|
|
Vulkan: Create TextureVk's Image lazily.
This defers the actual Image initialization until the Image is used
as either a Framebuffer Attachment or OpenGL Texture object. This
will allow us to construct an Image from multiple sub resources, like
when we're initializing a mip chain, or a cube map texture.
Also adds a helper "hasDepthOrStencilBits" function to angle::Format.
Bug: angleproject:2318
Change-Id: Ife861560216581a90fc6da32a583f69886c7daea
Reviewed-on: https://chromium-review.googlesource.com/985202
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3418fe80
|
2018-04-09T14:08:19
|
|
Optimize Subject's binding method.
Using FixedVector, we can remove the need for dynamic allocation in
most of the use cases. Only when we exceed a certain amount of fixed
storage do we need to spill into the heap.
Bug: angleproject:2389
Bug: chromium:829906
Change-Id: Ib5f7073b58876bfd2400bd87b743bddcee5e5dc8
Reviewed-on: https://chromium-review.googlesource.com/1002884
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3dd8d291
|
2018-03-30T09:39:09
|
|
Use ShaderBitSet for active use bits on uniforms
BUG=angleproject:2169
Change-Id: I192c2e3c453540c8a6d7b0d066218ea3c9fbaab2
Reviewed-on: https://chromium-review.googlesource.com/989411
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
fe4bbe6c
|
2018-04-06T13:50:14
|
|
Create Stubs For Unimplemented Extensions
Create context and validation stubs for unimplemented extensions. This
will allow us to use an autogeneration script in the future to generate
entry_points_gles_2_0_ext.cpp.
Bug:angleproject:2263
Change-Id: If3ad3ebd823d65085c7f143cce9e09187e65d4da
Reviewed-on: https://chromium-review.googlesource.com/998440
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
0ce016c1
|
2018-04-09T10:59:56
|
|
FixedVector: Add "full" method.
Will be useful for an optimization to the Buffer Subject/Observer
pattern.
Also cleans up an ASSERT.
Bug: angleproject:2389
Bug: chromium:829906
Change-Id: I2f8313ab531bca61947a51cc2396c04fb5d4bb1d
Reviewed-on: https://chromium-review.googlesource.com/1002883
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Lingfeng Yang <lfy@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@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>
|
|
6816d843
|
2018-03-31T14:19:17
|
|
Add two new fields to angle::Format.
One field determines if a format is a compressed format
(called Block format for angle::Format, but basically the same).
The second field is the number of bytes in the format, so we
can do calculations on pixel size.
Both of these will make life cleaner in the Vulkan back-end.
Also solves some TODOs in the vk format table init.
Bug: angleproject:2318
Bug: angleproject:2358
Change-Id: I8b021b959c5892c86635e0225012295e5e830256
Reviewed-on: https://chromium-review.googlesource.com/987524
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@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>
|
|
6c7ab7fe
|
2018-03-31T14:19:15
|
|
Vulkan: Reorganize helper classes.
This renames ResourceVk to vk::CommandGraphResource, which should help
clarify its usage. This also moves LineLoopHandler, ImageHelper, and
the DynamicBuffer and DynamicCommandPool classes into a new vk_helpers
module. This file contains helper classes that manage other resources.
Also this makes DynamicBuffer and DynamicDescriptorPool no longer
inherit from CommandGraphResource. In the future, only Impl objects
will be allowed to be graph resources.
Bug: angleproject:2318
Change-Id: I0fa23da2ac853d90f3c822547a4a314f247cc757
Reviewed-on: https://chromium-review.googlesource.com/985200
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>
|
|
8957e832
|
2018-04-06T10:49:28
|
|
Add pop_back() / back() method for FixedVector
Good for implementing stacks of fixed size (in the pop operation).
+ fix an issue where push_back() only allows adding up to max_size() - 1
elements.
BUG=angleproject:2306
Change-Id: I99b3c8416055f069fa563b684c102fd6aec116bc
Reviewed-on: https://chromium-review.googlesource.com/1000031
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
|
|
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>
|
|
59770806
|
2018-04-02T13:18:42
|
|
Refactor ANGLE Extensions Context Calls
Refactors ANGLE extensions context calls into a common format for future
autogeneration. Any work that occurred in the entry point has been moved into
its own context member function.
Bug:angleproject:2263
Change-Id: I91cb3aca6a8c135ed3ae80a723d6cf16b54aeda6
Reviewed-on: https://chromium-review.googlesource.com/990809
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b8e39660
|
2018-04-04T11:41:42
|
|
Vulkan: Remove Observer from LineLoopHandler.
This can now use the VertexArrayVk dirty bits. It also
seems as though there are a couple caching bugs with the
LineLoopHandler.
Bug: angleproject:2389
Change-Id: I8af73f4acf56768ed9c68395349ba96acfbe9666
Reviewed-on: https://chromium-review.googlesource.com/989259
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Luc Ferron <lucferron@google.com>
|
|
c3755fc5
|
2018-04-05T08:39:13
|
|
Vulkan: Move Streaming data to VertexArrayVk.
Instead of the ContextVk owning the translations for the various
attributes, make the VertexArrayVk own them. This way they can
handle the dirty bit state notifications directly instead of
needing their own Observers.
Bug: angleproject:2389
Change-Id: I5e571ba6c563e820a4c0d5f92db35031e6f2428a
Reviewed-on: https://chromium-review.googlesource.com/989258
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
e7b3fe21
|
2018-04-05T09:42:46
|
|
Context: Release surface first in onDestroy.
This works around a bug in Vulkan where the VertexArrayVk still
had resources in use when the Context was being destroyed. An
alternative approach is to call finish() from Context::onDestroy,
but this seems heavyweight. We might have to adopt something like
this eventually though.
Bug: angleproject:2389
Change-Id: Id99ca00404972a0b857c0e7e36f37b8ac4fd5c5e
Reviewed-on: https://chromium-review.googlesource.com/997743
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f9176ce5
|
2018-04-05T00:25:32
|
|
GLIBC fix: size_t requires include <stddef.h>
Compiling fails with some combinations of gcc and glibc.
'size_t' does not name a type in proc_table.h
Change-Id: Id79e033dc72d836788551e076ced6dbd706ce902
Reviewed-on: https://chromium-review.googlesource.com/995422
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@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>
|
|
f3614370
|
2018-03-31T14:19:14
|
|
Vulkan: Rename StreamingBuffer to DynamicBuffer.
This makes it consistent with DynamicDescriptorPool, and gives a bit
more precise definition.
Bug: angleproject:2318
Change-Id: I8953113165ebe2d0dcfc0fc923d94280180442ce
Reviewed-on: https://chromium-review.googlesource.com/985199
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
|
|
00af463e
|
2018-04-02T12:42:24
|
|
GLES1: Add MatrixType packed enum to entry points
(It's not called MatrixMode because that collides with the MatrixMode
entry point name)
BUG=angleproject:2306
Change-Id: I9a192701f6248f1e7d4f202c7d1ddfcdbe1b0089
Reviewed-on: https://chromium-review.googlesource.com/990585
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
bab086a7
|
2018-03-30T16:08:42
|
|
Fix Tokenizer issue
Updated Tokenizer running generate_parser.sh on Windows.
Test: make
Change-Id: I128a70a61907bb4ce3b0a8031667bda4197b6a2d
Reviewed-on: https://chromium-review.googlesource.com/988802
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.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>
|
|
858c1ccc
|
2018-03-31T14:19:13
|
|
Vulkan: Move image layout into helper.
Now that we're using the helper everywhere, we can clean up the
vk::Image class and move the layout tracking into ImageHelper.
Bug: angleproject:2318
Change-Id: I9636835a2a3a76f181dac629bd4182bc5815cdee
Reviewed-on: https://chromium-review.googlesource.com/980774
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
24a3137a
|
2018-04-04T11:49:14
|
|
Vulkan: Follow up change to optimize number of condition checks
This is a follow up of a comment on this CL:
https://chromium-review.googlesource.com/c/angle/angle/+/985954
Bug: angleproject:2442
Change-Id: Id104c1437d77e6102b94351623ee8538a1d6c3d7
Reviewed-on: https://chromium-review.googlesource.com/996012
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@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>
|
|
32fd63bc
|
2018-03-31T11:20:35
|
|
Vulkan: Use DrawCallParams in draw methods.
This cleans up some of the vertex streaming logic.
Bug: angleproject:2389
Change-Id: I8ed2f8acd06bbdd97db40acac35e5692112a3efe
Reviewed-on: https://chromium-review.googlesource.com/989257
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@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>
|