mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-27 15:53:13 +08:00
Return error when device does not support Intermediate Language Programs
clGetDeviceInfo, clGetProgramInfo, clCreateProgramWithIL and clSetProgramSpecializationConstant return errors when Intermediate Language Programs are not supported Related-To: NEO-4368 Change-Id: I0bdc218c3cc57ea7ac698cd1db6c85687a8f9f4c Signed-off-by: Andrzej Swierczynski <andrzej.swierczynski@intel.com>
This commit is contained in:
committed by
sys_ocldev
parent
b0ed3b2ab1
commit
0dfcfff89c
@@ -43,6 +43,7 @@
|
||||
#include "opencl/test/unit_test/mocks/mock_program.h"
|
||||
#include "opencl/test/unit_test/program/program_from_binary.h"
|
||||
#include "opencl/test/unit_test/program/program_with_source.h"
|
||||
#include "opencl/test/unit_test/test_macros/test_checks_ocl.h"
|
||||
#include "test.h"
|
||||
|
||||
#include "compiler_options.h"
|
||||
@@ -2159,6 +2160,7 @@ struct CreateProgramFromBinaryMock : public MockProgram {
|
||||
};
|
||||
|
||||
TEST_F(ProgramTests, GivenFailedBinaryWhenCreatingFromIlThenInvalidBinaryErrorIsReturned) {
|
||||
REQUIRE_OCL_21_OR_SKIP(pContext);
|
||||
const uint32_t notSpirv[16] = {0xDEADBEEF};
|
||||
cl_int retVal = CL_SUCCESS;
|
||||
auto prog = Program::createFromIL<CreateProgramFromBinaryMock<CL_INVALID_BINARY>>(pContext, reinterpret_cast<const void *>(notSpirv), sizeof(notSpirv), retVal);
|
||||
@@ -2167,6 +2169,7 @@ TEST_F(ProgramTests, GivenFailedBinaryWhenCreatingFromIlThenInvalidBinaryErrorIs
|
||||
}
|
||||
|
||||
TEST_F(ProgramTests, GivenSuccessfullyBuiltBinaryWhenCreatingFromIlThenValidProgramIsReturned) {
|
||||
REQUIRE_OCL_21_OR_SKIP(pContext);
|
||||
const uint32_t spirv[16] = {0x03022307};
|
||||
cl_int retVal = CL_SUCCESS;
|
||||
auto prog = Program::createFromIL<CreateProgramFromBinaryMock<CL_SUCCESS>>(pContext, reinterpret_cast<const void *>(spirv), sizeof(spirv), retVal);
|
||||
@@ -2176,6 +2179,7 @@ TEST_F(ProgramTests, GivenSuccessfullyBuiltBinaryWhenCreatingFromIlThenValidProg
|
||||
}
|
||||
|
||||
TEST_F(ProgramTests, givenProgramCreatedFromILWhenCompileIsCalledThenReuseTheILInsteadOfCallingCompilerInterface) {
|
||||
REQUIRE_OCL_21_OR_SKIP(pContext);
|
||||
const uint32_t spirv[16] = {0x03022307};
|
||||
cl_int errCode = 0;
|
||||
auto prog = Program::createFromIL<MockProgram>(pContext, reinterpret_cast<const void *>(spirv), sizeof(spirv), errCode);
|
||||
@@ -2209,6 +2213,7 @@ TEST_F(ProgramTests, givenProgramCreatedFromIntermediateBinaryRepresentationWhen
|
||||
}
|
||||
|
||||
TEST_F(ProgramTests, GivenIlIsNullptrWhenCreatingFromIlThenInvalidBinaryErrorIsReturned) {
|
||||
REQUIRE_OCL_21_OR_SKIP(pContext);
|
||||
cl_int retVal = CL_SUCCESS;
|
||||
auto prog = Program::createFromIL<CreateProgramFromBinaryMock<CL_INVALID_BINARY>>(pContext, nullptr, 16, retVal);
|
||||
EXPECT_EQ(nullptr, prog);
|
||||
@@ -2216,6 +2221,7 @@ TEST_F(ProgramTests, GivenIlIsNullptrWhenCreatingFromIlThenInvalidBinaryErrorIsR
|
||||
}
|
||||
|
||||
TEST_F(ProgramTests, GivenIlSizeZeroWhenCreatingFromIlThenInvalidBinaryErrorIsReturned) {
|
||||
REQUIRE_OCL_21_OR_SKIP(pContext);
|
||||
const uint32_t spirv[16] = {0x03022307};
|
||||
cl_int retVal = CL_SUCCESS;
|
||||
auto prog = Program::createFromIL<CreateProgramFromBinaryMock<CL_INVALID_BINARY>>(pContext, reinterpret_cast<const void *>(spirv), 0, retVal);
|
||||
@@ -2224,6 +2230,7 @@ TEST_F(ProgramTests, GivenIlSizeZeroWhenCreatingFromIlThenInvalidBinaryErrorIsRe
|
||||
}
|
||||
|
||||
TEST_F(ProgramTests, WhenCreatingFromIlThenIsSpirvIsSetCorrectly) {
|
||||
REQUIRE_OCL_21_OR_SKIP(pContext);
|
||||
const uint32_t spirv[16] = {0x03022307};
|
||||
cl_int retVal = CL_SUCCESS;
|
||||
auto prog = Program::createFromIL<Program>(pContext, reinterpret_cast<const void *>(spirv), sizeof(spirv), retVal);
|
||||
@@ -2281,6 +2288,7 @@ TEST(isValidSpirvBinary, whenBinaryDoesNotContainLllvMagicThenBinaryIsNotValidLL
|
||||
}
|
||||
|
||||
TEST_F(ProgramTests, WhenLinkingTwoValidSpirvProgramsThenValidProgramIsReturned) {
|
||||
REQUIRE_OCL_21_OR_SKIP(pContext);
|
||||
const uint32_t spirv[16] = {0x03022307};
|
||||
cl_int errCode = CL_SUCCESS;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user