mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-06 02:18:05 +08:00
Verify HDC handle when returning devices for GL sharing
Resolves: NEO-4952 Change-Id: I298bb26aacd2cc5ad7206f7fff2b2235098fb8bf Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
committed by
sys_ocldev
parent
c2a4835943
commit
418db08517
@@ -15,7 +15,6 @@ if(WIN32)
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cl_enqueue_acquire_gl_objects_tests.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cl_enqueue_release_gl_objects_tests.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cl_get_gl_device_info_tests.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cl_get_gl_context_info_khr_tests.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cl_get_gl_object_info_tests.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cl_get_gl_texture_info_tests.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cl_gl_intel_tracing_tests.cpp
|
||||
|
||||
@@ -1,123 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2018-2020 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "shared/source/helpers/hw_info.h"
|
||||
#include "shared/source/os_interface/device_factory.h"
|
||||
#include "shared/test/unit_test/mocks/mock_device.h"
|
||||
|
||||
#include "opencl/source/cl_device/cl_device.h"
|
||||
#include "opencl/test/unit_test/api/cl_api_tests.h"
|
||||
#include "opencl/test/unit_test/mocks/mock_platform.h"
|
||||
#include "opencl/test/unit_test/sharings/gl/gl_dll_helper.h"
|
||||
|
||||
using namespace NEO;
|
||||
|
||||
typedef api_tests clGetGLContextInfoKHR_;
|
||||
|
||||
namespace ULT {
|
||||
|
||||
TEST_F(clGetGLContextInfoKHR_, successWithDefaultPlatform) {
|
||||
auto expectedDevice = ::platform()->getClDevice(0);
|
||||
cl_device_id retDevice = 0;
|
||||
size_t retSize = 0;
|
||||
|
||||
const cl_context_properties properties[] = {CL_GL_CONTEXT_KHR, 1, CL_WGL_HDC_KHR, 2, 0};
|
||||
retVal = clGetGLContextInfoKHR(properties, CL_CURRENT_DEVICE_FOR_GL_CONTEXT_KHR, sizeof(cl_device_id), &retDevice, &retSize);
|
||||
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_EQ(expectedDevice, retDevice);
|
||||
EXPECT_EQ(sizeof(cl_device_id), retSize);
|
||||
|
||||
retVal = clGetGLContextInfoKHR(properties, CL_DEVICES_FOR_GL_CONTEXT_KHR, sizeof(cl_device_id), &retDevice, &retSize);
|
||||
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_EQ(expectedDevice, retDevice);
|
||||
EXPECT_EQ(sizeof(cl_device_id), retSize);
|
||||
}
|
||||
|
||||
using clGetGLContextInfoKHRNonDefaultPlatform = ::testing::Test;
|
||||
|
||||
TEST_F(clGetGLContextInfoKHRNonDefaultPlatform, successWithNonDefaultPlatform) {
|
||||
platformsImpl.clear();
|
||||
|
||||
cl_int retVal = CL_SUCCESS;
|
||||
|
||||
auto nonDefaultPlatform = std::make_unique<MockPlatform>();
|
||||
nonDefaultPlatform->initializeWithNewDevices();
|
||||
cl_platform_id nonDefaultPlatformCl = nonDefaultPlatform.get();
|
||||
|
||||
auto expectedDevice = nonDefaultPlatform->getClDevice(0);
|
||||
size_t retSize = 0;
|
||||
cl_device_id retDevice = 0;
|
||||
|
||||
const cl_context_properties properties[] = {CL_GL_CONTEXT_KHR, 1, CL_WGL_HDC_KHR, 2, CL_CONTEXT_PLATFORM, reinterpret_cast<cl_context_properties>(nonDefaultPlatformCl), 0};
|
||||
retVal = clGetGLContextInfoKHR(properties, CL_CURRENT_DEVICE_FOR_GL_CONTEXT_KHR, sizeof(cl_device_id), &retDevice, &retSize);
|
||||
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_EQ(expectedDevice, retDevice);
|
||||
EXPECT_EQ(sizeof(cl_device_id), retSize);
|
||||
|
||||
retVal = clGetGLContextInfoKHR(properties, CL_DEVICES_FOR_GL_CONTEXT_KHR, sizeof(cl_device_id), &retDevice, &retSize);
|
||||
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_EQ(expectedDevice, retDevice);
|
||||
EXPECT_EQ(sizeof(cl_device_id), retSize);
|
||||
}
|
||||
|
||||
TEST_F(clGetGLContextInfoKHR_, invalidParam) {
|
||||
cl_device_id retDevice = 0;
|
||||
size_t retSize = 0;
|
||||
const cl_context_properties properties[] = {CL_GL_CONTEXT_KHR, 1, CL_WGL_HDC_KHR, 2, 0};
|
||||
retVal = clGetGLContextInfoKHR(properties, 0, sizeof(cl_device_id), &retDevice, &retSize);
|
||||
|
||||
EXPECT_EQ(CL_INVALID_VALUE, retVal);
|
||||
EXPECT_EQ(nullptr, retDevice);
|
||||
EXPECT_EQ(0u, retSize);
|
||||
}
|
||||
|
||||
TEST_F(clGetGLContextInfoKHR_, givenContextFromNoIntelOpenGlDriverWhenCallClGetGLContextInfoKHRThenReturnClInvalidContext) {
|
||||
cl_device_id retDevice = 0;
|
||||
size_t retSize = 0;
|
||||
const cl_context_properties properties[] = {CL_GL_CONTEXT_KHR, 1, CL_WGL_HDC_KHR, 2, 0};
|
||||
GlDllHelper setDllParam;
|
||||
setDllParam.glSetString("NoIntel", GL_VENDOR);
|
||||
retVal = clGetGLContextInfoKHR(properties, 0, sizeof(cl_device_id), &retDevice, &retSize);
|
||||
|
||||
EXPECT_EQ(CL_INVALID_CONTEXT, retVal);
|
||||
EXPECT_EQ(nullptr, retDevice);
|
||||
EXPECT_EQ(0u, retSize);
|
||||
}
|
||||
|
||||
TEST_F(clGetGLContextInfoKHR_, givenNullVersionFromIntelOpenGlDriverWhenCallClGetGLContextInfoKHRThenReturnClInvalidContext) {
|
||||
cl_device_id retDevice = 0;
|
||||
size_t retSize = 0;
|
||||
const cl_context_properties properties[] = {CL_GL_CONTEXT_KHR, 1, CL_WGL_HDC_KHR, 2, 0};
|
||||
GlDllHelper setDllParam;
|
||||
setDllParam.glSetString("", GL_VERSION);
|
||||
retVal = clGetGLContextInfoKHR(properties, 0, sizeof(cl_device_id), &retDevice, &retSize);
|
||||
|
||||
EXPECT_EQ(CL_INVALID_CONTEXT, retVal);
|
||||
EXPECT_EQ(nullptr, retDevice);
|
||||
EXPECT_EQ(0u, retSize);
|
||||
}
|
||||
|
||||
TEST_F(clGetGLContextInfoKHR_, GivenIncorrectPropertiesWhenCallclGetGLContextInfoKHRThenReturnClInvalidGlShareGroupRererencKhr) {
|
||||
cl_device_id retDevice = 0;
|
||||
size_t retSize = 0;
|
||||
retVal = clGetGLContextInfoKHR(nullptr, 0, sizeof(cl_device_id), &retDevice, &retSize);
|
||||
EXPECT_EQ(CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR, retVal);
|
||||
|
||||
const cl_context_properties propertiesLackOfWglHdcKhr[] = {CL_GL_CONTEXT_KHR, 1, 0};
|
||||
retVal = clGetGLContextInfoKHR(propertiesLackOfWglHdcKhr, 0, sizeof(cl_device_id), &retDevice, &retSize);
|
||||
EXPECT_EQ(CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR, retVal);
|
||||
|
||||
const cl_context_properties propertiesLackOfCLGlContextKhr[] = {CL_WGL_HDC_KHR, 2, 0};
|
||||
retVal = clGetGLContextInfoKHR(propertiesLackOfCLGlContextKhr, 0, sizeof(cl_device_id), &retDevice, &retSize);
|
||||
EXPECT_EQ(CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR, retVal);
|
||||
}
|
||||
|
||||
} // namespace ULT
|
||||
Reference in New Issue
Block a user