Граф коммитов

8984 Коммитов

Автор SHA1 Сообщение Дата
Tobin Ehlis cc04663019 Use chromium mirror for jsoncpp
Chromium has a jsoncpp mirror that matches github and has a ninja build
config so use that instead of Android mirror.

Bug: angleproject:2794
Change-Id: I48423818817f439f3a43f5edee557deae24bf028
Reviewed-on: https://chromium-review.googlesource.com/1203940
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
2018-09-05 02:56:50 +00:00
Jamie Madill 3d61ac27ae Vulkan: More micro-optimizations.
Inlining more methods into headers.

In total the patch series improves performance by about 60-70% in the
Vulkan draw call overhead test.

Bug: angleproject:2786
Change-Id: I70913ac6b3d5836c17c13e249950987df362f203
Reviewed-on: https://chromium-review.googlesource.com/1194883
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
2018-09-04 15:48:44 +00:00
Shahbaz Youssefi 9137adeafb Add support for EGL_ANDROID_blob_cache
The functionality of MemoryProgramCache is divided up in two.  BlobCache
is now a generic binary cache, which interfaces with the callbacks from
EGL_ANDROID_blob_cache.  MemoryProgramCache handles program
[de]serialization and interacts with BlobCache.

Bug: angleproject:2516
Change-Id: Ie4328a2e56a26338e033d84f4e53a1103411937d
Reviewed-on: https://chromium-review.googlesource.com/1194285
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2018-09-04 15:21:20 +00:00
Xinghua Cao 913ff54db0 ES31: support compute shader uniform buffer on D3D backend
BUG=angleproject:2759
TEST=angle_end2end_tests.ComputeShaderTest.UniformBuffer/ES3_1_D3D11

Change-Id: I92326c3a84f13b364aed0daf567b68f8a411ed2b
Reviewed-on: https://chromium-review.googlesource.com/1164843
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
2018-09-04 14:04:52 +00:00
Jamie Madill 3e29cf3182 Vulkan: Fix redefining TexStorage after TexImage.
This can be easily implemented via a release call.

Bug: angleproject:2651
Change-Id: I0adb3ed385284c6342716cd7c347de9966a81bab
Reviewed-on: https://chromium-review.googlesource.com/1200368
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2018-09-03 21:53:12 +00:00
Jamie Madill a792193e17 Vulkan: Enable StateChangeTest.DisablingBufferedVertexAttribute.
This was likely fixed with default vertex attribute support.

Bug: angleproject:2650
Change-Id: Ibbc19013ed8227c6fe32ae186b0fa88e5c837589
Reviewed-on: https://chromium-review.googlesource.com/1200369
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2018-09-03 19:16:56 +00:00
Jamie Madill 2b858c2f96 Vulkan: More micro-optimizations to setupDraw.
Still a hotspot but much improved.

Bug: angleproject:2786
Change-Id: Ie68ff314e6c952f281b48f6d9af37b5dcd194d6a
Reviewed-on: https://chromium-review.googlesource.com/1194882
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
2018-09-03 19:12:15 +00:00
Jamie Madill a153eddb74 Vulkan: Enable UniformTest.Sampler.
This test was fixed quite some time ago.

Bug: angleproject:2462
Change-Id: I49714dd08a5e477d72337147f83b80945a8486ee
Reviewed-on: https://chromium-review.googlesource.com/1200370
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2018-09-03 18:59:35 +00:00
Jamie Madill fda46aa50e Vulkan: Enable GLSLTest.ScopedStructsOrderBug.
This was fixed upstream in glslang.

Bug: None
Change-Id: I21751dba101fe39f94c91de6e73853ee9ad8c8f2
Reviewed-on: https://chromium-review.googlesource.com/1200366
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2018-09-03 18:09:53 +00:00
Jamie Madill bf4dc15637 Vulkan: Enable BindUniformLocationTest.Compositor.
This was probably fixed some time ago. Possibly due to matrix uniform
support.

