|
888081d5
|
2018-02-27T00:24:46
|
|
D3D11: Refactor dependent Framebuffer state changes.
Previously, when a state change would cause a Texture to
recreate its storage specific to D3D11, we would use a
dependent notification from RenderTarget11 to Framebuffer11
to re-check internal dirty bits. In this new method, we
instead set dirty bits on the gl::Frambuffer directly. This
also means we use fewer internal objects for these
notifications, because we share the same structures between
the D3D11 back-end notifications and the top-level notifications
we use for Robust init and Framebuffer completeness.
This also allows us to get rid of one "if" that we check on
every draw call in D3D11.
This also introduces a dirty bits guard concept - a shadow
set of dirty bits that is checked in dependent state changes
to ensure that extra bits aren't set inside syncState.
This also implements Framebuffer dirty bits for the D3D9
back-end. This has the side effect of cleaning up the
"null colorbuffer" D3D9 workaround.
Bug: angleproject:2372
Change-Id: Ie346d39030f4f6df583d735685b0babea4e745a8
Reviewed-on: https://chromium-review.googlesource.com/936691
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
92e4e079
|
2018-03-02T13:34:56
|
|
Test shader builtin accessibility from different stages
Test that fragment, vertex or compute shader exclusive builtins are
not accessible from another shader stage. This will protect against
regressions when refactoring the symbol table.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I50f97cbde3f1c5cb4584568e3008f1dab724b769
Reviewed-on: https://chromium-review.googlesource.com/941953
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
ff32734d
|
2018-02-22T18:20:37
|
|
Support EGLStream from B8G8R8A8_UNORM D3D11Texture.
Mozilla bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1415754
BUG=angleproject:2368
Change-Id: Ic2c71b36e7b08560e158fd3dbf10b2fe225f1364
Reviewed-on: https://chromium-review.googlesource.com/935148
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
259b2977
|
2018-02-26T16:30:06
|
|
Move constructors may not be marked explicit.
BUG=angleproject:2383
Change-Id: If22c7f7c15b7bbe89b859281b28c2b9695e34a1d
Reviewed-on: https://chromium-review.googlesource.com/945415
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
28cf920e
|
2018-03-02T15:54:56
|
|
Fix checking texture function offset
There was a mistake in one of the texture offset function names being
checked. Fix it and add a test making sure that a similar mistake
cannot slip in again.
BUG=angleproject:2387
TEST=angle_unittests
Change-Id: I2dddfbdc2836f9e7e94ca6573a8f3689eecf7eb2
Reviewed-on: https://chromium-review.googlesource.com/946254
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
e765e215
|
2018-03-01T12:00:48
|
|
Test that ESSL 300 standard derivatives compile successfully
These functions have the same name in the ESSL 100 extension, creating
a possibility for conflicts. This adds a convenient way to test for
regressions when refactoring the symbol table.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I9716524a0ea85064ba5f3ee8e7adfbdfc59d257e
Reviewed-on: https://chromium-review.googlesource.com/945989
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
437664b4
|
2018-02-28T15:38:14
|
|
Clean up TSymbolTable entry points
TSymbolTable API can be cleaned up further now that we have separate
logic for inserting builtins and user-defined symbols.
BUG=angleprojec:2267
TEST=angle_unittests
Change-Id: I7a228891ecdf4696e50868b9e7dfc2a50b5d8e92
Reviewed-on: https://chromium-review.googlesource.com/941301
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
b7d14586
|
2018-03-01T18:07:41
|
|
Update dEQP EGL expectations
BUG=angleproject:2341,angleproject:2382
Change-Id: I5bcc0938e2d86165022cc80afda6b11c801ef5ed
Reviewed-on: https://chromium-review.googlesource.com/944711
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
d6fef528
|
2018-03-01T13:41:13
|
|
Shorten mangled names of types
This will reduce binary size by a few kilobytes once we store mangled
names of functions as constexpr strings.
This still keeps mangled names human readable.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: Ia63980bd511c701a93e2c5e247d24578c7d7f332
Reviewed-on: https://chromium-review.googlesource.com/943101
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
98e6a5f7
|
2018-02-28T15:47:13
|
|
Add missing #include.
Would not compile locally on Linux without adding #include <algorithm>.
BUG=none
Change-Id: I2f817faf681234c0e7eeeda0ad837e8285d9071a
Reviewed-on: https://chromium-review.googlesource.com/941613
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
|
|
d444255a
|
2018-02-27T22:03:47
|
|
Refactor signal utils into Observer pattern.
These types were over-generalized. All use cases featured
arrays of resources attached to single parent resources. The
channel ID is sufficient to identify the child resource in the
parent, and having variadic template arguments wasn't necessary.
Futhermore we can rename these types to use the common Observer
pattern. This should make them more readable to new developers.
Also update some classes to inherit from Subject instead of
having a member Subject. This cleans up the code in a few places.
This should lead to a simpler refactor to allow dependent dirty
bits notifications in the Vulkan back-end.
In the following patch the signal_utils files will be renamed. They
are not renamed in this patch to ensure git history is preserved.
Bug: angleproject:2372
Change-Id: I17a3f2c8d92afd4bb3cba2d378c3a2e8a6d7fb11
Reviewed-on: https://chromium-review.googlesource.com/936690
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2f3a0dc5
|
2018-02-27T22:39:44
|
|
Report INVALID_VALUE if width/height of invalidateSubFramebuffer is negative.
BUG=angleproject:2376
TEST=dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.invalidate_sub_framebuffer
Change-Id: Ie1ca30f29d7583c86130f46d4e6b5c7211eee63a
Reviewed-on: https://chromium-review.googlesource.com/938367
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a8e868f2
|
2018-01-28T23:32:25
|
|
Vulkan: use correct vertex stride.
It was passing the attribute size, not the stride, so it worked only
when they were the same.
Enable corresponding tests.
BUG=angleproject:2310
Change-Id: Ie3ab13567c16c302aa9aeda5d059e5fd4eb92b4e
Reviewed-on: https://chromium-review.googlesource.com/875304
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
640fa5dc
|
2018-02-22T17:03:15
|
|
Enable more of AttributeLayoutTest.
Enable more parts of AttributeLayoutTest because:
- partial Vulkan support for vertex data in client memory has landed
- we can work around bugs which prevented some parts from working
- we have more fine-grained control over which parts to run
Avoid glBufferSubData to work around ANGLE bug 2374.
Let subclasses decide about skipping test cases. For example on Vulkan
indexed draw with vertex data in client memory is not supported yet.
BUG=angleproject:1683
Change-Id: Id073334299bd1a642b2518ccb3c47ebd8ff010d9
Reviewed-on: https://chromium-review.googlesource.com/933943
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
360098d5
|
2018-02-21T07:33:50
|
|
Vulkan: Implement GL_LINE_LOOP support for non-indexed draw calls
Line loops aren't supported in Vulkan directly, so we use line strips with
an indexed buffer to emulate them. To hide the complexity of that, I've created
the LineLoopHandler class in vk_utils.
Bug: angleproject:2335
Change-Id: Id3e020d27e5265565e61e96d3fd0187c4fe2b152
Reviewed-on: https://chromium-review.googlesource.com/931421
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
339f65bb
|
2018-02-27T12:52:48
|
|
ES31: Fix incorrect initialization for indexed atomic counter buffer
BUG=angleproject:1729
TEST=dEQP-GLES31.functional.state_query.indexed.atomic_counter_buffer_binding_getbooleani_v
Change-Id: I3f6975ecc0e69f487f66ff65d613307fcaa6eb08
Reviewed-on: https://chromium-review.googlesource.com/939106
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Yunchao He <yunchao.he@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
aef92166
|
2018-02-27T13:51:44
|
|
Move the early-return case of zero mask to Context::blitFramebuffer
When the mask is zero, no buffers are copied in BlitFramebuffer. But we still
need to check all the error situations. So mask of zero should be put in
blitFramebuffer not the validation file.
Meanwhile, we adjust the checking sequence to pass the deqp case.
BUG=angleproject:2375
TEST=dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.blit_framebuffer
Change-Id: I73c78ffb8853153f70fc30e8ae0e704e08e454ac
Reviewed-on: https://chromium-review.googlesource.com/938573
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
06a87ec8
|
2018-02-25T22:07:27
|
|
Vulkan: Fix offsets in BufferVk::setDataImpl.
We were using a src offset instead of a dest offset. The staging
buffer should always start at the zero offset, while the dest
buffer (the real buffer) should use the offset argument to
Buffer*Data.
Bug: angleproject:2374
Change-Id: I9ee702709d9c15945935f4eae25f308b71e0d1e8
Reviewed-on: https://chromium-review.googlesource.com/937022
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
d063affa
|
2018-02-22T10:19:09
|
|
ES31: Add link validation on geometry shader varyings
This patch adds the link validation on geometry shader varyings.
According to SPEC, geometry shader inputs should not be treated
as arrays for the purpose of interface matching.
This patch also moves the checks on fragment input bindings into
a single function.
BUG=angleproject:1941
TEST=angle_end2end_tests
dEQP-GLES31.functional.shaders.linkage.es31.geometry.varying.*
Change-Id: Ib3ca64e28683e9688edc9432d43ff5a70c86117e
Reviewed-on: https://chromium-review.googlesource.com/929866
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
85f0b5ea
|
2018-02-23T15:23:21
|
|
Allow EGL_EXPERIMENTAL_PRESENT_PATH_FAST_ANGLE with EGL_PLATFORM_DEVICE_EXT.
Mozilla bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1395107
BUG=angleproject:2370
Change-Id: Id0c0cecbe14c1c0a1b3de18b0ccf70d00af81a80
Reviewed-on: https://chromium-review.googlesource.com/935454
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6ae51611
|
2018-02-23T14:03:25
|
|
ES31: Add missing checks for querying GL_COMPUTE_WORK_GROUP_SIZE
This patch adds missing checks for querying GL_COMPUTE_WORK_GROUP_SIZE
by glGetProgramiv.
When querying GL_COMPUTE_WORK_GROUP_SIZE, an INVALID_OPERATION error
should be generated when this program hasn't been linked successfully
or it doesn't contain any objects to form a compute shader.
BUG=angleproject:2324
TEST=angle_end2end_tests
dEQP-GLES31.functional.debug.negative_coverage.get_error.compute.invalid_program_query
Change-Id: I13dcebef8a0abede5c18a038d4cf915ee4164e2e
Reviewed-on: https://chromium-review.googlesource.com/933627
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
b52fac03
|
2018-02-21T15:45:35
|
|
Refactor ImageIndex to have separate type and target members.
BUG=angleproject:2169
Change-Id: Ib3fb699058f76d0eb810a9691ea1d64311dadbb1
Reviewed-on: https://chromium-review.googlesource.com/929650
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
bacaa714
|
2018-01-30T14:01:39
|
|
ES31: support stencil texture via DEPTH_STENCIL_TEXTURE_MODE.
BUG=angleproject:2373
Change-Id: I5edd9db6ef6101b0ad75f71fdcdfbb1261100583
Reviewed-on: https://chromium-review.googlesource.com/936421
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c4bd0ac9
|
2018-02-22T16:29:32
|
|
Add 32-bit hash helper to ImmutableString
Since the length of the hash is known prior to compilation, it can be
compared with script-generated hashes.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: Ia0a78dfd450c4ea2d526da7f3495b9750dcbd1af
Reviewed-on: https://chromium-review.googlesource.com/931884
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
2f7c04a3
|
2018-01-25T14:50:37
|
|
Clean up unnecessary use of TString
TString was being used in some places where it was not really needed.
Clean these up.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: Ib7fd26f9c6b6b885433c840a9520393908f1f902
Reviewed-on: https://chromium-review.googlesource.com/887068
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
3582c0e2
|
2018-02-22T14:38:09
|
|
Add a test for redefining an unavailable built-in
This is going to guard against regressions when symbol table init is
optimized.
TEST=angle_unittests
BUG=angleproject:2267
Change-Id: Iec7b9814f4af215dc0b3e8a39c8cfab004451836
Reviewed-on: https://chromium-review.googlesource.com/931883
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
81aa15f1
|
2018-02-22T18:22:52
|
|
Test `EGL_OPENGL_ES3_BIT_KHR` against `rendererType`, not `conformant`.
Mozilla bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1415754
BUG=angleproject:2369
Change-Id: I99cae322eb70ea3920eb296fd590abccded6dab4
Reviewed-on: https://chromium-review.googlesource.com/935149
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3c43b4d1
|
2018-02-23T11:08:28
|
|
Fix incorrect conversion in ConvertToGLint
This patch fixes a bug in function ConvertToGLint. This function
should convert ParamType into GLint instead of GLenum.
This patch can fix the bug that no errors are generated when trying
to set negative base level or max level by glTexParameteri because
ConvertToGLint always incorrectly converts a negative integer into
an unsigned integer in ValidateTexParameterBase.
BUG=angleproject:2371
TEST=angle_end2end_tests
dEQP-GLES31.functional.debug.negative_coverage.get_error.texture.texparameter*
Change-Id: Id5baf3430ae574a083bcc40a7a8f7db1cb2d07ed
Reviewed-on: https://chromium-review.googlesource.com/933923
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
20c46284
|
2018-02-22T18:18:01
|
|
Make OpenSharedResource() call become fallible in SwapChain11::resetOffscreenColorBuffer().
Mozilla bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1415754
BUG=angleproject:2367
Change-Id: I69a75c38c6811752df6da9c3cba5901c9d8ab8c4
Reviewed-on: https://chromium-review.googlesource.com/935281
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ad661940
|
2018-02-22T18:15:45
|
|
Remove unused include of math.h in matrix_utils.h.
BUG=angleproject:2366
Change-Id: Ic398da0b86caef577140808a87fcc2e74ed28dc0
Reviewed-on: https://chromium-review.googlesource.com/935144
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
a4ef843f
|
2018-02-22T16:02:24
|
|
ES31: Fix incorrect error code in DispatchComputeIndirect
INVALID_VALUE error should be generated not INVALID_OPERATION if indirect
is not a multiple of the size, in basic machine units, of uint.
Meanwhile, we put the validation of indirect before indirect buffer so that
the corresponding deqp cases can pass.
BUG=angleproject:2324
Change-Id: I223ec1893a6dd613f84e51a98f02d5f79482952f
Reviewed-on: https://chromium-review.googlesource.com/929900
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Yunchao He <yunchao.he@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
76bf01d7
|
2018-02-22T14:11:34
|
|
Fix that readonly buffer variable can be assigned
This change will add memory qualifier checking for binaryNode in case the
memory qualifier information is lost.
BUG=angleproject:1951
TEST=angle_unittests
Change-Id: I3f0cfd7d8a059753cf3c982ee0a977b4b0fd0128
Reviewed-on: https://chromium-review.googlesource.com/929877
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
e41df655
|
2018-02-09T14:31:39
|
|
ES31: Add shader version check for CS and GS
This patch adds the missing check on the shader version for compute
and geometry shaders, which can fix a bug that ANGLE GLSL compiler
doesn't report a compile error when compiling an empty compute or
geometry shader in version 100 or 300.
This patch also updates the original compiler tests on the check of
shader version. In these tests, the compile errors are all caused by
illegal layouts instead of shader versions, which is against the
purpose of the tests.
This patch also fixes an incorrect case that used an empty compute
shader in version 300.
BUG=angleproject:1442, angleproject:1941
TEST=angle_unittests
Change-Id: Ic26bb8eb312dbc0cec6a879997d0ae7a2e625a0f
Reviewed-on: https://chromium-review.googlesource.com/910715
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
f7f0b8c3
|
2018-02-21T20:02:23
|
|
Rename operator enums so they can be autogenerated
Camel casing is removed from the enums where it differs from the GLSL
spec. This way it's easier to autogenerate code for built-in
functions mapped to operators.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I2490d5d0e8ffb45eba343f225f76779e63381a65
Reviewed-on: https://chromium-review.googlesource.com/929361
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
7c8567a3
|
2018-02-20T15:44:07
|
|
Always add most extension symbols to symbol table
An error will be generated either way if the extension symbols are
used incorrectly since each use of an extension function or variable
checks whether the extension is enabled.
We now also track extension in unmangled built-in names, so that
redefining built-ins of extensions that are not enabled can be
supported.
This includes refactoring the shader extension tests to share a common
helper class ShaderExtensionTest.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I9cc5e9bd62fa07796e69256a6a9a493531a62446
Reviewed-on: https://chromium-review.googlesource.com/926526
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a953b527
|
2018-02-21T16:56:23
|
|
Avoid possible overflow when computing ReadPixels bounds.
BUG=809881
Change-Id: I69c58c93597aea5a5c25298908592ce1ab4a957b
Reviewed-on: https://chromium-review.googlesource.com/929984
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
1dce1bd3
|
2017-12-06T10:25:40
|
|
Add test case to catch depth stencil buffer bug on Intel windows
Rendering with depth buffer disabled and stencil buffer enabled
leads to memory leak if we set viewport a large size on Intel
windows platforms. Add an end2end test case to catch this driver
bug.
TEST=DepthStencilFormatsTestES3.DrawWithLargeViewport/ES3_D3D11
BUG=782317
Change-Id: I16efb9459717e94e2edb5d5eb5dc24f47d746ea3
Reviewed-on: https://chromium-review.googlesource.com/858430
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
24842908
|
2018-02-02T01:21:12
|
|
New test for vertex attribute arrangements.
Test various ways of organizing attributes: in memory or buffer object,
sequential or interleaved.
Test different types of vertex data.
Test non-indexed draw, indices in buffer, indices in memory.
Test starting at vertex zero and higher.
BUG=angleproject:1683
Change-Id: I54a752679b31bbb3f573c922d59da69a18302daa
Reviewed-on: https://chromium-review.googlesource.com/898608
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
df4b6316
|
2018-01-18T18:22:19
|
|
Vulkan: Add unmap in BufferVk::getIndexRange.
There was a map() without a corresponding unmap().
Add a test which does multiple indexed draws, triggering the problem.
BUG=angleproject:2310
Change-Id: Id33d66f24de2005ec3f9958d33ab4c2630b49dc5
Reviewed-on: https://chromium-review.googlesource.com/875318
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
8d986bf2
|
2018-02-21T08:28:01
|
|
Fix missing include files visible to GN.
This should also fix the VS project generation. Thanks to Jeff Gilbert
from Mozilla for sharing a list of missing files.
Bug: angleproject:2360
Change-Id: Ideab28a0169cd7aabb6a7bd3aac3a5832443f023
Reviewed-on: https://chromium-review.googlesource.com/922874
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1f46bc12
|
2018-02-20T16:09:43
|
|
Vulkan: Add CommandGraph class.
This also renames CommandBufferNode to CommandGraphNode. It also
renames some of the intenal members to more closely represent the
tree relationships (parents/children). This should clean up the
command graph classes and make them a bit easier to understand.
Bug: angleproject:2361
Change-Id: I024bffcc7f4157c78072ef902a3c40a07a08b18a
Reviewed-on: https://chromium-review.googlesource.com/922121
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e703c606
|
2018-02-20T10:21:48
|
|
Add gl::RenderbufferState shared state helper.
This shared state will be read-only visible in the RenderbufferImpl
class. It mirrors existing structs for Textures, Buffers, and other
classes. It allows the implementation class to have a read-only view
as to the current GL state of an object.
This will be useful to the Vulkan back-end, which would like to know
the current Renderbuffer state before having to redefine the storage.
If the current parameters match, it might not have to redefine the
storage at all.
The solution involves passing around the gl::RenderbufferState
through various factory methods.
Also name the Renderbuffer implementation pointer consistently and
make it use std::unique_ptr.
Bug: angleproject:2347
Change-Id: Ied6e0358e24e74a7fedbe4aea692edee909b5838
Reviewed-on: https://chromium-review.googlesource.com/922457
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f81d17c2
|
2018-02-02T15:10:37
|
|
D3D11: Downsample when copying to emulated 16-bit texture formats.
BUG=angleproject:2313
Change-Id: Ic1e679164d82f3024bb6842c9af2716aa10feb76
Reviewed-on: https://chromium-review.googlesource.com/900042
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
795d741a
|
2018-02-20T12:28:25
|
|
Add empty file to prevent git clean from deleting
the tools folder.
Bug: angleproject:1569
Change-Id: Ic0161260e1c19fb660be06cd5a844f9031a77ef0
Reviewed-on: https://chromium-review.googlesource.com/926863
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5f3047c5
|
2018-02-14T14:39:12
|
|
StateManagerGL: Use dirty bits for VAO bindings.
Delay binding the VAO in VertexArrayGL::syncDrawState until we actually
need to make glVertexAttrib calls.
BUG=angleproject:2188
Change-Id: Ib7d22d641c9f19c639ba8c596bff6bc7de952e7f
Reviewed-on: https://chromium-review.googlesource.com/919503
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
3f4b87b4
|
2018-02-16T17:12:19
|
|
Expand the EGLIOSurfaceClientBufferTests
This expands the test to check for validation errors and that multiple
formats of IOSurfaces can be read from / rendered to. It fixes a couple
issues in the implementation of the extension too.
Minor fixes in the EGL_ANGLE_iosurface_client_buffer extension text.
Fix a fragile test that was not setting the texture unit a shader is to
sample from.
BUG=angleproject:1649
Change-Id: Ied2a9bfff95cb3a9a7a59008260899eb2fc55575
Reviewed-on: https://chromium-review.googlesource.com/924477
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
029e8ca7
|
2018-02-16T14:06:49
|
|
Add a constexpr constructor for TFunction
Access to TFunction parameters is now handled through two new members:
a pointer to a parameter array and a parameter count.
There's still also a vector pointer in TFunction for adding function
parameters one by one. This is used when parsing user-defined
functions.
TEST=angle_unittests
BUG=angleproject:2267
Change-Id: I86987ae56b7cf37f010d0651e9861789050aec2b
Reviewed-on: https://chromium-review.googlesource.com/923987
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
697bf65c
|
2018-02-16T11:50:54
|
|
Avoid redundant symbol lookup when parsing functions
The lexical phase looks up symbols when it encounters an identifier.
Instead of duplicating this work when parsing non-constructor
functions, we now store the symbol looked up in the lexical phase in
TFunctionLookup.
This improves scores of the real world shader compiler perf test by
1-2%.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: Idc99776571313d8b654910f9daaf9bf34a048228
Reviewed-on: https://chromium-review.googlesource.com/923725
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9fdaa497
|
2018-02-16T10:52:11
|
|
Don't no-op draw calls for zero count in validation.
Make the no-op happen in the Context, so we can properly generator
more errors for negative WebGL tests. Some validation tests still
need to check for no-ops, such as range checks.
BUG=angleproject:2050
Change-Id: I48d0b3cf640f7f128679600e5df108146cfd6348
Reviewed-on: https://chromium-review.googlesource.com/522869
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
0cbfa586
|
2018-02-15T14:45:41
|
|
Vulkan: Implement basic Renderbuffer attachments.
Creating an ImageView for color Renderbuffers allows us to render to
them in a RenderPass. We will also need additional functionality to
support depth/stencil Renderbuffers.
Bug: angleproject:2347
Change-Id: I5d4f7d8242ad4fbca38cb08c0cf6b43edca57c8f
Reviewed-on: https://chromium-review.googlesource.com/922456
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
e80825ef
|
2018-02-16T10:24:53
|
|
Simplify built-in function node initialization
Built-ins with no math op associated with them now have the op code
EOpCallBuiltInFunction set. This makes initializing built-in function
nodes simpler, since they can always get the op code from the function
symbol.
We also no longer look for functions in inner scopes, only from the
global scope and from built-in functions.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I55a2642f34bb3c8b8f13183c95fa509ec3b9cfdb
Reviewed-on: https://chromium-review.googlesource.com/923724
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
17448956
|
2017-01-05T15:48:26
|
|
Vulkan: vertex attributes in client memory.
Support vertex data stored in client memory passed to glVertexAttribPointer.
Only GL_FLOAT data is supported at this time. Includes a simple test.
BUG=angleproject:1683
Change-Id: I3bc0cdefe02b02c046b0e85822019a0f1762235e
Reviewed-on: https://chromium-review.googlesource.com/425137
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b66de58f
|
2018-02-15T14:02:33
|
|
Mark third-party code in ANGLE as no_chromium_code.
That way, we don't have to explicitly disable Wimplicit-fallthrough
for these targets, and when we add new warnings to chromium_code in
the future, these targets won't need any special attention.
Like https://chromium-review.googlesource.com/c/chromium/src/+/905222
Bug: 807632
Change-Id: I3a605dd3ef9ed7d8cfe9e36964c3433040bfc330
Reviewed-on: https://chromium-review.googlesource.com/922503
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
|
|
d7ebfb92
|
2018-02-15T16:34:29
|
|
Add missing is_fuchsia to system_utils selection.
This fixes a build break because of 046fa0efc44d3ac5d.
See: https://crrev.com/c/898591
Bug: angleproject:2333
Change-Id: I6a4cb60dd2d2958ea71aaa27f1429233c2787fb4
Reviewed-on: https://chromium-review.googlesource.com/922878
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f618c9e5
|
2018-02-15T14:45:40
|
|
Vulkan: Add depth/stencil surfaces.
This change lets us create egl::Surfaces from a D24S8 config. This is
a bit hacky, because the spec only mandates 24 -or- 32 bit depth
support, but not both or either individually. Will need follow-up work
for proper EGL config setup.
A single depth buffer is allocated for the entire set of swapchain
images and is used with each. This also might be a problem if we're
rendering to multiple frames at the same time. We'll likely have to
revisit this in the future as well.
This adds a new RenderTargetVk to the SurfaceVk class which points to
the Depth/Stencil image. Since ImageViews must refer to either the
depth or stencil, but not both, we'll need to address this when we
get to implementing depth/stencil texture reads in shaders.
Bug: angleproject:2357
Change-Id: Ibed0eed7e1d0efb272758dbfc79fa2c5aa93997f
Reviewed-on: https://chromium-review.googlesource.com/919761
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b92f92a7
|
2018-02-15T19:14:59
|
|
Clean up dead insertion of unmangled symbols
Unmangled names of built-ins are not inserted to the symbol table in
a normal way, so the function to do that is not needed.
BUG=angleproject:2267
TEST=compile ANGLE
Change-Id: I68bae9a1f762ecc69ab31f04458a38c941b9d74c
Reviewed-on: https://chromium-review.googlesource.com/922202
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
b5db2b49
|
2018-02-12T15:31:56
|
|
Enable -Wimplicit-fallthrough for ANGLE.
Also teach MSVC that ANGLE_CRASH() can't return.
Also fix instances of the warning in build configurations where
UNREACHABLE() can return (e.g. release without dcheck_always_on
or debug).
If the UNREACHABLE()s are truly unreachable, this change has
no behavior change.
Bug: chromium:810767
Change-Id: I68f3587cf3e268c3ef634dce7ae3d70399859d0f
Reviewed-on: https://chromium-review.googlesource.com/914842
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
|
|
4edce336
|
2018-02-14T19:01:31
|
|
GLES1: macOS: Add rpath to libGLESv1_CM.dylib
This is to fix error messages when running GLES1 samples (and probably
other apps) from different directories than the same one as where
libGLESv1_CM.dylib is located.
BUG=angleproject:2306
Change-Id: I24ab33eb1bc805c1e64efab9a0acbfcf10480d94
Reviewed-on: https://chromium-review.googlesource.com/920926
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
|
|
0bc6024a
|
2018-02-09T22:03:49
|
|
Fix mingw compile.
Adjust a compile guard around posix_memalign.
Bug: angleproject:2163
Change-Id: I1d2dca24b8a2b8e549df411b1611e9fe0ac9082d
Reviewed-on: https://chromium-review.googlesource.com/920748
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
710aa5c7
|
2018-02-08T10:57:55
|
|
GLES1: Mat4 transform library
GLES1 has functions like glFrustum / glTranslatef which are baked 4x4
matrix operations. The purpose of this CL is to add those operations as
library functions in ANGLE, to make it convenient later on.
This is inspired by GLM and tested against GLM-generated numbers.
BUG=angleproject:2306
Change-Id: I3b428a115a935ee4f0d00585ad38745a38cc128c
Reviewed-on: https://chromium-review.googlesource.com/909578
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f3803d4f
|
2018-02-14T18:29:27
|
|
Fix standalone Linux build
Need to include gtest before X11 to avoid defines conflict
BUG=angleproject:2348
Change-Id: If758c53fb5ef010506f13165186110f00c099e07
Reviewed-on: https://chromium-review.googlesource.com/919687
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
809b13ed
|
2017-11-07T15:33:46
|
|
StateManagerGL: Use dirty bits for framebuffer bindings.
BUG=angleproject:2188
Change-Id: Icbe78f645b693a5b2ef555feffda0f618209e867
Reviewed-on: https://chromium-review.googlesource.com/757092
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
|
|
f4d693c0
|
2018-02-14T16:38:16
|
|
Vulkan: Cache clear color in ContextVk.
This makes the current clear color a bit more accessible than using
the current GL state clear color directly. It is stored in the Context
using the Vulkan clear color struct.
This also cleans up the attachment clear values in FramebufferVk and
paves the way for depth/stencil clear when support for depth/stencil
exists.
Bug: angleproject:2357
Change-Id: I0553e4447249325115625a44e9f4b1623c7cb0bc
Reviewed-on: https://chromium-review.googlesource.com/919550
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
57fbfd80
|
2018-02-14T12:45:34
|
|
Vulkan: Pass RendererVk to Allocate helpers.
Passing the Renderer pointer instead of the Context pointer makes
these methods a bit easier to work with from the "EGL" sections of
the code. This is a refactoring-only change to aid the Depth/Stencil
implementation.
Bug: angleproject:2357
Change-Id: Icbcc72a1daff4edd947a21672744498781cfc064
Reviewed-on: https://chromium-review.googlesource.com/919523
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
12eb3d74
|
2018-02-14T12:34:45
|
|
Vulkan: Implement basic Renderbuffer creation.
Bug: angleproject:2347
Change-Id: I56edfde2dbc020d5c792cc4f107aa4b9d6b71840
Reviewed-on: https://chromium-review.googlesource.com/905895
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ee305913
|
2018-02-14T13:50:38
|
|
AngleWrangle: Suppress newly introduced flakyness
Flakyness noticed there:
https://ci.chromium.org/buildbot/tryserver.chromium.angle/mac_angle_rel_ng/
https://ci.chromium.org/buildbot/chromium.gpu.fyi/Mac%20FYI%20Release%20%28Intel%29/
Introduced in:
https://chromium-review.googlesource.com/c/angle/angle/+/913108
Change-Id: I9cbd76c0472d023005ded9f957b304a4a769c619
Reviewed-on: https://chromium-review.googlesource.com/919547
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0aa1ffe3
|
2018-02-08T13:42:36
|
|
Vulkan: Autogen mandatory texture caps
* This commit includes a JS file to execute on the spec and
generate the JSON output of all the mandatory texture caps.
Bug: angleproject:2348
Change-Id: I57e969915bdd0e7104e00a73fd3743ff1ecf0a6d
Reviewed-on: https://chromium-review.googlesource.com/911615
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8170eab7
|
2017-09-21T13:59:04
|
|
D3D: Implement robust resource init for Surfaces.
BUG=angleproject:2107
BUG=angleproject:2317
Change-Id: I22260e1093dc6c09e4627c62a95ca4088c99e951
Reviewed-on: https://chromium-review.googlesource.com/678480
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
26403533
|
2018-02-14T14:19:13
|
|
Revert "Vulkan: Add glslang validator to build."
This reverts commit 560bfbcb7860267888db2e8933c187710f4e1512.
Reason for revert:
Appears to be causing a compile error on the ANGLE roll.
https://chromium-review.googlesource.com/c/chromium/src/+/914429
https://ci.chromium.org/p/chromium/builders/luci.chromium.try/linux_chromium_compile_dbg_ng/11598
/b/swarming/w/ir/cache/builder/linux/src/out/Debug/../../third_party/llvm-build/Release+Asserts/bin/ld.lld: error: undefined symbol: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::compare(unsigned long, unsigned long, char const*) const
>>> referenced by StandAlone.cpp
Original change's description:
> Vulkan: Add glslang validator to build.
>
> This binary will be used to generate internal shaders for
> clearing/blit/etc.
>
> Bug: angleproject:2339
> Change-Id: I13db7d7a4f5a0155798c9b9a6d2972dd69a680ef
> Reviewed-on: https://chromium-review.googlesource.com/904683
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
TBR=ynovikov@chromium.org,geofflang@chromium.org,jmadill@chromium.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: angleproject:2339
Change-Id: I7bcedf27831648d4c659294d12cab50f6ef9f33f
Reviewed-on: https://chromium-review.googlesource.com/919141
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9550c603
|
2018-02-13T14:47:05
|
|
Code refactoring for end2end tests.
This change:
1) uses the new style ANGLE_SKIP_TEST_IF to skip tests.
2) replaces compile-time definition for OSX to skip tests by run-time
function IsOSX() to skip tests, in order to align with ANGLE_SKIP_TEST_IF.
3) fixes a couple of typos.
BUG=angleproject:2005
Change-Id: I5af77d82257536b9eb79e26afa502f5b91ff6d31
Reviewed-on: https://chromium-review.googlesource.com/915861
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
2900c3be
|
2018-02-09T16:02:41
|
|
Vulkan: Add culling rasterization states tests and invert front face
Bug: angleproject:2352
Change-Id: I0ac83f3173d22a2ee8bc98d2fd7bfa1875d46b8c
Reviewed-on: https://chromium-review.googlesource.com/912358
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
d50537a7
|
2018-02-07T17:02:08
|
|
Vulkan: Texture caps map
We are generating the caps map using various bits from the results of
vkGetPhysicalDeviceFormatProperties. This contains all the information
required to fill out "renderable", "texturable" and "filterable".
Later we'll need to read from vkGetPhysicalDeviceImageFormatProperties as
well to get the sampleCounts.
The tests for now are not very meaningful since they use the same logic
as the caps code to build the expected results, however as soon as we'll
add the hard-coded list of mandatory texture caps, the test will be a good
validator that we are not breaking anything.
We only check the optimal set of flags since it is the most restrictive
set.
isTexturable = flags contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
isFilterable = flags contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
isRenderable = flags contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT OR
VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
Bug: angleproject:2348
Change-Id: I9da0712190d2678d7e377d6fcd4ca83d23eefd38
Reviewed-on: https://chromium-review.googlesource.com/908712
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
defe3937
|
2018-02-13T11:56:09
|
|
Store invariant varying names as ImmutableString
This gets rid of a few extra ImmutableString to std::string
conversions which makes the code clearer. There doesn't seem to be any
significant effect on performance.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I36ebbc8a4130ab8f9d6194feca83ec5dcbc95f78
Reviewed-on: https://chromium-review.googlesource.com/916141
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
bf107be4
|
2018-02-08T18:43:03
|
|
Don't search for nonexistent brackets in InitializeVariables
Array brackets are not included in ShaderVariable::name, so they
don't need to be pruned from there either when using the name to
look up the variable.
BUG=angleproject:2267
TEST=angle_unittests --gtest_filter=*InitOutput*Array*
Change-Id: I2b80a88c1d67f7f0dde12880bcfb35fb6d861cd0
Reviewed-on: https://chromium-review.googlesource.com/909109
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
d9ed9c1a
|
2018-02-12T14:50:10
|
|
Put Vulkan mock ICD json file in separate dir
Create "icd" subdir in angledata directory where the Vulkan mock ICD
json file is stored. This prevents potential loader conflicts with the
layer json files. This change means that when running with the mock
ICD a user will need to set their VK_ICD_FILENAMES env variable to now
point to "<build_out_dir>/angledata/icd/VkICD_mock_icd.json" and make
sure that the built mock icd library resides in the system's shared
object search path.
Bug: angleproject:2159
Change-Id: I802bb61a06a2f370bb1fa7a28d9c3548e5f94ecf
Reviewed-on: https://chromium-review.googlesource.com/914819
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
7b17fa18
|
2018-01-29T11:12:57
|
|
Add a constexpr constructor for TVariable
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I9b7e01801caa7235ac5e2d4212ea92e38c1f774d
Reviewed-on: https://chromium-review.googlesource.com/908752
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
34a06269
|
2018-02-12T16:30:43
|
|
Remove usage of ANGLE_FALLTHROUGH in EmulatePrecision.cpp
BUG=chromium:810767
Change-Id: Ic0dafc9038b14093fdb799fe382ba8275195c0cc
Reviewed-on: https://chromium-review.googlesource.com/914804
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
b79f0351
|
2018-02-12T13:13:53
|
|
Add test for scissored clear.
This simple test will be used to debug the Vulkan back-end's basic
scissored clear functionality.
Bug: angleproject:2356
Change-Id: I4bed68740ac57b3cc61f2dfe9164081b05bc31b3
Reviewed-on: https://chromium-review.googlesource.com/914230
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f0d3b901
|
2018-02-08T08:57:14
|
|
Enable Multisample Sources in copyImageInternal For D3D11
This enables the copyTexImage2D and copyTexSubImage2D to handle
multisampled source through through the blit path. We attempt to use a
cached texture as an intermediate to resolve to, or create a new texture
if there's a mismatch. The resolved texture is sent through
blit11::copyTexture as normal.
BUG:angleproject:2316
Change-Id: Ie3490b45b1a368300ee13fe5a0b35dc3920364ff
Reviewed-on: https://chromium-review.googlesource.com/911889
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
560bfbcb
|
2018-02-12T10:08:25
|
|
Vulkan: Add glslang validator to build.
This binary will be used to generate internal shaders for
clearing/blit/etc.
Bug: angleproject:2339
Change-Id: I13db7d7a4f5a0155798c9b9a6d2972dd69a680ef
Reviewed-on: https://chromium-review.googlesource.com/904683
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
4ed05da2
|
2018-02-02T14:26:15
|
|
ES31: Add link validation on geometry shader itself
This patch intends to support program link validation on geometry
shader itself. A link error should occur when linking a program with
a geometry shader that lacks input primitive or output primitive or
the declaration of 'max_vertices'.
This patch also adds the support of linking a program with geometry
shader in angle_end2end_tests.
BUG=angleproject:1941
TEST=angle_end2end_tests
dEQP-GLES31.functional.shaders.linkage.es31.geometry.varying.rules.unspecified_*
Change-Id: I25fb08514753102f5dd3ab86211c05d2ca4fd185
Reviewed-on: https://chromium-review.googlesource.com/898842
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
30414789
|
2018-02-12T15:16:02
|
|
Revert "GLES1: Link against angle_util_static instead of angle_util."
This reverts commit da91c9a6d86c9ecd21c6ac724cf9576d7ee310d2.
Reason for revert: Causes undefined behaviour in linker.
Original change's description:
> GLES1: Link against angle_util_static instead of angle_util.
>
> Attempting to work around missing .so on linux bots.
>
> BUG=angleproject:2303
>
> Change-Id: I7fabad308afd420987369b460c13c00781113605
> Reviewed-on: https://chromium-review.googlesource.com/909028
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
TBR=geofflang@chromium.org,lfy@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: angleproject:2303
Change-Id: I8d3f3d9bd618d9604cec0f02424f788cab25b3f9
Reviewed-on: https://chromium-review.googlesource.com/913550
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Lingfeng Yang <lfy@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
046fa0ef
|
2018-02-02T14:51:36
|
|
Vulkan: Prepend layer path to VK_LAYER_PATH
Directly setting this variable overwrites old value, as might be
unexpected. Instead the path can be prepended to it, so that old
value can still work.
This is needed in order to use additional debugging layers, like
the "api_dump" layer. See https://github.com/LunarG/VulkanTools
for more.
BUG=angleproject:2333
Change-Id: I5338a5b928ffa792cc9b6db5b69713320b5b0842
Reviewed-on: https://chromium-review.googlesource.com/898591
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2f23f35a
|
2018-02-11T22:11:37
|
|
Clean up end2end tests for Intel OSX.
BUG=angleproject:2205
BUG=angleproject:2041
BUG=angleproject:2155
Change-Id: I26bcbb63e147787cd342ec80a86d60cf230be4c9
Reviewed-on: https://chromium-review.googlesource.com/913108
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e5fe7aad
|
2018-01-29T12:06:11
|
|
Store builtin symbols as const pointers
To do this we need two types of symbol table levels: A level for
built-ins and a level for user-defined symbols. User-defined symbols
are non-const because function symbols created based on function
prototypes are changed when the function definition is parsed. On the
other hand, we want to make built-in symbols constexpr, so we should
only handle them through const pointers.
This also gets rid of extra empty precision stack levels. Only one
level is needed to store predefined precisions.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I9f14b24c2cfce272f22c16e7a8dfb653b849cbeb
Reviewed-on: https://chromium-review.googlesource.com/892879
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8f27b050
|
2018-02-08T16:18:37
|
|
Update Android build instructions
Build flags to enable Vulkan backend and some small updates.
BUG=angleproject:2314
Change-Id: Ia99cc5a4b326a4cab115652cb12b3fb61033eeee
Reviewed-on: https://chromium-review.googlesource.com/909723
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6108b766
|
2018-02-08T18:17:43
|
|
Remove angle::Library and its usages
No longer needed after https://chromium-review.googlesource.com/513519
Loading libGLESv2 interferes with API tracing tools
BUG=angleproject:1892,angleproject:2343
Change-Id: I2ccbc99377d75d107fd644301402c52466dded21
Reviewed-on: https://chromium-review.googlesource.com/910094
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
41b072b6
|
2018-02-09T10:01:32
|
|
Prepare for -Wimplicit-fallthrough in ANGLE.
Disable the warning for flex-generated output, which contains
lots of intentional fallthrough.
Fixes a bug where GL_SAMPLE_ALPHA_TO_ONE_EXT would fall through
to GL_COVERAGE_MODULATION_CHROMIUM and hence behave like that.
Fixes a bug in the D3D9 state management where invalidating
DIRTY_BIT_POLYGON_OFFSET would also invalidate the stencil bits.
One somewhat common incorrect pattern in ANGLE is nested switch
statements that look like so:
switch (a) {
case a1:
switch (b) {
case b1:
...
break;
}
case a2:
...
}
The assumption here seems to be that the breakk exits the outer
case (here a1), while it in fact only exits the inner switch,
so that we fall through to a2. In most places, I fixed this
by adding an explicit `break` after the inner switch.
This fixes a bug wher GL_PATH_JOIN_STYLE_CHROMIUM would fall through to
GL_PATH_MITER_LIMIT_CHROMIUM in validation (but since the join style
enum is always > 0, this happened to not have an effect in practice).
This also fixes 87 bugs in GetLoadFunctionsMap() where invalid
values would previously return an unrelated function map instead
of the empty load function map.
Bug: chromium:810767
Change-Id: Ib51388c73fbfc229160e2c10f8fb9364cc7c996c
Reviewed-on: https://chromium-review.googlesource.com/911529
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
61773640
|
2018-02-09T10:12:21
|
|
Skip PostSubBuffer calls that have zero size.
BUG=810411
Change-Id: I8770b69fe4ab8a8f9bacd141c89e7f83f67f15fb
Reviewed-on: https://chromium-review.googlesource.com/911589
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
f8be756e
|
2018-02-06T15:59:11
|
|
Vulkan: Implement blend states and add a simple test for it
Bug: angleproject:2346
Change-Id: I462a2cb29ceda5563f48b4a3cc1d0aa20f4a49fc
Reviewed-on: https://chromium-review.googlesource.com/907169
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3e520b6f
|
2018-02-08T16:26:30
|
|
OpenGL: Disable forwarding debug groups and messages all the way to the driver.
Because of virtualized contexts, the debug groups are not always popped
in the same order that they are pushed leading to inconsistant state and
sometimes GL_STACK_OVERFLOW errors from the driver.
BUG=angleproject:2354
Change-Id: I0a001002149184dd882c3b17e8451bcd694608ba
Reviewed-on: https://chromium-review.googlesource.com/909794
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
ed04619a
|
2018-02-08T14:57:14
|
|
Fix typo in bug link.
BUG=angleproject:2205
Change-Id: I7ff1c3d0bb380c73c07dad0a30a4a4a19c17e397
Reviewed-on: https://chromium-review.googlesource.com/909577
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
bb514004
|
2017-04-28T14:08:38
|
|
Request RGBA8 configs by default for gtest dEQP.
Previously, dEQP would just use the first config returned which was
RGBA4 which is not very representitive of what our users would request.
BUG=angleproject:2337
BUG=angleproject:1095
BUG=angleproject:2222
Change-Id: I5c9defc7ce1feaa49407557b88d9bb6b98571771
Reviewed-on: https://chromium-review.googlesource.com/490726
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
06b95582
|
2018-02-08T13:48:44
|
|
Re-supress VerifyMax*UniformVectors on Ozone Intel.
BUG=angleproject:2205
Change-Id: Icff414dc7a521205fd3e39af4652b0fdef1cb900
Reviewed-on: https://chromium-review.googlesource.com/909291
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
da91c9a6
|
2018-02-08T11:46:39
|
|
GLES1: Link against angle_util_static instead of angle_util.
Attempting to work around missing .so on linux bots.
BUG=angleproject:2303
Change-Id: I7fabad308afd420987369b460c13c00781113605
Reviewed-on: https://chromium-review.googlesource.com/909028
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
e051ea72
|
2018-02-08T12:04:06
|
|
Vulkan: Update .gitignore with repo change.
This was missing from a prior commit which moved the Vulkan DEPS.
Bug: angleproject:2339
Change-Id: I16c2918af9396b5b935993d08d8f2ff925f3cb01
Reviewed-on: https://chromium-review.googlesource.com/909228
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
bac02d76
|
2018-02-07T20:36:07
|
|
Vulkan: Fix data_deps on layers
Was broken by https://chromium-review.googlesource.com/900096
BUG=angleproject:2339
Change-Id: I3c28a38619d83e7dcbb2349565517feb1758976c
Reviewed-on: https://chromium-review.googlesource.com/907959
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
8e5ba8bb
|
2018-02-05T17:52:27
|
|
Clean up end2end tests for Intel Linux platform.
Removed tests can pass on Intel Linux Desktop (Intel KabyLake, Ubuntu 17.04)
with system default mesa and latest upstream mesa.
BUG=angleproject:2205
BUG=chromium:680631
Change-Id: Ie3f0f34b9708a7dab81f66d9ec83a469658deee7
Reviewed-on: https://chromium-review.googlesource.com/901382
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
5420cb2a
|
2018-01-24T10:09:22
|
|
Suppress Intel specific deqp test cases
Test deqp cases on Windows D3D and Linux on Intel HD 630.
Add failed or crashed test cases to expectation files.
BUG=801323
BUG=angleproject:2349
Change-Id: I495874f5e1841f6c7ce0f59224ed0da9465546ce
Reviewed-on: https://chromium-review.googlesource.com/900708
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0e65454d
|
2018-02-07T14:50:06
|
|
Vulkan: Fix circular dependency with resource updates.
The old implementation would try to keep recording draw commands to
the same framebuffer write operation even if the vertex array buffer
data changed. This would lead to a broken dependency graph. Fix this
by forcing any current render operations to create a new node in this
case, giving a correct command graph.
Old design:
- render (creates a CommandBufferNode A)
- update buffer (creates a CommandBufferNode B which happens after A)
- render (to CommandBuffer A, and gives a circular dependency with B)
New design
- render (CommandBufferNode A)
- update buffer (CommandBufferNode B, happens after A)
- render (CommandBufferNode C, happens after B)
This also renames some methods to try to clarify them.
Bug: angleproject:2350
Change-Id: I6559bed4ed3f58f68771662422c5bef6a505282b
Reviewed-on: https://chromium-review.googlesource.com/907416
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|