|
74e50cac
|
2020-11-04T12:47:52
|
|
Vulkan: Suppress VUID-VkImageViewCreateInfo-usage-02652
Bug: angleproject:5309
Change-Id: Iafe91565138a5b94c482aeff7607d09c10d2aeaa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2519874
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
88b46b9f
|
2020-11-03T12:08:42
|
|
Vulkan: VVL errors once again cause dEQP tests to fail
Was previously setting the global g_debugAnnotator class to
DebugAnnoatorVk, and only when a desktop environment variable or
Android setting indicated to. Setting to DebugAnnoatorVk was equated
with a desire to generate Vulkan debug markers.
Will now set g_debugAnnotator to the generic LoggingAnnotator class
when Vulkan debug markers are not needed. That will enable VVL errors
to again cause dEQP tests to fail.
Bug: angleproject:5291
Bug: angleproject:5304
Change-Id: Ib9169037423dd9de3f799e77f7f47468eeeeac20
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2518168
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
23d1f9b4
|
2020-11-02T13:00:08
|
|
Vulkan: Add support for VK_KHR_image_format_list extension
GLES sRGB extensions allows for a texture to be respecified, with say
the sRGB_override extension, which will require us to reinterpret the
data in the texture in sRGB colorspace (or linear depending on the
format of the texture).
If the underlying ICD supports VK_KHR_image_format_list extension we
create a texture's backing VkImage with the
VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT enabled since we already know the
format we might need to reinterpret the texture as.
Bug: angleproject:3609
Bug: angleproject:4561
Bug: angleproject:5281
Change-Id: Ia4bed596ed3000f8af1a8fd73fb8e6c2cb9b5d6e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2513110
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3980b1f8
|
2020-10-27T10:01:05
|
|
Refactor FrameCapture.cpp to use common utility
The frame-capture-specific AndroidGetEnvFromProp() function has been
ported to the general utility, GetEnvironmentVarFromAndroidProperty().
Bug: b/170249632
Change-Id: I97de8205ceef140dfd8fab8e6f2d52b90cd996cf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2502772
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
a51b57fa
|
2020-10-30T10:00:05
|
|
Revert "Vulkan: Add features to modify sampling parameters"
Bug: b/167404532
Change-Id: Iae19dfe165074e8c01216312bddd744c4fb504a4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2510012
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6bc362c4
|
2020-10-18T19:09:47
|
|
Allow single threaded CommandProcessor
In replacing the legacy CommandQueue code with the threading
capable CommandProcessor it would be good to be able to run the
CommandProcessor in a single-thread environment. This CL changes the
meaning of the feature flags for the commandProcessor and
asynchronousCommandProcessing so that enabling commandProcess only
changes the code paths to use the command processor but work it still
done as part of the submitting thread (e.g. ContextVk).
Enabling asynchronousCommandProcessing will cause a separate worker
thread to be spawned which will asynchronously process the commands.
This allows us to switch to the CommandProcessor without threading and
then enable threading once performance issues are resolved.
Bug: b/161912801
Bug: b/170329600
Change-Id: I534862b109a7e7708108190b7c3e894071d4c2ed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2483580
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
8ace36f8
|
2020-10-30T09:51:16
|
|
Revert "Add a Vulkan feature to compress float32 vertex formats."
Bug: b/167404532
Bug: b/161716126
Change-Id: I95157a006d5c1fd2d3c0c2c2be37fa0403c07f93
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2510011
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
e895ced6
|
2020-10-29T09:06:00
|
|
Vulkan: Add OES_shader_image_atomic support
Add support for shader builtins and enable the extension.
Bug: angleproject:3578
Tests: dEQP-GLES31.functional.*image_atomic*
Change-Id: Idd45b2ee62efe1474c6c5947c77da64ff2221bf6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2505540
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
45881ab3
|
2020-10-26T16:15:16
|
|
Enable debug-util markers with an env var/property
Enable the Vulkan debug-util markers by setting the
ANGLE_ENABLE_DEBUG_MARKERS" environment variable to any 1+-character
value. On Android, this is set with the "debug.angle.markers" Android
property.
Bug: b/170249632
Change-Id: I66503fac71397c59cc641dd903faad152e0ec449
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2500186
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
94900b69
|
2020-10-24T03:46:44
|
|
Vulkan: Remove VVL warning suppression for push constants
Bug: angleproject:5191
Change-Id: Ic4a64ad0bf4cdf6b3ed8677dd45ee940d0da30d9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2496245
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6a35cadc
|
2020-10-23T17:14:44
|
|
Suppress VUID-vkCmdDraw-None-02698 validation
A bug in Vulkan-ValidationLayers is stopping changes from being rolled
into ANGLE. Suppress this warning for now, until the root cause is
addressed.
Bug: angleproject:5191
Change-Id: I7c6cb65055bdc7b2eb3679f26f09530b1cff3775
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2495543
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
de3a7180
|
2020-10-23T10:54:46
|
|
Vulkan: Reduce scope of clear workaround
Forcing draw for clear only appears to be needed on Pixel 2.
Test: angle_perftest --gtest_filter="*free_fire*"
Bug: angleproject:4836
Change-Id: I4446adc04a8e5cf7b0bfef68ec70122e847755a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2495484
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ed876984
|
2020-10-03T11:00:36
|
|
Vulkan: functionally complete worker thread
Working on enhancing worker thread to completely own primary command
buffers. This will include not only processing SCBs from main thread
into a primary, but also submitting those command buffers to the queue.
The CommandProcessor is a vk::Context so it can handle errors in the
worker thread. When the main thread submits tasks to the worker
thread it also syncs any outstanding errors from the worker.
Include asynchronousCommandProcessing feature that will control
whether the worker thread task does it's work in parallel or not. If
false, we wait for the thread to complete it's work before letting the
main thread continue. If true, the thread can execute in parallel with
the main thread.
Bug: b/154030730
Bug: b/161912801
Change-Id: I00f8f013d6cbb2af12a172c4f7927855db2f0ebf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2328992
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7bbe497a
|
2020-10-16T14:46:45
|
|
Vulkan: Implement EXT_texture_sRGB_decode
Implement EXT_texture_sRGB_decode. This builds on the existing
functionality from EXT_texture_sRGB_override, with 2 major edge
cases:
1. sRGB_decode allows the texture state to be overridden by
sampler state, which is implemented by forcing a a texture state
sync during updateActiveTextures if a texture is bound to the same
unit as a sampler with that state
2. texelFetch calls require us to reenable decoding, regardless
of decode state. We add a new compiler pass
(FlagSamplersWithTexelFetch) to mark samplers that are used with
texelFetch in order to support this.
This change also re-enables EXT_texture_sRGB_R8, which was disabled
due to a dEQP bug that this change will bypass.
Bug: angleproject:3609
Bug: angleproject:4503
Test: dEQP.GLES31/functional_srgb_texture_decode_skip_decode_*
Test: GLES31/functional_state_query_texture_*_srgb_decode_*
Test: GLES31/functional_state_query_sampler_*_srgb_decode_*
Test: GLES31/functional_debug_negative_coverage_*_srgb_decode_*
Test: GLES31/functional_android_extension_pack_extensions_ext_texture_srgb_decode
Test: angle_end2end_tests --gtest_filter=SRGBTextureTest.*Vulkan*
Change-Id: I4a67e487dc82e2f57c8c87d4bcd8ef442b6fe220
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2359481
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
43b4fefd
|
2020-10-14T20:48:37
|
|
Revert "Vulkan: Disable UNASSIGNED-CoreValidation-DevLimit-MissingQueryCount"
This reverts commit a5db7d6eb5284359930b3b82507f96a52c62b6e1.
Reason for revert: VVL rolled with the fix.
Original change's description:
> Vulkan: Disable UNASSIGNED-CoreValidation-DevLimit-MissingQueryCount
>
> Disable UNASSIGNED-CoreValidation-DevLimit-MissingQueryCount while the
> Khronos issue is investigated.
>
> Bug: angleproject:5148
> Change-Id: If3cd4b028182a06411b928417e7c778ea02189d1
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2462075
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Tim Van Patten <timvp@google.com>
TBR=timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: angleproject:5148
Change-Id: Ibb66370334554773dda3e849d0bc9f3e8f8577fc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2472997
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
1e435d07
|
2020-10-14T13:33:10
|
|
Vulkan: Support dumping VMA stats string
This CL adds support for dumping the VMA stats string, which can be
given to VmaDumpVis.py to visualize the allocations that the VMA has
performed.
To enable dumping the string, set:
RendererVk.cpp
rx::kOutputVmaStatsString = true
Copy the desired JSON output into a text file, and pass that to
VmaDumpVis.py:
python3 \
third_party/vulkan_memory_allocator/tools/VmaDumpVis/VmaDumpVis.py \
-o stats.png stats.txt
The legend for the visualization is available at:
https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/tree/master/tools/VmaDumpVis
Bug: angleproject:2162
Test: Manual verification
Change-Id: Ic8c1002805dd57e594df724bcf1cdbc1d1599a3e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2472525
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
fa47b9a4
|
2020-10-14T15:42:17
|
|
Revert "Vulkan: Disable vkCreateDevice-physical-device-features-not-retrieved"
This reverts commit 4dae43d877763390c56435fb0126e310ee515fb8.
Reason for revert: VVL rolled with the fix.
Original change's description:
> Vulkan: Disable vkCreateDevice-physical-device-features-not-retrieved
>
> Disable
> UNASSIGNED-BestPractices-vkCreateDevice-physical-device-features-not-retrieved
> while the Khronos issue is investigated.
>
> Bug: angleproject:5149
> Change-Id: I680cf264d6356cf219826902d7fdf2304e27ebab
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2461475
> Commit-Queue: Tim Van Patten <timvp@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
TBR=timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: angleproject:5149
Change-Id: I0a338983ac0804d5bb0e41e592f177372be66d5c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2471556
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
d9a88d63
|
2020-09-28T17:58:31
|
|
Vulkan: Support OES_texture_cube_map_array extension
Add support for GL_OES_texture_cube_map_array to the Vulkan backend
if the underlying ICD supports creation of of cube array ImageViews
Bug: angleproject:3584
Test: dEQP-GLES31.functional.fbo.color.texcubearray.*
Change-Id: I636cbf347d718abfc1600119b312578370b8e02e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2437989
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5dd82cac
|
2020-10-13T09:58:01
|
|
Vulkan: Remove Arm from perFrameWindowSizeQuery
The perFrameWindowSizeQuery feature was enabled for Arm, based on a
faulty dEQP test, that says that it is resizing a window on Android,
but doesn't actually. The Arm team has verified that this feature is
no longer needed for Arm/Mali, and so it is being removed.
Bug: b/170733470
Bug: angleproject:5150
Change-Id: I8b9d7cb45983b6bbf8d52d37bf5b237f2c3e4fe4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2468176
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
298c2768
|
2020-10-12T10:50:39
|
|
Add PowerVR Vendor ID & Vulkan GL Line Emulation Exclusion
Adds the PowerVR VendorID into the accepted vendor list, and prevent
basic GL line emulation from being ran on PowerVR hardware as it's
not required on those platforms, yet causes CTS failures when enabled.
Fixes a variety of line failure tests across OGLES3/3.1 test suites
seen on PowerVR hardware.
Bug: angleproject:5145
Change-Id: I7383f1c09d026b8d33e6fbda66418c5f8b7f90bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2462094
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
df6b7298
|
2020-10-12T13:39:09
|
|
Vulkan: Use StoreOp_None_QCOM for read only depth stencil buffer
For read only depth stencil buffers, there is no need to store depth or
stencil value. But we can not use DontCare for storeOp because vulkan
core spec says DontCare indicates data is undefined after this.
VK_QCOM_render_pass_store_ops extension introduces a new store op that
will leave data defined but skip the store. This CL utilize this if the
extension is available.
Bug: angleproject:5055
Change-Id: I104f3d01eb342a2d0cc900f342430e901bde1bff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2462604
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f8070feb
|
2020-10-09T11:03:29
|
|
Vulkan: Use depthClamp to clear depth where available
This will avoid breaking render pass if clearing depth in clearWithDraw.
Bug: angleproject:4836
Change-Id: I50242d1115efc91059923143f6ae5fd25fb3d36f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2462717
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4dae43d8
|
2020-10-08T11:04:50
|
|
Vulkan: Disable vkCreateDevice-physical-device-features-not-retrieved
Disable
UNASSIGNED-BestPractices-vkCreateDevice-physical-device-features-not-retrieved
while the Khronos issue is investigated.
Bug: angleproject:5149
Change-Id: I680cf264d6356cf219826902d7fdf2304e27ebab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2461475
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a5db7d6e
|
2020-10-08T11:01:46
|
|
Vulkan: Disable UNASSIGNED-CoreValidation-DevLimit-MissingQueryCount
Disable UNASSIGNED-CoreValidation-DevLimit-MissingQueryCount while the
Khronos issue is investigated.
Bug: angleproject:5148
Change-Id: If3cd4b028182a06411b928417e7c778ea02189d1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2462075
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
9f5eb0b8
|
2020-10-05T08:18:05
|
|
Vulkan: Add OES_sample_shading extension support
Support OES_sample_shading extension if the underlying
Vulkan ICD supports sampleRateShading.
Bug: angleproject:3587
Tests: dEQP-GLES31.functional.sample_shading.*
Change-Id: I1b324c1ad3ea3b2157d3cbe0abcdf7085aa4231b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2444213
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bc4ec4c1
|
2020-10-05T17:10:18
|
|
Vulkan: Plumb OpenGL ES commands to AGI/debuggers
Use vkCmd*DebugUtilsLabelEXT() calls to delimit all GLES commands, and
group them under GLES draw/dispatch calls. Plumb calls from the EVENT
macro (for every GL entrypoint) to vkCmd*DebugUtilsLabelEXT() via a
newly-implemented DebugAnnotatorVk class. Use a new dirty bit so that
cached entrypoints are associated with a triggering draw/dispatch
command.
The DebugAnnotatorVk::beginEvent() method saves a string in a vector
of all GL commands in ContextVk. The dirty bit converts the strings
into begin-end vkCmd*DebugUtilsLabelEXT() pairs. The
DebugAnnotatorVk::endEvent() method makes the final
vkCmdEndDebugUtilsLabelEXT() call for a draw/dispatch command.
Enable the OGL->VK mapping feature by setting
"angle_enable_trace = true" in GN args.
Bug: b/162068318
Bug: b/169243237
Change-Id: I61b6a8d113168c0ce578d6efd002d8a393659aba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2451517
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
08142700
|
2020-10-01T19:30:03
|
|
Work-around test runner & DebugAnnotator
Note: This precedes another CL that needs this change.
DebugAnnotator uses a global variable. The test runner doesn't change
state between testing different back-ends. This works-around the
problem by setting the global variable when the context is switched.
Because the GL back-end doesn't have its own DebugAnnotator sub-class,
add a Display* to DisplayImpl::makeCurrent(), so that
DisplayGL::makeCurrent() can install the front-end-Display's
DebugAnnotator.
Note: the Vulkan back-end gets this fix even though the new
DebugAnnotatorVk class will be added in a follow-on CL.
Bug: b/162068318
Bug: b/169243237
Bug: angleproject:5121
Change-Id: If08626a5310f9b4e3210e1a897a6886248e4d8ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2451423
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
da61c40e
|
2020-10-06T01:57:55
|
|
Revert "Work-around test runner & DebugAnnotator"
This reverts commit e44c94d96a9b65615fe8f5038e124763ac8c45e5.
Reason for revert: Breaks build of DisplayGbm on ChromeOS:
src/libANGLE/renderer/gl/egl/gbm/DisplayGbm.{h,cpp}
First failing builds:
https://ci.chromium.org/p/chromium/builders/ci/ChromeOS%20FYI%20Release%20%28amd64-generic%29/1608
https://ci.chromium.org/p/chromium/builders/ci/ChromeOS%20FYI%20Release%20%28kevin%29/2212
Original change's description:
> Work-around test runner & DebugAnnotator
>
> Note: This precedes another CL that needs this change.
>
> DebugAnnotator uses a global variable. The test runner doesn't change
> state between testing different back-ends. This works-around the
> problem by setting the global variable when the context is switched.
>
> Because the GL back-end doesn't have its own DebugAnnotator sub-class,
> add a Display* to DisplayImpl::makeCurrent(), so that
> DisplayGL::makeCurrent() can install the front-end-Display's
> DebugAnnotator.
>
> Note: the Vulkan back-end gets this fix even though the new
> DebugAnnotatorVk class will be added in a follow-on CL.
>
> Bug: b/162068318
> Bug: b/169243237
> Bug: angleproject:5121
> Change-Id: I748e8a1fd09b72e07242ac7fb39154537dcce534
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2444095
> Reviewed-by: Ian Elliott <ianelliott@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
> Commit-Queue: Ian Elliott <ianelliott@google.com>
TBR=courtneygo@google.com,ianelliott@google.com,jmadill@chromium.org
Change-Id: I99df2716951726ead24961dc3d27a7ec63aeda80
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: b/162068318
Bug: b/169243237
Bug: angleproject:5121
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2451420
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
|
|
e44c94d9
|
2020-10-01T19:30:03
|
|
Work-around test runner & DebugAnnotator
Note: This precedes another CL that needs this change.
DebugAnnotator uses a global variable. The test runner doesn't change
state between testing different back-ends. This works-around the
problem by setting the global variable when the context is switched.
Because the GL back-end doesn't have its own DebugAnnotator sub-class,
add a Display* to DisplayImpl::makeCurrent(), so that
DisplayGL::makeCurrent() can install the front-end-Display's
DebugAnnotator.
Note: the Vulkan back-end gets this fix even though the new
DebugAnnotatorVk class will be added in a follow-on CL.
Bug: b/162068318
Bug: b/169243237
Bug: angleproject:5121
Change-Id: I748e8a1fd09b72e07242ac7fb39154537dcce534
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2444095
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
6534a6f8
|
2020-10-02T01:10:54
|
|
Revert "Vulkan:Add debug labels for OpenGL calls"
This reverts commit 3705fc41315b50a64299ecb1d75015a33fefd6aa.
Reason for revert: Causes errors on Debug bots. See bug.
Bug: angleproject:5121
Original change's description:
> Vulkan:Add debug labels for OpenGL calls
>
> Implement the DebugAnnotatorVk class, and plumb the EVENT macro in the
> GL entrypoints to save a string of call info in the vector of all
> GL calls in ContextVk.
>
> Then add a vkCmdBeginDebugUtilsLabelEXT() call that includes the
> OpenGL draw/dispatch call prior to any Vulkan Draw or Dispatch calls.
> Also embedded under that label add a second
> vkCmdBeginDebugUtilsLabelEXT() call labeled "OpenGL Commands" that
> includes all of the OpenGL calls leading up to the draw/dispatch.
> Each individual OpenGL call is then given its own
> vkCmdBegin/EndDebugUtilsLabelEXT() pair so that the complete sequence
> of GL calls leading up to a draw call is visible for each Draw.
>
> Enable the OGL->VK mapping feature by setting
> "angle_enable_trace = true" in GN args.
>
> Note: This will create an ANGLE APK on Android that generally won't
> work with games, unless launched by AGI (which provides the debug
> utils extension). A future version will disable these labels unless
> the debug utils extension is found.
>
> Bug: b/162068318
> Bug: b/169243237
> Change-Id: I09886f17fa9287528c12552698738ea1fe2a4b8c
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2427557
> Commit-Queue: Ian Elliott <ianelliott@google.com>
> Reviewed-by: Tim Van Patten <timvp@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
TBR=courtneygo@google.com,ianelliott@google.com,timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: b/162068318
Bug: b/169243237
Change-Id: I772d549213e1ad64ae58a1937e5de0f7ea740084
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2444094
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
3705fc41
|
2020-09-28T21:40:57
|
|
Vulkan:Add debug labels for OpenGL calls
Implement the DebugAnnotatorVk class, and plumb the EVENT macro in the
GL entrypoints to save a string of call info in the vector of all
GL calls in ContextVk.
Then add a vkCmdBeginDebugUtilsLabelEXT() call that includes the
OpenGL draw/dispatch call prior to any Vulkan Draw or Dispatch calls.
Also embedded under that label add a second
vkCmdBeginDebugUtilsLabelEXT() call labeled "OpenGL Commands" that
includes all of the OpenGL calls leading up to the draw/dispatch.
Each individual OpenGL call is then given its own
vkCmdBegin/EndDebugUtilsLabelEXT() pair so that the complete sequence
of GL calls leading up to a draw call is visible for each Draw.
Enable the OGL->VK mapping feature by setting
"angle_enable_trace = true" in GN args.
Note: This will create an ANGLE APK on Android that generally won't
work with games, unless launched by AGI (which provides the debug
utils extension). A future version will disable these labels unless
the debug utils extension is found.
Bug: b/162068318
Bug: b/169243237
Change-Id: I09886f17fa9287528c12552698738ea1fe2a4b8c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2427557
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b156a753
|
2020-09-28T16:43:50
|
|
Move LayoutCaches to ShareGroup
Testing with TSN found a race condition with RefCounted objects
(DescriptorSetLayout and PipelineLayout). Rather than add more lock
calls to protect accesses to mRefCount and mObject recommendation was to
put these caches in the ShareGroup (basically part of the context).
Locking at the GL level will ensure that two threads that share the same
context will not access the ShareGroup at the same time.
The ShareGroup also works because these layouts are not destroyed until
the context is destroyed so don't have to worry about other threads
(e.g. command processor thread) accessing them.
Bug: b/168744561
Change-Id: Icc0aa07bf4787a69572d6ec62da2f21d286232c3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2437509
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
b3859a3c
|
2020-09-30T12:52:39
|
|
Vulkan: disable glFlush deferral optimization for QualComm GPUs.
It appears this optimization causing Manhattan performance regression on
pixel4 with QualComm GPU. It does have a measurable performance
improvement on S20+ that has ARM GPU. This disables this optimization
for QualComm but still leaves it enabled on other GPUs.
Bug: b/166475273
Change-Id: I9c9cd55ab169463fc8cc16d7d917be660cb2f363
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2441667
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
a3b16c6b
|
2020-08-28T16:14:30
|
|
Vulkan: Workaround vkCmdClearAttachment bug on Pixel
Adds a workaround to use draw calls to clear color instead of
vkCmdClearAttachment when the clear happens in the middle of render
pass. On Pixel phones, vkCmdClearAttachment races with the previous
draw calls in the render pass.
Bug: b/166809097
Change-Id: I8c96b87793da191757635658ad4ee2c3a7875aca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2382416
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
65311748
|
2020-09-25T13:11:26
|
|
Vulkan: Disable MSRTT on AMD/Windows
Due to buggy drivers on the bots
Bug: chromium:1132366
Change-Id: Ia7a021991fcbd409289915f9121a07d8e5b232c6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2431570
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
54dbd5e7
|
2020-09-23T16:10:12
|
|
Vulkan: Add mutex around queueSubmit related data
There are several queueSubmit related members of RendererVk that can be
accessed from multiple threads. Adding mutex around thoses accesses
resolves race condition flagged by TSAN.
Add stress test for QueueSerial handling
Add test to catch race issue in garbage collection found by TSAN.
Test:
angle_end2end_tests MultithreadingTest.MultiContextDrawWithSwapBuffers
angle_end2end_tests MultithreadingTest.MultiContextCreateAndDeleteResources
Bug: b/168744561
Change-Id: I238cce9052476710778a3b35f8531891d90ddd6e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2415402
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
a76b6836
|
2020-09-17T22:40:42
|
|
Vulkan: Support MSRTT depth/stencil resolve
VK_KHR_depth_stencil_resolve is used by this change to resolve
depth/stencil multisampled-render-to-texture renderbuffers.
This extension is not widely supported yet. If it's not present, the
depth/stencil resolve operation is silently ignored and the renderbuffer
acts as a normal multisampled one. This is not correct, but our primary
user (Chrome), and most applications don't care for the resolved
depth/stencil data. In fact, it's recommended for the depth/stencil
attachment to be invalidated after rendering.
Exposing EXT_multisampled_render_to_texture even in the absence of
depth/stencil resolve allows the majority of the applications to still
take advantage of MSRTT color attachments.
Bug: angleproject:4836
Change-Id: I6ba4187344a0c9330d2c77bdc5e2c6fc5483c299
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2417645
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
f0b02054
|
2020-08-06T20:55:05
|
|
Add a Vulkan feature to compress float32 vertex formats.
Use the vertex conversion pipeline in VertexArrayVk to detect
static vertex data and convert float32 vertices to float16. This
feature is useful for determining if an allication is vertex
bandwidth bound and seeing what gains could be had by using smaller
attributes.
This feature could be implemented in ANGLE's frontend but new
infrastructure for converting and storing the converted attributes
would need to be added to gl::VertexArray. Our backends already
have the functionality needed to handle unsupported attribute formats
and this can be repurposed for compressing vertex formats.
Bug: b/167404532
Bug: b/161716126
Change-Id: I9a09656a72e8499faa4124adf876d7261c8341c9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2342285
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b44af662
|
2020-09-22T10:20:16
|
|
Vulkan: Fix racy access to VkPipelineCache
Missing a lock(mPipelineCache).
Bug: b/168744561
Change-Id: I7e57f9feed7431d0fdfec153e7e8e47fe9a2fa0e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2424463
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
49f01a53
|
2020-09-18T11:38:14
|
|
Vulkan: Add features to modify sampling parameters
Add features to optionally increase the LoD offset of all sampling
operations or disable linear filtering. These can be used to compare
performance without recompiling ANGLE.
These features could be potentially implemented in the frontend it is
more difficult because the features are not available at texture
initialization time.
Bug: b/167404532
Change-Id: Ifcf56fbcf130c24c54834737733bbffa5ade3959
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2411475
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ed899835
|
2020-09-11T21:21:55
|
|
Vulkan: Allocate descriptor pools with layouts
Descriptor set layouts and pools are very tightly coupled, since their
binding types and counts must match to ensure the number of available
descriptor sets within a pool remains accurate. To enforce this, the
descriptor pools will now keep a copy of the VkDescriptorSetLayout that
the pool was created for, which is verified when a descriptor set is
allocated from the pool. If the handles don't match, an ASSERT() will
fire.
Bug: angleproject:5033
Test: CQ
Change-Id: I4faf82c24f31052e57b656c968788bb0c131b619
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2407282
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
f39e0f01
|
2020-09-07T23:07:37
|
|
Vulkan: Use subpass to unresolve render-to-texture attachments
GL_EXT_multisampled_render_to_texture allows singlesampled textures to
be used with multisampled framebuffers in such a way that the final
resolve operation is automatically done. In Vulkan terminology, the
render-to-texture GL attachment is used as a Vulkan subpass resolve
attachment with an implicit (ideally-)lazy-memory multisampled image as
the color attachment.
This extension expects that if the texture is drawn to after the
automatic resolve, the implicit multisampled image would take its
fragment colors from the singlesampled image. In other words, the
opposite of a resolve operation should be automatically performed at the
start of the render pass. This change refers to this operation as
"unresolve".
The goal of this extension is to allow tiling GPUs to always keep
multisampled data on tile memory and only ever load/store singlesampled
data. The latter is achieved by using a subpass resolve attachment and
setting storeOp of the multisampled color attachment to DONT_CARE. This
change achieves the former by using an initial subpass that uses the
resolve attachment as input attachment, draws into the multisampled
color attachment and sets loadOp of said attachment to DONT_CARE.
Bug: angleproject:4881
Change-Id: I99f410530365963567c77a7d62fc9db1500e5e3e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2397206
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e1f7e2de
|
2020-09-17T08:25:40
|
|
Vulkan: lock around accesses to mSharedGarbage
Bug: b/168744476
Change-Id: I26205e7d29260ffdefbd5b2971b570c8bff7187f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2416236
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
3c64fe30
|
2020-09-17T08:27:04
|
|
Vulkan: need to serialize access to mFenceRecycler
It's possible for multiple threads to touch mFenceRecycler so need to
protect it with a mutex to prevent race conditions.
Bug: b/168744476
Change-Id: I9898d2e9ebf0974581a1074cbda5be41a09cd790
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2415401
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
68c424fe
|
2020-09-17T10:34:07
|
|
Vulkan: Workaround oldSwapchin bug on Android
When vkCreateSwapchainKHR is called with a valid oldSwapchain, the
Android framework destroys the images in oldSwapchain. This is not
correct, as it should be deferred to the actual vkDestroySwapchainKHR
call performed later by ANGLE. This is because rendering to the
oldSwapchain could still be in progress.
While this issue affects all of Android, currently only ARM shows any
symptoms. A workaround is added for ARM to vkDeviceWaitIdle before
recreating the swapchain if oldSwapchain is valid.
Bug: angleproject:5061
Change-Id: I308e4798c6418d7891d880218b0ebcfd7a795643
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2416238
Reviewed-by: Sunny Sun <sunny.sun@arm.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6939a023
|
2020-09-17T12:03:12
|
|
Vulkan: Fix racy access to VkPipelineCache.
Use a mutex to guard against the object init. The accesses to the
cache internals are internally synchronized. There is a Vulkan ext
that allows for external cache synchronization that we could
investigate at some point.
Detected by looking at MultithreadingTest with TSAN enabled.
Bug: b/168744561
Change-Id: I1d4744e1aa970bcd57cac49f7ecaf8c238ea61c2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2415183
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
ed01473e
|
2020-09-12T13:01:05
|
|
Vulkan: Fix blendEnable-02023 VU
Enable BlendIntegerTest
Add DrawBuffersTest.BlendWithGaps test
Add BlendPackedTest
Bug: angleproject:4548
Bug: angleproject:4571
Bug: angleproject:4583
Change-Id: I139183099b26f0fe1ac9e43f96d18b8ccb134a2f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2407772
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c03c4490
|
2020-08-28T11:03:20
|
|
Vulkan: Defer glFlush issued in middle of renderpass to endRenderpass
Manhattan is calling glFlush in middle of a renderpass. This CL defers
the flush that issued in the middle of renderpass to the end of
renderpass.
Bug: b/166475273
Change-Id: I6baa3898d5efc456e2205c44e13c64f3d79d1464
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2381942
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
19b4dfc6
|
2020-08-11T15:53:49
|
|
Enable precision qualifiers.
This enables precision qualifiers to be included in the translated GLSL
and the generated SPIR-V.
We do not enable precision qualifiers on Pixel 2 with Android Q due to
bugs in the Vulkan driver. Issues appear to be fixed with later Android
releases and later devices.
Bug: angleproject:3078
Change-Id: Ia5f40befc7ec80fbb63fb6bbe88600301967f9c9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2350583
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
cbbf9587
|
2020-09-09T17:01:00
|
|
Fix ASAN issue with accessing application name
ASAN caught reference outside scope issue regarding
RendererVk::initialize. Need to have a local copy of the string so that
it stays alive for the Vulkan call.
Bug: b/168145220
Change-Id: I13d751a48fe86a5a3d603d892c86c5a7186f2606
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2402353
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d4b029e3
|
2020-09-08T11:00:56
|
|
Vulkan: Suppress VVL PushConstantOutOfRange errors
VVL Error: UNASSIGNED-CoreValidation-Shader-PushConstantOutOfRange
Bug: angleproject:5027
Change-Id: I60eef046df5569f4d76bf065ea6df7565793a6b9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2399178
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
a25b165a
|
2020-08-28T12:01:44
|
|
Vulkan: Add transient flag to command pool
Add the VK_COMMAND_POOL_CREATE_TRANSIENT_BIT flag when creating the
PersistentCommandPool since the command buffers are only used once and
then reset. Update the tracking bugs.
Bug: b/166641492
Bug: b/166793850
Change-Id: I5827b5df7dd150756325421fc6ff0283bbd8b8e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2381943
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: back sept 10 - Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
9a19a996
|
2020-08-26T09:00:50
|
|
Vulkan: Use 4 MB as preferredLargeHeapBlockSize for allocator.
This reduces preferredLargeHeapBlockSize from the default
value of 256 MB to 4 MB, which reduces the initial block
size from 32 MB to 512 KB.
4 MB is the same size as used by Chromium and Skia. It seems
to be a good compromise of not wasting unused allocated space
and not making too many small allocations.
This change is limited to non-Qualcomm GPUs as a number of
tests are failing on Qualcomm after this change and the
initial investigation indicates a potential driver bug. See
http://anglebug.com/4995 for more details.
Bug: chromium:1122718
Bug: fuchsia:58959
Change-Id: Ifdaf863ef38e72098a04ee57dec46ee71cab6ac3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2376891
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: David Reveman <reveman@chromium.org>
|
|
fde4d2f7
|
2020-08-28T04:19:25
|
|
Revert "Vulkan:Clean up best practices exceptions"
This reverts commit 15438d3f906f4dffbd445ef01a934ffe1b8ccfbe.
Reason for revert: Running end2end tests on Linux, this validation error pops a lot.
Original change's description:
> Vulkan:Clean up best practices exceptions
>
> Assign new bug ID for clean-up work. It appears that the
> UNASSIGNED-BestPractices-vkCreateCommandPool-command-buffer-reset
> error was already fixed.
>
> Bug: b/166641492
> Change-Id: I536017e0386cf5f57bb53bcba32d5df048050343
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2380510
> Reviewed-by: Tim Van Patten <timvp@google.com>
> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
> Commit-Queue: Tobin Ehlis <tobine@google.com>
TBR=tobine@google.com,courtneygo@google.com,timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org
Change-Id: I90ee856b8bcac3e3f2b8104fb8642185a26f3e63
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: b/166641492
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2381077
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
15438d3f
|
2020-08-27T12:36:10
|
|
Vulkan:Clean up best practices exceptions
Assign new bug ID for clean-up work. It appears that the
UNASSIGNED-BestPractices-vkCreateCommandPool-command-buffer-reset
error was already fixed.
Bug: b/166641492
Change-Id: I536017e0386cf5f57bb53bcba32d5df048050343
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2380510
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
7bb75ff6
|
2020-08-26T15:10:59
|
|
Disable forceOldRewriteStructSamplers on Mali.
The nested_array.*sampler2D_* tests can pass on Mali with disabled
forceOldRewriteStructSamplers.
Test: dEQP-GLES31.functional.uniform_location.nested_array.*sampler2D_*
Bug: angleproject:2703
Change-Id: I34368d6ce14b81e873e2a3d60a73da4a8a866884
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2377627
Commit-Queue: Amy Liu <Amy.Liu@arm.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c7645886
|
2020-08-24T16:47:21
|
|
Vulkan: Remove the flipViewportY feature
This was featurized as a workaround for Intel/Windows drivers that did
not render flipped in comparison to GL per Vulkan spec. This issue has
long since been fixed, and due to missing parentheses the feature was
accidentally unconditionally true for a long time already.
Bug: angleproject:4896
Change-Id: I1db55d298bd47df649ff1f03d287d0cfa7453ea7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2372632
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
682f9141
|
2020-08-18T10:57:40
|
|
Remove feedback loop support from back-end.
Front-end detection still in place and will be removed in a follow-up.
Removes the Vulkan feature and the special clear handling.
Bug: angleproject:4959
Change-Id: I5d44c3f7dbdb49d8aa0375f54b7148df09732ba2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2363208
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e689d316
|
2020-08-14T22:51:03
|
|
Vulkan: Don't end RenderPass on DS feedback loops.
Instead of always switching the Framebuffer to mask out depth/stencil
loops we now switch the RenderPass to a "read-only" depth/stencil mode.
Reduces the RenderPass count in Manhattan from 18->15. There are still
a couple extra RenderPasses inserted that we can get rid. We can merge
a few RenderPasses by retroactively changing a started RenderPass to
"read-only" when there are no prior recorded depth writes or clears.
Also adds a test to count the number of RenderPasses ANGLE generates in
DS feedback loop situaions.
Bug: angleproject:4959
Change-Id: I1855a45959655fc27ccd47a3469c1c672fc8fd9e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2357973
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
78d10017
|
2020-08-16T16:13:59
|
|
Vulkan: Enable VK_KHR_bind_memory2 extension
Don't assume support for VK_KHR_bind_memory2,
enable the extension, if supported, during device creation.
Also initialize all required extension functions for the
memory allocator.
Bug: angleproject:4966
Change-Id: I878939fb3324723675a2b7dec18ab453b2a9fc77
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2359529
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3e57e349
|
2020-08-12T12:48:34
|
|
Vulkan: Query application name from the system
While populating VkApplicationInfo::pApplicationName
we are hardcoding the value to "ANGLE", instead query
the value from the sytem.
Bug: angleproject:4955
Change-Id: I222d5d1c0f497bf708389caa048d8b180c1bdecc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2352625
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
1dcb3eb2
|
2020-08-06T15:02:34
|
|
Vulkan: Don't expose MSRTT on Mac/SwiftShader
Frequently causes failures as such:
[...:ERROR:drawing_buffer.cc(854)] Initialization failed to allocate backbuffer.
[...:INFO:CONSOLE(197)] "Unable to initialize webgl context.", source: (197)
Bug: chromium:1112986
Bug: angleproject:4937
Change-Id: I5058f78434c0ac49345fe1167043f2dca759b1b9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2341350
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4973a38f
|
2020-08-05T14:27:46
|
|
Supress VVL error about multi-instance heaps.
VVL added a new error that ANGLE hits on AMD Windows due to the way
VMA allocates memory.
Supressing to allow VVL to roll forward while we investigate.
Bug: angleproject:4928
Change-Id: I4afeb3fcc2e9fed96ff8276898a8c96c77206d3b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2339539
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
709472c9
|
2020-08-03T15:43:12
|
|
Vulkan: Fix variable scope bug during vkCreateInstance
While enabling best practices layer the struct that
gets added to the pNext chain is a stack variable and
goes out of scope beyond the if-check. Move the
struct variables out of local scope to prevent access
violation errors during vkCreateInstance.
Bug: b/156661359
Change-Id: Ifa470ff1e51d454782695adcf40b4db2aa1608a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2335747
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
07cdf421
|
2020-07-28T09:08:46
|
|
Vulkan: Add new validation skips
Skip new error UNASSIGNED-CoreValidation-Shader-InputNotProduced
and best practices warning
UNASSIGNED-BestPractices-vkCmdClearAttachments-clear-after-load
Bug: b/156661359
Bug: angleproject:4883
Change-Id: I05bf5cac46c54bfb32fa47ea6d3398bd534450f5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2323641
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
2c3ff0a0
|
2020-07-25T11:35:19
|
|
Vulkan: Enable VK_KHR_get_memory_requirements2 extension
Don't assume support for VK_KHR_get_memory_requirements2,
enable the extension, if supported, during device creation.
Bug: angleproject:4830
Change-Id: I0faf955aac8a2ae4dea636f349225672e6717662
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2319079
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
cf49403e
|
2020-07-21T11:40:56
|
|
Vulkan: Increase default uniform buffer size to 64K
Since these are per context, we can increase it (and subject to the
driver maxUniformBufferRange limit) to reduce the amount of descriptor
set allocated.
Bug: b/161391337
Change-Id: I89e5cf16ee377735c412e9a9a22c651e1c677ded
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2310910
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
dcdd6b6a
|
2020-05-14T14:36:31
|
|
Vulkan:Enable Validation best practices layer
When Vulkan Validation layers are enabled, also enable the
validation best practices layer which includes ARM's perfdoc
layer. Initially adding skips for all of the best practices
errors that are triggered so that these can be enabled by default.
Bug: b/156661359
Change-Id: I7eab9710bf9632d07ff6b80375d3ad1789d58f7c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2202634
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
8adc5469
|
2020-07-02T10:15:17
|
|
Vulkan: Generate mipmap in compute
An initial implementation based on AMD's FFX SPD (Single Pass
Downsampler).
Apart from requiring STORAGE_IMAGE support for the image format, the
following limitations are in place due to FFX SPD:
- Image must be 2D or 2D array (including cube maps)
- Image must be single-sampled
The following _can_ be supported, but not yet implemented:
- sRGB formats
- Integer formats
- depth/stencil formats
Bug: angleproject:4551
Change-Id: Ibc4d5cea701cca31e55e3d651540872bbd3b473f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2278713
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
234be194
|
2020-07-15T14:55:18
|
|
Vulkan: Move mEmptyBuffer from program to ContextVk
And merge that with TheNUllBuffer as well so that you only have one
dummy buffer per context.
Bug: b/161391337
Change-Id: I75fddb5c48393876e745ff237e11d9c5672ae10e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2300707
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
67980f13
|
2020-07-08T08:51:02
|
|
Vulkan: add Buffer/Texture/ImageViewSerial class
In a few places we need a unique ID to represent that object and use
that to compute hash key. Right now we are using Serial for that purpose
but it creates confusion with QueueSerial which we are using Serial to
track GPU progress. This CL changes these usage of Serial to
TextureSerial, SamplerSerial, ImageViewSerial type so that compiler can
perform type checking. It also adds BufferSerial in preparation for next
CL.
Bug: b/159457348
Change-Id: I8e2da69c2029e4ddbcf163981ae46f85e19f751b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2287426
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4ad0f250
|
2020-07-14T21:22:35
|
|
Revert "Vulkan: Enable VK_KHR_get_memory_requirements2 extension"
This reverts commit d98afb787a24285eccd554daa6b8de197187a636.
Reason for revert: Suspected for angle_perftests failure. See issue.
Bug: chromium:1105609
Original change's description:
> Vulkan: Enable VK_KHR_get_memory_requirements2 extension
>
> 1. Don't assume support for VK_KHR_get_memory_requirements2.
> Enable the extension, if supported, during device creation.
> 2. Also let VMA fill in the function pointers for these commands
> based on Vulkan API version -
> 1. vkGetBufferMemoryRequirements2KHR
> 2. vkGetImageMemoryRequirements2KHR
>
> Bug: angleproject:4830
> Change-Id: Icd0b3baf56732b5f5f49f320c1feb996204169ed
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2293633
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
TBR=syoussefi@chromium.org,jmadill@chromium.org,m.maiya@samsung.com
Change-Id: Ida9a333f897d87e7608d4fafe9da9f1fad0221e4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:4830
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2298146
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d98afb78
|
2020-07-10T17:11:15
|
|
Vulkan: Enable VK_KHR_get_memory_requirements2 extension
1. Don't assume support for VK_KHR_get_memory_requirements2.
Enable the extension, if supported, during device creation.
2. Also let VMA fill in the function pointers for these commands
based on Vulkan API version -
1. vkGetBufferMemoryRequirements2KHR
2. vkGetImageMemoryRequirements2KHR
Bug: angleproject:4830
Change-Id: Icd0b3baf56732b5f5f49f320c1feb996204169ed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2293633
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
120e1d66
|
2020-07-09T17:56:54
|
|
Vulkan: Set the wideLines features when available
Bug: angleproject:4827
Change-Id: I40fc893fdaf7135e2ad782a489b59c518346db9c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2290582
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
73b6b3a8
|
2020-06-03T14:38:34
|
|
Vulkan: Fully enable pre-rotation for Android
Bug: b/157667116
Change-Id: I3e5d41eed9b27eb2b49db853d85ec5c867dd2409
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2228366
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
f61272fb
|
2020-06-17T11:38:37
|
|
Add support for VK_KHR_sampler_ycbcr_conversion
This adds ability for applications to import Android Hardware Buffers
(AHBs) as OpenGL images which in turn can be sampled from and/or
written.
This was specifically tested with the common use case of importing a
buffer created by an media decoder and using that as a texture source to
include that video content on the screen. Tested with:
- Angry Birds 2 video player (for ads) requires YUV conversion.
- Basic Media Decoder example:
https://github.com/android/media-samples/tree/master/BasicMediaDecoder
Bug: b/155487768
Change-Id: I9255450f81aa4daa2aace7205d4f6c3f225abcca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2175103
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
65f7ab79
|
2020-07-02T10:04:48
|
|
Vulkan: Cleanup extension properties and features
Bug: angleproject:4551
Change-Id: Iae6b94027cfaca6c72318203a286865c2e3b19a9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2279133
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
62ff54eb
|
2020-05-12T13:27:21
|
|
Vulkan: Featurize shadow buffers
Shadow buffers help reduce the latency of glMap* operations
at the cost of CPU overhead. It might not be desirable to
incur such an overhead for all usecases. Featurize it but
enable it by default.
Bug: angleproject:4339
Change-Id: I6374618bf99677eef55fd50a139fb86f5ea70791
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2278102
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
b47cc50a
|
2020-06-22T10:59:09
|
|
Enable validation layer custom extensions
With this change, Vulkan-ValidationLayers will allow the specified
extensions to pass through, instead of being nulled out:
* VK_STRUCTURE_TYPE_SAMPLER_FILTERING_PRECISION_GOOGLE
* VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT
Bug: b/159027603
Bug: b/154620295
Change-Id: I0ace3acdac06a6c115834ef88b0c883fa2dd4744
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2246304
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7db2dcec
|
2020-06-19T07:01:08
|
|
Roll Vulkan-ValidationLayers from 04f0b691eb4c to 74ed6cfd05c1 (20 revisions)
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/04f0b691eb4c..74ed6cfd05c1
2020-06-18 tony@lunarg.com layers: Remove leading comma in lists
2020-06-18 mark@lunarg.com corechecks: Fix DrawIndexedIndirect VUID name
2020-06-18 jeremyk@lunarg.com tests: Add combined image sampler test
2020-06-18 jeremyk@lunarg.com layers: Add combined image sampler check
2020-06-18 jeremyk@lunarg.com layers: Add CMD_TYPE parameter to pipeline binding
2020-06-18 tony@lunarg.com layers: Add is_khr to acceleration_structure_state
2020-06-17 mark@lunarg.com tests: Don't run ManySmallIndexedDrawCall test on shieldTV
2020-06-17 s.fricke@samsung.com tests: Add export handleType VUIDs
2020-06-17 s.fricke@samsung.com layers: Add export handleType VUIDs
2020-06-17 s.fricke@samsung.com layers: Wrap non external AHB logic together
2020-06-17 s.fricke@samsung.com tests: Validate maxSamplerAllocationCount
2020-06-17 s.fricke@samsung.com layers: Validate maxSamplerAllocationCount
2020-06-17 s.fricke@samsung.com layers: Add function calls to error log messages
2020-06-17 mark@lunarg.com tests: Add filters for BP Android test failures
2020-06-17 mark@lunarg.com tests: Compile best practices tests for Android
2020-06-17 mark@lunarg.com tests: Replace setenv with private settings extension
2020-06-17 mark@lunarg.com layers: Add private settings extension and write support
2020-06-17 s.fricke@samsung.com layers: Remove invalid check for AHB format
2020-06-17 szilard.papp@arm.com tests: Adding test for triple buffering
2020-06-17 szilard.papp@arm.com practices: Adding checks for triple buffering
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-validation-layers-angle-autoroll
Please CC courtneygo@google.com on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md
Bug: None
Tbr: courtneygo@google.com
Change-Id: I8c35e56e998560c53e8b54bfd26749d334172b30
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2254490
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2919dc6e
|
2020-06-15T18:39:39
|
|
Add immutable samplers to descriptor set layout
To support YUV conversion we need to track the use of immutable samplers
in the descriptor set layout.
Bug: b/155487768
Change-Id: Ic7dc6a08551f5125c4a519b5cfada312f95ab914
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2225423
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
959037e0
|
2020-05-25T15:40:38
|
|
Vulkan: Preserve RPs on XFB changes when possible.
Instead of unconditonally ending the RenderPass we keep a set of
active XFB buffers in the ContextVk. This lets us re-use RPs when
we don't write to the same buffer repeatedly.
Reduces the RenderPass count in our Manhattan capture from 29->23.
Bug: angleproject:4622
Change-Id: I28c2d4d3db1490e5d07be3c48d21fd2cc6ff85d6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2196957
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b55f0f78
|
2020-06-02T18:01:24
|
|
Compress Program binaries saved in blob cache
The Android blob cache has a limit of 2MB, so ANGLE should compress the
Program binaries that are saved into it to maximize its effectiveness.
ANGLE will gzip the program binaries before being stored in the blob
cache and then uncompress them when retrieved. Using gzip, the binaries
are compressed to ~25% of their size when running the T-Rex benchmark.
Some examples (in bytes):
Uncompressed: 20193, Compressed: 4455
Uncompressed: 8767, Compressed: 2369
Uncompressed: 11144, Compressed: 2927
This doesn't appear to affect the T-Rex benchmark since all of the
programs are loaded/decompressed as part of the benchmark
initialization, and the programs are small enough to all fit in the
blob cache without compression.
Bug: b/155184635
Test: T-Rex, CQ
Change-Id: Ie6a101c32ab5fd49baae1cb7aecdd26a934e15af
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2227529
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
d80adf4e
|
2020-06-03T11:50:04
|
|
Vulkan: Remove non-triggering validation error suppression
Bug: angleproject:4510
Change-Id: I04f989943ec2abe17cfe90f32a276e20c5a42cea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2227811
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
17b4a877
|
2020-05-26T17:02:48
|
|
Vulkan: Pass API version to VMA.
This apparently can save on memory usage in the allocator.
Reported by penghuang@chromium.org.
Bug: angleproject:4685
Change-Id: I6f29280e3fe16f3388c4f8412e0acb09d7f16e58
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2216714
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0df92012
|
2020-06-03T17:08:43
|
|
Rename Platform.h to PlatformMethods.h.
"platform.h" is too common a name and causes headers to be
included incorrectly. Disambiguate the header using a more
specific name.
Solves a problem that came up with the GLES 1 tests and the
standalone test harness.
Bug: angleproject:3162
Change-Id: I88229a2c9407e0db57f5beee44daa11a4075f700
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2229065
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
b131d25f
|
2020-06-03T10:53:39
|
|
Vulkan: Remove validation error suppressions for VVL bug
These warnings were generated due to a validation layer bug, which is
presumably fixed now.
Bug: angleproject:4572
Bug: angleproject:4577
Bug: angleproject:4578
Bug: angleproject:4579
Bug: angleproject:4580
Bug: angleproject:4583
Change-Id: I8799c4e33bc38f83e0fdd364cf6e7eb607c39890
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2227810
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8f3aa154
|
2020-06-03T10:29:21
|
|
Vulkan: Remove validation error suppression for fixed issue
Bug: angleproject:3450
Change-Id: Ie88aedae6e4573b2c31e389f7d0ff5c8d1059647
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2227856
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
93577b20
|
2020-05-28T15:16:46
|
|
Vulkan: Move "null" buffer to RendererVk.
This will allow the TransformFeedback and other classes to share
the same buffer. Also should save a bit of memory.
Bug: chromium:1086532
Change-Id: I198170b4e09165a4770b68af6df9aa7b690e8d66
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2219138
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
b947498b
|
2020-05-28T13:06:13
|
|
Vulkan: Clean up VMA wrapper classes.
Make these more consistent with the rest of the wrapper classes.
Also handle some VkResult errors that were being ignored.
Will pave the way for better handling of buffer allocation error
conditions.
Bug: chromium:1086532
Change-Id: Idc5b3f0e2945b1f44f152d33e8cc572f83a6b658
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2219136
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
|
|
209cf8fa
|
2020-05-27T16:23:57
|
|
GGP: Check and enable VK_GGP_frame_token
Bug: angleproject:4668
Change-Id: I9ecbdf37e206cb6eb93699091bbff70ad898040f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2219032
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
02fa7313
|
2020-05-05T17:01:18
|
|
Vulkan:Initial worker thread disabled by default
Created new CommandProcessor class that can be run as a worker thread.
Running CommandProcessor within RendererVk as a worker thread that
takes a CommmandBufferHelper (CBH) ptr as the interface and processes
that CBH into a primary command buffer.
Main thread has a queue of CBH to draw from. After submitting a CBH to
the worker, it pulls next CBH from the queue. Worker thread releases CBH
back to the main thread queue when done.
Synchronization goes two ways:
1. Work submitted to worker thread is managaed with a mutex and
condition variable based around the work queue.
2. Available CBH ptrs for the main thread have a mutex and condition
variable that manages the CBH queue.
The worker thread is disabled by default, and, when enabled, it will
currently behave and perform as the non-threaded code. This is because
the kNumCommandBuffers const in ContextVk.h is set to 2. With only 2
command buffers, they will be assigned to the inside and outside
RenderPass command buffers respectively. Then, as soon as one is
submitted, the main thread will stall waiting for it to be completed
and put back into the queue mentioned in #2 above.
The next step is to move command submission to the worker thread and
update the number of command buffers so that processing/submission
will occur in parallel with the main thread. Right now there is a
race condition issue when attempting to run in parallel because the
main thread updates and submits the same primary command buffers
that are used in the worker thread, which is in violation of the
Vulkan spec.
The follow-on CL will fix this issue as the main thread will only
touch SecondaryCommandBuffers and the worker thread will be the
only thread touching the primary command buffers.
Bug: b/154030730
Change-Id: Ib0c518bbd7ca9a3a7e789f4e1f2f7131ddc0509e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2174719
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f5dace0f
|
2020-05-22T19:02:49
|
|
Vulkan: Increase GLES support to 3.1
Update getMaxConformantESVersion() to support GLES 3.1.
This requires skipping some tests on Nvidia due to XFB failures.
dEQP-GLES3.functional.transform_feedback.array_element.interleaved.*
dEQP-GLES3.functional.transform_feedback.array_element.separate.*
dEQP-GLES3.functional.transform_feedback.array.interleaved.*
dEQP-GLES3.functional.transform_feedback.array.separate.*
dEQP-GLES3.functional.transform_feedback.random.*
Bug: angleproject:3520
Test: CQ
Change-Id: I3de0e8f7a9e9c6e800be9eb2c04e713e1f88fc08
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2213810
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
d3d7b95b
|
2020-05-19T17:27:50
|
|
Vulkan:Migrate timer sync functions to one-off cmd buffer
ContextVk's getTimestamp() and synchronizeCpuGpuTime() were the two
places that mCommandQueue was used outside of processing
SecondaryCommandBuffers. Migrating those functions to use the one-
off command buffer instead. This will allow for the removal of
mCommandQueue from ContextVk as we migrate it to RendererVk
instead for threading phase2 development.
Bug: b/154030730
Change-Id: Ic00ce56739dadcdc4b5a1b1839e0e18603bfe0eb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2209312
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
33cf03cd
|
2020-05-20T20:45:34
|
|
Vulkan: change preferAggregateBarrierCalls to accomodate ARM on linux
Bug: angleproject:4633
Change-Id: Ic198cef1afbad7dc96cead690daa46f07a653e96
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2211321
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Sunny Sun <sunny.sun@arm.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
258d94f6
|
2020-05-18T16:21:50
|
|
Vulkan: Add workaround for nvidia to always merge barriers into one
vkCmdPipelineBarrier call
Nvidia preferes one barrier call than multiple calls with fine grained
stage dependency information. They do not care much about stage
dependency. This adds a feature flag that sets to true on nvidia and
will merge all barriers into one call.
Bug: angleproject:4633
Change-Id: I204484aa4c5989655f74d70a0eaa235c3c83f548
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2207635
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
4f343f3e
|
2020-05-13T14:11:51
|
|
Reland "Add support for GL_CHROMIUM_texture_filtering"
This is a reland of 38780ae3921d2570316119a881adfb9520e7e296 modulo the
changes to disable VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT, as
this was causing problems. With this landed, the extension will not work
on SwiftShader until we find a way to allow this extension through the
validation layers.
Bug: b/146423360
Bug: b/154620295
Change-Id: Ie09fc507c01a47be3bb227bc78771660170ba5d3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2199639
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3b82fdcf
|
2020-05-12T23:44:07
|
|
Revert "Add support for GL_CHROMIUM_texture_filtering"
This reverts commit 38780ae3921d2570316119a881adfb9520e7e296.
Reason for revert:
Breaks SWANGLE-VK:
05-12 23:42:28.612 22836 22861 D libEGL : dlopen_ext from APK (libEGL_angle.so) success at 0x79f4485a10
05-12 23:42:28.617 22836 22861 D libEGL : dlopen_ext from APK (libGLESv1_CM_angle.so) success at 0x79f4485eb0
05-12 23:42:28.619 22836 22861 D libEGL : dlopen_ext from APK (libGLESv2_angle.so) success at 0x79f4485c60
05-12 23:42:28.624 14223 14223 D StatusBar: disable<e i a s b h r c s > disable2<q i n >
05-12 23:42:28.633 14014 14057 V DisplayPowerController: Brightness [0.19986142] reason changing to: 'automatic', previous reason: 'automatic [ dim ]'.
05-12 23:42:28.635 22836 22861 D vulkan : searching for layers in '/data/app/~~0AfWfBsFEO78tqKlnanevg==/org.khronos.gl_cts-NOs3SGclHqlbcqe-08gHrw==/lib/arm64'
05-12 23:42:28.635 22836 22861 D vulkan : searching for layers in '/data/app/~~0AfWfBsFEO78tqKlnanevg==/org.khronos.gl_cts-NOs3SGclHqlbcqe-08gHrw==/base.apk!/lib/arm64-v8a'
05-12 23:42:28.632 22836 22836 W .khronos.gl_cts: type=1400 audit(0.0:218): avc: denied { ptrace } for scontext=u:r:zygote:s0 tcontext=u:r:untrusted_app_25:s0:c512,c768 tclass=process permissive=0 b/77925912 app=org.khronos.gl_cts
05-12 23:42:28.636 14014 14034 I EventSequenceValidator: Transition from ACTIVITY_LAUNCHED to ACTIVITY_FINISHED
05-12 23:42:28.637 22836 22861 F SwiftShader: external/swiftshader/src/Vulkan/libVulkan.cpp:425 vkCreateInstance TRACE_ASSERT: pCreateInfo->pNext sType = 1000247000
--------- beginning of crash
05-12 23:42:28.637 22836 22861 F libc : Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 22861 (.khronos.gl_cts), pid 22836 (.khronos.gl_cts)
Original change's description:
> Add support for GL_CHROMIUM_texture_filtering
>
> Chromium enables a custom extension, GL_CHROMIUM_texture_filtering, when
> using SwiftShaderGL, to enable high precision filtering. This change
> makes it so ANGLE also handles this same extension when using the
> SwiftShaderVK backend, by enabling the new
> VK_GOOGLE_sampler_filtering_precision custom extension.
>
> Bug: b/146423360
> Bug: b/154620295
> Change-Id: I69cafc1ccf5970a3d220ac7e13ec3c8fdd4a9643
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2185822
> Commit-Queue: Antonio Maiorano <amaiorano@google.com>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=geofflang@chromium.org,jmadill@chromium.org,amaiorano@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: b/146423360, b/154620295
Change-Id: I803d7a7baac81cf178b59c4bf2789346ec1d3f87
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2197168
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
38780ae3
|
2020-05-06T16:05:02
|
|
Add support for GL_CHROMIUM_texture_filtering
Chromium enables a custom extension, GL_CHROMIUM_texture_filtering, when
using SwiftShaderGL, to enable high precision filtering. This change
makes it so ANGLE also handles this same extension when using the
SwiftShaderVK backend, by enabling the new
VK_GOOGLE_sampler_filtering_precision custom extension.
Bug: b/146423360
Bug: b/154620295
Change-Id: I69cafc1ccf5970a3d220ac7e13ec3c8fdd4a9643
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2185822
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
605af42e
|
2020-03-04T21:52:53
|
|
Vulkan: Move ICD overrides to a common place
We also need the bundled ICDs and selection logic for certain tests that
create a vulkan instance. If we don't, the tests will use default vulkan
even if ANGLE is using swiftshader-vulkan. Tests of driver specific
handle types (e..g opaque fd) will fail in this case.
Bug: angleproject:4092
Change-Id: Iff089c9341b8b533ee8634923d0177c5dbcd5cc8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2088659
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|