@@ -17,33 +17,46 @@ using executorch::runtime::Error;
17
17
Error HtpBackendCache::RetrieveBackendBinaryInfo (
18
18
const QnnSystemContext_BinaryInfo_t* binaryinfo) {
19
19
QnnHtpSystemContext_HwBlobInfo_t* htp_hwblobinfo = nullptr ;
20
+ QnnHtpSystemContext_GraphBlobInfo_t* htp_graphblobinfo = nullptr ;
20
21
21
22
if (binaryinfo->version == QNN_SYSTEM_CONTEXT_BINARY_INFO_VERSION_1) {
22
23
htp_hwblobinfo = static_cast <QnnHtpSystemContext_HwBlobInfo_t*>(
23
24
binaryinfo->contextBinaryInfoV1 .hwInfoBlob );
24
25
} else if (binaryinfo->version == QNN_SYSTEM_CONTEXT_BINARY_INFO_VERSION_2) {
25
26
htp_hwblobinfo = static_cast <QnnHtpSystemContext_HwBlobInfo_t*>(
26
27
binaryinfo->contextBinaryInfoV2 .hwInfoBlob );
28
+ } else if (binaryinfo->version == QNN_SYSTEM_CONTEXT_BINARY_INFO_VERSION_3) {
29
+ htp_graphblobinfo = static_cast <QnnHtpSystemContext_GraphBlobInfo_t*>(
30
+ binaryinfo->contextBinaryInfoV3 .graphs ->graphInfoV3 .graphBlobInfo );
27
31
} else {
28
32
QNN_EXECUTORCH_LOG_WARN (
29
33
" Unknown QNN BinaryInfo version %d." , binaryinfo->version );
30
34
return Error::Internal;
31
35
}
32
36
33
- if (htp_hwblobinfo == nullptr ) {
34
- QNN_EXECUTORCH_LOG_WARN (
35
- " Htp hardware blob information is not found in binary information." );
36
- return Error::Ok;
37
+ if (htp_hwblobinfo) {
38
+ if (htp_hwblobinfo->version ==
39
+ QNN_SYSTEM_CONTEXT_HTP_HW_INFO_BLOB_VERSION_V1) {
40
+ spill_fill_buf_ =
41
+ (*htp_hwblobinfo).contextBinaryHwInfoBlobV1_t .spillFillBufferSize ;
42
+ } else {
43
+ QNN_EXECUTORCH_LOG_WARN (
44
+ " Unknown QNN Htp hw blob info version %d." , htp_hwblobinfo->version );
45
+ return Error::Internal;
46
+ }
37
47
}
38
48
39
- if (htp_hwblobinfo->version ==
40
- QNN_SYSTEM_CONTEXT_HTP_HW_INFO_BLOB_VERSION_V1) {
41
- spill_fill_buf_ =
42
- (*htp_hwblobinfo).contextBinaryHwInfoBlobV1_t .spillFillBufferSize ;
43
- } else {
44
- QNN_EXECUTORCH_LOG_WARN (
45
- " Unknown QNN Htp hw blob info version %d." , htp_hwblobinfo->version );
46
- return Error::Internal;
49
+ if (htp_graphblobinfo) {
50
+ if (htp_graphblobinfo->version ==
51
+ QNN_SYSTEM_CONTEXT_HTP_GRAPH_INFO_BLOB_VERSION_V1) {
52
+ spill_fill_buf_ =
53
+ (*htp_graphblobinfo).contextBinaryGraphBlobInfoV1 .spillFillBufferSize ;
54
+ } else {
55
+ QNN_EXECUTORCH_LOG_WARN (
56
+ " Unknown QNN Htp graph blob info version %d." ,
57
+ htp_graphblobinfo->version );
58
+ return Error::Internal;
59
+ }
47
60
}
48
61
49
62
return Error::Ok;
0 commit comments