diff --git a/rocclr/runtime/device/gpu/gpudevice.cpp b/rocclr/runtime/device/gpu/gpudevice.cpp index a0c14ad496..25d76b6209 100644 --- a/rocclr/runtime/device/gpu/gpudevice.cpp +++ b/rocclr/runtime/device/gpu/gpudevice.cpp @@ -119,7 +119,6 @@ bool NullDevice::create(CALtarget target) { CALdeviceattribs calAttr = {0}; - CALdeviceVideoAttribs calVideoAttr = {0}; CALdevicestatus calDevStatus = {0}; online_ = false; diff --git a/rocclr/runtime/device/gpu/gslbe/src/include/cal/calcl.h b/rocclr/runtime/device/gpu/gslbe/src/include/cal/calcl.h index 47d3056a9b..d7829454b8 100644 --- a/rocclr/runtime/device/gpu/gslbe/src/include/cal/calcl.h +++ b/rocclr/runtime/device/gpu/gslbe/src/include/cal/calcl.h @@ -164,89 +164,6 @@ typedef enum CALresallocsliceviewflagsRec { typedef struct CALthreadTraceConfigRec CALthreadTraceConfig; -// -// Video Extension -// - -typedef struct CALvideoPropertiesRec CALvideoProperties; -typedef struct CALprogramVideoRec CALprogramVideo; -typedef struct CALdeviceVideoAttribsRec CALdeviceVideoAttribs; -typedef struct CALcontextPropertiesRec CALcontextProperties; -typedef struct CALprogramVideoDecodeRec CALprogramVideoDecode; -typedef struct CALprogramVideoEncodeRec CALprogramVideoEncode; -typedef struct CALvideoAttribRec CALvideoAttrib; -typedef struct CALvideoEncAttribRec CALvideoEncAttrib; - -// VCE -typedef struct CALEncodeCreateVCERec CALEncodeCreateVCE; -typedef struct CALEncodeGetDeviceInfoRec CALEncodeGetDeviceInfo; -typedef struct CALEncodeGetNumberOfModesRec CALEncodeGetNumberOfModes; -typedef struct CALEncodeGetModesRec CALEncodeGetModes; -typedef struct CALEncodeGetDeviceCAPRec CALEncodeGetDeviceCAP; -typedef struct CALEncodeSetStateRec CALEncodeSetState; -typedef struct CALEncodeGetPictureControlConfigRec CALEncodeGetPictureControlConfig; -typedef struct CALEncodeGetRateControlConfigRec CALEncodeGetRateControlConfig; -typedef struct CALEncodeGetMotionEstimationConfigRec CALEncodeGetMotionEstimationConfig; -typedef struct CALEncodeGetRDOControlConfigRec CALEncodeGetRDOControlConfig; - -typedef enum -{ - CAL_VID_NV12_INTERLEAVED = 1,// NV12 - CAL_VID_YV12_INTERLEAVED, // YV12 -} CALdecodeFormat; - -typedef enum -{ - CAL_VID_H264_BASELINE = 1, // H.264 bitstream acceleration baseline profile - CAL_VID_H264_MAIN, // H.264 bitstream acceleration main profile - CAL_VID_H264_HIGH, // H.264 bitstream acceleration high profile - CAL_VID_VC1_SIMPLE, // VC-1 bitstream acceleration simple profile - CAL_VID_VC1_MAIN, // VC-1 bitstream acceleration main profile - CAL_VID_VC1_ADVANCED, // VC-1 bitstream acceleration advanced profile - CAL_VID_MPEG2_VLD, // MPEG2 bitstream acceleration VLD profile -} CALdecodeProfile; - -typedef enum -{ - CAL_VID_ENC_H264_BASELINE = 1, // H.264 bitstream acceleration baseline profile - CAL_VID_ENC_H264_MAIN, // H.264 bitstream acceleration main profile - CAL_VID_ENC_H264_HIGH, // H.264 bitstream acceleration high profile -} CALencodeProfile; - -typedef enum -{ - CAL_CONTEXT_VIDEO = 1, - CAL_CONTEXT_3DCOMPUTE = 2, - CAL_CONTEXT_COMPUTE0 = 3, - CAL_CONTEXT_COMPUTE1 = 4, - CAL_CONTEXT_DRMDMA0 = 5, - CAL_CONTEXT_DRMDMA1 = 6, - CAL_CONTEXT_VIDEO_VCE, - CALcontextEnum_FIRST = CAL_CONTEXT_VIDEO, - CALcontextEnum_LAST = CAL_CONTEXT_VIDEO_VCE, -} CALcontextEnum; - -typedef enum -{ - CAL_PRIORITY_NEUTRAL = 0, - CAL_PRIORITY_HIGH = 1, - CAL_PRIORITY_LOW = 2 -} CALpriorityEnum; - - -typedef enum -{ - CAL_VIDEO_DECODE = 1, - CAL_VIDEO_ENCODE = 2 -} CALvideoType; - -struct CALcontextPropertiesRec -{ - CALcontextEnum name; - CALpriorityEnum priority; - CALvoid* data; -}; - struct CALthreadTraceConfigRec { CALuint cu; // target compute unit [cu] @@ -263,377 +180,6 @@ struct CALthreadTraceConfigRec CALboolean is_wrapped; // indicator if the memory buffer should be wrapped around instead of stopping at the end }; -struct CALvideoPropertiesRec -{ - CALuint size; - CALuint flags; - CALdecodeProfile profile; - CALdecodeFormat format; - CALuint width; - CALuint height; - CALcontextEnum VideoEngine_name; -}; - -struct CALprogramVideoRec -{ - CALuint size; - CALvideoType type; - CALuint flags; -}; - -struct CALprogramVideoDecodeRec -{ - CALprogramVideo videoType; - void* picture_parameter_1; - void* picture_parameter_2; - CALuint picture_parameter_2_size; - void* bitstream_data; - CALuint bitstream_data_size; - void* slice_data_control; - CALuint slice_data_size; -}; - -struct CALprogramVideoEncodeRec -{ - CALprogramVideo videoType; - CALuint pictureParam1Size; - CALuint pictureParam2Size; - void* pictureParam1; - void* pictureParam2; - CALuint uiTaskID; -}; - -struct CALvideoAttribRec -{ - CALdecodeProfile decodeProfile; - CALdecodeFormat decodeFormat; -}; - -struct CALvideoEncAttribRec -{ - CALencodeProfile encodeProfile; - CALdecodeFormat encodeFormat; // decode format is the same as the encode format -}; - -struct CALdeviceVideoAttribsRec -{ - CALuint data_size; // in - size of the struct, - // out - bytes of data incl. pointed to - CALuint max_decode_sessions; - const CALvideoAttrib* video_attribs; // list of supported - // profile/format pairs - const CALvideoEncAttrib* video_enc_attribs; -}; - - -////// VCE -struct CALEncodeCreateVCERec -{ - CALvoid* VCEsession; -}; - -struct CALEncodeGetDeviceInfoRec -{ - unsigned int device_id; - unsigned int max_encode_stream; - unsigned int encode_cap_list_size; -}; - -struct CALEncodeGetNumberOfModesRec -{ - unsigned int num_of_encode_Mode; -}; - -typedef enum -{ - CAL_VID_encode_MODE_NONE = 0, - CAL_VID_encode_AVC_FULL = 1, - CAL_VID_encode_AVC_ENTROPY = 2, -} CALencodeMode; - -struct CALEncodeGetModesRec -{ - CALuint NumEncodeModesToRetrieve; - CALencodeMode *pEncodeModes; -}; - -typedef enum -{ - CAL_VID_ENCODE_JOB_PRIORITY_NONE = 0, - CAL_VID_ENCODE_JOB_PRIORITY_LEVEL1 = 1, // Always in normal queue - CAL_VID_ENCODE_JOB_PRIORITY_LEVEL2 = 2 // possibly in low-latency queue -} CAL_VID_ENCODE_JOB_PRIORITY; - -typedef struct _CAL_VID_PROFILE_LEVEL -{ - CALuint profile; //based on H.264 standard - CALuint level; -} CAL_VID_PROFILE_LEVEL; - -typedef enum -{ - CAL_VID_PICTURE_NONOE = 0, - CAL_VID_PICTURE_NV12 = 1, -} CAL_VID_PICTURE_FORMAT; - -#define CAL_VID_MAX_NUM_PICTURE_FORMATS_H264_AVC 10 -#define CAL_VID_MAX_NUM_PROFILE_LEVELS_H264_AVC 20 - -typedef struct -{ - CALuint maxPicSizeInMBs; // Max picture size in MBs - CALuint minPicSizeInMBs; // Min picture size in MBs - CALuint numPictureFormats; // number of supported picture formats - CAL_VID_PICTURE_FORMAT supportedPictureFormats[CAL_VID_MAX_NUM_PICTURE_FORMATS_H264_AVC]; - CALuint numProfileLevels; // number of supported profiles/levels returne; - CAL_VID_PROFILE_LEVEL supportedProfileLevel[CAL_VID_MAX_NUM_PROFILE_LEVELS_H264_AVC]; - CALuint maxBitRate; // Max bit rate - CALuint minBitRate; // min bit rate - CAL_VID_ENCODE_JOB_PRIORITY supportedJobPriority;// supported max level of job priority -}CAL_VID_ENCODE_CAPS_FULL; - -typedef struct -{ - CAL_VID_ENCODE_JOB_PRIORITY supportedJobPriority;// supported max level of job priority - CALuint maxJobQueueDepth; // Max job queue depth -}CAL_VID_ENCODE_CAPS_ENTROPY; - -typedef struct -{ - CALencodeMode EncodeModes; - CALuint encode_cap_size; - union - { - CAL_VID_ENCODE_CAPS_FULL *encode_cap_full; - CAL_VID_ENCODE_CAPS_ENTROPY *encode_cap_entropy; - void *encode_cap; - } caps; -} CAL_VID_ENCODE_CAPS; - -struct CALEncodeGetDeviceCAPRec -{ - CALuint num_of_encode_cap; - CAL_VID_ENCODE_CAPS *encode_caps; -}; - - - -typedef enum -{ - CAL_VID__ENCODE_STATE_START = 1, - CAL_VID__ENCODE_STATE_PAUSE = 2, - CAL_VID__ENCODE_STATE_RESUME = 3, - CAL_VID__ENCODE_STATE_STOP = 4 -} CAL_VID_ENCODE_STATE ; - -typedef struct -{ - CALuint size; // structure size - - CALuint useConstrainedIntraPred; // binary var - force the use of constrained intra prediction when set to 1 - //CABAC options - CALuint cabacEnable; // Enable CABAC entropy coding - CALuint cabacIDC; // cabac_init_id = 0; cabac_init_id = 1; cabac_init_id = 2; - - CALuint loopFilterDisable; // binary var - disable loop filter when 1 - enable loop filter when 0 (0 and 1 are the only two supported cases) - int encLFBetaOffset; // -- move with loop control flag , Loop filter control, slice_beta_offset (N.B. only used if deblocking filter is not disabled, and there is no div2 as defined in the h264 bitstream syntax) - int encLFAlphaC0Offset; // Loop filter control, slice_alpha_c0_offset (N.B. only used if deblocking filter is not disabled, and there is no div2 as defined in the h264 bitstream syntax) - CALuint encIDRPeriod; - CALuint encIPicPeriod; // spacing for I pictures, in case driver doesnt force/select a picture type, this will be used for inference - int encHeaderInsertionSpacing; // spacing for inserting SPS/PPS. Example usage cases are: 0 for inserting at the beginning of the stream only, 1 for every picture, "GOP size" to align it with GOP boundaries etc. For compliance reasons, these headers might be inserted when SPS/PPS parameters change from the config packages. - CALuint encCropLeftOffset; - CALuint encCropRightOffset; - CALuint encCropTopOffset; - CALuint encCropBottomOffset; - CALuint encNumMBsPerSlice; // replaces encSliceArgument - Slice control - number of MBs per slice - CALuint encNumSlicesPerFrame; // Slice control - number of slices in this frame, pre-calculated to avoid DIV operation in firmware - CALuint encForceIntraRefresh; // 1 serves to load intra refresh bitmap from address force_intra_refresh_bitmap_mc_addr when equal to 1, 3 also loads dirty clean bitmap on top of the intra refresh - CALuint encForceIMBPeriod; // --- package with intra referesh -Intra MB spacing. if encForceIntraRefresh = 2, shifts intra refreshed MBs by frame number - CALuint encInsertVUIParam; // insert VUI params in SPS - CALuint encInsertSEIMsg; // insert SEI messages (bit 0 for buffering period; bit 1 for picture timing; bit 2 for pan scan) -} CAL_VID_ENCODE_PICTURE_CONTROL; - -typedef struct -{ - CALuint size; // structure size - CALuint encRateControlMethod; // rate control method to be used - CALuint encRateControlTargetBitRate; // target bit rate - CALuint encRateControlPeakBitRate; // peak bit rate - CALuint encRateControlFrameRateNumerator; // target frame rate - CALuint encGOPSize; // RC GOP size - CALuint encRCOptions; // packed bitfield definition for extending options here, bit 0: RC will not generate skipped frames in order to meet GOP target, bits 1-30: up for grabs by the RC alg designer - CALuint encQP_I; // I frame quantization only if rate control is disabled - CALuint encQP_P; // P frame quantization if rate control is disabled - CALuint encQP_B; // B frame quantization if rate control is disabled - CALuint encVBVBufferSize; // VBV buffer size - this is CPB Size, and the default is per Table A-1 of the spec - CALuint encRateControlFrameRateDenominator;// target frame rate -} CAL_VID_ENCODE_RATE_CONTROL; - - // mode estimation control options -typedef struct -{ - CALuint size; // structure size - CALuint imeDecimationSearch; // decimation search is on - CALuint motionEstHalfPixel; // enable half pel motion estimation - CALuint motionEstQuarterPixel; // enable quarter pel motion estimation - CALuint disableFavorPMVPoint; // disable favorization of PMV point - CALuint forceZeroPointCenter; // force [0,0] point as search window center in IME - CALuint lsmVert; // Luma Search window in MBs, set to either VCE_ENC_SEARCH_WIND_5x3 or VCE_ENC_SEARCH_WIND_9x5 or VCE_ENC_SEARCH_WIND_13x7 - CALuint encSearchRangeX; // forward prediction - Manual limiting of horizontal motion vector range (for performance) in pel resolution - CALuint encSearchRangeY; // forward prediction - Manual limiting of vertical motion vector range (for performance) - CALuint encSearch1RangeX; // for 2nd ref - curr IME_SEARCH_SIZE doesn't have SIZE__SEARCH1_X bitfield - CALuint encSearch1RangeY; // for 2nd ref - CALuint disable16x16Frame1; // second reference (B frame) limitation - CALuint disableSATD; // Disable SATD cost calculation (SAD only) - CALuint enableAMD; // FME advanced mode decision - CALuint encDisableSubMode; // --- FME - CALuint encIMESkipX; // sub sample search window horz --- UENC_IME_OPTIONS.SKIP_POINT_X - CALuint encIMESkipY; // sub sample search window vert --- UENC_IME_OPTIONS.SKIP_POINT_Y - CALuint encEnImeOverwDisSubm; // Enable overwriting of fme_disable_submode in IME with enabled mode number equal to ime_overw_dis_subm_no (only 8x8 and above could be enabled) - CALuint encImeOverwDisSubmNo; // Numbers of mode IME will pick if en_ime_overw_dis_subm equal to 1. - CALuint encIME2SearchRangeX; // IME Additional Search Window Size: horizontal 1-4 (+- this value left and right from center) - CALuint encIME2SearchRangeY; // IME Additional Search Window Size: vertical not-limited (+- this value up and down from center) - // (+- this value up and down from center) -} CAL_VID_ENCODE_MOTION_ESTIMATION_CONTROL; // structure aligned to 88 bytes - -typedef struct -{ - CALuint size; // structure size - CALuint encDisableTbePredIFrame; // Disable Prediction Modes For I-Frames - CALuint encDisableTbePredPFrame; // same as above for P frames - CALuint useFmeInterpolY; // zero_residues_luma - CALuint useFmeInterpolUV; // zero_residues_chroma - CALuint enc16x16CostAdj; // --- UENC_FME_MD.M16x16_COST_ADJ - CALuint encSkipCostAdj; // --- UENC_FME_MD.MSkip_COST_ADJ - unsigned char encForce16x16skip; -} CAL_VID_ENCODE_RDO_CONTROL; - - -struct CALEncodeSetStateRec -{ - CAL_VID_ENCODE_STATE encode_states; -}; -struct CALEncodeGetPictureControlConfigRec -{ - CAL_VID_ENCODE_PICTURE_CONTROL encode_picture_control; -}; -struct CALEncodeGetRateControlConfigRec -{ - CAL_VID_ENCODE_RATE_CONTROL encode_rate; -}; -struct CALEncodeGetMotionEstimationConfigRec -{ - CAL_VID_ENCODE_MOTION_ESTIMATION_CONTROL encode_motion_estimation; -}; -struct CALEncodeGetRDOControlConfigRec -{ - CAL_VID_ENCODE_RDO_CONTROL encode_RDO; -}; - -typedef enum -{ - CAL_VID_CONFIG_TYPE_NONE = 0, - CAL_VID_CONFIG_TYPE_PICTURECONTROL = 1, - CAL_VID_CONFIG_TYPE_RATECONTROL = 2, - CAL_VID_CONFIG_TYPE_MOTIONSESTIMATION = 3, - CAL_VID_CONFIG_TYPE_RDO = 4 -} CAL_VID_CONFIG_TYPE; - -typedef struct -{ - CAL_VID_CONFIG_TYPE configType; - union - { - CAL_VID_ENCODE_PICTURE_CONTROL* pPictureControl; - CAL_VID_ENCODE_RATE_CONTROL* pRateControl; - CAL_VID_ENCODE_MOTION_ESTIMATION_CONTROL* pMotionEstimation; - CAL_VID_ENCODE_RDO_CONTROL* pRDO; - } config; -} CAL_VID_CONFIG; - -typedef enum -{ - CAL_VID_PICTURE_STRUCTURE_H264_NONE = 0, - CAL_VID_PICTURE_STRUCTURE_H264_FRAME = 1, - CAL_VID_PICTURE_STRUCTURE_H264_TOP_FIELD = 2, - CAL_VID_PICTURE_STRUCTURE_H264_BOTTOM_FIELD = 3 -} CAL_VID_PICTURE_STRUCTURE_H264; - -// Used to force picture type -typedef enum _CU_VID_PICTURE_TYPE_H264 -{ - CAL_VID_PICTURE_TYPE_H264_NONE = 0, - CAL_VID_PICTURE_TYPE_H264_SKIP = 1, - CAL_VID_PICTURE_TYPE_H264_IDR = 2, - CAL_VID_PICTURE_TYPE_H264_I = 3, - CAL_VID_PICTURE_TYPE_H264_P = 4 -} CAL_VID_PICTURE_TYPE_H264; - -typedef union _CAL_VID_ENCODE_PARAMETERS_H264_FLAGS -{ - struct - { - // enable/disable features - unsigned int reserved : 32; // reserved fields must be set to zero - } flags; - unsigned int value; -}CAL_VID_ENCODE_PARAMETERS_H264_FLAGS; - -typedef struct -{ - CALuint size; // structure size. Must be always set to the size of AVE_ENCODE_PARAMETERS_H264. - - CAL_VID_ENCODE_PARAMETERS_H264_FLAGS flags; // enable/disable any supported features - - CALboolean insertSPS; - CAL_VID_PICTURE_STRUCTURE_H264 pictureStructure; - CALboolean forceRefreshMap; - CALuint forceIMBPeriod; - CAL_VID_PICTURE_TYPE_H264 forcePicType; -} CAL_VID_ENCODE_PARAMETERS_H264; - -typedef enum -{ - CAL_VID_BUFFER_TYPE_NONE = 0, - CAL_VID_BUFFER_TYPE_ENCODE_PARAM_H264 = 1, - CAL_VID_BUFFER_TYPE_PICTURE = 2, - CAL_VID_BUFFER_TYPE_SLICE_HEADER = 3, - CAL_VID_BUFFER_TYPE_SLICE = 4, - CAL_VID_BUFFER_TYPE_RECONSTRUCTED_PICTURE_OUTPUT = 5 -} CAL_VID_BUFFER_TYPE; - -#define CAL_VID_SURFACE_HANDLE void* - -typedef struct -{ - CAL_VID_BUFFER_TYPE bufferType; - union - { - CAL_VID_ENCODE_PARAMETERS_H264* pEncodeParamH264; - CAL_VID_SURFACE_HANDLE pPicture; - CAL_VID_SURFACE_HANDLE pSliceHeader; - CAL_VID_SURFACE_HANDLE pSlice; - CAL_VID_SURFACE_HANDLE pReconstructedPictureOutput; - - } buffer; -} CAL_VID_BUFFER_DESCRIPTION; - -typedef enum -{ - CAL_VID_TASK_STATUS_NONE = 0, - CAL_VID_TASK_STATUS_COMPLETE = 1, // encoding task has finished successfully. - CAL_VID_TASK_STATUS_FAILED = 2 // encoding task has finished but failed. -} CAL_VID_TASK_STATUS; - -typedef struct -{ - CALuint size; // structure size - CALuint taskID; // task ID - CAL_VID_TASK_STATUS status; // Task status. May be duplicated if current task has multiple output blocks. - CALuint size_of_bitstream_data; // data size of the output block - void* bitstream_data; // read pointer the top portion of the generated bitstream data for the current task -} CAL_VID_OUTPUT_DESCRIPTION; - typedef enum CALmemcopyflagsEnum { CAL_MEMCOPY_DEFAULT = 0, /**< default CAL behavior of partial sync */ diff --git a/rocclr/runtime/device/gpu/gslbe/src/rt/GSLContext.cpp b/rocclr/runtime/device/gpu/gslbe/src/rt/GSLContext.cpp index bd9cba155e..184762f691 100644 --- a/rocclr/runtime/device/gpu/gslbe/src/rt/GSLContext.cpp +++ b/rocclr/runtime/device/gpu/gslbe/src/rt/GSLContext.cpp @@ -29,14 +29,6 @@ CALGSLContext::CALGSLContext() COMPILE_TIME_ASSERT((int)MAX_OUTPUTS <= (int)GSL_MAX_OUTPUT); - COMPILE_TIME_ASSERT((int)GSL_VID_CONTEXT_VIDEO == (int)CAL_CONTEXT_VIDEO); - COMPILE_TIME_ASSERT((int)GSL_VID_CONTEXT_3DCOMPUTE == (int)CAL_CONTEXT_3DCOMPUTE); - COMPILE_TIME_ASSERT((int)GSL_VID_CONTEXT_COMPUTE0 == (int)CAL_CONTEXT_COMPUTE0); - COMPILE_TIME_ASSERT((int)GSL_VID_CONTEXT_COMPUTE1 == (int)CAL_CONTEXT_COMPUTE1); - COMPILE_TIME_ASSERT((int)GSL_VID_CONTEXT_DRMDMA0 == (int)CAL_CONTEXT_DRMDMA0); - COMPILE_TIME_ASSERT((int)GSL_VID_CONTEXT_DRMDMA1 == (int)CAL_CONTEXT_DRMDMA1); - COMPILE_TIME_ASSERT((int)GSL_VID_CONTEXT_VIDEO_VCE == (int)CAL_CONTEXT_VIDEO_VCE); - memset(m_textureSamplers, 0, sizeof(m_textureSamplers)); memset(m_textureResources, 0, sizeof(m_textureResources)); memset(m_uavResources, 0, sizeof(m_uavResources)); @@ -417,25 +409,6 @@ CALGSLContext::runProgramGrid(GpuEvent& event, const ProgramGrid* pProgramGrid, return true; } -bool -CALGSLContext::runProgramVideoDecode(GpuEvent& event, gslMemObject mo, const CALprogramVideoDecode& decode) -{ - gslVidDecodeData data; - data.decode_output = mo; - data.picture_parameter_1 = decode.picture_parameter_1; - data.picture_parameter_2 = decode.picture_parameter_2; - data.picture_parameter_2_size = decode.picture_parameter_2_size; - data.bitstream_data = decode.bitstream_data; - data.bitstream_data_size = decode.bitstream_data_size; - data.slice_data_control = decode.slice_data_control; - data.slice_data_size = decode.slice_data_size; - - eventBegin(MainEngine); - eventEnd(MainEngine, event); - - return true; -} - bool CALGSLContext::isDone(GpuEvent* event) { diff --git a/rocclr/runtime/device/gpu/gslbe/src/rt/GSLContext.h b/rocclr/runtime/device/gpu/gslbe/src/rt/GSLContext.h index ecb866e56f..7fd5a25dae 100644 --- a/rocclr/runtime/device/gpu/gslbe/src/rt/GSLContext.h +++ b/rocclr/runtime/device/gpu/gslbe/src/rt/GSLContext.h @@ -43,7 +43,6 @@ public: void setProgram(gslProgramObject func); void setWavesPerSH(gslProgramObject func, uint32 wavesPerSH)const; bool runProgramGrid(GpuEvent& event, const ProgramGrid* pProgramGrid, const gslMemObject* mems, uint32 numMems); - bool runProgramVideoDecode(GpuEvent& event, gslMemObject mo, const CALprogramVideoDecode& decode); void runAqlDispatch(GpuEvent& event, const void* aqlPacket, const gslMemObject* mems, uint32 numMems, gslMemObject scratch, uint32 scratchOffset, const void* cpuKernelCode, uint64 hsaQueueVA, const void* kernelInfo); @@ -99,27 +98,6 @@ public: void setGWSResource(uint32 index, uint32 value); - void createVCE(CALEncodeCreateVCE* pEncodeVCE, CALuint flags); - void destroyVCE(CALuint flags); - void getDeviceInfoVCE(CALuint *num_device, CALEncodeGetDeviceInfo* pEncodeDeviceInfo, CALuint flags); - void getNumberOfModesVCE(CALEncodeGetNumberOfModes* pEncodeNumberOfModes, CALuint flags); - void getModesVCE(CALuint device_id, CALuint NumEncodeModesToRetrieve, CALEncodeGetModes* pEncodeMode, CALuint flags); - void getDeviceCAPVCE(CALuint device_id, CALuint encode_cap_total_size, CALEncodeGetDeviceCAP *pEncodeCAP, CALuint flags); - - void createEncodeSession(CALuint device_id, CALencodeMode encode_mode, CAL_VID_PROFILE_LEVEL encode_profile_level, - CAL_VID_PICTURE_FORMAT encode_formatm, CALuint encode_width, CALuint encode_height, - CALuint frameRateNum, CALuint frameRateDenom, CAL_VID_ENCODE_JOB_PRIORITY encode_priority_level); - void closeVideoEncodeSession(CALuint device_id); - - void setState(CALEncodeSetState state, CALuint flags); - void getPictureConfig(CALEncodeGetPictureControlConfig *pPictureControlConfig, CALuint flags); - void getRateControlConfig(CALEncodeGetRateControlConfig *pRateControConfig, CALuint flags); - void getMotionEstimationConfig(CALEncodeGetMotionEstimationConfig *pMotionEstimationConfig, CALuint flags); - void getRDOConfig(CALEncodeGetRDOControlConfig *pRODConfig, CALuint flags); - - void SendConfig(CALuint num_of_config_buffers, CAL_VID_CONFIG *pConfigBuffers, CALuint flags); - void EncodeePicture(GpuEvent& event, CALuint num_of_encode_task_input_buffer, CAL_VID_BUFFER_DESCRIPTION *encode_task_input_buffer_list, void *picture_parameter, CALuint *pTaskID, gslMemObject input_NV12_surface, CALuint flags); - void QueryTaskDescription(CALuint num_of_task_description_request, CALuint *num_of_task_description_return, CAL_VID_OUTPUT_DESCRIPTION *task_description_list, CALuint flags); void ReleaseOutputResource(CALuint taskID, CALuint flags); bool moduleLoad(CALimage image, gslProgramObject* func, gslMemObject* constants, CALUavMask* uavMask); bool WaitSignal(gslMemObject mem, CALuint value); diff --git a/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp b/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp index 463fa3a10e..a385df7d6e 100644 --- a/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp +++ b/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp @@ -31,7 +31,6 @@ void CALGSLDevice::Initialize() m_vpucount = 1; m_srcDRMDMAMem = NULL ; m_dstDRMDMAMem = NULL ; - m_videoAttribs.video_attribs = NULL; m_nativeDisplayHandle = NULL; m_deviceMode = GSL_DEVICE_MODE_GFX; @@ -58,8 +57,6 @@ CALGSLDevice::~CALGSLDevice() delete gslDeviceOps_; - delete [] m_videoAttribs.video_attribs; - switch(m_deviceMode) { case GSL_DEVICE_MODE_NONE: @@ -161,34 +158,6 @@ CALGSLDevice::getAttribs_int(gsl::gsCtx* cs) m_attribs.isSVMFineGrainSystem = m_adp->pAsicInfo->svmFineGrainSystem; } -void -CALGSLDevice::getVideoAttribs_int(gslVideoContext* vsHandle) -{ - gslVidGetInfoStruc vidInfo = {0}; - gslVidGetInfo(vsHandle, &vidInfo); - - if (vidInfo.num_attribs > 0) - { - CALvideoAttrib * video_attribs = new CALvideoAttrib[vidInfo.num_attribs]; - for (uint32 i=0; i < vidInfo.num_attribs; i++) - { - video_attribs[i].decodeProfile = static_cast(vidInfo.video_attribs[i].decodeProfile); - video_attribs[i].decodeFormat = static_cast(vidInfo.video_attribs[i].decodeFormat); - } - - m_videoAttribs.max_decode_sessions = vidInfo.num_attribs ; - m_videoAttribs.video_attribs = video_attribs; - } - else - { - m_videoAttribs.max_decode_sessions = 0; - m_videoAttribs.video_attribs = NULL; - } - - m_videoAttribs.data_size = sizeof(CALdeviceVideoAttribs) + sizeof(CALvideoAttrib) * vidInfo.num_attribs; - -} - void CALGSLDevice::getStatus_int(gsl::gsCtx* cs) { @@ -607,15 +576,8 @@ CALGSLDevice::SetupContext(int32 &asic_id) return false; } - gslVidInit(); - //cache device details - gslVideoContext temp_vid_context; - temp_vid_context.m_gsCtx = temp_cs; - temp_vid_context.VideoEngine_name = GSL_VID_CONTEXT_VIDEO; - getAttribs_int(temp_cs); - getVideoAttribs_int(&temp_vid_context); getStatus_int(temp_cs); m_vmMode = temp_cs->getVMMode(); diff --git a/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.h b/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.h index c61dc0ce76..06044daa34 100644 --- a/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.h +++ b/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.h @@ -97,7 +97,6 @@ public: uint32 getMaxTextureSize() const; const CALdeviceattribs& getAttribs() const { return m_attribs; } - const CALdeviceVideoAttribs& getVideoAttribs() const { return m_videoAttribs; } const CALdevicestatus& getStatus() const {return m_deviceStatus; } void getMemInfo(gslMemInfo* memInfo) const; @@ -207,12 +206,10 @@ private: void PerformFullInitialization_int(); void getAttribs_int(gsl::gsCtx* cs); - void getVideoAttribs_int(gslVideoContext* vsHandle); void getStatus_int(gsl::gsCtx* cs); bool ResolveAperture(const gslMemObjectAttribTiling tiling) const; CALdeviceattribs m_attribs; - CALdeviceVideoAttribs m_videoAttribs; CALdevicestatus m_deviceStatus; gslTextureResourceObject m_textureResource; gslSamplerObject m_textureSampler;