Bug: angleproject:2642
Change-Id: Ic4b9524d82e6770dcba117f5c155c413074ec172
Reviewed-on: https://chromium-review.googlesource.com/1200365
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2018-09-03 17:56:51 +00:00
Jamie Madill 44558e374a Vulkan: Enable TextureLimitsTest.
Seems to pass possibly because of a prior bug fix.

Bug: angleproject:2654
Change-Id: I53e67bfa28e5429c51720fa71d9168d2f1cf1ece
Reviewed-on: https://chromium-review.googlesource.com/1199928
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2018-09-03 17:51:37 +00:00
Jamie Madill 73d15ba430 Vulkan: Enable a dEQP point raster test.
This passes on the bots. It fails on 5x but passes on Pixel 2.

Bug: angleproject:2599
Change-Id: Ib71dcaf6adff104d7f70d1d6fe800e78c6778e66
Reviewed-on: https://chromium-review.googlesource.com/1199725
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2018-09-03 17:42:06 +00:00
Jamie Madill d1249de049 Vulkan: Optimize ContextVk::setupDraw.
This improves performance significantly in the Vulkan CPU overhead
test.

Bug: angleproject:2786
Change-Id: I911bc66a6b2d11dd3848ffa90927b314aeadfc24
Reviewed-on: https://chromium-review.googlesource.com/1194301
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
2018-09-03 17:28:14 +00:00
Jamie Madill 30b5d84ce2 Vulkan: Fix line width caps.
We would need to enable the wide lines feature to support non-unit line
widths. For now just disable the caps.

Bug: angleproject:2598
Bug: angleproject:2706
Change-Id: I0dd228fc2c357bdd9442c3d841be769987a53f72
Reviewed-on: https://chromium-review.googlesource.com/1127303
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2018-09-03 17:15:26 +00:00
Jamie Madill 0a17e48491 Vulkan: Fix sync of initially disabled attributes.
If an attribute was never enabled or disabled the default state was not
properly synced in our implementation. This wasn't caught by currently
enabled tests. Those tests are now enabled in VertexAttributeTest.

Bug: angleproject:2800
Change-Id: I97c063651911379e16de4ee557d9840782114c54
Reviewed-on: https://chromium-review.googlesource.com/1199724
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2018-09-03 16:35:44 +00:00
Qin Jiajia 9808d38c03 Fix that image texture works incorrectly when loading from program
binary

This bug is introduced when we implement image texture robust
initialization, where we forgot to update active image units mask in program
cache.

Bug: angleproject:2766
Change-Id: I01de02803173f2cf5b7b9ff740175a4d7cbee4ba
Reviewed-on: https://chromium-review.googlesource.com/1198683
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
2018-09-03 02:01:26 +00:00
Jamie Madill ef3b9b4634 Vulkan: Add ContextVk dirty bits.
These dirty bits mostly track state needed for the command buffer. It
should speed up ContextVk::setupDraw by skipping unset dirty bits
instead of using boolean checks.

Improves perf slightly on the Vulkan null draw call test.

Bug: angleproject:2786
Change-Id: I071ce558c522732a17ad101d097ee4d10740abf1
Reviewed-on: https://chromium-review.googlesource.com/1194300
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
2018-09-02 18:02:03 +00:00
Jamie Madill 37386b0205 Vulkan: Cache object pointers in ContextVk.
Small performance optimization.

Bug: angleproject:2786
Change-Id: Ib01c1762d438ffb72ec25bf05135a7d3271d6aee
Reviewed-on: https://chromium-review.googlesource.com/1188954
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
2018-09-02 16:00:58 +00:00
Jamie Madill 88fc6da3e2 Vulkan: Mega-refactor to VertexArrayVk.
This moves a lot of the code in VertexArrayVk into ContextVk. Having
the code in a centralized place makes the code a bit more organized
since the Context is reponsible for binding state to the command
buffers. It also makes it easier to use dirty bits to track the command
buffer state.

