NVIDIA Shield do not implement Vulkan, which is used to populate
vendor IDs in SystemInfo. The vendorIDs are used to check IsNVIDIA().
This CL adds a workaround so IsNVIDIA() returns true for NVIDIA
Shield.
Bug: angleproject:3541
Change-Id: Ib36dd376207163acfc8d3a0e341f07a7d6aa3122
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1663080
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Implement EGL_ANGLE_image_d3d11_texture extension. Images created with
this extension might not be renderable based on bind flags and resource
usage of the client provided texture in which case attaching them to a
framebuffer won't succeed.
The intended use case is to bind the front and back buffers of a swap
chain to GL textures that can be used for rendering in the case of the
back buffer and as a shader input for the front buffer.
Bug: chromium:939655
Change-Id: Ic3328e831880292217b88be84740740df6031fa6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1646732
Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
A function was renamed which broke the platformMethods table strings.
This CL reverts the rename (originally from crrev/c/1660952)
Bug: angleproject:1621
Change-Id: I8121a4956ba1d3e3c5036f72f6f1fdf5509dc491
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1664792
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
It was only used in exactly one instance in VertexArray. Instead we can
cache a bool and avoid needing to pass it around.
Will make signaling dirty easier in the Vulkan back-end.
Bug: angleproject:3539
Change-Id: Ia570aec051a24a5280df49edc4345c54022b46ec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1663838
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
The wrapper should be a no-op on builds with assertions disabled.
The wrapper should be useful on ASAN and MSAN builds.
gn args out/release-asan --args="is_debug=false is_asan=true"
ninja -C out/release-asan angle_end2end_tests ^
out\release-asan\angle_end2end_tests ^
--gtest_filter=Texture2DArrayCopy.SnormFormats* --gtest_catch_exceptions=0 ^
--gtest_repeat=-1
Output when the fix payload of angleproject:2865 is removed:
...
Repeating all tests (iteration 1) . . .
Note: Google Test filter = Texture2DArrayCopy.SnormFormats*
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from Texture2DArrayCopy
[ RUN ] Texture2DArrayCopy.SnormFormats/ES3_D3D11
=================================================================
==500==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x12b2c4777040 at pc 0x7fff9602216b bp 0x00c0eaafd090 sp 0x00c0eaafd0d8
READ of size 1 at 0x12b2c4777040 thread T0
#0 0x7fff9602216a in angle::R8G8B8A8::readColor c:\Users\kkinnunen\angle\src\image_util\imageformats.cpp:333
#1 0x7fff9618dbf0 in rx::CopyImageCHROMIUM c:\Users\kkinnunen\angle\src\libANGLE\renderer\renderer_utils.cpp:377
#2 0x7fff96186bb2 in rx::Image11::CopyImage c:\Users\kkinnunen\angle\src\libANGLE\renderer\d3d\d3d11\Image11.cpp:113
#3 0x7fff95e90410 in rx::Renderer11::copyImage c:\Users\kkinnunen\angle\src\libANGLE\renderer\d3d\d3d11\Renderer11.cpp:3009
#4 0x7fff9617b447 in rx::TextureD3D_2DArray::copyTexture c:\Users\kkinnunen\angle\src\libANGLE\renderer\d3d\TextureD3D.cpp:3293
#5 0x7fff95afd7e1 in gl::Texture::copyTexture c:\Users\kkinnunen\angle\src\libANGLE\Texture.cpp:1196
#6 0x7fff95977f19 in gl::Context::copyTexture3D c:\Users\kkinnunen\angle\src\libANGLE\Context.cpp:4347
#7 0x7fff9568b04a in gl::CopyTexture3DANGLE c:\Users\kkinnunen\angle\src\libGLESv2\entry_points_gles_ext_autogen.cpp:57
#8 0x7ff7d1d8fc97 in angle::CopyTexture3DTest::testCopy c:\Users\kkinnunen\angle\src\tests\gl_tests\CopyTexture3DTest.cpp:90
#9 0x7ff7d1dadd10 in angle::Texture2DArrayCopy_SnormFormats_Test::TestBody c:\Users\kkinnunen\angle\src\tests\gl_tests\CopyTexture3DTest.cpp:1272
#10 0x7ff7d2c22891 in testing::Test::Run c:\Users\kkinnunen\angle\third_party\googletest\src\googletest\src\gtest.cc:2522
#11 0x7ff7d2c243c0 in testing::TestInfo::Run c:\Users\kkinnunen\angle\third_party\googletest\src\googletest\src\gtest.cc:2698
#12 0x7ff7d2c253e8 in testing::TestSuite::Run c:\Users\kkinnunen\angle\third_party\googletest\src\googletest\src\gtest.cc:2828
#13 0x7ff7d2c3f33e in testing::internal::UnitTestImpl::RunAllTests c:\Users\kkinnunen\angle\third_party\googletest\src\googletest\src\gtest.cc:5285
#14 0x7ff7d2c3e72d in testing::UnitTest::Run c:\Users\kkinnunen\angle\third_party\googletest\src\googletest\src\gtest.cc:4873
#15 0x7ff7d2bf10a2 in main c:\Users\kkinnunen\angle\src\tests\angle_end2end_tests_main.cpp:15
#16 0x7ff7d2d27897 in __scrt_common_main_seh f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:283
#17 0x7ff801ec7973 in BaseThreadInitThunk+0x13 (C:\WINDOWS\System32\KERNEL32.DLL+0x180017973)
#18 0x7ff804cea270 in RtlUserThreadStart+0x20 (C:\WINDOWS\SYSTEM32\ntdll.dll+0x18006a270)
0x12b2c4777040 is located 0 bytes to the right of 256-byte region [0x12b2c4776f40,0x12b2c4777040)
allocated by thread T0 here:
#0 0x7ff7d2c6d574 in malloc C:\b\s\w\ir\k\src\third_party\llvm\projects\compiler-rt\lib\asan\asan_malloc_win.cc:68
#1 0x7fff95af47b2 in angle::MemoryBuffer::resize c:\Users\kkinnunen\angle\src\common\MemoryBuffer.cpp:40
#2 0x7fff9648c9a6 in rx::MappedSubresourceVerifier11::wrap c:\Users\kkinnunen\angle\src\libANGLE\renderer\d3d\d3d11\MappedSubresourceVerifier11.cpp:51
#3 0x7fff961864b5 in rx::Image11::map c:\Users\kkinnunen\angle\src\libANGLE\renderer\d3d\d3d11\Image11.cpp:648
#4 0x7fff9618676c in rx::Image11::CopyImage c:\Users\kkinnunen\angle\src\libANGLE\renderer\d3d\d3d11\Image11.cpp:93
#5 0x7fff95e90410 in rx::Renderer11::copyImage c:\Users\kkinnunen\angle\src\libANGLE\renderer\d3d\d3d11\Renderer11.cpp:3009
#6 0x7fff9617b447 in rx::TextureD3D_2DArray::copyTexture c:\Users\kkinnunen\angle\src\libANGLE\renderer\d3d\TextureD3D.cpp:3293
#7 0x7fff95afd7e1 in gl::Texture::copyTexture c:\Users\kkinnunen\angle\src\libANGLE\Texture.cpp:1196
#8 0x7fff95977f19 in gl::Context::copyTexture3D c:\Users\kkinnunen\angle\src\libANGLE\Context.cpp:4347
#9 0x7fff9568b04a in gl::CopyTexture3DANGLE c:\Users\kkinnunen\angle\src\libGLESv2\entry_points_gles_ext_autogen.cpp:57
#10 0x7ff7d1d8fc97 in angle::CopyTexture3DTest::testCopy c:\Users\kkinnunen\angle\src\tests\gl_tests\CopyTexture3DTest.cpp:90
#11 0x7ff7d1dadd10 in angle::Texture2DArrayCopy_SnormFormats_Test::TestBody c:\Users\kkinnunen\angle\src\tests\gl_tests\CopyTexture3DTest.cpp:1272
#12 0x7ff7d2c22891 in testing::Test::Run c:\Users\kkinnunen\angle\third_party\googletest\src\googletest\src\gtest.cc:2522
#13 0x7ff7d2c243c0 in testing::TestInfo::Run c:\Users\kkinnunen\angle\third_party\googletest\src\googletest\src\gtest.cc:2698
#14 0x7ff7d2c253e8 in testing::TestSuite::Run c:\Users\kkinnunen\angle\third_party\googletest\src\googletest\src\gtest.cc:2828
#15 0x7ff7d2c3f33e in testing::internal::UnitTestImpl::RunAllTests c:\Users\kkinnunen\angle\third_party\googletest\src\googletest\src\gtest.cc:5285
#16 0x7ff7d2c3e72d in testing::UnitTest::Run c:\Users\kkinnunen\angle\third_party\googletest\src\googletest\src\gtest.cc:4873
#17 0x7ff7d2bf10a2 in main c:\Users\kkinnunen\angle\src\tests\angle_end2end_tests_main.cpp:15
#18 0x7ff7d2d27897 in __scrt_common_main_seh f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:283
#19 0x7ff801ec7973 in BaseThreadInitThunk+0x13 (C:\WINDOWS\System32\KERNEL32.DLL+0x180017973)
#20 0x7ff804cea270 in RtlUserThreadStart+0x20 (C:\WINDOWS\SYSTEM32\ntdll.dll+0x18006a270)
Bug: angleproject:2865
Change-Id: I6c8fc203d075014ba8ce31c728982eed73812d04
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1640212
Commit-Queue: Kimmo Kinnunen FI <kkinnunen@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
When mapping buffer memory, a flush is performed if the buffer has
pending operations followed by a finishToSerial to make sure the buffer
is no longer in use by the GPU.
This also implements GLES 3.0 buffer mapping flags:
GL_MAP_INVALIDATE_RANGE_BIT: No-op. Vulkan's vkMapMemory doesn't have
such a feature.
GL_MAP_INVALIDATE_BUFFER_BIT: Same
GL_MAP_FLUSH_EXPLICIT_BIT: Vulkan automatically flushes host memory
writes on vkQueueSubmit, so this is no-op as well.
GL_MAP_UNSYNCHRONIZED_BIT: The flush+finishToSerial call is skipped in
this case.
Bug: angleproject:3213
Change-Id: I6bdb460dffbb57170649f4c9678afbfae331926c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1661252
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Instead having the proc table be generated from proc_table_data.json
which needed to be manually updated with changes, the proc table is now
generated from data in gl.xml and egl.xml
Bug: angleproject:3533
Change-Id: I773ea7615cc4ec1c9901def629b089d8d17328eb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1660645
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
This removes VertexArrayVk::updateIndexTranslation. Turns out this
helper function wasn't that helpful.
Bug: angleproject:3539
Change-Id: Ia4573219073261767e9d215ed4227233c23cbfaa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1660639
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
In both the ESSL 1.00 & 3.00 specifications having an extension directive
after a pre-processor token is an error. Merging those two enum cases to
be a single case. WebGL is handled as a separate warning case for any
shader version before 3.00.
Also this change now correctly marks 1.00 shaders that break this rule
to be invalid so the ExtensionAfterNonPreProcessorTokenESSL1 test no
longer expects handleExtension() to be called.
BUG=chromium:971660
Change-Id: I37b10cc0fb3a0efd6200a478171e005a96478255
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1661395
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
These tests crashed in FramebufferVk::clearWithAttachment, which no
longer exists.
Bug: angleproject:3081
Change-Id: I6b01c311c4caed21a920e5d5db1195c2dbfb905a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1661554
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
BindingsBenchmark.Run/gl_100_objects_allocated_every_iteration
This test was timing out on the bots. Conservatively skip the benchmark
on Intel/GL/Windows.
Bug: chromium:974083
Change-Id: I4a254bff8b43e5a47b5905ee6b9bc1a659129684
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1660951
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
These were no longer used in the build.
Bug: angleproject:3162
Change-Id: I715bb3e6f14ed8c97523dec5b0b58bf9a89be0f0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1660716
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
This binary was updated using update_glslang_binary.py.
Please see instructions in tools/glslang/README.md.
Bug: angleproject:3432
Change-Id: Iefed7d2ab1a0a7f7118b83037329fe608c85ba1e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1658848
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
This binary was updated using update_glslang_binary.py.
Please see instructions in tools/glslang/README.md.
Bug: angleproject:3432
Change-Id: Idc02086cf0e1985efd7bf194adf311c85b21e33e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1657712
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
I thought these might have different performance characteristics when
compared to the main configs. It's possible they would also need to
forego using SwapBuffers to get different profiles. Right now perf is
pretty similar to with the default FBO.
Bug: angleproject:3117
Change-Id: Ic03b4ebd8c606af5121854565525e37e66f91435
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1650785
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
This should reduce the number of descriptor sets we need to allocate.
We only allocate a new descriptor set when the underlying buffer is
reallocated. We pass in the buffer offset via the dynamic offsets
parameter.
Bug: angleproject:3504
Change-Id: I40d031cd7295a8d002caff4f331f4a311f07505c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1646757
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Implements ES 3.0 feature GL_PRIMITIVE_RESTART_FIXED_INDEX,
which allows the application to use a fixed "restart" index
to restart the primitive during a single draw call.
This change does't handle GL_LINE_LOOP primitives,
which requires a bit of special handling.
Bug: angleproject:3215
Change-Id: I2388852683fd17328a6a76c48d70a24d67ce8b67
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1650301
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
We noticed a significant hotspot in vkAllocateDesctiptorSets. The app
was repeatedly cycling through a few combinations of active textures.
For each state change in ANGLE we were allocating a new desctiptor set.
This in turn would trigger internal driver memory allocation and cause
jank. Using a cache avoids allocations entirely since the application
is rotating through a stable set of textures.
The descriptor cache is stored in each program. It is indexed by a set
of 32-bit serials. Each texture generates a unique serial for every
combination of VkImage and VkSampler that the texture owns. The texture
descriptor is refreshed every time a texture changes or is rebound.
The descriptor cache is accessed via an unoredered map with the texture
serial sets as the hash key. We also store the maximum active texture
index in the cache key so we don't need to hash and memcmp on all 64
active textures.
This will currently fail if more than MAX_UINT serials are generated.
But that number is high enough that it shouldn't be possible to hit
in practice in a practical amount of time.
Requires shifting the texture sync to ContextVk so we can get the new
serial after the textures are updated. And to make sure to update the
image layouts even if the descriptors are not dirty.
Improves performance of the T-Rex demo. Also improves the score of the
texture state change microbenchmark by about 40%.
Bug: angleproject:3117
Change-Id: Ieb9bec1e8c1a7619814afab767a1980b959a8241
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1642226
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Although according to
https://docs.microsoft.com/en-us/windows/desktop/direct3ddxgi/format-support-for-direct3d-feature-level-9-1-hardware
D3D9 doesn't have full blending capability for RGBA32F. But turns out it could provide
correct blending result in reality. As a result of some regression reports by client app, we
decided to turn floatBlend on for D3D9.
I tried to make a native D3D9 program to detect float blending capability.
But turns out it needs quite some effort on Win10 for a D3D newbie.
Considering the fact that D3D9 backend is not fully passing conformance test anyway.
I don't think it worth the effort. Seems to be okay to just turn it on.
Bug: chromium:970532
Change-Id: I66bec120be6eaaa62a5472b8521a97b4d23e924a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1652731
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shrek Shao <shrekshao@google.com>
Previously array sizes were calculated as the OR of all flag and enum
masks, equal to 2^(number of bits used for flags and enums) - 1, which
could be less than the actual needed array size.
This fix moves array size calculation to the autogen script and changes
the size to one more than the maximum potential value.
Bug: angleproject:3524
Change-Id: Ia4eb2a83fc7deea84e18958efcda8b57632035f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1655954
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Makes it a bit easier to work with. In prep for adding offscreen
configs.
Bug: angleproject:3117
Change-Id: Ie2497574b2687592b7b3df2f7b933a19e83b6d16
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1650784
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
This reverts commit d187d45ede.
Reason for revert: The correct thing to revert was https://chromium-review.googlesource.com/c/chromium/src/+/1657512
Original change's description:
> Revert "Vulkan: Build validation layers with asserts only"
>
> This reverts commit 85fef1bc62.
>
> Reason for revert: This actually seems to break the fucshia_x64 bot:
>
> Exception: Some files were excluded with --exclude-file, but not found in the deps list: lib/libVkLayer_parameter_validation.so, lib/libVkLayer_core_validation.so
>
> See https://analysis.chromium.org/waterfall/culprit?key=ag9zfmZpbmRpdC1mb3ItbWVyRAsSDVdmU3VzcGVjdGVkQ0wiMWNocm9taXVtLzk0ODYyNWNjNDE2NmE3NjRkYWM2NTRlNjlmZDA3MGFjMDE3MzNkNTMM
>
> Original change's description:
> > Vulkan: Build validation layers with asserts only
> >
> > Adding ANGLE to the build includes the validation layers, which are only
> > for development. We don't want any development or debugging code to be
> > included by default in release builds, so tie building the validation
> > layers to enablement of asserts.
> >
> > Bug: angleproject:2475
> > Test: gn gen out/fuchsia_rel --args='target_os="fuchsia" is_debug=false use_goma=true'
> > gn desc out/fuchsia_rel //fuchsia/engine:web_engine runtime_deps
> >
> > Change-Id: I6d195c680255dcbc81e95f8e6f80e1e8ace169a2
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1656306
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
> > Commit-Queue: Michael Spang <spang@chromium.org>
>
> TBR=spang@chromium.org,geofflang@chromium.org,jmadill@chromium.org
>
> Change-Id: Ia74efcce2b3dda02dc0c0d292bdeb5ea7c5c3530
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: angleproject:2475
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1657711
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
TBR=spang@chromium.org,geofflang@chromium.org,jmadill@chromium.org
Change-Id: Iab669210c23823b403e3fff7f5199a7aadd032bb
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2475
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1658411
Reviewed-by: Michael Spang <spang@chromium.org>
Commit-Queue: Michael Spang <spang@chromium.org>
gl::Workarounds was used to hold frontend features. Change ownership of
this struct from Context to Display, so it can be exposed to egl. Also
rename to features and clean up for consistency.
Bug: angleproject:1621
Change-Id: I82e98e53873abb7a402c93e60f8a662a7263e0d5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1655772
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
This should give the highest possible scores. Note that immediate is
not always available.
Bug: angleproject:3163
Change-Id: Ifedabd39819625b57feda71ed83a7bee8fa0a42b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1638904
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
This reverts commit 85fef1bc62.
Reason for revert: This actually seems to break the fucshia_x64 bot:
Exception: Some files were excluded with --exclude-file, but not found in the deps list: lib/libVkLayer_parameter_validation.so, lib/libVkLayer_core_validation.so
See https://analysis.chromium.org/waterfall/culprit?key=ag9zfmZpbmRpdC1mb3ItbWVyRAsSDVdmU3VzcGVjdGVkQ0wiMWNocm9taXVtLzk0ODYyNWNjNDE2NmE3NjRkYWM2NTRlNjlmZDA3MGFjMDE3MzNkNTMM
Original change's description:
> Vulkan: Build validation layers with asserts only
>
> Adding ANGLE to the build includes the validation layers, which are only
> for development. We don't want any development or debugging code to be
> included by default in release builds, so tie building the validation
> layers to enablement of asserts.
>
> Bug: angleproject:2475
> Test: gn gen out/fuchsia_rel --args='target_os="fuchsia" is_debug=false use_goma=true'
> gn desc out/fuchsia_rel //fuchsia/engine:web_engine runtime_deps
>
> Change-Id: I6d195c680255dcbc81e95f8e6f80e1e8ace169a2
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1656306
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Michael Spang <spang@chromium.org>
TBR=spang@chromium.org,geofflang@chromium.org,jmadill@chromium.org
Change-Id: Ia74efcce2b3dda02dc0c0d292bdeb5ea7c5c3530
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2475
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1657711
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
This crash only happened on a compute test which following a render test.
This root case was that after the render test, mVertexArray11 became an
invalid pointer. However, compute test still went to the common path to
use mVertexArray11. mVertexArray11 is never updated since compute
shader doesn't need to triger DIRTY_BIT_VERTEX_ARRAY_BINDING.
This patch adds checking to avoid compute test to use mVertexArray11.
Besides, more ASSERT checking are added to convenient debugging.
Bug: angleproject:3518, angleproject:1663, angleproject:2619
Change-Id: I446214110d762fc259899cef7635f369fa1f59a7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1652866
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
Adding ANGLE to the build includes the validation layers, which are only
for development. We don't want any development or debugging code to be
included by default in release builds, so tie building the validation
layers to enablement of asserts.
Bug: angleproject:2475
Test: gn gen out/fuchsia_rel --args='target_os="fuchsia" is_debug=false use_goma=true'
gn desc out/fuchsia_rel //fuchsia/engine:web_engine runtime_deps
Change-Id: I6d195c680255dcbc81e95f8e6f80e1e8ace169a2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1656306
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Michael Spang <spang@chromium.org>
We should also add a compile-only target that verifies the build works
as expected.
Bug: angleproject:3117
Change-Id: Ib55969cdd0e670c123cdbe98bd0decf2204e7267
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1650789
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Add EGL_FEATURE_OVERRIDES_ENABLED_ANGLE and
EGL_FEATURE_OVERRIDES_DISABLED_ANGLE to submit lists of strings naming
the features that should be overridden (either enabled or disabled) on
display creation.
Bug: angleproject:1621
Change-Id: I4bb75c5dbab0e3b701a72069c38f8c60ecfffad2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1646595
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
We were still calling destroy in checkCompletedCommands. We can
instead call reset.
May not significantly impact performance.
Bug: angleproject:3489
Change-Id: I61a2cb154faac56dc78a49678dd822d81ce16ad2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1647029
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>