Vulkan: Support emulated pre-rotation in dEQP testing

Similarly to end2end tests, the window dimensions are swapped with
emulated prerotation at 90 and 270 degrees, while maintaining to the
application that dimensions are as requested.

The following new command line argument can be used to select an
emulated prerotation:

    --emulated-pre-rotation=90
    --emulated-pre-rotation=180
    --emulated-pre-rotation=270

For example:

    $ ./angle_deqp_gles2_tests --use-angle=vulkan \
                               --deqp-case=*draw* \
                               --emulated-pre-rotation=270

Additionally, the deqp test expectations can be marked with the
following new tags to add suppressions for failing tests under
prerotation:

    PREROTATION
    PREROTATION90
    PREROTATION180
    PREROTATION270

Bug: angleproject:4901
Change-Id: I7a68c1a1e7da4366cde981469c589d8d900c40c5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2506810
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
This commit is contained in:
Shahbaz Youssefi
2020-10-29 00:31:49 -04:00
committed by Commit Bot
parent bef8124fa7
commit 09932e046b
14 changed files with 316 additions and 67 deletions

View File

@@ -206,17 +206,19 @@ bool EGLWindow::initializeDisplay(OSWindow *osWindow,
disabledFeatureOverrides.push_back("gen_multiple_mips_per_pass");
}
if (params.emulatedPrerotation == 90)
switch (params.emulatedPrerotation)
{
enabledFeatureOverrides.push_back("emulated_prerotation_90");
}
else if (params.emulatedPrerotation == 180)
{
enabledFeatureOverrides.push_back("emulated_prerotation_180");
}
else if (params.emulatedPrerotation == 270)
{
enabledFeatureOverrides.push_back("emulated_prerotation_270");
case 90:
enabledFeatureOverrides.push_back("emulated_prerotation_90");
break;
case 180:
enabledFeatureOverrides.push_back("emulated_prerotation_180");
break;
case 270:
enabledFeatureOverrides.push_back("emulated_prerotation_270");
break;
default:
break;
}
if (!disabledFeatureOverrides.empty())