Bug: angleproject:2786
Change-Id: I5cefbb14028e8f3fe651f26e997ca88f8f1c7628
Reviewed-on: https://chromium-review.googlesource.com/1188953
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2018-08-31 21:31:12 +00:00
Jamie Madill 253038d8d1 Vulkan: Refactor VertexArrayVk::streamIndexData.
This enables us to use the same code for streaming client side index
arrays and for translating buffers.

Also includes a few more code cleanups.

Bug: angleproject:2786
Change-Id: Ic615d87cb50fd0acd8ab6b63ed334da4b1c40eff
Reviewed-on: https://chromium-review.googlesource.com/1188952
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
2018-08-31 18:17:03 +00:00
Yuly Novikov 2eb54074af Fix EGLImage pixel format validation
This fixes the scenario when EGLImage source and target have different types.
For example, a texture is created with unsigned format using glTexImage2D,
it is used as a source of EGLImage with eglCreateImageKHR,
and then the EGLImage is used to create a renderbuffer target with
glEGLImageTargetRenderbufferStorageOES.

OES_EGL_image doesn't specify what should happen in this case,
but GL implementations (Nexus 5X) seem to allow using this renderbuffer in
glFramebufferRenderbuffer and the resulting framebuffer is complete.
Thus, in this case, instead of checking whether the renderbuffer format
can be used in glFramebufferRenderbuffer, we need to check whether the
original texture can be used in glFramebufferTexture2D.
Similarly in reverse direction.

Also, for the case of source renderbuffer and target texture,
presume that glEGLImageTargetTexture2DOES will succeed regardless of
renderbuffer format.

1. Add isRenderable and isTexturable checks to egl::Image class,
   and perform different checks depending on source type.
2. Add isRenderable check to FramebufferAttachment and delegate EGLImage
   attachments check to egl::Image.
3. Use these checks in validation of EGLImageTargetTexture2D,
   EGLImageTargetRenderbufferStorage and when checking attachment completeness

Bug: angleproject:2567

Change-Id: I8e9f4a2930a4075a4d8464f62582c6825270187e
Reviewed-on: https://chromium-review.googlesource.com/1192585
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2018-08-31 18:07:27 +00:00
Ian Elliott abcb2b3b36 Add stubs for A4A opt-in library.
Bug: angleproject:2794
Change-Id: I9ba8abf5fdac4a1bae24bc78ece62337d24e903b
Reviewed-on: https://chromium-review.googlesource.com/1196043
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2018-08-31 17:17:14 +00:00
Yunchao He 97dbf43611 Add specification for ANGLE_texture_multisample.
The patch adds the specification for the ANGLE_texture_multisample
extension, which enables the functionality of multisample texture.

This extension is also the basis to expose multisample texture to
web via a webgl extension.

BUG=angleproject:2275
BUG=angleproject:2775

Change-Id: I21771ac1d7d3e2fad8bf5d5e0a5c5e082c8fe7a2
Reviewed-on: https://chromium-review.googlesource.com/859917
Commit-Queue: Yunchao He <yunchao.he@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2018-08-31 17:15:44 +00:00
Tobin Ehlis 3a181e3e53 Roll VK deps forward as of 8/31/2018
Roll Vulkan ANGLE dependencies forward as of 8/31/2018. This grabs some
new validation checks including point-related checks that may be
interesting for bug 2727.

One of these checks, related to PointSize, is firing so I've added some
code in the VK debug callback to suppress those error messages for now
and filed a separate bug (2796) to fix that issue in the renderer.

Had to overhaul the json gen script as validation changed how these are
generated. They now use a base template with some strings replaced to
account for platform and Vulkan header version. Offloaded all of that
work to our existing json generate script which was previously more of
an intelligent copy but now had some further intelligence for
transforming from input template into final json files.

Had to also roll glslang forward to meet shader validation dependency.

Bug: angleproject:2727
Change-Id: I929619cd258cddd6bc9c6743600e072c46736f5c
Reviewed-on: https://chromium-review.googlesource.com/1194617
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
2018-08-31 17:06:59 +00:00
Geoff Lang 89e8297930 Vulkan: Allow gaps in vertex attributes by packing them.
Work around restrictions with setting null vertex buffers on command buffers
by binding ranges of non-null buffers.

