69 lines
3.8 KiB
C
69 lines
3.8 KiB
C
// Copyright 2009-2021 Intel Corporation
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
#pragma once
|
|
|
|
#include "ze_api.h"
|
|
|
|
#if !defined(ZE_RTAS_BUILDER_EXP_NAME)
|
|
#include "ze_rtas.h"
|
|
#endif
|
|
|
|
//////////////////////
|
|
// Debug extension
|
|
|
|
#define ZE_STRUCTURE_TYPE_RTAS_BUILDER_BUILD_OP_DEBUG_EXP_DESC ((ze_structure_type_t)0x00020020) ///< ::ze_rtas_builder_build_op_debug_exp_desc_t
|
|
|
|
typedef struct _ze_rtas_builder_build_op_debug_exp_desc_t
|
|
{
|
|
ze_structure_type_t stype; ///< [in] type of this structure
|
|
const void* pNext; ///< [in][optional] must be null or a pointer to an extension-specific
|
|
///< structure (i.e. contains stype and pNext).
|
|
void* dispatchGlobalsPtr;
|
|
|
|
} ze_rtas_builder_build_op_debug_exp_desc_t;
|
|
|
|
////////////////////
|
|
|
|
struct ZeWrapper
|
|
{
|
|
enum RTAS_BUILD_MODE {
|
|
AUTO = 0, // try L0 implementation first and fallback to internal implementation
|
|
INTERNAL = 1, // use internal RTAS build implementation
|
|
LEVEL_ZERO = 2, // use Level Zero provided RTAS build implementation
|
|
};
|
|
|
|
~ZeWrapper();
|
|
|
|
static ze_result_t init();
|
|
static ze_result_t initRTASBuilder(ze_driver_handle_t hDriver, RTAS_BUILD_MODE rtas_build_mode = RTAS_BUILD_MODE::AUTO);
|
|
|
|
static ze_result_t zeMemFree(ze_context_handle_t, void*);
|
|
static ze_result_t zeMemAllocShared(ze_context_handle_t, const ze_device_mem_alloc_desc_t*, const ze_host_mem_alloc_desc_t*, size_t, size_t, ze_device_handle_t, void**);
|
|
static ze_result_t zeDriverGetExtensionProperties(ze_driver_handle_t, uint32_t*, ze_driver_extension_properties_t*);
|
|
static ze_result_t zeDeviceGetProperties(ze_device_handle_t, ze_device_properties_t*);
|
|
static ze_result_t zeDeviceGetModuleProperties(ze_device_handle_t, ze_device_module_properties_t*);
|
|
|
|
static ze_result_t zeRTASBuilderCreateExp(ze_driver_handle_t hDriver, const ze_rtas_builder_exp_desc_t *pDescriptor, ze_rtas_builder_exp_handle_t *phBuilder);
|
|
static ze_result_t zeRTASBuilderDestroyExp(ze_rtas_builder_exp_handle_t hBuilder);
|
|
static ze_result_t zeDriverRTASFormatCompatibilityCheckExp( ze_driver_handle_t hDriver,
|
|
const ze_rtas_format_exp_t accelFormat,
|
|
const ze_rtas_format_exp_t otherAccelFormat);
|
|
static ze_result_t zeRTASBuilderGetBuildPropertiesExp(ze_rtas_builder_exp_handle_t hBuilder,
|
|
const ze_rtas_builder_build_op_exp_desc_t* args,
|
|
ze_rtas_builder_exp_properties_t* pProp);
|
|
static ze_result_t zeRTASBuilderBuildExp(ze_rtas_builder_exp_handle_t hBuilder,
|
|
const ze_rtas_builder_build_op_exp_desc_t* args,
|
|
void *pScratchBuffer, size_t scratchBufferSizeBytes,
|
|
void *pRtasBuffer, size_t rtasBufferSizeBytes,
|
|
ze_rtas_parallel_operation_exp_handle_t hParallelOperation,
|
|
void *pBuildUserPtr, ze_rtas_aabb_exp_t *pBounds, size_t *pRtasBufferSizeBytes);
|
|
|
|
static ze_result_t zeRTASParallelOperationCreateExp(ze_driver_handle_t hDriver, ze_rtas_parallel_operation_exp_handle_t* phParallelOperation);
|
|
static ze_result_t zeRTASParallelOperationDestroyExp( ze_rtas_parallel_operation_exp_handle_t hParallelOperation );
|
|
static ze_result_t zeRTASParallelOperationGetPropertiesExp( ze_rtas_parallel_operation_exp_handle_t hParallelOperation, ze_rtas_parallel_operation_exp_properties_t* pProperties );
|
|
static ze_result_t zeRTASParallelOperationJoinExp( ze_rtas_parallel_operation_exp_handle_t hParallelOperation);
|
|
|
|
static RTAS_BUILD_MODE rtas_builder;
|
|
};
|
|
|