Hash :
7bda9d73
Author :
Date :
2021-10-22T11:53:20
DisplayVkAndroid: Always expose EGL_RECORDABLE_ANDROID. Expose EGL_RECORDABLE_ANDROID in the config for all Vulkan drivers on Android to provide app compatiblity with "My Talking Tom 2" and "My Talking Tom Friends". Don't require config to be unavailable in EGLRecordableTest and request a config with EGL_RECORDABLE_ANDROID enabled, but do not check for results. Bug: angleproject:6612 Change-Id: I25113b7c7f9a4a3b13dc625f01d96ba91cb3c6d7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3237001 Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
//
// Copyright 2019 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// EGLRecordableTest.cpp:
// Tests of EGL_ANDROID_recordable extension
#include <gtest/gtest.h>
#include "test_utils/ANGLETest.h"
#include "test_utils/angle_test_configs.h"
#include "util/EGLWindow.h"
using namespace angle;
namespace angle
{
class EGLRecordableTest : public ANGLETest
{
protected:
EGLRecordableTest() {}
};
// Test that the extension is always available (it is implemented in ANGLE's frontend).
TEST_P(EGLRecordableTest, ExtensionAlwaysAvailable)
{
EGLDisplay display = getEGLWindow()->getDisplay();
ASSERT_TRUE(IsEGLDisplayExtensionEnabled(display, "EGL_ANDROID_recordable"));
}
// Check that the default message filters and callbacks are correct
TEST_P(EGLRecordableTest, CheckAllContexts)
{
EGLDisplay display = getEGLWindow()->getDisplay();
ANGLE_SKIP_TEST_IF(!IsEGLDisplayExtensionEnabled(display, "EGL_ANDROID_recordable"));
int nConfigs = 0;
ASSERT_EGL_TRUE(eglGetConfigs(display, nullptr, 0, &nConfigs));
ASSERT_NE(nConfigs, 0);
int nReturnedConfigs = 0;
std::vector<EGLConfig> configs(nConfigs);
ASSERT_EGL_TRUE(eglGetConfigs(display, configs.data(), nConfigs, &nReturnedConfigs));
ASSERT_EQ(nConfigs, nReturnedConfigs);
for (EGLConfig config : configs)
{
EGLint isRecordable;
eglGetConfigAttrib(display, config, EGL_RECORDABLE_ANDROID, &isRecordable);
}
const EGLint configAttributes[] = {
EGL_RED_SIZE, EGL_DONT_CARE, EGL_GREEN_SIZE, EGL_DONT_CARE, EGL_BLUE_SIZE,
EGL_DONT_CARE, EGL_ALPHA_SIZE, EGL_DONT_CARE, EGL_DEPTH_SIZE, EGL_DONT_CARE,
EGL_STENCIL_SIZE, EGL_DONT_CARE, EGL_RECORDABLE_ANDROID, EGL_TRUE, EGL_NONE};
EGLint configCount;
ASSERT_EGL_TRUE(
eglChooseConfig(display, configAttributes, configs.data(), configs.size(), &configCount));
ASSERT_EGL_SUCCESS();
}
} // namespace angle
ANGLE_INSTANTIATE_TEST_ES2(EGLRecordableTest);