Jump to content

2.13 "RenderManager::createTexture2D(): can't create texture" crash


photo

Recommended Posts

Posted (edited)

Добрый день.
Наш продукт использует 2.13, возможно проблема уже была исправлена в последующих версиях?

На некоторых компах (явно от драйверов и/или железа зависит) наблюдаем падения нашей игры - в процессе игры вылетает модальное окошко "RenderManager::createTexture2D(): can't create texture" и игра закрывается.

Воспроизводится когда в винде остаётся мало оперативки (Upd: данное предположение неверно).
Зависит от .dll Unigine: воспроизводится когда загружена Unigine_double_x64.dll, но не воспроизводится с Unigine_double_x64d.dll
RenderManager вылетает из-за того, что из CDevice::CreateTexture2D (d3d11.dll) возвращается DXGI_ERROR_DEVICE_REMOVED

Выглядит примерно так:

Spoiler
>	Unigine_double_x64.dll!Log::fatal(const char * format, ...) Line 409	C++
 	Unigine_double_x64.dll!RenderManager::createTexture2D(int width, int height, int format, int flags, bool clear) Line 1788	C++
 	[Inline Frame] Unigine_double_x64.dll!Render::create_texture(int) Line 3995	C++
 	Unigine_double_x64.dll!Render::acquire_pool_texture(int id, int width, int height, int depth, int format, int flags, int type, const char * name, int accessory) Line 3725	C++
 	Unigine_double_x64.dll!Render::getTemporaryTexture(int width, int height, int format, int flags, const char * name, int accessory) Line 3843	C++
 	Unigine_double_x64.dll!RenderPost::renderSSR(RenderScreen * screen) Line 1113	C++
 	Unigine_double_x64.dll!RenderRenderer::render_screen(RenderScene * scene, RenderScreen * screen) Line 5728	C++
 	Unigine_double_x64.dll!RenderRenderer::render_main_scene(Texture * depth_out) Line 6276	C++
 	Unigine_double_x64.dll!RenderRenderer::renderWorld(Texture * depth_out) Line 289	C++
 	Unigine_double_x64.dll!Viewport::render_frame(Camera * camera) Line 1200	C++
 	Unigine_double_x64.dll!Viewport::render(Camera * camera) Line 298	C++
 	Unigine_double_x64.dll!Viewport::renderEngine(Camera * camera) Line 270	C++
 	Unigine_double_x64.dll!Render::renderWorld() Line 667	C++
 	Unigine_double_x64.dll!Engine::do_render() Line 2876	C++
 	Unigine_double_x64.dll!engine_render_func() Line 357	C++
 	Unigine_double_x64.dll!Engine::doRender() Line 3341	C++
 	TrainSim.exe!applicationRun(const boost::program_options::options_description & desc, const boost::program_options::variables_map & vm) Line 742	C++
 	TrainSim.exe!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, wchar_t * pCmdLine, int nCmdShow) Line 120	C++
 	[External Code]	

 



Если чуть копнуть, DXGI_ERROR рождается вот здесь

Spoiler

 

>	d3d11.dll!NOutermost::CDevice::CreateLayeredChild()	Unknown
 	d3d11.dll!CDevice::CreateTexture2D_Worker()	Unknown
 	d3d11.dll!CDevice::CreateTexture2D()	Unknown
 	Unigine_double_x64.dll!D3D11Texture::create2D(int w, int h, int f, int flags) Line 1205	C++
 	Unigine_double_x64.dll!RenderManager::createTexture2D(int width, int height, int format, int flags, bool clear) Line 1785	C++
 	[Inline Frame] Unigine_double_x64.dll!Render::create_texture(int) Line 3995	C++
 	Unigine_double_x64.dll!Render::acquire_pool_texture(int id, int width, int height, int depth, int format, int flags, int type, const char * name, int accessory) Line 3725	C++
 	Unigine_double_x64.dll!Render::getTemporaryTexture(int width, int height, int format, int flags, const char * name, int accessory) Line 3843	C++
 	Unigine_double_x64.dll!RenderPost::renderSSDirt(RenderScreen * screen) Line 1280	C++
 	Unigine_double_x64.dll!RenderRenderer::render_screen(RenderScene * scene, RenderScreen * screen) Line 5673	C++
 	Unigine_double_x64.dll!RenderRenderer::render_main_scene(Texture * depth_out) Line 6276	C++
 	Unigine_double_x64.dll!RenderRenderer::renderWorld(Texture * depth_out) Line 289	C++
 	Unigine_double_x64.dll!Viewport::render_frame(Camera * camera) Line 1200	C++
 	Unigine_double_x64.dll!Viewport::render(Camera * camera) Line 298	C++
 	Unigine_double_x64.dll!Viewport::renderEngine(Camera * camera) Line 270	C++
 	Unigine_double_x64.dll!Render::renderWorld() Line 667	C++
 	Unigine_double_x64.dll!Engine::do_render() Line 2876	C++
 	Unigine_double_x64.dll!engine_render_func() Line 357	C++
 	Unigine_double_x64.dll!Engine::doRender() Line 3341	C++
 	TrainSim.exe!applicationRun(const boost::program_options::options_description & desc, const boost::program_options::variables_map & vm) Line 742	C++
 	TrainSim.exe!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, wchar_t * pCmdLine, int nCmdShow) Line 120	C++
 	[External Code]	

ParralelTextures.png

ThreadsLogFatal.png

(UPD: предположение о связи с количеством отъеденой памяти не подтвердилось. Локально воспроизводится при 7 свободных GB из 32, один художник сообщал что у него воспроизводится при более половины свободной памяти в 64 GB)

log_ERROR_NOTDEBUG.txt log_NOERROR_WITHDEBUG.txt

Edited by Vladimir.Semenov
Обновлён анамнез
×
×
  • Create New...