Release & Debug configuration-dependent differences x64

#1
Hello, we develop project with CryEngine 5.4 and meet unspecified configuration-dependent behaviours.
First of all, we use Microsoft Visual Studio 2015 Pro and develop with C++ while our target platform is x64.
As i said above, we meet situatuions where the same code works in different ways with different configurations:

1) Some methods work only in Debug while doing nothing in Release

Code: Select all

gEnv->p3DEngine->CreateDecal(decal);

This code adds decals in Debug while absolutely doesn't work in Release. There is no warnings, exceptions, etc..

2) Other methods return nullptr in Release

Code: Select all

gEnv->pRenderer->EF_LoadTexture("Textures/UI/pricel.dds", FT_DONT_RELEASE | FT_DONT_STREAM | FT_FILESINGLE);
This method seems to returns nullptr instead of texture-resource, so there is no way to load a texture? Sounds very odd!

Code: Select all

gEnv->pSystem->GetI3DEngine()->RenderMeshRayIntersection(pRenderMesh, hitInfo);
Works fine with Debug configuration, but return zero pos and normal in Release.

3) Some methods just causes a crash

Code: Select all

gEnv->p3DEngine->GetMaterialManager()->LoadMaterial("Materials/bullet");
That code causes a crash in Release while returns a material in Debug.

All these behaviours are reproducable on different templates/empty projects and different computers.

On the other hand it seems to work fine on x86.
Is there any official platform restrictions? Or what probably we do wrong? Where can we read about platform/configuration-dependent 'features'?
It is very important for development.

Thank you!

Who is online

Users browsing this forum: No registered users and 3 guests

cron