| 102 | } |
| 103 | |
| 104 | void NvOFCuda::DoInit(const NV_OF_INIT_PARAMS& initParams) { |
| 105 | uint32_t minWidth = _QuerySupportCaps(NV_OF_CAPS_WIDTH_MIN); |
| 106 | uint32_t maxWidth = _QuerySupportCaps(NV_OF_CAPS_WIDTH_MAX); |
| 107 | uint32_t minHeight = _QuerySupportCaps(NV_OF_CAPS_HEIGHT_MIN); |
| 108 | uint32_t maxHeight = _QuerySupportCaps(NV_OF_CAPS_HEIGHT_MAX); |
| 109 | if (!(initParams.width <= maxWidth && initParams.width >= minWidth && |
| 110 | initParams.height <= maxHeight && initParams.height >= minHeight)) { |
| 111 | mgb_throw( |
| 112 | MegBrainError, |
| 113 | "the input height must between [%d,%d] and width must between " |
| 114 | "[%d,%d]. your (h,w) is (%d,%d)\n", |
| 115 | minHeight, maxHeight, minWidth, maxWidth, initParams.height, |
| 116 | initParams.width); |
| 117 | } |
| 118 | NVOF_API_CALL(m_NvOFAPI->GetAPI()->nvOFInit(m_NvOFAPI->GetHandle(), &initParams)); |
| 119 | } |
| 120 | |
| 121 | uint32_t NvOFCuda::_QuerySupportCaps(const NV_OF_CAPS& cap) { |
| 122 | uint32_t size = 0; |