|
|
Re: Problems and Crash with DriftFXSurface [message #1827901 is a reply to message #1827888] |
Tue, 26 May 2020 14:40   |
Marco Maisano Messages: 22 Registered: March 2020 |
Junior Member |
|
|
With the main memory mode I experimented the same behaviour, also on another PC with the NvIDIA GeForce 1060.
Anyway, the drift samples seem to work fine with 3 surfaces, so I think maybe the issue is related to something I am doing wrong.
In my JavaFX e4 RCP application, I have to display a different quad texture on each opened Part containing a DriftFXSurface. Since the Parts can be resized, textures have to be created and deleted to fit the corresponding DriftFXSurface pixel dimensions.
I tried to disable the textures, and I have seen that I can open many Parts/DriftFXSurfaces without problems; but when I have the texture layer enabled, the issue rises. I verified that the crash happens not only when I open the third surface, but also if I resize the second one after having opened it. With only one surface everything works fine, so I think the problem is related to the creation/deletion of textures at runtime when I have more than one surface/GLContext.
According to you, which is the correct strategy for creating, updating and deleting textures at runtime with multiple DriftFXSurfaces?
Following the error logs I obtained resizing the second surface with texture layer enabled for both NV_DX_Interop Mode and Main Memory Mode:
NV_DX_Interop Mode
[C] [ERROR] WGLGLContext.cpp:191 - driftfx::internal::gl::wgl::WGLGLContext::createGL Windows Error 0x5 (HGLRC hTempContext = wglCreateContext(hDC);)
Message: Access is denied.
[C] [ INFO] WGLGLContext.cpp:268 - driftfx::internal::gl::wgl::WGLGLContext::createGL Created OpenGL Context 0000000000010001: 4.1.0 NVIDIA 442.92 ( shared: 0000000000000000 )
[C] [ INFO] WGLGLContext.cpp:268 - driftfx::internal::gl::wgl::WGLGLContext::createGL Created OpenGL Context 0000000000010002: 4.1.0 NVIDIA 442.92 ( shared: 0000000000010001 )
[C] [ INFO] WGLGLContext.cpp:268 - driftfx::internal::gl::wgl::WGLGLContext::createGL Created OpenGL Context 0000000000010003: 4.1.0 NVIDIA 442.92 ( shared: 0000000000010001 )
[C] [ INFO] WGLGLContext.cpp:268 - driftfx::internal::gl::wgl::WGLGLContext::createGL Created OpenGL Context 0000000000010004: 4.1.0 NVIDIA 442.92 ( shared: 0000000000010001 )
[C] [ERROR] GLTexture.cpp: 52 - glDeleteTextures(1, &textureName) GL Error occurred! GL_INVALID_OPERATION:
GL call: glDeleteTextures(1, &textureName)
Location: C:\DriftFX-native\DriftFX\src\gl\GLTexture.cpp;52
Function: driftfx::gl::GLTexture::~GLTexture
Main Memory Mode
[C] [ERROR] WGLGLContext.cpp:191 - driftfx::internal::gl::wgl::WGLGLContext::createGL Windows Error 0x5 (HGLRC hTempContext = wglCreateContext(hDC);)
Message: Access is denied.
[C] [ INFO] WGLGLContext.cpp:268 - driftfx::internal::gl::wgl::WGLGLContext::createGL Created OpenGL Context 0000000000010001: 4.1.0 NVIDIA 442.92 ( shared: 0000000000000000 )
[C] [ INFO] WGLGLContext.cpp:268 - driftfx::internal::gl::wgl::WGLGLContext::createGL Created OpenGL Context 0000000000010002: 4.1.0 NVIDIA 442.92 ( shared: 0000000000010001 )
[C] [ INFO] WGLGLContext.cpp:268 - driftfx::internal::gl::wgl::WGLGLContext::createGL Created OpenGL Context 0000000000010003: 4.1.0 NVIDIA 442.92 ( shared: 0000000000010001 )
[C] [ INFO] WGLGLContext.cpp:268 - driftfx::internal::gl::wgl::WGLGLContext::createGL Created OpenGL Context 0000000000010004: 4.1.0 NVIDIA 442.92 ( shared: 0000000000010001 )
[C] [ERROR] SharedTexture.cpp: 47 - frameReady = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0) GL Error occurred! GL_INVALID_OPERATION:
GL call: frameReady = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0)
Location: C:\DriftFX-native\DriftFX\src\SharedTexture.cpp;47
Function: driftfx::internal::SharedTexture::SignalFrameReady
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.02865 seconds