Re: [Interest] Qt 5.2 scenegraph does not draw anything for our MIPS cpu/VIVANTE GPU platform

2013-11-06 Thread Sletta Gunnar
I find it very strange that qmlscene without an input file would produce the 
same apitrace as a qmlscene with a file. The apitrace is a reflection what we 
try to draw after all and that is highly dependent on what the input is. What 
does the trace look like?

It is a long-shot, but you could try 
https://codereview.qt-project.org/#change,69666

cheers,
Gunnar


Fra: interest-bounces+gunnar.sletta=digia@qt-project.org 
[interest-bounces+gunnar.sletta=digia@qt-project.org] på vegne av 
Narayanarao Rao [nar...@gmail.com]
Sendt: 6. november 2013 00:05
To: Interest@qt-project.org
Emne: [Interest] Qt 5.2 scenegraph does not draw anything for our MIPS 
cpu/VIVANTE GPU platform

I am able to build qtbase and qtdeclarative from git with a few changes for our 
MIPS 74kf -mdspr2 platform. I use eglfs plugin.

If I don't pass any qml file to qmlscene, eglfs does gltexsubimage2d of a 
qimage (file selection dialog). That works fine. I can see the file selection 
dialog, though with very small text.

eglfs with Qt 5.0 works fine - I can see output on screen for all qmls.

We use Qt 4.8 simplegl for our production releases and that works fine too.

However, with Qt 5.2 new scenegraph changes, if I pass a qml file to qmlscene, 
I just see the screen cleared to white and nothing gets drawn after that. When 
I enable render_timing etc. environment veriables, I see everything printed 
normally - I see that it takes some time for render, sync, animations etc. It 
also takes expected CPU when doing QML animations. I tried both qmls with an 
image as well as rect. I suspect our GPU does not like the new shader code. I 
ported apitrace to our platform and compared traces for case where I see output 
on screen (qmlscene without qml file input) and where I don't see output on 
screen (qmlscene with any qml file). Both look similar except for differences 
in vertex and fragment shaders.

Anything I should try?
___
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest


Re: [Interest] Qt 5.2 scenegraph does not draw anything for our MIPS cpu/VIVANTE GPU platform

2013-11-06 Thread Narayanarao Rao
Thanks for the reply. I only said they look similar, not the same. Of
course, I do not understand OpenGL very well. I am now trying to read and
understand what each line of the apitrace means and write a standalone
opengl c app that only makes those calls.

I am relatively new to opengl, so bear with me..

One difference I found in the traces is the following sequence of calls:

194 glEnableVertexAttribArray(index = 0)
195 glEnableVertexAttribArray(index = 1)
196 glEnableVertexAttribArray(index = 2)
197 glUseProgram(program = 1)
198 glBindTexture(target = GL_TEXTURE_2D, texture = 1)
199 glUniformMatrix4fv(location = 0, count = 1, transpose = GL_FALSE, value
= {0.0015625, 0, 0, 0, 0, -0.00278, 0, 0, 0, 0, 1, 0, -1, 1, 0, 1})
200 glVertexAttribPointer(index = 0, size = 2, type = GL_FLOAT, normalized
= GL_FALSE, stride = 16, pointer = NULL)
202 glFlush()
201 glDrawElements(mode = GL_TRIANGLE_STRIP, count = 6, type =
GL_UNSIGNED_SHORT, indices = 0x50)
203 glEnable(cap = GL_BLEND)
204 glDepthMask(flag = GL_FALSE)
205 glBlendFunc(sfactor = GL_ONE, dfactor = GL_ONE_MINUS_SRC_ALPHA)
206 glDisableVertexAttribArray(index = 0)
207 glDisableVertexAttribArray(index = 1)
208 glDisableVertexAttribArray(index = 2)

The above trace is for the non-working case. glVertexAttribPointer is NULL.
Is this expected? I am still trying to workout where in Qt this call is
being made from.

The corresponding trace for the working case (qmlscene without qml)

309 glEnableVertexAttribArray(index = 1)
310 glEnableVertexAttribArray(index = 0)
311 glBindTexture(target = GL_TEXTURE_2D, texture = 1)
312 glUniform1i(location = 1, v0 = 1)
313 glVertexAttribPointer(index = 0, size = 2, type = GL_FLOAT, normalized
= GL_FALSE, stride = 8, pointer = blob(32))
314 glDrawArrays(mode = GL_TRIANGLE_FAN, first = 0, count = 4)
315 glBindTexture(target = GL_TEXTURE_2D, texture = 0)
316 glDisableVertexAttribArray(index = 1)
317 glDisableVertexAttribArray(index = 0)
___
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest


Re: [Interest] Qt 5.2 scenegraph does not draw anything for our MIPS cpu/VIVANTE GPU platform

2013-11-06 Thread Narayanarao Rao
Here is the full apitrace for the non working case..

0 eglBindAPI(api = EGL_OPENGL_ES_API) = EGL_TRUE
1 eglGetDisplay(display_id = NULL) = 0x432ff0
2 eglInitialize(dpy = 0x432ff0, major = 1, minor = 4) = EGL_TRUE
3 eglChooseConfig(dpy = 0x432ff0, attrib_list = {EGL_RED_SIZE, 0,
EGL_GREEN_SIZE, 0, EGL_BLUE_SIZE, 0, EGL_ALPHA_SIZE, 0, EGL_DEPTH_SIZE, 24,
EGL_STENCIL_SIZE, 8, EGL_SAMPLES, 0, EGL_SAMPLE_BUFFERS, 0,
EGL_SURFACE_TYPE, EGL_WINDOW_BIT, EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
EGL_NONE}, configs = NULL, config_size = 0, num_config = 21) = EGL_TRUE
4 eglChooseConfig(dpy = 0x432ff0, attrib_list = {EGL_RED_SIZE, 0,
EGL_GREEN_SIZE, 0, EGL_BLUE_SIZE, 0, EGL_ALPHA_SIZE, 0, EGL_DEPTH_SIZE, 24,
EGL_STENCIL_SIZE, 8, EGL_SAMPLES, 0, EGL_SAMPLE_BUFFERS, 0,
EGL_SURFACE_TYPE, EGL_WINDOW_BIT, EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
EGL_NONE}, configs = {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
config_size = 21, num_config = 21) = EGL_TRUE
5 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_BUFFER_SIZE, value = 32) = EGL_TRUE
6 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_ALPHA_SIZE, value = 8) = EGL_TRUE
7 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_BLUE_SIZE, value = 8) = EGL_TRUE
8 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_GREEN_SIZE, value = 8) = EGL_TRUE
9 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_RED_SIZE, value = 8) = EGL_TRUE
10 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_DEPTH_SIZE, value = 24) = EGL_TRUE
11 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_STENCIL_SIZE, value = 8) = EGL_TRUE
12 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_CONFIG_CAVEAT, value = 12344) = EGL_TRUE
13 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_CONFIG_ID, value = 61) = EGL_TRUE
14 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_LEVEL, value = 0) = EGL_TRUE
15 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_MAX_PBUFFER_HEIGHT, value = 2048) = EGL_TRUE
16 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_MAX_PBUFFER_PIXELS, value = 4194304) = EGL_TRUE
17 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_MAX_PBUFFER_WIDTH, value = 2048) = EGL_TRUE
18 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_NATIVE_RENDERABLE, value = 1) = EGL_TRUE
19 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_NATIVE_VISUAL_ID, value = 0) = EGL_TRUE
20 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_NATIVE_VISUAL_TYPE, value = 32) = EGL_TRUE
21 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_SAMPLES, value = 0) = EGL_TRUE
22 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_SAMPLE_BUFFERS, value = 0) = EGL_TRUE
23 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_SURFACE_TYPE, value = 391) = EGL_TRUE
24 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_TRANSPARENT_TYPE, value = 12344) = EGL_TRUE
25 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_TRANSPARENT_BLUE_VALUE, value = -1) = EGL_TRUE
26 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_TRANSPARENT_GREEN_VALUE, value = -1) = EGL_TRUE
27 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_TRANSPARENT_RED_VALUE, value = -1) = EGL_TRUE
28 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_BIND_TO_TEXTURE_RGB, value = 0) = EGL_TRUE
29 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_BIND_TO_TEXTURE_RGBA, value = 1) = EGL_TRUE
30 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_MIN_SWAP_INTERVAL, value = 1) = EGL_TRUE
31 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_MAX_SWAP_INTERVAL, value = 1) = EGL_TRUE
32 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_CONFIG_ID, value = 61) = EGL_TRUE
33 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_RED_SIZE, value = 8) = EGL_TRUE
34 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_GREEN_SIZE, value = 8) = EGL_TRUE
35 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_BLUE_SIZE, value = 8) = EGL_TRUE
36 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_ALPHA_SIZE, value = 8) = EGL_TRUE
37 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_DEPTH_SIZE, value = 24) = EGL_TRUE
38 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_STENCIL_SIZE, value = 8) = EGL_TRUE
39 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
EGL_SAMPLES, value = 0) = EGL_TRUE
40 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =

