diff --git a/src/renderer/components/SettingsModal.tsx b/src/renderer/components/SettingsModal.tsx index d3888a083..08e34d1ea 100644 --- a/src/renderer/components/SettingsModal.tsx +++ b/src/renderer/components/SettingsModal.tsx @@ -376,7 +376,7 @@ const PythonSettings = memo(() => { const [onnxShouldTensorRtFp16, setOnnxShouldTensorRtFp16] = useOnnxShouldTensorRtFp16; const isUsingTensorRt = onnxExecutionProvider === 'TensorrtExecutionProvider'; - const [nvidiaGpuList, setNvidiaGpuList] = useState([]); + const [nvidiaGpuList, setNvidiaGpuList] = useState(); useAsyncEffect( () => ({ supplier: async () => backend.listNvidiaGpus(), @@ -386,7 +386,7 @@ const PythonSettings = memo(() => { ); const [ncnnGPU, setNcnnGPU] = useNcnnGPU; - const [ncnnGpuList, setNcnnGpuList] = useState([]); + const [ncnnGpuList, setNcnnGpuList] = useState(); useAsyncEffect( () => ({ supplier: () => backend.listNcnnGpus(), @@ -401,8 +401,9 @@ const PythonSettings = memo(() => { } }, [isCpu, isFp16, setIsFp16]); - const onnxExecutionProviders = useMemo( - () => [ + const onnxExecutionProviders = useMemo(() => { + if (!nvidiaGpuList) return undefined; + return [ ...(nvidiaGpuList.length > 0 ? [ { @@ -423,9 +424,8 @@ const PythonSettings = memo(() => { }, ] : []), - ], - [nvidiaGpuList] - ); + ]; + }, [nvidiaGpuList]); const onButtonClick = useCallback(async () => { const fileDir = systemPythonLocation ? path.dirname(systemPythonLocation) : lastDirectory; @@ -558,7 +558,7 @@ const PythonSettings = memo(() => { }} /> - {!isArmMac && ( + {!isArmMac && nvidiaGpuList !== undefined && ( { divider={} w="full" > - ({ - label: `${i}: ${gpu}`, - value: i, - })) - } - title="NCNN GPU" - value={ncnnGPU} - onChange={setNcnnGPU} - /> + {ncnnGpuList !== undefined && ( + ({ + label: `${i}: ${gpu}`, + value: i, + })) + } + title="NCNN GPU" + value={ncnnGPU} + onChange={setNcnnGPU} + /> + )} @@ -604,7 +606,7 @@ const PythonSettings = memo(() => { divider={} w="full" > - {!isArmMac && ( + {!isArmMac && nvidiaGpuList !== undefined && ( { onChange={setOnnxGPU} /> )} - + {onnxExecutionProviders && ( + + )} {isUsingTensorRt && (