I'm getting a VK_ERROR_OUT_OF_DEVICE_MEMORY
error from a vkAllocateMemory
, having something to do with shadows. Poking around in the debugger, I see that it's dealing with a texture of format PFG_D32_FLOAT
, dimensions 2048 x 5120. Maybe this is a case of trying to do too much on a somewhat old and wimpy PC, but there's no error if I do the same stuff using the Direct3D RenderSystem.
Backtrace:
Code: Select all
RenderSystem_Vulkan_d.dll!Ogre::ExceptionFactory::throwException(Ogre::Exception::ExceptionCodes code, int number, const std::string & desc, const std::string & src, const char * file, long line) Line 301 C++
RenderSystem_Vulkan_d.dll!Ogre::VulkanVaoManager::allocateVbo(unsigned __int64 sizeBytes, unsigned __int64 alignment, Ogre::VulkanVaoManager::VboFlag vboFlag, unsigned int textureMemTypeBits, unsigned __int64 & outVboIdx, unsigned __int64 & outBufferOffset) Line 1092 C++
RenderSystem_Vulkan_d.dll!Ogre::VulkanVaoManager::allocateTexture(const VkMemoryRequirements & memReq, unsigned __int64 & outVboIdx, unsigned __int64 & outBufferOffset) Line 1250 C++
RenderSystem_Vulkan_d.dll!Ogre::VulkanTextureGpu::createInternalResourcesImpl() Line 148 C++
OgreMain_d.dll!Ogre::TextureGpu::transitionToResident() Line 462 C++
OgreMain_d.dll!Ogre::TextureGpu::_transitionTo(Ogre::GpuResidency::GpuResidency newResidency, unsigned char * sysRamCopy, bool autoDeleteSysRamCopy) Line 521 C++
OgreMain_d.dll!Ogre::TextureDefinitionBase::setupTexture(Ogre::TextureGpu * tex, const Ogre::TextureDefinitionBase::TextureDefinition & textureDef, const Ogre::TextureGpu * finalTarget) Line 388 C++
OgreMain_d.dll!Ogre::TextureDefinitionBase::createTexture(const Ogre::TextureDefinitionBase::TextureDefinition & textureDef, const std::string & texName, const Ogre::TextureGpu * finalTarget, Ogre::RenderSystem * renderSys) Line 317 C++
OgreMain_d.dll!Ogre::TextureDefinitionBase::createTextures(const std::vector<Ogre::TextureDefinitionBase::TextureDefinition,std::allocator<Ogre::TextureDefinitionBase::TextureDefinition>> & textureDefs, std::vector<Ogre::TextureGpu *,std::allocator<Ogre::TextureGpu *>> & inOutTexContainer, unsigned int id, const Ogre::TextureGpu * finalTarget, Ogre::RenderSystem * renderSys) Line 297 C++
OgreMain_d.dll!Ogre::CompositorNode::CompositorNode(unsigned int id, Ogre::IdString name, const Ogre::CompositorNodeDef * definition, Ogre::CompositorWorkspace * workspace, Ogre::RenderSystem * renderSys, Ogre::TextureGpu * finalTarget) Line 84 C++
OgreMain_d.dll!Ogre::CompositorShadowNode::CompositorShadowNode(unsigned int id, const Ogre::CompositorShadowNodeDef * definition, Ogre::CompositorWorkspace * workspace, Ogre::RenderSystem * renderSys, Ogre::TextureGpu * finalTarget) Line 83 C++
OgreMain_d.dll!Ogre::CompositorWorkspace::findOrCreateShadowNode(Ogre::IdString nodeDefName, bool & bCreated) Line 918 C++
OgreMain_d.dll!Ogre::CompositorPassScene::CompositorPassScene(const Ogre::CompositorPassSceneDef * definition, Ogre::Camera * defaultCamera, const Ogre::RenderTargetViewDef * rtv, Ogre::CompositorNode * parentNode) Line 69 C++
OgreMain_d.dll!Ogre::CompositorNode::createPasses() Line 728 C++
OgreMain_d.dll!Ogre::CompositorWorkspace::connectAllNodes() Line 342 C++
OgreMain_d.dll!Ogre::CompositorWorkspace::recreateAllNodes() Line 645 C++
OgreMain_d.dll!Ogre::CompositorWorkspace::CompositorWorkspace(unsigned int id, const Ogre::CompositorWorkspaceDef * definition, const std::vector<Ogre::TextureGpu *,std::allocator<Ogre::TextureGpu *>> & externalRenderTargets, Ogre::SceneManager * sceneManager, Ogre::Camera * defaultCam, Ogre::RenderSystem * renderSys, bool bEnabled, unsigned char executionMask, unsigned char viewportModifierMask, const Ogre::Vector4 & vpOffsetScale, const std::vector<Ogre::UavBufferPacked *,std::allocator<Ogre::UavBufferPacked *>> * uavBuffers, const Ogre::StdMap<Ogre::GpuTrackedResource *,Ogre::ResourceStatus,std::less<Ogre::GpuTrackedResource *>> * initialLayouts) Line 93 C++
OgreMain_d.dll!Ogre::CompositorManager2::addWorkspace(Ogre::SceneManager * sceneManager, const std::vector<Ogre::TextureGpu *,std::allocator<Ogre::TextureGpu *>> & externalRenderTargets, Ogre::Camera * defaultCam, Ogre::IdString definitionName, bool bEnabled, int position, const std::vector<Ogre::UavBufferPacked *,std::allocator<Ogre::UavBufferPacked *>> * uavBuffers, const Ogre::StdMap<Ogre::GpuTrackedResource *,Ogre::ResourceStatus,std::less<Ogre::GpuTrackedResource *>> * initialLayouts, const Ogre::Vector4 & vpOffsetScale, unsigned char vpModifierMask, unsigned char executionMask) Line 521 C++
OgreMain_d.dll!Ogre::CompositorManager2::addWorkspace(Ogre::SceneManager * sceneManager, Ogre::TextureGpu * finalRenderTarget, Ogre::Camera * defaultCam, Ogre::IdString definitionName, bool bEnabled, int position, const std::vector<Ogre::UavBufferPacked *,std::allocator<Ogre::UavBufferPacked *>> * uavBuffers, const Ogre::StdMap<Ogre::GpuTrackedResource *,Ogre::ResourceStatus,std::less<Ogre::GpuTrackedResource *>> * initialLayouts, const Ogre::Vector4 & vpOffsetScale, unsigned char vpModifierMask, unsigned char executionMask) Line 498 C++