Giter Site home page Giter Site logo

PI4 support about openvg HOT 9 OPEN

ktb92677 avatar ktb92677 commented on July 28, 2024
PI4 support

from openvg.

Comments (9)

ajstarks avatar ajstarks commented on July 28, 2024

I saw this thread as well. I'll have to get a Pi4 to test.

from openvg.

paeryn avatar paeryn commented on July 28, 2024

The RPi 4 doesn't support OpenVG, it uses Mesa for controlling the GPU and OpenVG was removed from Mesa years ago (through little use and lack of anybody maintaining it I think).

from openvg.

ajstarks avatar ajstarks commented on July 28, 2024

FYI, the code will build on the Pi4, but running the executable fails with this message:

* failed to add service - already in use?

from openvg.

peternewman avatar peternewman commented on July 28, 2024

If you get this error

* failed to add service - already in use?

You'll need to comment out the following line with a hash:

dtoverlay=vc4-fkms-v3d

But it then hangs on a futex (with strace):

futex(0xb6e4c518, FUTEX_WAKE_PRIVATE, 1) = 1
ioctl(3, _IOC(_IOC_READ|_IOC_WRITE, 0xc4, 0x2, 0x1c), 0xbef8b35c) = 0
ioctl(3, _IOC(_IOC_READ|_IOC_WRITE, 0xc4, 0x2, 0x1c), 0xbef8b35c) = 0
ioctl(3, _IOC(_IOC_NONE, 0xc4, 0xd, 0), 0x44015) = 0
ioctl(3, _IOC(_IOC_NONE, 0xc4, 0xd, 0), 0x45016) = 0
mmap2(NULL, 8392704, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0xb49fd000
mprotect(0xb49fe000, 8388608, PROT_READ|PROT_WRITE) = 0
clone(child_stack=0xb51fcf98, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0xb51fd4c8, tls=0xb51fd920, child_tidptr=0xb51fd4c8) = 1062
ioctl(3, _IOC(_IOC_NONE, 0xc4, 0xc, 0), 0x3f010) = 0
ioctl(3, _IOC(_IOC_NONE, 0xc4, 0xc, 0), 0x3f010) = 0
ioctl(3, _IOC(_IOC_WRITE, 0xc4, 0x4, 0xc), 0xbef8b3fc) = 0
ioctl(3, _IOC(_IOC_NONE, 0xc4, 0xd, 0), 0x3f010) = 0
ioctl(3, _IOC(_IOC_NONE, 0xc4, 0xc, 0), 0x3f010) = 0
ioctl(3, _IOC(_IOC_READ|_IOC_WRITE, 0xc4, 0x8, 0x10), 0xbef8b3d8) = 13
ioctl(3, _IOC(_IOC_NONE, 0xc4, 0xd, 0), 0x3f010) = 0
ioctl(3, _IOC(_IOC_NONE, 0xc4, 0xd, 0), 0x3f010) = 0
ioctl(3, _IOC(_IOC_READ|_IOC_WRITE, 0xc4, 0x2, 0x1c), 0xbef8b3d4) = 0
ioctl(3, _IOC(_IOC_READ|_IOC_WRITE, 0xc4, 0x2, 0x1c), 0xbef8b3d4) = 0
ioctl(3, _IOC(_IOC_READ|_IOC_WRITE, 0xc4, 0x2, 0x1c), 0xbef8b3d4) = 0
ioctl(3, _IOC(_IOC_NONE, 0xc4, 0x9, 0), 0x47018) = 1058
ioctl(3, _IOC(_IOC_WRITE, 0xc4, 0x4, 0xc), 0xbef8b3bc) = 0
ioctl(3, _IOC(_IOC_NONE, 0xc4, 0x9, 0), 0x47018) = 1058
futex(0xb6eaca58, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, NULL, FUTEX_BITSET_MATCH_ANY

I've got your library working on a standard x86 Ubuntu 16.04 machine via MESA (rather messily currently, so that might be a way to make it work everywhere, although possibly not if they've dropped it).

from openvg.

peternewman avatar peternewman commented on July 28, 2024

I've got your library working on a standard x86 Ubuntu 16.04 machine via MESA (rather messily currently, so that might be a way to make it work everywhere, although possibly not if they've dropped it).

So I've just tried running the code I tweaked on a Pi and after a little more minor tweaking, it compiles and displays, but it looks like each pixel is much bigger than it should be, for example particles is all squares, shapedemo looks similarly distorted.

from openvg.

ajstarks avatar ajstarks commented on July 28, 2024

Thanks for trying this. Can you post details of your tweaks?

from openvg.

peternewman avatar peternewman commented on July 28, 2024

Hi @ajstarks ,

I'm using https://github.com/simonhyde/PiClock/ so I thought I might have to learn about git submodules, but I realised as I got your examples working first, I could just push that so here it is:
https://github.com/peternewman/openvg/tree/crossplatform

Apologies it's quite so hacky, I've not really tidied it up, this version works what I assume is fine (I get circular particles for example on Ubuntu 16.04 with the following MESA related packages installed:

ii  libegl1-mesa:amd64                          18.0.5-0ubuntu0~16.04.1                         amd64        free implementation of the EGL API -- runtime
ii  libegl1-mesa-dev:amd64                      18.0.5-0ubuntu0~16.04.1                         amd64        free implementation of the EGL API -- development files
ii  libegl1-mesa-drivers:amd64                  12.0.6-0ubuntu0.16.04.1                         amd64        transitional dummy package
ii  libgl1-mesa-dev:amd64                       18.0.5-0ubuntu0~16.04.1                         amd64        free implementation of the OpenGL API -- GLX development files
ii  libgl1-mesa-dri:amd64                       18.0.5-0ubuntu0~16.04.1                         amd64        free implementation of the OpenGL API -- DRI modules
ii  libgl1-mesa-glx:amd64                       18.0.5-0ubuntu0~16.04.1                         amd64        free implementation of the OpenGL API -- GLX runtime
ii  libglapi-mesa:amd64                         18.0.5-0ubuntu0~16.04.1                         amd64        free implementation of the GL API -- shared library
ii  libgles2-mesa:amd64                         18.0.5-0ubuntu0~16.04.1                         amd64        free implementation of the OpenGL|ES 2.x API -- runtime
ii  libgles2-mesa-dev:amd64                     18.0.5-0ubuntu0~16.04.1                         amd64        free implementation of the OpenGL|ES 2.x API -- development files
ii  libglu1-mesa:amd64                          9.0.0-2.1                                       amd64        Mesa OpenGL utility library (GLU)
ii  libglu1-mesa-dev:amd64                      9.0.0-2.1                                       amd64        Mesa OpenGL utility library -- development files
ii  libopenvg1-mesa-dev-lts-utopic:amd64        3:13                                            amd64        Transitional package for libopenvg1-mesa-dev-lts-utopic
ii  libopenvg1-mesa-lts-utopic:amd64            3:13                                            amd64        Transitional package for libopenvg1-mesa-lts-utopic
ii  libtxc-dxtn-s2tc0:amd64                     0~git20131104-1.1                               amd64        Texture compression library for Mesa
ii  libwayland-egl1-mesa:amd64                  18.0.5-0ubuntu0~16.04.1                         amd64        implementation of the Wayland EGL platform -- runtime
ii  mesa-common-dev:amd64                       18.0.5-0ubuntu0~16.04.1                         amd64        Developer documentation for Mesa
ii  mesa-utils                                  8.3.0-1                                         amd64        Miscellaneous Mesa GL utilities
ii  mesa-vdpau-drivers:amd64                    18.0.5-0ubuntu0~16.04.1                         amd64        Mesa VDPAU video acceleration drivers

I may have had to make some very trivial Makefile changes so it would compile on Pi 4, but I probably can't check that until tomorrow, but I suspect you can figure them out easily enough, it certainly didn't take me long.

from openvg.

peternewman avatar peternewman commented on July 28, 2024

Now with a minor change so it compiles, but doesn't work, on a Pi 4. Reading around it sounds like it could be because I haven't turned on the stencil buffer, inspired by this:
https://github.com/memononen/nanovg#rendering-is-wrong-what-to-do

See also a lot of the code in here:
https://github.com/FlightGear/flightgear/blob/8e6500ae47ff74539cd2c0a9c4eebe96e69ca81d/utils/fgpanel/GLES_utils.cxx#L262

from openvg.

simonhyde avatar simonhyde commented on July 28, 2024

I got it working on ShivaVG and GLUT (like the ShivaVG examples). This did mean changing the way the library worked to being driven by a callback loop, which was fine for my requirements, but obviously might not work for other applications. https://github.com/simonhyde/openvg

from openvg.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.