Add stub for zeDriverGetExtensionProperties

Change-Id: I25016bb36a5ccd37e147cbc4cdb9f1d5e14ae03e
Signed-off: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
This commit is contained in:
Jaime Arteaga
2020-07-15 17:54:30 -07:00
parent 4e16e574e9
commit 3ab2e6c0cd
7 changed files with 74 additions and 0 deletions

View File

@ -53,4 +53,12 @@ zeDriverGetExtensionFunctionAddress(
return L0::DriverHandle::fromHandle(hDriver)->getExtensionFunctionAddress(pFuncName, pfunc);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeDriverGetExtensionProperties(
ze_driver_handle_t hDriver,
uint32_t *pCount,
ze_driver_extension_properties_t *pExtensionProperties) {
return L0::DriverHandle::fromHandle(hDriver)->getExtensionProperties(pCount, pExtensionProperties);
}
} // extern "C"

View File

@ -12,6 +12,8 @@
#include "level_zero/core/source/device/device.h"
#include <level_zero/ze_api.h>
#include "third_party/level_zero/ze_api_ext.h"
struct _ze_driver_handle_t {
virtual ~_ze_driver_handle_t() = default;
};
@ -26,6 +28,8 @@ struct DriverHandle : _ze_driver_handle_t {
virtual ze_result_t getApiVersion(ze_api_version_t *version) = 0;
virtual ze_result_t getIPCProperties(ze_driver_ipc_properties_t *pIPCProperties) = 0;
virtual ze_result_t getExtensionFunctionAddress(const char *pFuncName, void **pfunc) = 0;
virtual ze_result_t getExtensionProperties(uint32_t *pCount,
ze_driver_extension_properties_t *pExtensionProperties) = 0;
virtual ze_result_t getMemAllocProperties(const void *ptr,
ze_memory_allocation_properties_t *pMemAllocProperties,
ze_device_handle_t *phDevice) = 0;

View File

@ -85,6 +85,11 @@ ze_result_t DriverHandleImp::getExtensionFunctionAddress(const char *pFuncName,
return ZE_RESULT_ERROR_INVALID_ARGUMENT;
}
ze_result_t DriverHandleImp::getExtensionProperties(uint32_t *pCount,
ze_driver_extension_properties_t *pExtensionProperties) {
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
}
ze_result_t DriverHandleImp::getMemAllocProperties(const void *ptr,
ze_memory_allocation_properties_t *pMemAllocProperties,
ze_device_handle_t *phDevice) {

View File

@ -21,6 +21,8 @@ struct DriverHandleImp : public DriverHandle {
ze_result_t getApiVersion(ze_api_version_t *version) override;
ze_result_t getIPCProperties(ze_driver_ipc_properties_t *pIPCProperties) override;
ze_result_t getExtensionFunctionAddress(const char *pFuncName, void **pfunc) override;
ze_result_t getExtensionProperties(uint32_t *pCount,
ze_driver_extension_properties_t *pExtensionProperties) override;
ze_result_t getMemAllocProperties(const void *ptr,
ze_memory_allocation_properties_t *pMemAllocProperties,
ze_device_handle_t *phDevice) override;

View File

@ -40,6 +40,12 @@ struct Mock<DriverHandle> : public DriverHandleImp {
ze_memory_allocation_properties_t *pMemAllocProperties,
ze_device_handle_t *phDevice));
MOCK_METHOD(ze_result_t,
getExtensionProperties,
(uint32_t * pCount,
ze_driver_extension_properties_t *pExtensionProperties),
(override));
MOCK_METHOD0(getMemoryManager, NEO::MemoryManager *());
MOCK_METHOD1(setMemoryManager, void(NEO::MemoryManager *));
MOCK_METHOD3(getMemAddressRange, ze_result_t(const void *ptr, void **pBase, size_t *pSize));

View File

@ -23,6 +23,13 @@ namespace ult {
using DriverVersionTest = Test<DeviceFixture>;
TEST_F(DriverVersionTest, givenCallToGetExtensionPropertiesThenUnsupportedIsReturned) {
uint32_t count = 0;
ze_driver_extension_properties_t properties;
ze_result_t res = driverHandle->getExtensionProperties(&count, &properties);
EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_FEATURE, res);
}
TEST_F(DriverVersionTest, returnsExpectedDriverVersion) {
ze_driver_properties_t properties;
ze_result_t res = driverHandle->getProperties(&properties);

View File

@ -283,6 +283,48 @@ zeCommandListAppendWriteGlobalTimestampExt(
///< on before executing query
);
#ifndef ZE_MAX_EXTENSION_NAME
/// @brief Maximum extension name string size
#define ZE_MAX_EXTENSION_NAME 256
#endif // ZE_MAX_EXTENSION_NAME
///////////////////////////////////////////////////////////////////////////////
/// @brief Extension properties queried using ::zeDriverGetExtensionProperties
typedef struct _ze_driver_extension_properties_t {
char name[ZE_MAX_EXTENSION_NAME]; ///< [out] extension name
uint32_t version; ///< [out] extension version using ::ZE_MAKE_VERSION
} ze_driver_extension_properties_t;
///////////////////////////////////////////////////////////////////////////////
/// @brief Retrieves extension properties
///
/// @details
/// - The application may call this function from simultaneous threads.
/// - The implementation of this function should be lock-free.
///
/// @remarks
/// _Analogues_
/// - **vkEnumerateInstanceExtensionProperties**
///
/// + `nullptr == hDriver`
/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
/// + `nullptr == pCount`
ZE_APIEXPORT ze_result_t ZE_APICALL
zeDriverGetExtensionProperties(
ze_driver_handle_t hDriver, ///< [in] handle of the driver instance
uint32_t *pCount, ///< [in,out] pointer to the number of extension properties.
///< if count is zero, then the driver will update the value with the total
///< number of extension properties available.
///< if count is non-zero, then driver will only retrieve that number of
///< extension properties.
///< if count is larger than the number of extension properties available,
///< then the driver will update the value with the correct number of
///< extension properties available.
ze_driver_extension_properties_t *pExtensionProperties ///< [in,out][optional][range(0, *pCount)] array of query results for
///< extension properties
);
} //extern C
#endif // _ZE_API_EXT_H