Enable VertexAttributeTest on ES2/Vulkan

BUG=angleproject:2792
BUG=angleproject:2797

Change-Id: Ief9db1e60c8c9045a4101abe859302d529decbcb
Reviewed-on: https://chromium-review.googlesource.com/1194282
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2018-08-31 16:37:14 +00:00
Geoff Lang b02fc662fa Lock around all EGL and GL calls with a global mutex.
BUG=angleproject:2464

Change-Id: I0231cc84777272f9cf26298c6a137f1ad3fd51d6
Reviewed-on: https://chromium-review.googlesource.com/1183441
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2018-08-31 16:11:58 +00:00
Jamie Madill 86792f442f Vulkan: Optimize ContextVk::updateDefaultAttributes.
This function was getting called every time because the dirty bit mask
included dirty bits for unused program attributes. Fix this by making
sure we never have dirty bits set for inactive attributes.

Bug: angleproject:2786
Change-Id: Icf72dadd8a853d3a448abb303119b7b71f6c8193
Reviewed-on: https://chromium-review.googlesource.com/1188951
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2018-08-31 15:21:38 +00:00
Jamie Madill a064c27c74 Vulkan: Refactor VertexArrayVk::streamVertexData.
Merges duplicated code in convertVertexBuffer with streamVertexData.
Refactoring change only.

Bug: angleproject:2786
Change-Id: I32baaad42d74918cfb17f04970d3c7e9b88362e7
Reviewed-on: https://chromium-review.googlesource.com/1188950
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2018-08-31 15:14:51 +00:00
Jamie Madill 70a4ef103e Vulkan: Fix depth range scaling.
We were using a formula that didn't work for some of the clipping
tests.

Bug: angleproject:2601
Change-Id: I60d965c2701656ad590c3b250c2cc777fb432421
Reviewed-on: https://chromium-review.googlesource.com/1194919
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2018-08-31 15:06:25 +00:00
Geoff Lang 161a89b1be Skip DrawElementsIndexOutOfRangeWithStaticDraw on NVIDIA D3D11 FL9.3.
This test started consistantly failing after changing the shard count on
this test suite.

BUG=angleproject:2799

Change-Id: I75769b08f9d4dda1d436facc34a8292193b4538e
Reviewed-on: https://chromium-review.googlesource.com/1199723
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2018-08-31 14:44:42 +00:00
Olli Etuaho 064458a8f8 Remove separate ANGLE_texture_multisample_array
We can just expose OES_texture_storage_multisample_2d_array instead.
The compiler was already changed to accept
OES_texture_storage_multisample_2d_array, and now the change is made
also at the API level.

Out-of-bounds access guarantees provided by ANGLE were the only big
difference between the ANGLE spec and the OES spec, so it's simpler
to just expose the native extension. Safe out-of-bounds accesses can
be guaranteed without having them in the extension spec.

This also adds missing texStorage3DMultisample entry point to the proc
table, which will enable running dEQP tests.

BUG=angleproject:2775
TEST=angle_end2end_tests

Change-Id: Idf376ee877a3374a33de177df023f0531ec8f01d
Reviewed-on: https://chromium-review.googlesource.com/1196722
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
2018-08-31 14:04:58 +00:00
Olli Etuaho fd1621076a Support multisample arrays as framebuffer attachments
This contains tests for framebuffer completeness when layers of
multisample array textures are attached.

Simple clearing of a layer of a multisample color texture array and
blitting the result to a non-multisampled texture is also covered.

BUG=angleproject:2775
TEST=angle_end2end_tests

Change-Id: Idf383cab69587dbd8157ab9a2b7c47e5a90b3cf7
Reviewed-on: https://chromium-review.googlesource.com/1190184
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
2018-08-31 07:29:13 +00:00
Tobin Ehlis 1bf963b629 Clean up PlatformMethods attribute enum
Centralize definition of EGL_PLATFORM_ANGLE_PLATFORM_METHODS_ANGLEX
in Platform.h.

