Edit

kc3-lang/angle/src/tests/deqp_support/tcuANGLEPlatform.h

Branch :

  • Show log

    Commit

  • Author : Shahbaz Youssefi
    Date : 2020-10-29 00:31:49
    Hash : 09932e04
    Message : 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>

  • src/tests/deqp_support/tcuANGLEPlatform.h
  • /*-------------------------------------------------------------------------
     * drawElements Quality Program Tester Core
     * ----------------------------------------
     *
     * Copyright 2014 The Android Open Source Project
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *      http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     *
     */
    
    #ifndef TCU_ANGLE_WIN32_PLATFORM_H_
    #define TCU_ANGLE_WIN32_PLATFORM_H_
    
    #include "gluPlatform.hpp"
    #include "tcuDefs.hpp"
    #include "tcuPlatform.hpp"
    
    #ifndef _EGLUPLATFORM_HPP
    #    include "egluPlatform.hpp"
    #endif
    
    #include "platform/PlatformMethods.h"
    #include "tcuANGLENativeDisplayFactory.h"
    
    namespace tcu
    {
    
    class ANGLEPlatform : public tcu::Platform, private glu::Platform, private eglu::Platform
    {
      public:
        ANGLEPlatform(angle::LogErrorFunc logErrorFunc, uint32_t preRotation);
        ~ANGLEPlatform();
    
        bool processEvents() override;
    
        const glu::Platform &getGLPlatform() const override
        {
            return static_cast<const glu::Platform &>(*this);
        }
        const eglu::Platform &getEGLPlatform() const override
        {
            return static_cast<const eglu::Platform &>(*this);
        }
    
      private:
        // Note: -1 represents EGL_DONT_CARE, but we don't have the EGL headers here.
        std::vector<eglw::EGLAttrib> initAttribs(eglw::EGLAttrib type,
                                                 eglw::EGLAttrib deviceType   = -1,
                                                 eglw::EGLAttrib majorVersion = -1,
                                                 eglw::EGLAttrib minorVersion = -1);
    
        EventState mEvents;
        angle::PlatformMethods mPlatformMethods;
        std::vector<const char *> mEnableFeatureOverrides;
    };
    
    }  // namespace tcu
    
    #endif  // TCU_ANGLE_WIN32_PLATFORM_H_