Roll VK deps forward as of 8/31/2018
Roll Vulkan ANGLE dependencies forward as of 8/31/2018. This grabs some
new validation checks including point-related checks that may be
interesting for bug 2727.
One of these checks, related to PointSize, is firing so I've added some
code in the VK debug callback to suppress those error messages for now
and filed a separate bug (2796) to fix that issue in the renderer.
Had to overhaul the json gen script as validation changed how these are
generated. They now use a base template with some strings replaced to
account for platform and Vulkan header version. Offloaded all of that
work to our existing json generate script which was previously more of
an intelligent copy but now had some further intelligence for
transforming from input template into final json files.
Had to also roll glslang forward to meet shader validation dependency.
Bug: angleproject:2727
Change-Id: I929619cd258cddd6bc9c6743600e072c46736f5c
Reviewed-on: https://chromium-review.googlesource.com/1194617
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
diff --git a/src/libANGLE/renderer/vulkan/RendererVk.cpp b/src/libANGLE/renderer/vulkan/RendererVk.cpp
index d748b03..14d422d 100644
--- a/src/libANGLE/renderer/vulkan/RendererVk.cpp
+++ b/src/libANGLE/renderer/vulkan/RendererVk.cpp
@@ -78,6 +78,27 @@
return VK_SUCCESS;
}
+// Array of Validation error/warning messages that will be ignored, should include bugID
+constexpr std::array<const char *, 1> kSkippedMessages = {
+ // http://anglebug.com/2796
+ " [ UNASSIGNED-CoreValidation-Shader-PointSizeMissing ] Object: VK_NULL_HANDLE (Type = 19) "
+ "| Pipeline topology is set to POINT_LIST, but PointSize is not written to in the shader "
+ "corresponding to VK_SHADER_STAGE_VERTEX_BIT."};
+
+// Suppress validation errors that are known
+// return "true" if given code/prefix/message is known, else return "false"
+bool IsIgnoredDebugMessage(const char *message)
+{
+ for (const auto &msg : kSkippedMessages)
+ {
+ if (strcmp(msg, message) == 0)
+ {
+ return true;
+ }
+ }
+ return false;
+}
+
VKAPI_ATTR VkBool32 VKAPI_CALL DebugReportCallback(VkDebugReportFlagsEXT flags,
VkDebugReportObjectTypeEXT objectType,
uint64_t object,
@@ -87,6 +108,10 @@
const char *message,
void *userData)
{
+ if (IsIgnoredDebugMessage(message))
+ {
+ return VK_FALSE;
+ }
if ((flags & VK_DEBUG_REPORT_ERROR_BIT_EXT) != 0)
{
ERR() << message;