Render to Texture performance

You discovered a bug in the engine, and you are sure that it is not a problem of your code? Just post it in here. Please read the bug posting guidelines first.
Nadro
Posts: 1648
Joined: Sun Feb 19, 2006 9:08 am
Location: Warsaw, Poland

Re: Render to Texture performance

Post by Nadro »

devsh wrote:One of the problems with irrlicht is that there is no MRT object, so an FBO is made for each render target texture instead, and that is mutated to attach other textures as outputs 1 and onwards. This is really slow in some drivers according to Valve and Intel
In trunk we added IRenderTarget object, so this problem is solved.
Library helping with network requests, tasks management, logger etc in desktop and mobile apps: https://github.com/GrupaPracuj/hermes
devsh
Competition winner
Posts: 2057
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Re: Render to Texture performance

Post by devsh »

nice

did you see my document about my Buffer-Centric irrlicht fork?
The_Glitch
Competition winner
Posts: 523
Joined: Tue Jan 15, 2013 6:36 pm

Re: Render to Texture performance

Post by The_Glitch »

Negative sir the problem is only solved if you use the trunk.
devsh
Competition winner
Posts: 2057
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Re: Render to Texture performance

Post by devsh »

01-22 13:52:56:269 : [OPENGL] [MEDIUM][OPENGL DEPRECATED] API_ID_LINE_WIDTH deprecated behavior warning has been generated. Wide lines have been deprecated. glLineWidth set to 1.600000. glLineWidth with width greater than 1.0 will generate GL_INVALID_VALUE error in future versions
01-22 13:52:56:323 : [OPENGL] [ LOW ][OPENGL PERFORMANCE] API_ID_REDUNDANT_FBO performance warning has been generated. Redundant state change in glBindFramebuffer API call, FBO 0, "", already bound.
01-22 13:52:56:323 : [OPENGL] [MEDIUM][OPENGL DEPRECATED] API_ID_LINE_WIDTH deprecated behavior warning has been generated. Wide lines have been deprecated. glLineWidth set to 1.600000. glLineWidth with width greater than 1.0 will generate GL_INVALID_VALUE error in future versions
01-22 13:52:56:353 : [OPENGL] [ LOW ][OPENGL PERFORMANCE] API_ID_REDUNDANT_FBO performance warning has been generated. Redundant state change in glBindFramebuffer API call, FBO 0, "", already bound.
01-22 13:52:56:354 : [OPENGL] [MEDIUM][OPENGL DEPRECATED] API_ID_LINE_WIDTH deprecated behavior warning has been generated. Wide lines have been deprecated. glLineWidth set to 1.600000. glLineWidth with width greater than 1.0 will generate GL_INVALID_VALUE error in future versions
01-22 13:52:56:394 : [OPENGL] [ LOW ][OPENGL PERFORMANCE] API_ID_REDUNDANT_FBO performance warning has been generated. Redundant state change in glBindFramebuffer API call, FBO 0, "", already bound.
01-22 13:52:56:394 : [OPENGL] [MEDIUM][OPENGL DEPRECATED] API_ID_LINE_WIDTH deprecated behavior warning has been generated. Wide lines have been deprecated. glLineWidth set to 1.600000. glLineWidth with width greater than 1.0 will generate GL_INVALID_VALUE error in future versions
01-22 13:52:57:449 : [OPENGL] [ LOW ][OPENGL PERFORMANCE] API_ID_REDUNDANT_FBO performance warning has been generated. Redundant state change in glBindFramebuffer API call, FBO 0, "", already bound.
01-22 13:52:57:449 : [OPENGL] [MEDIUM][OPENGL DEPRECATED] API_ID_LINE_WIDTH deprecated behavior warning has been generated. Wide lines have been deprecated. glLineWidth set to 1.600000. glLineWidth with width greater than 1.0 will generate GL_INVALID_VALUE error in future versions
01-22 13:52:57:485 : [OPENGL] [ LOW ][OPENGL PERFORMANCE] API_ID_REDUNDANT_FBO performance warning has been generated. Redundant state change in glBindFramebuffer API call, FBO 0, "", already bound.
01-22 13:52:57:485 : [OPENGL] [MEDIUM][OPENGL DEPRECATED] API_ID_LINE_WIDTH deprecated behavior warning has been generated. Wide lines have been deprecated. glLineWidth set to 1.600000. glLineWidth with width greater than 1.0 will generate GL_INVALID_VALUE error in future versions
01-22 13:52:57:521 : [OPENGL] [ LOW ][OPENGL PERFORMANCE] API_ID_REDUNDANT_FBO performance warning has been generated. Redundant state change in glBindFramebuffer API call, FBO 0, "", already bound.
01-22 13:52:57:521 : [OPENGL] [MEDIUM][OPENGL DEPRECATED] API_ID_LINE_WIDTH deprecated behavior warning has been generated. Wide lines have been deprecated. glLineWidth set to 1.600000. glLineWidth with width greater than 1.0 will generate GL_INVALID_VALUE error in future versions
01-22 13:52:57:575 : [OPENGL] [ LOW ][OPENGL PERFORMANCE] API_ID_REDUNDANT_FBO performance warning has been generated. Redundant state change in glBindFramebuffer API call, FBO 0, "", already bound.
01-22 13:52:57:575 : [OPENGL] [MEDIUM][OPENGL DEPRECATED] API_ID_LINE_WIDTH deprecated behavior warning has been generated. Wide lines have been deprecated. glLineWidth set to 1.600000. glLineWidth with width greater than 1.0 will generate GL_INVALID_VALUE error in future versions
01-22 13:52:57:608 : [OPENGL] [ LOW ][OPENGL PERFORMANCE] API_ID_REDUNDANT_FBO performance warning has been generated. Redundant state change in glBindFramebuffer API call, FBO 0, "", already bound.
01-22 13:52:57:608 : [OPENGL] [MEDIUM][OPENGL DEPRECATED] API_ID_LINE_WIDTH deprecated behavior warning has been generated. Wide lines have been deprecated. glLineWidth set to 1.600000. glLineWidth with width greater than 1.0 will generate GL_INVALID_VALUE error in future versions
01-22 13:52:57:666 : [OPENGL] [ LOW ][OPENGL PERFORMANCE] API_ID_REDUNDANT_FBO performance warning has been generated. Redundant state change in glBindFramebuffer API call, FBO 0, "", already bound.
01-22 13:52:57:666 : [OPENGL] [MEDIUM][OPENGL DEPRECATED] API_ID_LINE_WIDTH deprecated behavior warning has been generated. Wide lines have been deprecated. glLineWidth set to 1.600000. glLineWidth with width greater than 1.0 will generate GL_INVALID_VALUE error in future versions
01-22 13:52:57:701 : [OPENGL] [ LOW ][OPENGL PERFORMANCE] API_ID_REDUNDANT_FBO performance warning has been generated. Redundant state change in glBindFramebuffer API call, FBO 0, "", already bound.
01-22 13:52:57:702 : [OPENGL] [MEDIUM][OPENGL DEPRECATED] API_ID_LINE_WIDTH deprecated behavior warning has been generated. Wide lines have been deprecated. glLineWidth set to 1.600000. glLineWidth with width greater than 1.0 will generate GL_INVALID_VALUE error in future versions
01-22 13:52:57:738 : [OPENGL] [ LOW ][OPENGL PERFORMANCE] API_ID_REDUNDANT_FBO performance warning has been generated. Redundant state change in glBindFramebuffer API call, FBO 0, "", already bound.
01-22 13:52:57:738 : [OPENGL] [MEDIUM][OPENGL DEPRECATED] API_ID_LINE_WIDTH deprecated behavior warning has been generated. Wide lines have been deprecated. glLineWidth set to 1.600000. glLineWidth with width greater than 1.0 will generate GL_INVALID_VALUE error in future versions
01-22 13:52:57:790 : [OPENGL] [ LOW ][OPENGL PERFORMANCE] API_ID_REDUNDANT_FBO performance warning has been generated. Redundant state change in glBindFramebuffer API call, FBO 0, "", already bound.
Getting these beauties from KHR_debug and Intel Driver
Nadro
Posts: 1648
Joined: Sun Feb 19, 2006 9:08 am
Location: Warsaw, Poland

