Wddm interface [7/n]: Add 2.3 interface with HW queue support

Change-Id: Ia0e829b8616b7060e39170aea0f1d2f123d73399
This commit is contained in:
Dunajski, Bartosz
2018-05-18 10:18:16 +02:00
committed by sys_ocldev
parent 39d55e5257
commit 71b844f522
27 changed files with 560 additions and 44 deletions

View File

@ -21,16 +21,34 @@
*/
#include "runtime/os_interface/windows/wddm/wddm.h"
#include "runtime/os_interface/windows/wddm/wddm23.h"
#include "unit_tests/helpers/debug_manager_state_restore.h"
#include "test.h"
#include <typeinfo>
using namespace OCLRT;
TEST(wddmCreateTests, givenInputVersionWhenCreatingThenAlwaysUse20) {
std::unique_ptr<Wddm> wddm1(Wddm::createWddm(WddmInterfaceVersion::Wddm20));
std::unique_ptr<Wddm> wddm2(Wddm::createWddm(21));
std::unique_ptr<Wddm> wddm3(Wddm::createWddm(0));
TEST(wddmCreateTests, givenInputVersionWhenCreatingThenCreateRequestedObject) {
std::unique_ptr<Wddm> wddm20(Wddm::createWddm(WddmInterfaceVersion::Wddm20));
std::unique_ptr<Wddm> wddm23(Wddm::createWddm(WddmInterfaceVersion::Wddm23));
EXPECT_EQ(WddmInterfaceVersion::Wddm20, wddm1->wddmInterfaceVersion);
EXPECT_EQ(WddmInterfaceVersion::Wddm20, wddm2->wddmInterfaceVersion);
EXPECT_EQ(WddmInterfaceVersion::Wddm20, wddm3->wddmInterfaceVersion);
EXPECT_EQ(typeid(*wddm20.get()), typeid(Wddm20));
EXPECT_EQ(typeid(*wddm23.get()), typeid(Wddm23));
}
TEST(wddmCreateTests, givenInvalidInputVersionWhenCreatingThenThrowException) {
EXPECT_THROW(Wddm::createWddm(0), std::exception);
EXPECT_THROW(Wddm::createWddm(21), std::exception);
EXPECT_THROW(Wddm::createWddm(22), std::exception);
EXPECT_THROW(Wddm::createWddm(24), std::exception);
}
TEST(wddmCreateTests, givenHwQueuesSupportedDebugVariableWhenCreatingThenForceWddm23) {
DebugManagerStateRestore restore;
DebugManager.flags.HwQueueSupported.set(true);
std::unique_ptr<Wddm> wddm(Wddm::createWddm(WddmInterfaceVersion::Wddm20));
EXPECT_EQ(typeid(*wddm.get()), typeid(Wddm23));
}