Bug: angleproject:2528
Change-Id: Id2b022c4ea08d2e98cbd6c3b248b58d096c20dfb
Reviewed-on: https://chromium-review.googlesource.com/1144265
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2018-08-30 22:20:00 +00:00
Frank Henigman 44b2c0b1d3 Avoid rebase_path() in BUILD.gn.
Adjust source paths so we don't need to use rebase_path() on all of them.

BUG=angleproject:1569

Change-Id: I687dbb9378b1f054eb5664320c662fe4c882a82f
Reviewed-on: https://chromium-review.googlesource.com/1194619
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2018-08-30 18:45:22 +00:00
Frank Henigman e1037e9be3 Avoid rebase_path() in tests/BUILD.gn.
Adjust source paths so we don't need to use rebase_path() on all of them.

BUG=angleproject:1569

Change-Id: I1af7678dd8961405446fec49731eba5294bcb586
Reviewed-on: https://chromium-review.googlesource.com/1196046
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2018-08-30 18:12:34 +00:00
Tobin Ehlis 5fdc38cf17 Add jsoncpp as third_party dep
Adding jsoncpp in third_party/jsoncpp dir. This is a C++ library to
parse json files.

Bug: angleproject:2785
Change-Id: I12f467ef87c8d4801815c79f211fc57a3a9f4b49
Reviewed-on: https://chromium-review.googlesource.com/1194840
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
2018-08-30 16:17:30 +00:00
Olli Etuaho 0c5a9e226b Implement TexStorage3DMultisample on the GL backend
BUG=angleproject:2775
TEST=angle_end2end_tests

Change-Id: Ic980d86cd787bcf29f622e68b0c38b0eb6ca5688
Reviewed-on: https://chromium-review.googlesource.com/1190182
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
2018-08-30 16:05:10 +00:00
Olli Etuaho 80aa5592d9 Clean up TextureD3D_2DMultisample
This removes some duplicate unreachable calls from TextureD3D_External
and TextureD3D_2DMultisample. There will be further use for this once
TextureD3D_2DMultisampleArray is implemented.

This also cleans up some no-ops from TextureD3D_2DMultisample and sets
it correctly as immutable.

BUG=angleproject:2775
TEST=angle_end2end_tests

Change-Id: Ia253a1ed6f418a24bb0c4a4e61654b1c061dba97
Reviewed-on: https://chromium-review.googlesource.com/1193950
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
2018-08-30 14:41:48 +00:00
Olli Etuaho f0d0408a35 Use OES_texture_storage_multisample_2d_array
There's an OES extension for multisample texture arrays,
OES_texture_storage_multisample_2d_array. Change references from
ANGLE_texture_multisample_array to the native extension in the shader
compiler.

ANGLE still needs to have robust behavior for out-of-range texel
fetches that's not found in the original extension, but this does not
need to be spelled out in the extension spec.

BUG=angleproject:2775
TEST=angle_unittests

Change-Id: Ie80ae767cc92ccaf7389af28789f45547f86978f
Reviewed-on: https://chromium-review.googlesource.com/1193266
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2018-08-30 09:44:05 +00:00
Frank Henigman ddc41208c1 Rename .gypi -> .gni.
Rename and reformat all gyp files.  They were previously converted to
gn but not renamed to preserve continuity in git.  This rename completes
the removal of all traces of gyp.

BUG=angleproject:1569

Change-Id: I50123105d8881583184ffc564bed65d9fbe4d41c
Reviewed-on: https://chromium-review.googlesource.com/1187885
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2018-08-29 21:00:11 +00:00
Ian Elliott ae6c2b887c Fixes found while turning on A4A opt-in/out code.
Bug: angleproject:2789
Change-Id: If9d83dd94d392103ed5200ba471d47dc907cf3ca
Reviewed-on: https://chromium-review.googlesource.com/1194612
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
2018-08-29 20:21:50 +00:00
Frank Henigman a7f97a27eb Gyp is dead. Long live gn.
Remove the gyp build.  The .gypi files were not renamed so that diff and
rebase would work on this change.  They will be renamed in a separate
change.