Re: Render to Texture performance

Post by Nadro »

The_Glitch wrote:Negative sir the problem is only solved if you use the trunk.
Trunk -> current state of Irrlicht development, so it's solved.

@devsh
devsh wrote:did you see my document about my Buffer-Centric irrlicht fork?
I'm not sure, but probably not. Is this log from trunk? In trunk we check if the new FBO is different than the last FBO:

Code: Select all

if (FrameBufferID != frameBufferID)
{
    Driver->irrGlBindFramebuffer(GL_FRAMEBUFFER, frameBufferID);
    FrameBufferID = frameBufferID;
}
Library helping with network requests, tasks management, logger etc in desktop and mobile apps: https://github.com/GrupaPracuj/hermes
devsh
Competition winner
Posts: 2057
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Re: Render to Texture performance

Post by devsh »

Doing a fork and rewrite of most IMesh+IMeshBuffer related things

https://docs.google.com/document/d/1BSZ ... kSgU4/edit

This is my amended architecture
devsh
Competition winner
Posts: 2057
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Re: Render to Texture performance

Post by devsh »

I hope you dont call glDrawBuffer(s) on every setRenderTarget call
Nadro
Posts: 1648
Joined: Sun Feb 19, 2006 9:08 am
Location: Warsaw, Poland

Re: Render to Texture performance

Post by Nadro »

The is no a cache system for those calls yet, but this task stay on my TODO list and will be added before v1.9 release, however at now other tasks has higher priorities.
Library helping with network requests, tasks management, logger etc in desktop and mobile apps: https://github.com/GrupaPracuj/hermes
Post Reply