Page 2 of 2

Re: Render to Texture performance

Posted: Thu Jan 21, 2016 9:11 pm
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.

Re: Render to Texture performance

Posted: Thu Jan 21, 2016 9:27 pm
by devsh
nice

did you see my document about my Buffer-Centric irrlicht fork?

Re: Render to Texture performance

Posted: Fri Jan 22, 2016 12:10 am
by The_Glitch
Negative sir the problem is only solved if you use the trunk.

Re: Render to Texture performance

Posted: Fri Jan 22, 2016 1:05 pm
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

Re: Render to Texture performance

Posted: Fri Jan 22, 2016 6:59 pm
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;
}

Re: Render to Texture performance

Posted: Fri Jan 22, 2016 9:24 pm
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

Re: Render to Texture performance

Posted: Mon Feb 15, 2016 10:52 pm
by devsh
I hope you dont call glDrawBuffer(s) on every setRenderTarget call

Re: Render to Texture performance

Posted: Wed Feb 17, 2016 9:16 pm
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.

Re: Render to Texture performance

Posted: Thu Feb 18, 2016 3:43 pm
by devsh
I use no-cache, just DSA