blu / hello-chromeos-gles2 Goto Github PK
View Code? Open in Web Editor NEW"Hello GLES2" on ChromeOS, self-hosted style
License: MIT License
"Hello GLES2" on ChromeOS, self-hosted style
License: MIT License
On M86:
sudo ./test_egl_sphere
No protocol specified
No protocol specified
No protocol specified
No protocol specified
eglInitialize() failed
EGL error: EGL_NOT_INITIALIZED
Error initializing GLES
(also libwayland got replaced by mesa + wayland in chromebrew so the docs need updating.)
On Mali Midgard T860 platforms (RK3399) terminating the frameloop produces a what appears to be a kernel crash, followed by a system restart.
egl version, vendor, extensions:
1.4 Midgard-"r22p0-01rel0"
ARM
...
gl version, vendor, renderer, glsl version, extensions:
OpenGL ES 3.1 v1.r22p0-01rel0.e7480ede12f1b3abcc83236b8600f7b3
ARM
Mali-T860
OpenGL ES GLSL ES 3.10
Scenarios that result in the crash:
Scenarios that don't result in the crash:
Behaviour reproducible on R69-stable.
Not sure if this is just me, but the header file <bits/c++config.h>
is missing. Help?
./clang++.sh -o test_egl_skinning -std=c++11 -pipe -fno-exceptions -fno-rtti -fstrict-aliasing -Wreturn-type -Wunused-variable -Wunused-value -DPLATFORM_GLES -DPLATFORM_GL_OES_vertex_array_object -I./khronos -march=native -mtune=native -ffast-math -funroll-loops -O3 -DNDEBUG main_chromeos.cpp app_skinning.cpp rendSkeleton.cpp util_tex.cpp util_file.cpp util_misc.cpp gles_ext.cpp -fuse-ld=lld -lwayland-client -lrt -ldl -lEGL -lGLESv2 -lpng16
In file included from main_chromeos.cpp:7:
In file included from /usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../include/c++/8.2.0/stdlib.h:36:
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../include/c++/8.2.0/cstdlib:41:10: fatal error: 'bits/c++config.h' file not found
#include <bits/c++config.h>
^~~~~~~~~~~~~~~~~~
1 error generated.
In file included from app_skinning.cpp:15:
In file included from /usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../include/c++/8.2.0/stdlib.h:36:
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../include/c++/8.2.0/cstdlib:41:10: fatal error: 'bits/c++config.h' file not found
#include <bits/c++config.h>
^~~~~~~~~~~~~~~~~~
1 error generated.
In file included from rendSkeleton.cpp:3:
In file included from ./cmath_fix:13:
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../include/c++/8.2.0/cmath:41:10: fatal error: 'bits/c++config.h' file not found
#include <bits/c++config.h>
^~~~~~~~~~~~~~~~~~
1 error generated.
In file included from util_tex.cpp:2:
In file included from /usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../include/c++/8.2.0/stdlib.h:36:
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../include/c++/8.2.0/cstdlib:41:10: fatal error: 'bits/c++config.h' file not found
#include <bits/c++config.h>
^~~~~~~~~~~~~~~~~~
1 error generated.
In file included from util_file.cpp:5:
In file included from /usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../include/c++/8.2.0/stdlib.h:36:
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../include/c++/8.2.0/cstdlib:41:10: fatal error: 'bits/c++config.h' file not found
#include <bits/c++config.h>
^~~~~~~~~~~~~~~~~~
1 error generated.
In file included from util_misc.cpp:8:
In file included from /usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../include/c++/8.2.0/stdlib.h:36:
/usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../include/c++/8.2.0/cstdlib:41:10: fatal error: 'bits/c++config.h' file not found
#include <bits/c++config.h>
^~~~~~~~~~~~~~~~~~
1 error generated.
Missing file: linux/protocol-dmabuf.c
Code:
chronos@localhost ~/Downloads/misc/hello-chromeos-gles2 $ ./build_chromeos_sphere_multi.sh
./clang++.sh -o test_egl_sphere_multi -pipe -fno-exceptions -fno-rtti -fstrict-aliasing -Wreturn-type -Wunused-variable -Wunused-value -Wno-incompatible-function-pointer-types -DPLATFORM_EGL -DPLATFORM_GLES -DPLATFORM_GL_OES_vertex_array_object -DPLATFORM_GL_KHR_debug -I./khronos -I./libdrm -I./protocol -march=native -mtune=native -ffast-math -funroll-loops -O3 -DNDEBUG -x c++ main_chromeos.cpp app_sphere_multi.cpp util_tex.cpp util_file.cpp util_misc.cpp -x c protocol/linux-dmabuf-protocol.c egl_ext.c gles_ext.c -fuse-ld=lld -lwayland-client -lrt -ldl -lEGL -lGLESv2
clang-6.0: error: no such file or directory: 'protocol/linux-dmabuf-protocol.c'
chronos@localhost ~/Downloads/misc/hello-chromeos-gles2 $
Same issue in both branches.
The new alpha-blended + blurred shelf overlay in R70 kills the performance of underlying apps when blended on top of a 60fsp GLES app. R70 is the first revision where the shelf overlay is not just alpha-blended but is also blurred, so apparently this takes plenty of resources from the underlying app. As a workaround hide the shelf overlay when running 60fps GLES apps.
The fence-sync scheme on redraw performs poorly under R70, resulting in frequent framerate stuttering; scheme disabled as of commit 55b1481.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.