<kbouhara>
hello guys, Is there a way to send more than 32bits in a spi transfer using spidev interface ?
cnxsoft has joined #imx6-dev
steeve has joined #imx6-dev
diego_r has joined #imx6-dev
steeve has quit [Ping timeout: 240 seconds]
ortogonal_ has quit [Quit: No Ping reply in 180 seconds.]
ortogonal has joined #imx6-dev
steeve has joined #imx6-dev
steeve has quit [Ping timeout: 240 seconds]
Er0l has quit [Ping timeout: 252 seconds]
Er0l has joined #imx6-dev
simmel80_ has joined #imx6-dev
cnxsoft has quit [Ping timeout: 252 seconds]
steeve has joined #imx6-dev
steeve has quit [Ping timeout: 240 seconds]
cnxsoft has joined #imx6-dev
steeve has joined #imx6-dev
steeve has quit [Ping timeout: 240 seconds]
steeve has joined #imx6-dev
kbouhara has quit [Ping timeout: 240 seconds]
cnxsoft has quit [Ping timeout: 252 seconds]
kbouhara has joined #imx6-dev
steeve has quit [Remote host closed the connection]
<kroon>
Still confused.. What API should one use for doing fast 2D blitting ?
<kroon>
I see gpu-viv-g2d is one way
codinho has joined #imx6-dev
ballock_ is now known as ballock
obinou__ has joined #imx6-dev
obinou_ has quit [Read error: Connection reset by peer]
<kroon>
according to g2d_test I should be able to full hd blits at 95 fps ..
<kroon>
but the g2d api is barely documented
cnxsoft has joined #imx6-dev
fossxplorer has joined #imx6-dev
rz2k has joined #imx6-dev
datagutt has joined #imx6-dev
<dv_>
kroon: this is actually a grey area
<dv_>
and:
<dv_>
<kroon> for my case, it seems unnecessary to first decode the video into one memory area, and then use the gpu to write the same data to the framebuffer
<dv_>
this is true only if you dont need to resize or color convert the frame
<dv_>
most software packages are written to be generic in that regard, so they require at least this frame -> framebuffer blit , with the IPU, CPU, or GPU
<kroon>
dv_, true
<kroon>
in my case i just want a static background image drawn, and then use Qt5 to render qml elements on top of it. and I suspect there is a better way to do this, than to let qt5, via opengl, draw the background image in each frame
<dv_>
there isnt
<dv_>
qt5 will not redraw it all the time anyway
<dv_>
oh, well I assume you mean with "background" a separate framebuffer
<dv_>
thats probably the best approach for you. draw the static image to the background framebuffer (fb0 I think), then use the other framebuffer for qt5
<kroon>
as I understand it, qt5 will render the complete scene in every frame
<dv_>
hmm with opengl es probably yes
<kroon>
I did try rendering the image in fb0, and then have qt5 render into fb1 overlay
<dv_>
overall it is not a big deal though. the gpu is fast enough for that
<kroon>
but performance seemed even worse than letting qt5 do all the rendering into fb0
<dv_>
there are corner cases where the screen updates are very small. in these cases, software rendering is faster, unless the gpu has special swapbuffer rect extensions.
<dv_>
hmm
<dv_>
well then you have no choice. compose it all with the gpu.
<kroon>
this is at full hd
<dv_>
jnettlet, I think we can agree that the gpu can handle fullhd 2d scenes
<kroon>
and, this is on a wandboard solo, i know its not the most powerful. but seeing g2d_test do blits at 95 fps felt promising...
<dv_>
hell, I was able to render a 1080p30 and a 720p stream at the same time
<dv_>
so whats this qt5 UI you are rendering?
<kroon>
but thats the vpu and ipu working right ?
<dv_>
is it complex?
<dv_>
no
<dv_>
vpu+gpu
<kroon>
dv, no its not that complex, but when I turn of the background image, performance is much better. so, im trying to be sure I use the best way to render the background
<jnettlet>
dv_, yeah piece cake. A lot has to do with the memory speed and bandwidth.
<jnettlet>
what is the background?
<kroon>
and using OpenGL for doing a 2D blit seems wrong, when there is dedicated hw for 2d as I understand it
<jnettlet>
kroon, use the 2d core of the gpu
<kroon>
jnettlet, how do I access the 2d core ? is it the gpu-viv-g2d library ?
<jnettlet>
kroon, directly yes.
<dv_>
jnettlet: you need to use g2d over qt
<dv_>
not easy
<kroon>
jnettlet, you think it would be better to use g2d for drawing the background image, than doing it the Qt5/OpenGL way ?
<jnettlet>
that is where I am a bit confused.
<jnettlet>
well, you would want to use Qt5/GLES way to be most efficient.
<jnettlet>
are you rendering a desktop or two windows, one as an overlay?
<kroon>
I'm using the eglfs backend. I've tried rendering everything in fb0, result is ok. Then I tried rendering the bg in fb0, and let qt5 render in fb1 overlay, but performance seemed even worse
<dv_>
IPU compositing is probably slow
<dv_>
jnettlet: it is easier to just use GLES, yes, because it is already integrated in qt5
<dv_>
including specific make flags for imx6
<dv_>
g2d would be a completely new graphics backend
<dv_>
just use qt5 for everything then
<kroon>
dv_, I can hook into Qt5 renderloop, and do things before rendering
<kroon>
So I was hoping I could access the GL colorbuffer, and do a fast blit there before Qt starts rendering the scene
rz2k has quit [Read error: Connection reset by peer]
<jnettlet>
kroon, is this being rendered with Qt Quick?
<kroon>
jnettlet, yes
<jnettlet>
kroon, does the background change?
<kroon>
jnettlet, no its a static image
<jnettlet>
and you are playing a video over the top of it?
<kroon>
jnettlet, no, just some quick control elements
<jnettlet>
kroon, and this is a problem?
<kroon>
jnettlet, well sort of, I get 14 fps in full hd
<kroon>
oh, not sure about that number actually
<kroon>
but, if I skip drawing the background image, everything is much smoother on screen
<jnettlet>
kroon, can you run your app with this env variable set. QSG_RENDERER_DEBUG=render
<jnettlet>
that should give you a better idea of what is holding things up
<kroon>
jnettlet, ok, will do. but, so you think a wandboard solo should be able to render at QML scene at 1920x1080 ? It was cinematic-experience that was showing 15 fps
<jnettlet>
kroon, let me check the stats. That is a GC880 instead of the GC2000, but you really aren't doing any heavy rendering.
<jnettlet>
although the memory bandwidth on the solo is kind of crap. Let me check the specs.
<jnettlet>
kroon, you are using a Yocto image?
<kroon>
jnettlet, thanks for looking things up. im not claiming to be an expert on this stuff, but when g2d_test showed it was blitting at 95 fps, I was hopeful
<kroon>
jnettlet, yes
cnxsoft has quit [Quit: cnxsoft]
<jnettlet>
kroon, it could be that QML is sending things through some sort of slow path. Possibly doing something in software and causing the GPU to have to wait around. What does CPU usage look like?
<jnettlet>
if this really can't be optimized out then I would probably recommend rendering to a smaller scene and then upscale with hardware. I would use that as a very last resort though
<bfederau>
I use a custom videosink (QtGStreamer: qt5videosink) and our video stream is interlaced. The standard GStreamer 1.0 deinterlacer (within playbin) cause some heavy performance drops (choppy video and a higher CPU load). Is there a way to do HWaccel de-interlacing with the gstreamer-imx? I use Kernel/BSP 3.0.35-4.1.0. BTW the imxeglvivsink doesn't work for me on X (http://pastebin.com/U9BxySSk)
<jnettlet>
kroon, okay so there are a couple of things there that could be causing a slow down. You should look up the QSG_VISUALIZE env variable. That will draw colors over your scene for things like overdraw, or batches etc
<jnettlet>
I think that will give you a quick visual of what is most likely the problem.
<kroon>
hmm ok. i wonder if thats a commercial-only feature, cause im not seeing anything special, tried "changes", "batches", "overdraw"
<kroon>
I gotta run now, thanks for the help jnettlet, dv_
kroon has quit [Quit: Leaving]
<dv_>
bfederau: you can try the deinterlace modes of imxipuvideotransform
<bfederau>
dv_: ah I totally failed to see this option. Thanks for the hint.
<bfederau>
dv_: I will try it
<dv_>
note that the deinterlacer can only be used by one process at the same time
steeve has joined #imx6-dev
diego_r has quit [Ping timeout: 252 seconds]
kroon has joined #imx6-dev
apxiii has joined #imx6-dev
<apxiii>
Hi! Anyone had port pinouts for Embedsky E9 Mini PC?
<kroon>
dv_, jnettlet, I added a fps counter by hooking into QQuickView::afterRender() signal. With a background image, im getting ~25 fps, which is ok I guess. If I hide the background image I get ~45 fps, which looks much more smooth. I did look at the Qt profiling data and found some problems that I've fixed
<kroon>
So, if I could get a 2d blit using g2d, with a freq. of 95 times per second, I still hope it would be an improvement compared to using the Qt5/OpenGL api, no ?
<kroon>
If I also remove the Quick control sliders I'm using, i get 60 fps. They seem to generate lots of triangles ...
<kroon>
oh, more like ~80 fps. I was limiting it
<otavio>
kroon: did you ping me sometime ago?
<kroon>
otavio, yes but I forgot what it was about :-)
<otavio>
lol
<kroon>
otavio, by the way, if you want to move the linux-imx-rt recipe into some more "experimental" repo I'm fine with that. I can understand Daianes concern about having not fully tested kernels in meta-fsl-arm
<otavio>
kroon: I prefer to keep it there ;-)
<otavio>
kroon: if I can pester you, I am fine ;)
<otavio>
kroon: what is all this Qt FPS stuff you guys been discussing?
<kroon>
otavio, ok, good :)
<otavio>
kroon: did you see the patch I added to qtmultimedia?
<kroon>
otavio, yes but I'm not sure if it applies to my usecase. I'm just not sure what would be most efficient way of blitting a 2D image on the framebuffer, and then render QtQuick elements on top of it
rz2k has joined #imx6-dev
<otavio>
I am not a graphics guy ... so blitting means nothing for me ... will research for it...
<kroon>
otavio, there is g2d_test application that uses the g2d library, but I cant find any descent API documentation other than the .h file, which isn't much unfortunatley ..
<kroon>
g2d_test claims it's doing 95 fps blitting in full hd, if I understand its output correct, so I'm hoping it uses the 2d core, and is faster than the 3d core
<otavio>
ah I see
<dv_>
<kroon> dv_, jnettlet, I added a fps counter by hooking into QQuickView::afterRender() signal. With a background image, im getting ~25 fps, which is ok I guess. If I hide the background image I get ~45 fps, which looks much more smooth. I did look at the Qt profiling data and found some problems that I've fixed
<dv_>
how do you add the background image?
<dv_>
why not just add a fullscreen image in qml as the background?
<kroon>
dv_, thats what I meant. I have "Image { ... }" in the root context
<dv_>
ah
<dv_>
hmm
<dv_>
you are absolutely sure it is using GLES and not regular GL?
<kroon>
dv_, "ls /usr/lib/libGL*" only yields /usr/lib/libGLESv2.so*, no libGL.so* files
<dv_>
strange. it shouldnt be that low. the image should just be a texture
<kroon>
even on a wandboard solo .. ?
<kroon>
its a big texture, 1920x1080 ...
<kroon>
should i increase some kind of gpu memory maybe ..
bfederau has quit [Read error: Connection reset by peer]
bfederau has joined #imx6-dev
kroon has quit [Quit: Leaving]
steeve has quit [Remote host closed the connection]