Reland "Vulkan: Implement GL_EXT_multi_draw_indirect"

This is a reland of 79f9d163b4
* Added drawcount > 1 as a condition to fall back to
MultiDraw*IndirectGeneral().
* Expanded the tests to include cases with disabled support
for multiDrawIndirect.

Original change's description:
> Vulkan: Implement GL_EXT_multi_draw_indirect
>
> * Optimized the implementations of multiDrawArraysIndirect()
> and multiDrawElementsIndirect() for Vulkan
>   * Added helper functions to support drawArraysIndirect() and
> drawElementsIndirect() as special cases of multiDraw*Indirect
> functions.
>   * Added the flag to enable the multiDrawIndirect feature
> (drawCount > 1). The generic implementation is used if the
> flag is disabled.
>
> Bug: angleproject:6439
> Change-Id: Ibc653d93d355657f828de9c33da22428629e450f
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276044
> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>

Bug: angleproject:6439
Change-Id: I96c015855fabc8abbb87320a5ca71a8d92d61954
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3313412
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
This commit is contained in:
Amirali Abdolrashidi
2021-11-15 08:51:41 -08:00
committed by Angle LUCI CQ
parent 5f1a0f320e
commit d02875522d
11 changed files with 215 additions and 88 deletions

View File

@@ -245,6 +245,15 @@ bool EGLWindow::initializeDisplay(OSWindow *osWindow,
disabledFeatureOverrides.push_back("supportsViewportFlip");
}
if (params.supportsVulkanMultiDrawIndirect == EGL_TRUE)
{
enabledFeatureOverrides.push_back("supportsMultiDrawIndirect");
}
else if (params.supportsVulkanMultiDrawIndirect == EGL_FALSE)
{
disabledFeatureOverrides.push_back("supportsMultiDrawIndirect");
}
switch (params.emulatedPrerotation)
{
case 90: