UE 5 和simulink聯合仿真,如果先在UE5這一端結束Play,過一段時間以后**Unreal Engine 5** 中會出現顯存不足錯誤

提問

UE5報錯如圖。解析原因
UE5報錯如圖。解析原因

回答

你遇到的這個錯誤提示是:

“Out of video memory trying to allocate a rendering resource. Make sure your video card has the minimum required memory, try lowering the resolution and/or closing other applications that are running. Exiting…”

這是 Unreal Engine 5 中非常常見的一個顯存不足錯誤。下面是詳細解析和解決建議:


🎯 錯誤原因解析

該錯誤表示 你的GPU顯存已經耗盡,無法再為新的渲染資源分配空間。在UE5中,由于使用了NaniteLumen等高端渲染技術,顯存消耗非常大,常見的原因包括:

🔍 常見觸發原因

  1. 場景中有大量高面數模型(尤其是開啟Nanite時)。
  2. 使用了高分辨率紋理(如4K、8K貼圖,或者多個材質重疊)。
  3. 實時光照 + Lumen GI同時開啟。
  4. Editor運行時加載了太多資源(如多個Level、海量Instance)。
  5. GPU顯存較小(< 6GB尤其容易出錯)。
  6. 顯卡驅動版本過舊或不兼容UE5

🛠? 解決方案

? 推薦優先檢查以下幾項:

1. 關閉其他占用顯卡資源的程序
  • 如Chrome、視頻播放器、OBS、Photoshop等。
  • 任務管理器 > 性能 > GPU中查看顯存使用情況。
2. 降低項目中資源的開銷
  • 檢查并禁用部分Lumen設置(尤其是反射和GI)。
  • 光照烘焙為靜態,減少實時渲染壓力。
  • 替換高分辨率紋理為2K或以下的版本。
  • 盡量避免場景中有大量高面數模型同時顯示。
  • 只加載當前需要的Level(使用World Partition的流式加載功能)。
3. 顯卡驅動更新
  • 前往NVIDIA或AMD官網下載安裝最新驅動。
4. 使用控制臺命令限制顯存使用

可以在命令行中嘗試:

r.Streaming.PoolSize=1500

(數值1500表示顯存池大小為1500MB,可以根據你GPU顯存適當調大或調小)

5. 降低編輯器設置(Editor Preferences)
  • Engine Scalability Settings 中把設置改為 Low 或 Medium
  • 關閉Real-time 視圖(在Viewport左上角下拉菜單中)。

🧪 臨時解決方案:命令行啟動參數(減少顯存需求)

在啟動項目時添加以下參數可以減少加載:

-projectfiles -nosplash -nocachedprovider -NoVerifyGC

🧠 建議升級硬件情況(如頻繁出現此問題)

項目建議最低配置
GPUNVIDIA RTX 3060 或更高(至少 12GB 顯存)
RAM32GB 內存
VRAM8GB 顯存或更高(最好12GB+)

如果你方便的話,可以告訴我:

  • 使用的顯卡型號?
  • 當前項目的內容復雜度(是否啟用Nanite/Lumen,模型數量等)?
  • 是否是運行編輯器時報錯,還是打包/運行游戲時報錯?

我可以根據你的具體情況再給出優化建議。

繼續提問

我是和simulink聯合仿真的。為什么我在play期間很長時間都不會出現這個問題,但是只要在結束Play以后(即便play時間很短),結束以后不久就必定報這個錯誤?好像和結束這個操作是有關系的。為什么不結束就不出現顯存不足,一旦結束過個一分鐘大概就必定報顯存不足?

回答

你這個現象非常關鍵,說明:

顯存不足并不是在Play過程中發生的,而是“退出Play”之后顯存釋放不當/異常累積導致的。

這是一個在 Unreal Engine 與外部系統(如Simulink、ROS、MATLAB等)聯合仿真中常見的 資源管理或內存泄露問題


🎯 問題核心分析

你提到的行為描述非常具體,我們逐條分析:

? 現象回顧

  • Play期間不報錯(即使時間較長)。
  • 結束Play后不久(大約一分鐘)100%出現“Out of Video Memory”
  • 每次只要運行并退出Play,就必定觸發,和Play時長無關。
  • 和你使用Simulink聯合仿真有關。

🔎 可能的根本原因

🧠 1. Simulink插件或通信模塊未正確釋放GPU資源

  • 如果你使用Simulink通過某種接口(如UDP、ROS、共享內存或自定義C++插件)與UE5通信:

    • Play期間會分配資源用于數據收發、圖形渲染、紋理映射等;
    • 退出Play時UE5嘗試釋放這些資源,但可能因為插件沒有實現正確的析構或清理邏輯,導致資源懸掛在GPU側
    • 然后過幾十秒,垃圾回收觸發或資源使用繼續增加 → 顯存爆掉。

🎯 所以Play期間反而不會立即爆,因為資源是被使用中的;一旦“釋放”出問題,才會出錯。


🧠 2. Actor或組件在退出Play后未被正確銷毀

  • UE5中的某些Actor、Component(比如自定義用于顯示Simulink數據的Mesh或Texture):

    • EndPlay時應被銷毀。
    • 如果有Tick、RenderTarget或MaterialInstance仍在后臺運行,它們會持續使用顯存

🧠 3. Render Target / Material / Texture 沒被手動釋放

  • 比如你用來顯示Simulink數據的動態紋理(UTextureRenderTarget2DUpdateResource()等):

    • 如果沒有調用 ReleaseResource(),或未設置 MarkPendingKill(),它們不會被清除。
    • 退出Play后,這些未釋放的資源依然占用GPU顯存。

🧠 4. 循環定時器或線程未被Kill

  • 有些插件或Blueprint可能在Play模式中注冊了Timer、線程或Event Dispatcher。
  • 如果這些沒有被正確ClearTimer(),會在退出Play后后臺繼續運行,引發延遲性資源堆積。

? 針對性解決建議

? 檢查Event EndPlay

確保你在Actor、Component等藍圖中實現了 Event EndPlay,清理所有動態資源:

Event EndPlay
→ Clear Timer by Handle
→ Release Texture Resources
→ Destroy Components
→ Set References to None

? 如果使用 C++ 插件:

檢查你的 BeginPlay() / EndPlay() 生命周期中是否有類似下面的管理:

MyTexture->ConditionalBeginDestroy();
MyRenderTarget->ReleaseResource();
MyComponent->DestroyComponent();

并且在 Tick() 和通信回調中加邏輯:判斷是否在編輯器模式下還在運行。


? 調試建議:使用UE內置顯存分析工具

打開以下命令窗口(Editor中按 ~ 進入控制臺):

stat RHI
stat GPU

退出Play后觀察顯存是否逐漸增加?是否某個資源未銷毀?

還可以使用:

rhi.DumpMemory

輸出當前內存占用狀態,查找泄露點。


? Editor設置修改

為了避免UE5自動保留資源,你可以嘗試:

  • Project Settings > Garbage Collection 中設置更短的回收時間;
  • 啟用 gc.DumpPoolStats 查看資源池占用情況。

🔧 如果你方便透露更多信息,我可以更具體幫助你排查:

  • 使用的Simulink接口(是否自定義插件?基于ROS還是UDP?)?
  • Play模式是否會使用RenderTarget / 動態材質?
  • 是否在Play模式中有Blueprint或C++不斷創建紋理或Mesh?
  • 是否能復現該現象于空項目中?

? 臨時規避方法

如果你短期內需要繞開這個問題:

  • 盡量避免多次Play → Stop,改為使用 Simulate 模式
  • 或者重啟Editor以強制釋放顯存;
  • 設置 r.Streaming.PoolSize=512 限制最大顯存池,避免暴漲。

如果你能提供你的資源創建 / Simulink接口邏輯的相關截圖(Blueprint或代碼),我可以幫你查找是否有遺漏的釋放邏輯。這個問題雖然表面是顯存,但本質是資源未釋放或泄露。我們可以一步步定位!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/83941.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/83941.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/83941.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

第七十三篇 從電影院售票到停車場計數:生活場景解析Java原子類精髓

目錄 一、原子類基礎&#xff1a;電影院售票系統1.1 傳統售票的并發問題1.2 原子類解決方案 二、原子類家族&#xff1a;超市收銀系統2.1 基礎類型原子類2.2 數組類型原子類 三、CAS機制深度解析&#xff1a;停車場管理系統3.1 CAS工作原理3.2 車位計數器實現 四、高性能實踐&a…

Linux(線程控制)

一 線程的操作 1. 創建線程&#xff1a;pthread_create int pthread_create(pthread_t *thread, // 線程 idconst pthread_attr_t *attr, // 線程屬性設置void *(*start_routine) (void *), // 回調函數void *arg // 傳遞…

PL/SQLDeveloper中數值類型字段查詢后顯示為科學計數法的處理方式

PL/SQLDeveloper中數值類型字段查詢后顯示為科學計數法的處理方式 文章目錄 PL/SQLDeveloper中數值類型字段查詢后顯示為科學計數法的處理方式1. 查詢效果2. 處理方式3. 再次查詢 1. 查詢效果 2. 處理方式 3. 再次查詢

centos 9/ubuntu 一次性的定時關機

方法一 # 15 表示15分鐘以后自動關機 sudo shutdown -h 15方法二&#xff1a; sudo dnf install at -y # 晚上十點半關機 echo "shutdown -h now" | at 22:30 # 檢查是否設置成功命令 atq [rootdemo-192 ~]# atq 1 Wed Jun 4 11:12:00 2025 a root # 取消定時計劃…

Riverpod與GetX的優缺點對比

Riverpod 與 GetX 的優缺點對比 在 Flutter 開發領域,Riverpod 和 GetX 都是備受關注的狀態管理與依賴注入框架,它們各有優劣,適用于不同的開發場景。以下從多個維度詳細對比二者的優缺點。 一、Riverpod 的優缺點 (一)優點 架構清晰,數據流向明確:基于 Provider 模…

day 47

注意力可視化 訓練模型 包含通道注意力模塊和CNN模型的定義&#xff08;通道注意力的插入&#xff09; import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import ma…

《Vuejs設計與實現》第 8 章(掛載與更新)

目錄 8.1 掛載子節點與屬性 8.2 HTML Attributes 與 DOM Properties 8.3 設置元素屬性的正確方式 8.4 處理 class 屬性 8.5 卸載操作 8.6 區分 vnode 類型 8.7 事件處理優化 8.8 事件冒泡與更新時機問題 8.9 子節點的更新 8.10 文本節點和注釋節點 8.11 片段&#xf…

自制操作系統(五、重寫引導部分和C語言的使用)

為了實現其他更多功能&#xff0c;我決定重新寫引導部分的內容 boot.asm ; boot.asm %include "config.inc"setuplen equ 4 bootseg equ 0x07c0 initseg equ def_initseg setupseg equ def_setupseg sysseg equ def_syssegsetupsector equ 2 syssector equ setupse…

口罩佩戴檢測算法AI智能分析網關V4工廠/工業等多場景守護公共衛生安全

一、引言? 在公共衛生安全日益受到重視的當下&#xff0c;口罩佩戴成為預防病毒傳播、保障人員健康的重要措施。為了高效、精準地實現對人員口罩佩戴情況的監測&#xff0c;AI智能分析網關V4口罩檢測方案應運而生。該方案依托先進的人工智能技術與強大的硬件性能&#xff0c;…

【評測】用Flux的圖片文本修改的PS效果

【評測】Flux的圖片文本修改的PS效果 1. 百度圖庫找一張有英文的圖片 2. 打開https://playground.bfl.ai/image/edit上傳圖片 3. 輸入提示詞 “change brarfant to goodbeer” 圖片的文字被修改了

【匯編逆向系列】三、函數調用包含單個參數之float類型-xmm0寄存器,sub,rep,stos,movss,mulss,addss指令

一、匯編代碼 single_float_param:0000000000000060: F3 0F 11 44 24 08 movss dword ptr [rsp8],xmm00000000000000066: 57 push rdi0000000000000067: 48 83 EC 10 sub rsp,10h000000000000006B: 48 8B FC mov …

深入了解UDP套接字:構建高效網絡通信

個人主頁&#xff1a;chian-ocean 文章專欄-NET 深入了解UDP套接字&#xff1a;構建高效網絡通信 個人主頁&#xff1a;chian-ocean文章專欄-NET 前言&#xff1a;UDPUDP 特點&#xff1a;UDP的應用 套接字地址IP地址&#xff08;Internet Protocol Address&#xff09;IP地址…

C++課設:實現簡易文件加密工具(凱撒密碼、異或加密、Base64編碼)

名人說&#xff1a;路漫漫其修遠兮&#xff0c;吾將上下而求索。—— 屈原《離騷》 創作者&#xff1a;Code_流蘇(CSDN)&#xff08;一個喜歡古詩詞和編程的Coder&#x1f60a;&#xff09; 專欄介紹&#xff1a;《編程項目實戰》 目錄 一、初識文件加密&#xff1a;為什么需要…

Qt/C++學習系列之Excel使用記錄

Qt/C學習系列之Excel使用記錄 前言The process was ended forcefully.解決方式斷點查語句問題 總結 前言 在項目中解析條目達50多條&#xff0c;并且都需要將對應的結果進行顯示。為了將結果顯示的更加清晰&#xff0c;考慮采用QTableWidget進行表格設置&#xff0c;而在使用過…

Mac軟件卸載指南,簡單易懂!

剛和Adobe分手&#xff0c;它卻總在Library里給你寫"回憶錄"&#xff1f;卸載的Final Cut Pro像電子幽靈般陰魂不散&#xff1f;總是會有殘留文件&#xff0c;別慌&#xff01;這份Mac軟件卸載指南&#xff0c;將用最硬核的方式教你"數字分手術"&#xff0…

并發編程實戰(生產者消費者模型)

在并發編程中使用生產者和消費者模式能夠解決絕大多數的并發問題。該模式通過平衡生產線程和消費線程的工作能力來提高程序整體處理數據的速度。 生產者和消費者模式&#xff1a; 在線程的世界中生產者就是產生數據的線程&#xff0c;而消費者則是消費數據的線程。在多線程開…

力扣hot100---152.乘積最大子數組

給你一個整數數組 nums &#xff0c;請你找出數組中乘積最大的非空連續子數組&#xff08;該子數組中至少包含一個數字&#xff09;&#xff0c;并返回該子數組所對應的乘積。 測試用例的答案是一個 32-位 整數。 示例 1: 輸入: nums [2,3,-2,4] 輸出:6解釋: 子數組 [2,3] 有最…

什么是DevOps智能平臺的核心功能?

在數字化轉型的浪潮中&#xff0c;DevOps智能平臺已成為企業提升研發效能、加速產品迭代的核心工具。然而&#xff0c;許多人對“DevOps智能平臺”的理解仍停留在“自動化工具鏈”的表層概念。今天&#xff0c;我們從一個真實場景切入&#xff1a;假設你是某互聯網公司的技術負…

柯尼卡美能達Konica Minolta bizhub 205i打印機信息

基本參數 產品類型&#xff1a;激光數碼復合機顏色類型&#xff1a;黑白涵蓋功能&#xff1a;復印、打印、掃描最大原稿尺寸&#xff1a;A3內存容量&#xff1a;256MB供紙容量&#xff1a;標配 350 頁&#xff0c;最大 1350 頁介質重量&#xff1a;標準紙盒 64-157g/㎡&#xf…

虛擬機與宿主機應用通信配置指南

1. 選擇虛擬機網絡模式 橋接模式 (Bridged) 客戶機獲得獨立局域網IP&#xff0c;與宿主機同網段。 客戶機可直接訪問宿主機IP&#xff08;如 192.168.1.x&#xff09;。 Host-Only 模式 僅宿主機與客戶機之間通信&#xff0c;宿主機通常有一個虛擬網卡&#xff08;如 192.16…