|
c6601ec8
|
2019-06-14T11:07:23
|
|
Vulkan: fix texture swizzle
Corrects texture swizzle in Vulkan backend. Previously user-supplied
swizzle was applied before internal swizzle; this change applies the
internal swizzle first, causing the correct behavior.
Also recreates image views when swizzle is dirty.
Test: ./angle_deqp_gles3_no_gtest --deqp-egl-display-type=angle-vulkan -n 'dEQP-GLES3.functional.texture.swizzle.*'
Test: ./angle_end2end_tests --gtest_filter='SwizzleTest.*/ES3_Vulkan'
Bug: angleproject:3212
Change-Id: Ie2c44b479da5c19ba744ace7562a73c944f97a49
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1660909
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
88e03221
|
2019-05-31T12:06:28
|
|
Unset conflicting SRVs and UAVs
D3D11 cannot allow the same (sub)-resource bound as both
a SRV and an UAV at the same time. Unset conflicting SRVs
and UVAs between render pipeline and compute pipeline.
Bug: angleproject:3152
TEST=angle_end2end_tests.ComputeShaderTest.*
Change-Id: I9cb8b902edbf987166a57af314af6b21a6874998
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1576504
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
|
|
6c824a1b
|
2019-06-18T15:43:33
|
|
Vulkan: Add missing layout for VK_IMAGE_LAYOUT_UNDEFINED
This this was missed because it doesn't add its own enum value and
instead reuses GL_NONE.
Bug: chromium:976374
Test: chrome --enable-features=UseSkiaRenderer,UiGpuRasterization \
--enable-gpu-rasterization \
--enable-oop-rasterization \
--use-vulkan=native \
--use-gl=angle \
--use-angle=vulkan
Change-Id: I73437211fef3253801e899cb6e50a8e18865cc65
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1665329
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
71ad2a73
|
2019-06-18T21:10:28
|
|
Revert "Vulkan: Add missing command pool reset."
This reverts commit 9aa865a6f9885fce602e9b637a18fb124ce9d372.
Reason for revert: Seems to be causing crashes on Android in glmark2.
Might also be responsible for a perf regression.
Bug: angleproject:3542
Original change's description:
> Vulkan: Add missing command pool reset.
>
> 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>
TBR=tobine@google.com,jmadill@chromium.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: angleproject:3489
Change-Id: Icb0e99f18ecab09798654605973958bd2b263002
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1665748
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
857880e5
|
2019-05-27T13:39:15
|
|
GL: Add extensions to enable hardware video decode on Android.
The Android SurfaceTexture API has to be initialized with a texture id
which Chrome has to query from an ANGLE external texture. It also
rebinds and sets the texture dimensions on calls to
SurfaceTexture.updateTexImage so ANGLE must be notified about these
changes so that state tracking and validation continue to function.
BUG=967410
Change-Id: I92e9077f75835b088da3a8caffb3ff40e9ad0361
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1630293
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
32d718f3
|
2019-06-18T11:25:23
|
|
NVIDIA Shield workaround for IsNVIDIA() detection
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>
|
|
f9686af0
|
2019-06-04T17:49:43
|
|
Add support for D3D11 texture backed EGLImages
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>
|
|
eee67c6e
|
2019-06-18T13:00:43
|
|
Fix Platform.h integration with ANGLE
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>
|
|
124f78c2
|
2019-06-18T11:48:24
|
|
Remove gl::Context parameter from Observer functions.
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>
|
|
b8252fdb
|
2019-06-18T12:13:49
|
|
Remove unused WidenString function
The removed function had incorrect Windows implementation,
the return value was checked incorrectly.
Last use was removed in commit 573f76b3eebf38cefb144781bfd90418e2c7df37
https://chromium-review.googlesource.com/c/1042785
Bug: angleproject:2532
Change-Id: I66907fcb33041b097062208d53ca88752c05f9cb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1664153
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Kimmo Kinnunen FI <kkinnunen@nvidia.com>
|
|
141a23f6
|
2019-06-17T17:56:59
|
|
Add support for OES_depth24
Allow 24-bit depth as a valid Renderbuffer format.
Bug: angleproject:3229
Test: angle_end2end_tests --gtest_filter=DepthStencilFormatsTest.DepthBuffer/*
Change-Id: I166639ec0e000595dc55848e4b8b7bef627b6471
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1661050
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a4c639c4
|
2019-06-03T14:04:01
|
|
D3D: Add a wrapper to Image11 that enables ASAN/MSAN to catch the errors on map operations
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>
|
|
b1c8dbf3
|
2019-06-14T23:57:26
|
|
Vulkan: Correct synchronization for buffer readback
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>
|
|
c211c2f5
|
2019-06-14T16:02:17
|
|
Make proc table autogen use gl.xml data
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>
|
|
3f8975e1
|
2019-06-12T13:11:57
|
|
Debug: suppress INFO log level in tests
Disables INFO level log messages in tests, including GL errors.
Bug: angleproject:3525
Change-Id: Ib16871b9faaff54964dd2770e1791372b1b79361
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1656293
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: James Dong <dongja@google.com>
|
|
875509e9
|
2019-06-17T13:44:21
|
|
Vulkan: Minor cleanup to ContextVk::setupIndexedDraw.
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>
|
|
beb0eb2d
|
2019-06-14T15:10:33
|
|
Clean up workarounds/features to single location.
Rename all workarounds structs to features, and move the lists to a
shared location in include/platform (to help with documentation,
see:
https://cs.chromium.org/chromium/src/ui/gl/gl_switches.cc?sq=package:chromium&g=0&l=69)
Bug: angleproject:1621
Change-Id: I4069f08131db5e886047a007efb5d7764dfee5f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1660952
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d7013c03
|
2019-06-17T09:27:18
|
|
Merge ESSL pre-processsor token errors
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>
|
|
e962b6a6
|
2019-06-17T10:12:26
|
|
Vulkan: Enable previously failing clear tests
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>
|
|
08b56293
|
2019-06-10T12:55:36
|
|
Vulkan: add LINE_LOOP with primitive restart
Adds support for GL_LINE_LOOP with primitive restart.
Bug: angleproject:3215
Change-Id: Ief1bdf15ef9b108dba025eaf4ce580bba54af623
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1649351
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2c49d0b0
|
2019-06-14T15:17:37
|
|
Suppress Bindings perf test on Win/Intel/GL.
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>
|
|
95ac7b7c
|
2019-06-13T11:29:06
|
|
Autogen gles2+ declarations
Added autogeneration of method declarations for GLES2+ and extensions
Bug: angleproject:3526
Change-Id: I9c7263452146098512d9584deae8ea3f15f62c46
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1660949
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
8118265a
|
2019-06-14T11:03:14
|
|
Add more DrawCallPerf offscreen configs.
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>
|
|
12f38c49
|
2019-06-13T11:38:59
|
|
Vulkan: Use dynamic buffer for driver uniform updates.
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>
|
|
853ebacf
|
2019-06-13T18:35:25
|
|
Suppress Mac 10.13.6 Intel OpenGL dEQP failures
Bug: angleproject:3531
Change-Id: I246144beb9c12b2df74612831262c7d263698db4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1658718
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
2806a898
|
2019-06-07T12:10:46
|
|
Vulkan: implement primitive restart
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>
|
|
4316e064
|
2019-06-13T00:32:09
|
|
Vulkan: Output render pass loadOp in graph dump
Bug: angleproject:3205
Change-Id: I7ad99bd2f8ddeb899c5fa86fd39296e5fc96d2c6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1657708
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
88596bea
|
2019-06-13T14:17:48
|
|
Vulkan: Implement a texture descriptor cache.
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>
|
|
95428331
|
2019-06-10T18:03:03
|
|
Enable floatBlend for D3D9
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>
|
|
0d3cf708
|
2019-06-12T10:07:02
|
|
Vulkan: fix array size for internal shaders
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>
|
|
05ba83a0
|
2019-06-13T13:26:58
|
|
Refactor DrawCallPerfParams.
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>
|
|
78a51911
|
2019-06-12T14:28:14
|
|
Clean up and expose frontend features to egl.
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>
|
|
444aa0fe
|
2019-06-08T13:53:17
|
|
Vulkan: Prefer immediate present mode for benchmarking.
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>
|
|
3f2b4e7f
|
2019-06-11T14:47:59
|
|
Fix the crash in angle_deqp_gles31_tests
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>
|
|
ebddd1a2
|
2019-06-11T16:32:46
|
|
implement core egl image entry points
Bug: angleproject:2467
Change-Id: Ica943a3972333e90a516aa6960f333cc9c378be2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1653714
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
169ef353
|
2019-06-12T14:42:13
|
|
Vulkan: Fix build with custom secondaries disabled.
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>
|
|
13ac9422
|
2019-06-10T17:53:09
|
|
Vulkan: add support for shadow samplers.
Adds support for ES 3.0 shadow samplers.
Test: ./angle_deqp_gles3_no_gtest --deqp-egl-display-type=angle-vulkan -n 'dEQP-GLES3.functional.texture.shadow.2d.*'
Bug: angleproject:3211
Change-Id: Ic82ecfe19290fb952fcb0ba423691b5bac87c4a3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1652021
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
fce1e2d1
|
2019-06-04T15:02:08
|
|
Extend eglGetPlatformDisplay to allow feature overrides.
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>
|
|
2589cdcc
|
2019-06-11T11:38:41
|
|
GLSLTest stack overflow bug fix
Bug: angleproject:3514
Change-Id: Id02bdb230dce0435b0b33db101d196596d6e8c93
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1652435
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9aa865a6
|
2019-06-06T17:10:51
|
|
Vulkan: Add missing command pool reset.
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>
|
|
c75d6dc8
|
2019-06-05T16:12:01
|
|
Vulkan: Add support for gl_VertexID/gl_InstanceID
Adds support for GLES 3.0 feature which adds gl_VertexID and
gl_InstanceID built-in variables to vertex shader.
Bug: angleproject:3221
Change-Id: I372d7ac34bed376b506e327725f0eca2513852fa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1646735
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6064e6ab
|
2019-06-11T04:01:12
|
|
Reland "Temporarily disable creating D3D debug device."
This reverts commit 28394c2295335929c17bbfe0ab74f923cd234ff2.
Reason for revert: may be the cause of flakiness on Win10 Debug (NVIDIA) per http://crbug.com/972914 .
Original change's description:
> Revert "Temporarily disable creating D3D debug device."
>
> This reverts commit 3d544fffe7ff9284b21e3a15f638297c827bbc21.
>
> Reason for revert: Seems like flakiness is not related.
>
> Suppress D3D11 test failures uncovered by re-enabling D3D debug device:
> ComputeShaderTest.DispatchCompute
> Texture2DTestES3.TextureImplPropogatesDirtyBits
> D3DTextureTestMS.*
>
> Also a small fix to ANGLETestBase::checkD3D11SDKLayersMessages
> to clear reported messages, otherwise the failures are also reported
> for tests following the one with the actual failure.
>
> Original change's description:
> > Temporarily disable creating D3D debug device.
> >
> > To diagnose whether Windows Intel end2end tests flakiness
> > is related to creating debug device and new version of Windows SDK.
> >
> > Bug: angleproject:3153
> > Change-Id: Ica7eae3fe875e22203b6dfd98b83604d66a97737
> > Reviewed-on: https://chromium-review.googlesource.com/c/1476954
> > Reviewed-by: Geoff Lang <geofflang@chromium.org>
> > Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
>
> Bug: angleproject:3153, angleproject:3493
> Bug: angleproject:3501, angleproject:3512, angleproject:3513
>
> Change-Id: I232da72aa09c2b9230cf179dd54e1731f8365f8e
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1480854
> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
TBR=ynovikov@chromium.org,geofflang@chromium.org,jmadill@chromium.org
Change-Id: I38a5cc9bb6ebcd50e97e40cc972a82679e73732a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:3153, angleproject:3493, angleproject:3501, angleproject:3512, angleproject:3513
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1652784
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
1b5ad312
|
2019-06-10T18:41:08
|
|
Omit "de_DE.ISO-8859-15@euro" from ShCompileTest.DecimalSepLocale on Windows.
A new SDK version started throwing on locales that have a code page
section (the part after the dot) that's >= 16 characters long.
That's a system library bug, but for now we need to work around it.
Bug: chromium:972372
Change-Id: I64cee1051e854dac84e8c3c728ce65606b0dc89b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1652016
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
28394c22
|
2019-02-21T03:24:58
|
|
Revert "Temporarily disable creating D3D debug device."
This reverts commit 3d544fffe7ff9284b21e3a15f638297c827bbc21.
Reason for revert: Seems like flakiness is not related.
Suppress D3D11 test failures uncovered by re-enabling D3D debug device:
ComputeShaderTest.DispatchCompute
Texture2DTestES3.TextureImplPropogatesDirtyBits
D3DTextureTestMS.*
Also a small fix to ANGLETestBase::checkD3D11SDKLayersMessages
to clear reported messages, otherwise the failures are also reported
for tests following the one with the actual failure.
Original change's description:
> Temporarily disable creating D3D debug device.
>
> To diagnose whether Windows Intel end2end tests flakiness
> is related to creating debug device and new version of Windows SDK.
>
> Bug: angleproject:3153
> Change-Id: Ica7eae3fe875e22203b6dfd98b83604d66a97737
> Reviewed-on: https://chromium-review.googlesource.com/c/1476954
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Bug: angleproject:3153, angleproject:3493
Bug: angleproject:3501, angleproject:3512, angleproject:3513
Change-Id: I232da72aa09c2b9230cf179dd54e1731f8365f8e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1480854
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
c74c3d81
|
2019-06-05T10:55:40
|
|
DEBUG: Log all debug messages to console
Logs all debug messages produced by GL and EGL.
This is helpful for debugging when the application does not register a
debug callback.
Validation errors produce log messages with level INFO, and internal
errors produce log messages with level WARN.
Bug: angleproject:3505
Change-Id: I269055aec49e1d77edeedb482fa6873c8f79f853
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1645817
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
70642e42
|
2019-06-05T14:55:49
|
|
Vulkan: Implement ES 3.0 rasterizer discard
Rasterizer discard is a feature that allows the graphics pipeline
to skip the fragment shader stage.
Implementing rasterizer discard in Vulkan is as easy as not binding
a fragment shader binary.
Tests for rasterizer discard live in
dEQP-GLES3.functional.rasterizer_discard.*.
Bug: angleproject:3214
Test: dEQP-GLES3.functional.rasterizer_discard.*
Change-Id: I0815df3b70f6f9cdc6c8c87ec4813bb629d8bd5f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1646692
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
35b25fc6
|
2019-06-07T11:54:36
|
|
For WebGL warn on late extension directive
A previous change based on ESSL 1.00 spec had made it an error in all
cases when an extension directive appeared in a shader after the first
non-preprocessor token. However, this is incorrect for WebGL 1.0 so
adding warning case for WebGL.
BUG=chromium:971660
Change-Id: I026fe60e8b1876de65b001b676f7a0552739a20c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1648661
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
ed65dc43
|
2019-06-03T11:21:00
|
|
Vulkan: implement glSampleCoverage
Emulated by applying a mask on top of the mask from glSampleMask.
Bug: angleproject:3204
Change-Id: I4c80ab0a3261cbf1b8a43c270fe13c2a247ea663
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1639749
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b407e1a0
|
2019-06-03T17:15:51
|
|
Vulkan: implement ES3 blit
Augment the resolve shaders to be able to stretch and blit too. The
UtilsVk resolve function is accordingly expanded to include blit.
Bug: angleproject:3200
Change-Id: I30b172a5e388089735ab494f55cbfdc2781a8bf9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1635753
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ea49f6f5
|
2019-06-06T12:58:27
|
|
Debug: Add LOG_INFO logging level
Will be used for logging GL/EGL debug messages.
Bug: angleproject:3505
Change-Id: I10ff32dd4f9227cabac2f3d9425b0428e7af1398
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1648714
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
148ecd89
|
2019-05-28T14:14:42
|
|
Vulkan: Handle VK_ERROR_OUT_OF_DATE returned by vkAcquireNextImageKHR()
There is some new Android HWUI/SkiaGL code, that (in certain cases)
looks up the underlying Vulkan swapchain that ANGLE created, and adds
an image to it. This causes the next call to vkAcquireNextImageKHR() to
return VK_ERROR_OUT_OF_DATE and requires the swapchain to be recreated.
Bug: angleproject:3480
Test: Use ANGLE on Android and verify apps load correctly.
Change-Id: I21c86035664878e75d6a9dc769546747aa4c8256
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1632424
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
55ca3a51
|
2019-06-05T17:32:32
|
|
Use execv instead of execve w/ environ.
Some platforms don't want us messing with environ, and these seem to be
equivalent.
Bug: angleproject:3506
Change-Id: I66804e8accc30421c1cd32c0eda750500e3ecb60
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1646887
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3f17f929
|
2019-06-05T13:13:12
|
|
Avoid recreating swapchain for preRotation
Android will return VK_SUBOPTIMAL_KHR if the orientation of the
screen is not optimial for the orientation of the device.
We were re-creating the swapchain when this happens but we weren't
changing the orientation and would get this return code every
time we call vkQueuePresent and re-create the swapchain each time.
Apparently recreating the swapchain causes visual artifacts on
some devices. Just ignoring VK_SUBOPTIMAL_KHR allows things to
work.
Bug: angleproject:3497
Need to implement proper preRotation support for longterm fix.
Bug: angleproject:3502
Change-Id: I0904eb60b742d24618d502c111510117758a8502
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1641206
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
a4a24af3
|
2019-06-06T10:50:21
|
|
Vulkan: fix uint indices causing incomplete buffer
Fixes buffer size calculation when uploading element buffer
to account for 4-byte (uint) indices.
Bug: angleproject:2902
Change-Id: Id70fc0fdffecd0b27995820bd0ad88e4cb61e013
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1648325
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
266a9e8d
|
2019-06-05T15:15:10
|
|
Vulkan: Move descriptor pools into ProgramVk.
Previously ContextVk owned the descriptor pools. We were trying to
maximize descriptor reuse to conserve memory. However the default
uniforms would have no possible sharing. And because uniform buffers
are usually unique to a program it's likely there would be less reuse.
Image descriptors could be shared. But with the advent of a descriptor
cache in the Program it becomes difficult to manage the cache through
descriptor pool recycling. Moving the pools into the Program simplifies
the cache management. We could look at adding back more reuse in the
future.
Also shifts driver uniforms back into the end of the descriptor sets
to make indexing into the Program's descriptor pools simpler.
Bug: angleproject:3117
Change-Id: I52bb49cf322d944ad7cf08791efdf24b7fe573ce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1644775
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b91f87b6
|
2019-06-05T11:38:39
|
|
Vulkan: enable OES_element_index_uint for Vulkan
We already handle 32-bit indices, so this change enables the corresponding extension for ES 2.0.
Bug: angleproject:2902
Change-Id: Iccde1d4aac383a9c11edf851778ff315de8d4ad1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1646032
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: James Dong <dongja@google.com>
|
|
03bc3db8
|
2019-06-05T13:48:43
|
|
Vulkan: Minor cleanup to UtilsVk.
Renames "ContextVk *context" to "ContextVk *contextVk" for consistency.
Also adds an "allocateDescriptorSet" helper function.
Bug: angleproject:3117
Change-Id: Id03e30432d8e5e35b682350a8e98fd2e62cdf89a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1644776
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5643afc0
|
2019-06-04T15:37:58
|
|
Vulkan: add GLSL placeholder for transform feedback output
Bug: angleproject:3205
Change-Id: Id3941b6953e03e7b2183acc57b2c6db4a6439352
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1643424
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ac8bafc0
|
2019-06-03T14:59:39
|
|
Remove unused bindGenericBuffer from TransformFeedback*
Bug: angleproject:3205
Change-Id: I6dc29b48155cd3c0ef98248076cf02e70c9310d9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1643423
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3c219171
|
2019-05-31T16:23:23
|
|
Add ARM vendor id
This fixes a crash when run with asserts on ARM GPU:
[2089630:1566159375:0531/202059.262200:ERROR:angle_platform_impl.cc(47)] GetVendorString(133): ! Assert failed in GetVendorString (../../third_party/angle/src/libANGLE/renderer/driver_utils.cpp:133): vendorId == 0xba5eba11
Bug: angleproject:3492
Change-Id: I786edc459b1567a3eee0034a0d8ae7050ac31952
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1642331
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
44063c80
|
2019-06-04T15:20:30
|
|
Vulkan: Store array buffer conversions in BufferVk.
The intent of this CL is to call convertVertexBuffer*PU only when we
have new data to convert. If the app unbinds and rebinds a vertex
buffer without changing the data we can now retrieve the cached
vertex buffer info from the BufferVk class. Previously we would always
reconvert the data on a rebind. This was slowing down applications and
benchmarks.
To achieve this we add a conversion cache to BufferVk. Each cache entry
stores a key based on the vertex info. Also we store a ring buffer for
each cache entry and a flag to indicate if the entry is dirty. The
cache is dirtied on a bufffer data update or a map call.
Improves performance in the T-Rex benchmark.
Bug: angleproject:3495
Change-Id: Ia999c9187510748ba95bc98362eb332e1990d270
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1638903
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
e431aaa1
|
2019-06-04T11:36:43
|
|
Rename EGL_ANGLE_workaround_control to EGL_ANGLE_feature_control.
For consistency, call these ANGLE "features", a subset of which may be
workarounds. Also, whether the feature is enabled/disabled should be
publically visible as "status".
Bug: angleproject:1621
Change-Id: I0de90a932fbfe1fc9b59138153d616d29fa7268b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1643410
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
071d2a44
|
2019-06-03T11:49:13
|
|
Vulkan: Process dirty framebuffers first
The currently bound framebuffer affects some dirty bits. This means
that processing those dirty bits temporarily use data from a framebuffer
that's about to be changed. At best, that creates unnecessary dirty
bits in the Vulkan pipeline description.
Bug: angleproject:3204
Change-Id: Ie001d6c8fcc61af2e78cf2cb58a1691d8b735ff3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1639750
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
de70a713
|
2019-06-03T17:05:16
|
|
Vulkan: Rename Resolve* shaders to BlitResolve
In preparation for adding blit functionality.
Bug: angleproject:3200
Change-Id: I77b6b6cbe90b26ee23c25edebaa2b130f3c2987a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1641626
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2dd40a44
|
2019-05-30T16:40:13
|
|
Add eglQueryDisplayAttribANGLE to query workarounds count.
Add eglQueryDisplayAttribANGLE based on eglQueryDisplayAttribEXT to add
behavior for quering the count of all workarounds available. Used
externally to build a list of workarounds.
Bug: angleproject:1621
Change-Id: I793acedc76111fd018600169d58bf5d8cf4a63ee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1637817
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
20d380fa
|
2019-06-03T15:21:47
|
|
Print stack backtrace on critical failure.
We reuse code from Skia to walk the stack on Posix platforms. See:
https://github.com/google/skia/blob/master/tools/CrashHandler.cpp
On Windows we use a BSD-licensed tool called StackWalker. See:
https://github.com/JochenKalmbach/StackWalker
This allows us to get high quality stack traces on Win/Linux/Mac.
Bug: angleproject:3162
Change-Id: I9c50ede2c6a41ed0ee85a0507372df42a487bcef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1632950
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
5993d899
|
2019-06-03T13:05:38
|
|
Vulkan: Use storage buffers for index conversion shader.
This allows us to use the shader regardless of driver support for
texel buffer views. It also allows us to convert indices on the GPU
unconditionally.
We add a new internal compute shader that converts pairs of indices
into a packed single uint value that stores two 16-bit values. In the
future we could add support for converting primitive restart indices.
Should speed up benchmarks on systems which didn't have R8_UINT support
for compute shader buffers.
Bug: angleproject:3490
Change-Id: I56ca0cabb094e97f36ab4edc779e6c8ad2d2601e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1639058
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
4a757416
|
2019-06-03T14:04:01
|
|
D3D: Fix heap corruption when copying texture arrays
Do not use depth dimension when copying normal 2D textures of a 2d texture
array. It copies past the end of the buffer obtained via
ID3D11DeviceContext::Map().
Fixes a case which can be reproed with the payload disabled:
gn args out\debug --args="is_debug=true"
ninja -C out\debug angle_end2end_tests
out\debug\angle_end2end_tests ^
--gtest_filter=Texture2DArrayCopy.SnormFormats* --gtest_catch_exceptions=0 ^
--gtest_repeat=-1
Bug: angleproject:2865
Change-Id: Id9bc5489fa41749d1b1d2e87992166b1a0af76fc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1641247
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
12a52423
|
2019-06-03T10:39:54
|
|
Sharpen GL test skip condition for NVIDIA
The skip condition for GLSLTest_ES3.VaryingStructNotInitializedInVertexShader
is modified to not skip NVIDIA on windows.
Bug: angleproject:3413
Change-Id: I126d9fa9e36c3b6c07abfd24bdaf6feb76ac4f6f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1640208
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0730e630
|
2019-05-31T14:25:37
|
|
Fix needStructMapping
In previous logic, we didn't check the structure field member type. So
when passing the non-struct member of a structure to a function, it
would think that struct mapping was needed.
In this patch, we add more checking so that struct mapping only happens
when there are structure copy or passing a structure to a function.
BUG=angleproject:2967
Change-Id: Ic98e884c8f8540e180cdf40a0e036ffef18c1689
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1638227
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
98f21671
|
2019-05-31T15:34:39
|
|
Vulkan: Refactor index buffer convert functions.
This is a prepratory refactor for converting index buffers on the GPU
using a more generic compute shader. No functional change.
Bug: angleproject:3490
Change-Id: Iadf4b1429314db6850320aee33c4113f38577378
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1639057
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c104b2d2
|
2019-05-31T16:25:02
|
|
Re-enable WGL perf test configs.
These were accidentally dropped in https://crrev.com/c/1574674 .
Re-enable so we can gather better perf stats on Windows machines.
Bug: angleproject:3494
Change-Id: I92e9ba7e7783fddde1a47c0ffe056da7750d2c3b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1639063
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
f7106d16
|
2019-05-30T17:34:42
|
|
Revert "Revert "Vulkan: Use atomics in SerialFactory.""
This reverts commit 35fa85ba2fafa583bd706b64d181f3f95094325d.
Reason for revert: This commit was an innocent bystander. The
bugs are intermittent, requiring multiple runs to verify.
Bug: angleproject:3492
Change-Id: Idc9dcb1631cfca5fea342266c732732c6f2bd2d5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1636263
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
cc9bc655
|
2019-05-31T12:00:25
|
|
Vulkan: Fix synchronization with current surface
Since a6242e4d4 ("Vulkan: Support submitting multiple semaphores"),
semaphores are not generated because the function generating checks for
non-empty command graph right after flushing.
Bug: angleproject:3492
Change-Id: I03db4a77fe24fdfdf39ba535b235451ae0275a0e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1638579
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Michael Spang <spang@chromium.org>
|
|
bc30e72c
|
2019-05-30T13:30:33
|
|
Vulkan: Recycle command pools with vkResetCommandPool.
vkDestroyCommandPool has worse performance than reset. Instead of
destroying and creating new command pools for every batch of work we
can instead recycle unused command pools. This seems to improve
performance on most systems.
Bug: angleproject:3489
Change-Id: I7f8fe7f9385ca481e04f226a26426c3e92da19ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1636410
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
0a56f0e3
|
2019-05-14T17:07:27
|
|
Vulkan: Update front face mode during syncState()
When handling DIRTY_BIT_DRAW_FRAMEBUFFER_BINDING in syncState(), the
call to update the front face was missing, so culling could be enabled
for the wrong front faces.
Bug: angleproject:3237
Test: Verify 3D apps render (more) correctly
Test: New SimpleStateChangeTest end2end tests
Change-Id: I1d94a977bea9e48d90b5346861e5565d2371cadd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1611753
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
35fa85ba
|
2019-05-29T15:59:13
|
|
Revert "Vulkan: Use atomics in SerialFactory."
This reverts commit 1b0f79ee92b51122634fca6342876db196b85e3c.
Reason for revert: Breaks a number of applications on Android
Original change's description:
> Vulkan: Use atomics in SerialFactory.
>
> This allows serials to be generated from multiple threads without locking for
> very little/no cost.
>
> BUG=angleproject:2464
>
> Change-Id: Id61d170e7a985c3100da0057156859ffcb083dad
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1516514
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
TBR=geofflang@chromium.org,syoussefi@chromium.org,jmadill@chromium.org
Change-Id: I52011f294d68490998869fa898e929fd41eaa51c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1636272
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
6d9b8908
|
2019-05-29T13:18:31
|
|
Vulkan: Merge Color and Depth/Stencil resolve shaders
There is a good deal of overlap in the way these shaders calculate
offsets, flip etc. This change merges the two shaders together, as well
as the UtilsVk functions that invoke them.
This is in preparation for adding blit functionality to the same
shader.
Bug: angleproject:3200
Change-Id: Id7c2cf12e05db1802ae497766fb361fe4bef6479
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1635750
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
172e5d37
|
2019-05-29T10:00:50
|
|
Vulkan: Implement universal stencil resolve
This is done by resolving stencil into a temporary buffer and copying
that into the stencil aspect of the resolved image.
Bug: angleproject:3200
Change-Id: I29111b44db2cb093acc4544034fbe61178f055a1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1635709
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
ab6a59b2
|
2019-05-21T21:26:26
|
|
Vulkan: Submit semaphores from glWaitSemaphoreEXT & glSignalSemaphoreEXT
Implement submission of client semaphores passed to glWaitSemaphoreEXT &
glSignalSemaphoreEXT.
This also relaxes the expectation that we will not flush() if there are
no commands. Signaling semaphores in particular requires queue submission
irrespective of whether there are any command buffers to submit. If there
are neither commands nor semaphores, we can still skip queue submission.
WebGL runs in Chrome with ANGLE & Vulkan interop as of this patch, albeit
with incorrect synchronization due to texture barriers not being
implemented yet. Quite a few flags are needed to try this:
GN args: angle_vulkan_conformant_configs_only=true
chrome \
--enable-features=UseSkiaRenderer,UiGpuRasterization \
--enable-gpu-rasterization \
--enable-oop-rasterization \
--enable-vulkan \
--use-gl=angle \
--use-angle=vulkan
Bug: angleproject:3289
Change-Id: I3d49c230a2fbf0cd2a2b943b05ded0e4604cc313
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1623815
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d3e7a41b
|
2019-05-29T14:40:52
|
|
Vulkan: fix buffer copy barriers
Bug: angleproject:3362
Change-Id: Ibf6520fb73bb1a9b76714cddd786569789c70430
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1635752
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f52f2637
|
2019-05-23T13:52:52
|
|
Add EGL_ANGLE_workaround_control extension.
This extension is used to query strings from an array based on index,
which will be used to query all the information about workarounds in
ANGLE.
Bug: angleproject:1621
Change-Id: I27157f278f7f17c92c8b4fd7753e2a5ecd0528f6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1627723
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
06055b5e
|
2019-05-29T14:31:42
|
|
Update Windows AMD suppression.
Should have been specified for OpenGL instead of D3D11.
Bug: chromium:967796
Change-Id: I099ab51709f69e7abb7fe698e6010241bdccb4bf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1635751
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a6242e4d
|
2019-05-22T15:15:09
|
|
Vulkan: Support submitting multiple semaphores
With GL_EXT_semaphore, the client can create and submit semaphores to
synchronize with an external vulkan instance. We need to be able to
submit semaphores from both the current surface as well as the client.
In order to support glWaitSemaphoreEXT, make ContextVk hold a vector of
semaphores that will be submitted with the next batch.
In order to support glSignalSemaphoreEXT, make ContextVk::flush() build a
vector of semaphores to submit, rather than just one. Submissions that
result from a client signal operation will need to signal both the client
semaphore as well as a semaphore from the surface's semaphore chain.
Bug: angleproject:3289
Change-Id: I52b07c4c2a7bf52300d3107f028aa64585c6c4db
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1623814
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2008c8ff
|
2019-05-21T20:38:59
|
|
Vulkan: Reuse flushImpl() from finishImpl()
Reuse flushing logic in finish() as there's an increasing amount of logic
needed to submit work in order that would otherwise be duplicated.
Bug: angleproject:3289
Change-Id: Ia489e285615ebaa48b01d8a202871bebf7de0ac2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1623813
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Michael Spang <spang@chromium.org>
|
|
f2a1c384
|
2019-05-21T16:32:49
|
|
Vulkan: Implement multisampled framebuffers
Simultaneously implements ANGLE_framebuffer_multisample and ES3
multisampled framebuffers.
Additionally, implements ES3 framebuffer blitting where multisampled
framebuffers are involved.
Bug: angleproject:3203
Bug: angleproject:3204
Bug: angleproject:3200
Change-Id: I5694a30f71168e807688a9568e3742b81d907918
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1622667
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
e0956a16
|
2019-05-06T10:34:27
|
|
Vulkan: Rename getSubmitFence to getNextSubmitFence.
Now that getLastSubmittedFence exists, the new name is more specific.
BUG=angleproject:2464
Change-Id: I0bce1387b95b7b7b739e311d37e35e7d162d8f2d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1595435
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
262e2824
|
2019-05-20T14:24:40
|
|
Use D3D11 GetDimensions driver workaround for 3D textures
Some NVIDIA D3D11 drivers are buggy and interprets the level passed to
GetDimensions as being relative to 0, rather than the SRV's MostDetailedMip.
This affects all integer format textures, because the dimensions are used for
sample position calculations with integer format textures, which leads to
sampling outside texture when the base level is non-zero.
Bug: angleproject:3441
Change-Id: Ic54328e3d712e28a40efb4e63b8fce0baeb4ef42
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1619785
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ded5f903
|
2019-05-01T13:58:27
|
|
Vulkan: Make the Vulkan renderer thread safe.
Gate all access to the queue and caches with mutexes. Does not handle sharing
of resources in share groups across threads yet.
BUG=angleproject:2464
Change-Id: I297f8f1a535b99efca663cf72bac3d90df8b5d97
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1592253
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1b0f79ee
|
2019-02-28T11:08:21
|
|
Vulkan: Use atomics in SerialFactory.
This allows serials to be generated from multiple threads without locking for
very little/no cost.
BUG=angleproject:2464
Change-Id: Id61d170e7a985c3100da0057156859ffcb083dad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1516514
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
29ac274f
|
2019-05-28T15:53:00
|
|
D3D11: Suppress failing Texture test on AMD.
Bug: chromium:967796
Change-Id: I48280909db9c927c12d3c0d97f1ad451dffb849e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1632949
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ee244c77
|
2019-05-06T10:30:18
|
|
Vulkan: Move command graph and garbage to ContextVk.
To support multithreading, contexts should manage their own command graphs
and garbage. This allows safe access to vulkan resources such as command pools
without thread synchronization.
BUG=angleproject:2464
Change-Id: I930149bc9f0793028761ee05ab50b8c0a4dec98a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1516515
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5a808b86
|
2019-05-27T13:22:32
|
|
GL: Allow BlitGL to copy from external textures.
BUG=967410
Change-Id: I503dda6f2493b56123a8bd369e2f1305971abb4e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1364110
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
44462cd6
|
2019-05-27T17:12:21
|
|
D3D: Use the ProgramD3D::GetExecutableTask context for loading program binaries
ProgramD3D::GetExecutableTask is a d3d::Context type itself so that errors can
be recorded in a thread-safe maner. Use the task context when loading program
binaries in ProgramD3D.
Fix up incorrect casts in RendererD3D::loadExecutable in both D3D9 and D3D11
backends to stop incorrectly assuming the context type.
BUG=962439
Change-Id: I5b29372a7254f709e1bbb67ee322ef4109f73e48
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1630294
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
ce9be8c7
|
2019-05-24T09:35:06
|
|
Vulkan: Have a cubemap as 2D-array view handy
Previously, only texture copies used a shader that performed
texelFetch(). To support cubemaps, a hack was used to temporarily
create a 2D array view.
With upcoming support for multisample resolve, more shaders will be
using texelFetch() all requiring this workaround. This change instead
makes sure that a separate view is created for cubemaps for the purpose
of being used with these shaders. As a result, we have three logical
views on textures and render targets:
- Draw: a view that can be used as a color/depth/stencil attachment
- Read: a view that can be used to sample from
- Fetch: a view that can be used to fetch from
The fetch view is generally the same as the read view, except for cube
maps.
Bug: angleproject:3200
Change-Id: I21547f728c16f0aa8f0fcae152c400b5cc1565da
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1628585
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
46fe0e4b
|
2019-05-22T13:13:50
|
|
Cleanup Features headers.
Cleanup redundant angle:: prefix in Features headers.
Cleanup workaround descriptions.
Bug: angleproject:1621
Change-Id: I4325d3603877efee9c6a035cd5b5bbbbc4f5c169
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1625609
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
69d04939
|
2019-05-20T14:04:13
|
|
Use D3D11 GetDimensions driver workaround for 2D array textures
Some NVIDIA D3D11 drivers are buggy and interprets the level passed to
GetDimensions as being relative to 0, rather than the SRV's MostDetailedMip.
This affects all integer format textures, because the dimensions are used for
sample position calculations with integer format textures, which leads to
sampling outside texture when the base level is non-zero.
Bug: angleproject:3441
Change-Id: Ic012cac94ce0a627221087ecb2ee6aa3665900d1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1617780
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kimmo Kinnunen FI <kkinnunen@nvidia.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1b6aded6
|
2019-05-20T12:56:34
|
|
Test D3D11 GetDimensions driver workaround for textureProjOffset
Some NVIDIA D3D11 drivers are buggy and interprets the level passed to
GetDimensions as being relative to 0, rather than the SRV's MostDetailedMip.
This affects all integer texture formats because the dimensions are used for
sample position calculations on integer format textures, which leads to sampling
outside the texture when the base level is non-zero.
Bug: angleproject:3441
Change-Id: I9d2f8fa8e66caca704cbc46d4933d3f97aaf93ea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1617779
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kimmo Kinnunen FI <kkinnunen@nvidia.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3fe06eb3
|
2019-05-21T17:37:25
|
|
D3D: Make sure Lod0 functions are never referenced in non-fragment shaders.
The lod0 functions would not be declared but could still be referenced by
vertex shaders.
BUG=angleproject:3471
Change-Id: I635a8465ce68dc22a6f7387b30bf7e93b14dd67d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1622741
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
|
|
6722009e
|
2019-05-20T11:12:53
|
|
Vulkan: Handle dirty RTs with state messages.
Prior to this CL we were handling dirty state change notifications by
flushing the RT Images just prior to use or just after they were
changed. This could lead to a few redundant checks in several places.
It also meant we needed an owner pointer from the RT to the parent
Image. This pointer would be null for Surfaces and Renderbuffers.
This cleans up the image flushing logic to be handled by dirty bit
notifications. When an app updates an attached Texture with TexSubImage
or related calls it will send a notification to the Framebuffer. The
Framebuffer then sets a dirty contents bit that is handled in the
implementation. In Vulkan this means flushing the dirty bits.
Requires adding a flag to the FramebufferImpl class to determine if we
need to syncState before we checkStatus. Adding the option allows us to
only call syncState for the GL back-end. Not calling syncState allows
the robust resource init operation to happen *before* we syncState.
Which in turn allows FramebuffeVk to initialize the VkImages in one go.
Added new regression tests for Texture updates. This might not cover
all cases. I found it was very hard to trigger some of the resource
update staging in TextureVk.
Bug: angleproject:3427
Change-Id: Idfa177436ba7fcb9d398f2b67922e085f778f82a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1601552
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|