Re: [Interest] Qt 5.2 scenegraph does not draw anything for our MIPS cpu/VIVANTE GPU platform

2013-11-06 Thread Narayanarao Rao
I tried with 2 QMLS.. one qml having only opaque image and another qml with
opacity as 0.8. Both do not work. The first trace snippet was with opaque
image. The second full trace was with opacity as 0.8. Just explaining the
difference between the two traces, in case it is confusing.


On Wed, Nov 6, 2013 at 3:46 PM, Narayanarao Rao nar...@gmail.com wrote:

 Here is the full apitrace for the non working case..

 0 eglBindAPI(api = EGL_OPENGL_ES_API) = EGL_TRUE
 1 eglGetDisplay(display_id = NULL) = 0x432ff0
 2 eglInitialize(dpy = 0x432ff0, major = 1, minor = 4) = EGL_TRUE
 3 eglChooseConfig(dpy = 0x432ff0, attrib_list = {EGL_RED_SIZE, 0,
 EGL_GREEN_SIZE, 0, EGL_BLUE_SIZE, 0, EGL_ALPHA_SIZE, 0, EGL_DEPTH_SIZE, 24,
 EGL_STENCIL_SIZE, 8, EGL_SAMPLES, 0, EGL_SAMPLE_BUFFERS, 0,
 EGL_SURFACE_TYPE, EGL_WINDOW_BIT, EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
 EGL_NONE}, configs = NULL, config_size = 0, num_config = 21) = EGL_TRUE
 4 eglChooseConfig(dpy = 0x432ff0, attrib_list = {EGL_RED_SIZE, 0,
 EGL_GREEN_SIZE, 0, EGL_BLUE_SIZE, 0, EGL_ALPHA_SIZE, 0, EGL_DEPTH_SIZE, 24,
 EGL_STENCIL_SIZE, 8, EGL_SAMPLES, 0, EGL_SAMPLE_BUFFERS, 0,
 EGL_SURFACE_TYPE, EGL_WINDOW_BIT, EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
 EGL_NONE}, configs = {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
 config_size = 21, num_config = 21) = EGL_TRUE
 5 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_BUFFER_SIZE, value = 32) = EGL_TRUE
 6 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_ALPHA_SIZE, value = 8) = EGL_TRUE
 7 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_BLUE_SIZE, value = 8) = EGL_TRUE
 8 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_GREEN_SIZE, value = 8) = EGL_TRUE
 9 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_RED_SIZE, value = 8) = EGL_TRUE
 10 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_DEPTH_SIZE, value = 24) = EGL_TRUE
 11 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_STENCIL_SIZE, value = 8) = EGL_TRUE
 12 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_CONFIG_CAVEAT, value = 12344) = EGL_TRUE
 13 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_CONFIG_ID, value = 61) = EGL_TRUE
 14 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_LEVEL, value = 0) = EGL_TRUE
 15 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_MAX_PBUFFER_HEIGHT, value = 2048) = EGL_TRUE
 16 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_MAX_PBUFFER_PIXELS, value = 4194304) = EGL_TRUE
 17 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_MAX_PBUFFER_WIDTH, value = 2048) = EGL_TRUE
 18 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_NATIVE_RENDERABLE, value = 1) = EGL_TRUE
 19 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_NATIVE_VISUAL_ID, value = 0) = EGL_TRUE
 20 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_NATIVE_VISUAL_TYPE, value = 32) = EGL_TRUE
 21 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_SAMPLES, value = 0) = EGL_TRUE
 22 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_SAMPLE_BUFFERS, value = 0) = EGL_TRUE
 23 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_SURFACE_TYPE, value = 391) = EGL_TRUE
 24 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_TRANSPARENT_TYPE, value = 12344) = EGL_TRUE
 25 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_TRANSPARENT_BLUE_VALUE, value = -1) = EGL_TRUE
 26 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_TRANSPARENT_GREEN_VALUE, value = -1) = EGL_TRUE
 27 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_TRANSPARENT_RED_VALUE, value = -1) = EGL_TRUE
 28 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_BIND_TO_TEXTURE_RGB, value = 0) = EGL_TRUE
 29 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_BIND_TO_TEXTURE_RGBA, value = 1) = EGL_TRUE
 30 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_MIN_SWAP_INTERVAL, value = 1) = EGL_TRUE
 31 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_MAX_SWAP_INTERVAL, value = 1) = EGL_TRUE
 32 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_CONFIG_ID, value = 61) = EGL_TRUE
 33 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_RED_SIZE, value = 8) = EGL_TRUE
 34 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_GREEN_SIZE, value = 8) = EGL_TRUE
 35 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =
 EGL_BLUE_SIZE, value = 8) = EGL_TRUE
 36 eglGetConfigAttrib(dpy = 0x432ff0, config = 0x432e88, attribute =

Re: [Interest] Qt 5.2 scenegraph does not draw anything for our MIPS cpu/VIVANTE GPU platform

2013-11-06 Thread Narayanarao Rao
I tried the patch you suggested and it works. What does this mean? Are
there any performance implications to this?
___
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest


Re: [Interest] Qt 5.2 scenegraph does not draw anything for our MIPS cpu/VIVANTE GPU platform

2013-11-06 Thread Sletta Gunnar
A buffer offset of 0 is correct since it is relative to VBO's memory which is 
bound just above the lines you pasted down below.

Fra: Narayanarao Rao [nar...@gmail.com]
Sendt: 6. november 2013 11:02
To: Sletta Gunnar
Cc: Interest@qt-project.org
Emne: Re: [Interest] Qt 5.2 scenegraph does not draw anything for our MIPS 
cpu/VIVANTE GPU platform

Thanks for the reply. I only said they look similar, not the same. Of course, I 
do not understand OpenGL very well. I am now trying to read and understand what 
each line of the apitrace means and write a standalone opengl c app that only 
makes those calls.

I am relatively new to opengl, so bear with me..

One difference I found in the traces is the following sequence of calls:

194 glEnableVertexAttribArray(index = 0)
195 glEnableVertexAttribArray(index = 1)
196 glEnableVertexAttribArray(index = 2)
197 glUseProgram(program = 1)
198 glBindTexture(target = GL_TEXTURE_2D, texture = 1)
199 glUniformMatrix4fv(location = 0, count = 1, transpose = GL_FALSE, value = 
{0.0015625, 0, 0, 0, 0, -0.00278, 0, 0, 0, 0, 1, 0, -1, 1, 0, 1})
200 glVertexAttribPointer(index = 0, size = 2, type = GL_FLOAT, normalized = 
GL_FALSE, stride = 16, pointer = NULL)
202 glFlush()
201 glDrawElements(mode = GL_TRIANGLE_STRIP, count = 6, type = 
GL_UNSIGNED_SHORT, indices = 0x50)
203 glEnable(cap = GL_BLEND)
204 glDepthMask(flag = GL_FALSE)
205 glBlendFunc(sfactor = GL_ONE, dfactor = GL_ONE_MINUS_SRC_ALPHA)
206 glDisableVertexAttribArray(index = 0)
207 glDisableVertexAttribArray(index = 1)
208 glDisableVertexAttribArray(index = 2)

The above trace is for the non-working case. glVertexAttribPointer is NULL. Is 
this expected? I am still trying to workout where in Qt this call is being made 
from.

The corresponding trace for the working case (qmlscene without qml)

309 glEnableVertexAttribArray(index = 1)
310 glEnableVertexAttribArray(index = 0)
311 glBindTexture(target = GL_TEXTURE_2D, texture = 1)
312 glUniform1i(location = 1, v0 = 1)
313 glVertexAttribPointer(index = 0, size = 2, type = GL_FLOAT, normalized = 
GL_FALSE, stride = 8, pointer = blob(32))
314 glDrawArrays(mode = GL_TRIANGLE_FAN, first = 0, count = 4)
315 glBindTexture(target = GL_TEXTURE_2D, texture = 0)
316 glDisableVertexAttribArray(index = 1)
317 glDisableVertexAttribArray(index = 0)



___
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest


Re: [Interest] Qt 5.2 scenegraph does not draw anything for our MIPS cpu/VIVANTE GPU platform

2013-11-06 Thread Sletta Gunnar
The scene graph renderer uses the same buffer object for both indices and 
vertices. This is within spec, but I worried that some drivers might like it 
less than others. This setup is the first one where it doesn't work. The patch 
doubles the amount of uploads we do, but the total memory is unchanged. It will 
be a small overall additional cost, and if it is needed, it is needed.

cheers,
Gunnar

Fra: Narayanarao Rao [nar...@gmail.com]
Sendt: 6. november 2013 13:10
To: Sletta Gunnar
Cc: Interest@qt-project.org
Emne: Re: [Interest] Qt 5.2 scenegraph does not draw anything for our MIPS 
cpu/VIVANTE GPU platform

I tried the patch you suggested and it works. What does this mean? Are there 
any performance implications to this?
___
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest


[Interest] Qt 5.2 scenegraph does not draw anything for our MIPS cpu/VIVANTE GPU platform

2013-11-05 Thread Narayanarao Rao
I am able to build qtbase and qtdeclarative from git with a few changes for
our MIPS 74kf -mdspr2 platform. I use eglfs plugin.

If I don't pass any qml file to qmlscene, eglfs does gltexsubimage2d of a
qimage (file selection dialog). That works fine. I can see the file
selection dialog, though with very small text.

eglfs with Qt 5.0 works fine - I can see output on screen for all qmls.

We use Qt 4.8 simplegl for our production releases and that works fine too.

However, with Qt 5.2 new scenegraph changes, if I pass a qml file to
qmlscene, I just see the screen cleared to white and nothing gets drawn
after that. When I enable render_timing etc. environment veriables, I see
everything printed normally - I see that it takes some time for render,
sync, animations etc. It also takes expected CPU when doing QML animations.
I tried both qmls with an image as well as rect. I suspect our GPU does not
like the new shader code. I ported apitrace to our platform and compared
traces for case where I see output on screen (qmlscene without qml file
input) and where I don't see output on screen (qmlscene with any qml file).
Both look similar except for differences in vertex and fragment shaders.

Anything I should try?
___
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest