glxgears on Etnaviv: couldn't get an RGB, Double-buffered visual
Alexey Brodkin
Alexey.Brodkin at synopsys.com
Fri Nov 24 08:49:02 PST 2017
Hi Lucas,
On Fri, 2017-11-24 at 17:38 +0100, Lucas Stach wrote:
> Am Freitag, den 24.11.2017, 16:25 +0000 schrieb Alexey Brodkin:
> >
> > Hi Lucas,
> >
> > On Fri, 2017-11-24 at 17:11 +0100, Lucas Stach wrote:
> > >
> > > Hi Alexey,
> > >
> > > Am Freitag, den 24.11.2017, 16:02 +0000 schrieb Alexey Brodkin:
> > > >
> > > >
> > > > Hello,
> > > >
> > > > Being in the middle of bring-up of the new board with Vivante GPU (HSDK namely,
> > > > see https://urldefense.proofpoint.com/v2/url?u=https-3A__git.kernel.org_pub_scm_linux_kernel_git_torvalds_linux.git_tree_arch_arc_plat-2Dhsdk&
> > > > d=Dw
> > > > IDaQ&c=DPL6_X_6JkXFx7AXWqB0tg&r=lqdeeSSEes0GFDDl656eViXO7breS55ytWkhpk5R81I&m=ZXa-564Jm43PXsqGXCf2US2DY7C0qIlCw6c56pL-
> > > > bLY&s=ZJSI1u6GgsRHNIcONVFfIKvn1AWaB38GmtCN1dGB3w0&e=)
> > > > I was looking at simple 3D test apps to see how Etnaviv works on the hardware.
> > > >
> > > > So far I was able to get kmscube working perfectly fine and the next item I took
> > > > was glxgears (for some reason I was under impression that's de facto "Hello world" app
> > > > in the GPU world). But apparently even with Xserver up and running glxgears doesn't work.
> > > >
> > > > Moreover I tried the same thing on Wandboard Quad but to no avail as well.
> > > > That's what I saw:
> > > > ------------------------->8---------------------
> > > > # glxgears
> > > > Error: couldn't get an RGB, Double-buffered visual
> > > >
> > > > # glxinfo
> > > > name of display: :0
> > > > Error: couldn't find RGB GLX visual or fbconfig
> > > > ------------------------->8---------------------
> > > >
> > > > Googling didn't help here unfortunately so maybe some pointers could be
> > > > suggested here... like what do I do wrong and if glxgears is supposed to
> > > > work on top of DRM GPU at all?
> > > >
> > > > Thanks a lot in advance!
> > >
> > > For 3D acceleration to work under X you need the etnaviv specific DDX
> > > driver, which can be found here:
> > >
> > > https://urldefense.proofpoint.com/v2/url?u=http-3A__git.arm.linux.org.uk_cgit_xf86-2Dvideo-2Darmada.git_log_-3Fh-3Dunstable-2Ddevel&d=DwIDaQ&c=D
> > > PL6_
> > > X_6JkXFx7AXWqB0tg&r=lqdeeSSEes0GFDDl656eViXO7breS55ytWkhpk5R81I&m=ZXa-564Jm43PXsqGXCf2US2DY7C0qIlCw6c56pL-
> > > bLY&s=ZzK2fxA6_XlN6pGnf2Tpo6qKzzQh76ocWZ6IDR-WPtc&e=
> >
> > Thanks for the pointer, still a couple of questions below...
> >
> > >
> > > Don't let you get confused by the name, the armada driver implements
> > > support for both armada drm and imx-drm and the etnaviv DDX. This
> > > provides 2D acceleration on the Vivante 2D cores, as well a the DRI2/3
> > > bit necessary to get a 3D context on X.
> >
> > From Wandboard's .dts I see that 2D core is a separate node with separate
> > set of registers mapped at a different location in memory, right?
> >
> > Do you know if that's possible if the same one memory-mapped register set
> > controls both 3D and 2D engine?
>
> Yes, a "core" in Vivante speak is a GPU with one DMA frontend. A single
> frontend can feed both 3D and 2D acceleration engines behind it. On
> i.MX6 the 2D and 3D engine are on separate cores, but Marvell Dove has
> a combined 2D/3D core.
Hm, that sounds encouraging. The next question would be if Marvel Dove is
supported in Etnaviv DDX? I guess it's called Armada so the answer if yes, right?
> > If we happen to not have 2D core if that's a no go for us for anything?
>
> I don't know if the DDX works properly without 2D acceleration. Weston
> on the other hand only relies on the 3D accel core for doing
> compositing, so even if you don't have a 2D engine you will be able to
> launch a modern Linux graphics stack.
That's really cool! I'm much more interested in Weston ATM, which is
actually another separate question :)
I tried to find some details on how to run Weston on Wandboard
but seems like I was looking at wrong Google again... do you
know any good manuals for doing that?
>
> The etnaviv DDX could also emulate 2D accel over the 3D core by using
> the X.Org glamor module, but no one has bothered to implement this yet.
Ok we'll see if above case (combined cores) is applicable to us and then
we'll see what to do.
> > In the meantime I'll try to figure out if we have 2D core or not.
>
> You can find out what your GPU provides by looking at the feature bits.
> chipFeatures_PIPE_2D, chipFeatures_PIPE_3D and chipFeatures_PIPE_VG is
> what you are looking out for.
Does that info helps to decipher these bits?
-------------------------->8------------------------------
# dmesg | grep etnaviv
etnaviv soc:gpu-subsystem: bound f0090000.gpu (ops 0x9075271c)
etnaviv-gpu f0090000.gpu: model: GC880, revision: 5124
[drm] Initialized etnaviv 1.1.0 20151214 for soc:gpu-subsystem on minor 0
# cat /sys/kernel/debug/dri/0/gpu
f0090000.gpu Status:
features
minor_features0: 0x41f99efb
minor_features1: 0xfefbf2d9
minor_features2: 0x4a180285
minor_features3: 0x00000001
minor_features4: 0x00000000
minor_features5: 0x00020000
specs
stream_count: 8
register_max: 64
thread_count: 256
vertex_cache_size: 8
shader_core_count: 1
pixel_pipes: 1
vertex_output_buffer_size: 512
buffer_size: 0
instruction_count: 512
num_constants: 576
varyings_count: 12
axi: 0x00000050
idle: 0x7ffffffe
FE is not idle
DMA address is constant
address 0: 0x00000000
address 1: 0x00000000
state 0: 0x00000000
state 1: 0x00000800
last fetch 64 bit word: 0x40000002 0x00000000
-------------------------->8------------------------------
-Alexey
More information about the linux-snps-arc
mailing list