From 6b8d8cbcbb8adf81610a5f9639d2a762b44b72eb Mon Sep 17 00:00:00 2001 From: "Cetnerowski, Adam" Date: Mon, 17 Dec 2018 02:03:08 -0700 Subject: [PATCH] Revert "Revert "Expose spirv extensions"" This reverts commit 469fe400724b9cee7d202079e940b761c0504738. Change-Id: I8b634ef05a3b7e4e6abb05b42eacae24b7871632 --- runtime/device/device_caps.cpp | 3 +++ runtime/platform/extensions.cpp | 3 +++ unit_tests/device/device_caps_tests.cpp | 22 ++++++++++++++++++++++ unit_tests/platform/platform_tests.cpp | 3 +++ 4 files changed, 31 insertions(+) diff --git a/runtime/device/device_caps.cpp b/runtime/device/device_caps.cpp index e5b15ca2e6..62249fb145 100644 --- a/runtime/device/device_caps.cpp +++ b/runtime/device/device_caps.cpp @@ -144,6 +144,9 @@ void Device::initializeCaps() { deviceInfo.independentForwardProgress = true; deviceExtensions += "cl_khr_subgroups "; deviceExtensions += "cl_khr_il_program "; + deviceExtensions += "cl_intel_spirv_side_avc_motion_estimation "; + deviceExtensions += "cl_intel_spirv_media_block_io "; + deviceExtensions += "cl_intel_spirv_subgroups "; } else { deviceInfo.independentForwardProgress = false; } diff --git a/runtime/platform/extensions.cpp b/runtime/platform/extensions.cpp index 5dff909841..ddf9bf9799 100644 --- a/runtime/platform/extensions.cpp +++ b/runtime/platform/extensions.cpp @@ -42,6 +42,9 @@ std::string getExtensionsList(const HardwareInfo &hwInfo) { if (hwInfo.capabilityTable.clVersionSupport >= 21) { allExtensionsList += "cl_khr_subgroups "; allExtensionsList += "cl_khr_il_program "; + allExtensionsList += "cl_intel_spirv_side_avc_motion_estimation "; + allExtensionsList += "cl_intel_spirv_media_block_io "; + allExtensionsList += "cl_intel_spirv_subgroups "; } if (hwInfo.capabilityTable.ftrSupportsFP64) { diff --git a/unit_tests/device/device_caps_tests.cpp b/unit_tests/device/device_caps_tests.cpp index 21e7aef998..17ba986182 100644 --- a/unit_tests/device/device_caps_tests.cpp +++ b/unit_tests/device/device_caps_tests.cpp @@ -399,6 +399,28 @@ TEST(Device_GetCaps, givenOpenCLVersion20WhenCapsAreCreatedThenDeviceDoesntRepor EXPECT_THAT(caps.deviceExtensions, testing::Not(testing::HasSubstr(std::string("cl_khr_il_program")))); } +TEST(Device_GetCaps, givenOpenCLVersion21WhenCapsAreCreatedThenDeviceReportsClIntelSpirvExtensions) { + DebugManagerStateRestore dbgRestorer; + DebugManager.flags.ForceOCLVersion.set(21); + auto device = std::unique_ptr(MockDevice::createWithNewExecutionEnvironment(platformDevices[0])); + const auto &caps = device->getDeviceInfo(); + + EXPECT_THAT(caps.deviceExtensions, testing::HasSubstr(std::string("cl_intel_spirv_side_avc_motion_estimation"))); + EXPECT_THAT(caps.deviceExtensions, testing::HasSubstr(std::string("cl_intel_spirv_media_block_io"))); + EXPECT_THAT(caps.deviceExtensions, testing::HasSubstr(std::string("cl_intel_spirv_subgroups"))); +} + +TEST(Device_GetCaps, givenOpenCLVersion12WhenCapsAreCreatedThenDeviceDoesntReportClIntelSpirvExtensions) { + DebugManagerStateRestore dbgRestorer; + DebugManager.flags.ForceOCLVersion.set(12); + auto device = std::unique_ptr(MockDevice::createWithNewExecutionEnvironment(platformDevices[0])); + const auto &caps = device->getDeviceInfo(); + + EXPECT_THAT(caps.deviceExtensions, testing::Not(testing::HasSubstr(std::string("cl_intel_spirv_side_avc_motion_estimation")))); + EXPECT_THAT(caps.deviceExtensions, testing::Not(testing::HasSubstr(std::string("cl_intel_spirv_media_block_io")))); + EXPECT_THAT(caps.deviceExtensions, testing::Not(testing::HasSubstr(std::string("cl_intel_spirv_subgroups")))); +} + TEST(Device_GetCaps, givenEnableNV12setToTrueWhenCapsAreCreatedThenDeviceReportsNV12Extension) { DebugManagerStateRestore dbgRestorer; DebugManager.flags.EnableNV12.set(true); diff --git a/unit_tests/platform/platform_tests.cpp b/unit_tests/platform/platform_tests.cpp index cacab1f8a9..ab62346195 100644 --- a/unit_tests/platform/platform_tests.cpp +++ b/unit_tests/platform/platform_tests.cpp @@ -217,6 +217,9 @@ TEST_F(PlatformTest, givenSupportingCl21WhenPlatformSupportsFp64ThenFillMatching if (hwInfo->capabilityTable.clVersionSupport > 20) { EXPECT_THAT(compilerExtensions, ::testing::HasSubstr(std::string("cl_khr_subgroups"))); EXPECT_THAT(compilerExtensions, ::testing::HasSubstr(std::string("cl_khr_il_program"))); + EXPECT_THAT(compilerExtensions, ::testing::HasSubstr(std::string("cl_intel_spirv_side_avc_motion_estimation"))); + EXPECT_THAT(compilerExtensions, ::testing::HasSubstr(std::string("cl_intel_spirv_media_block_io"))); + EXPECT_THAT(compilerExtensions, ::testing::HasSubstr(std::string("cl_intel_spirv_subgroups"))); } if (hwInfo->capabilityTable.ftrSupportsFP64) {