BUG=angleproject:1569

Change-Id: If8a217027633293664b820104f91a4ca5889b24e
Reviewed-on: https://chromium-review.googlesource.com/1187380
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
2018-08-29 19:26:38 +00:00
Jamie Madill 4c3108319e Vulkan: Return VkDeviceSize from DynamicBuffer.
This obviates many static_casts. More closely represents what Vulkan
is doing. One cast remains where we are using uint32_t for dynamic
offsets with uniform buffers.

Bug: angleproject:2786
Change-Id: I043ebb5d965f46ee6ebbfcb91d75a58508cacfe3
Reviewed-on: https://chromium-review.googlesource.com/1188949
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2018-08-29 18:24:03 +00:00
Qin Jiajia 3e217f6504 Rename UniformHLSL to ResourcesHLSL
In future, atomic counter and shader storage block will be added into UniformHLSL since
they all need the UAV register. So this change renames UniformHLSL to ResourcesHLSL.

Bug: angleproject:1951
Change-Id: Ie9eda090763fbb516468c138e65e111eb12fe514
Reviewed-on: https://chromium-review.googlesource.com/1193322
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2018-08-29 03:25:32 +00:00
Olli Etuaho d310a4342c Add validation and negative tests for multisample arrays
This adds errors for binding and allocating multisample array
textures. New tests in TextureMultisampleTest.cpp check that the
errors are generated as specified.

Tests for querying supported sample counts are also improved and
extended for multisample array textures.

BUG=angleproject:2775
TEST=angle_end2end_tests

Change-Id: I6a0fe7ae04bb3d0072f6cbe09026b05e2bc47325
Reviewed-on: https://chromium-review.googlesource.com/1188576
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2018-08-28 20:48:02 +00:00
Jamie Madill 1e1b731a98 Vulkan: Clean up point coord translation.
Use - 0.5 instead of + -0.5 in FlipGLPointCoord.

Bug: angleproject:2673
Change-Id: I819dcc45f9098ea64085eb71af8920fe99b67c62
Reviewed-on: https://chromium-review.googlesource.com/1194454
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2018-08-28 19:04:40 +00:00
Qin Jiajia 47f6dd0d4a Implement robust initialization for image texture
This change fixes a bug that the image texture initialization time is not
correct. It happens when we use compute shader to write data to an
uninitialized texture, then use readPixels to read the result which
results that texture initialization falls behind image store and
covers the real result.

Bug: angleproject:2766

Change-Id: I4e986972096857afc975c40dfa4d559a2f31194c
Reviewed-on: https://chromium-review.googlesource.com/1170569
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2018-08-28 07:50:50 +00:00
Jamie Madill 4e877ad3ed Suppress TransformFeedbackNegativeAPI test on Mac AMD.
Seems to be failing on Mac Pro FYI Release (AMD). Unclear exactly the
scope of the problem so suppress it on all Mac AMD for now.

Bug: angleproject:2747
Change-Id: I7a5da00b9056839f3ed01fc4c83fa7993019bda7
Reviewed-on: https://chromium-review.googlesource.com/1192550
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2018-08-28 04:53:54 +00:00
Xinghua Cao 6dfdca8368 ES31: support compute shader sampling on D3D backend
BUG=angleproject:2756
TEST=angle_end2end_tests.ComputeShaderTest.SamplingAndImageReadWrite/ES3_1_D3D11

Change-Id: I8f112227c5703fcaafffbd2262e6a039f869c483
Reviewed-on: https://chromium-review.googlesource.com/1161754
Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2018-08-28 04:22:15 +00:00
Jamie Madill 24507bc7fd Add Windows MSVC x64 builders to CQ.
These are now up and running. This will prevent a common source of
compile regression.

Bug: angleproject:2740
Change-Id: I0c66a61338c831e21cab0b30cfa9334da54c4ca5
Reviewed-on: https://chromium-review.googlesource.com/1192543
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2018-08-28 01:01:43 +00:00