Closed SaicharanKandukuri closed 3 years ago
nm libGL.so.1
output looks like this
You exported that symbol? or did you find a workaround?
Nope! can you help me define that symbol(making it work)
This function is not really supported in gl4es. But one that respond always "error" can be writen.
In src/gl/blend.c
for example, at the end of the file, add
void APIENTRY_GL4ES gl4es_glGetMinmaxParameteriv(GLenum target, GLenum pname, GLint *params) {
errorShim(GL_INVALID_ENUM);
}
AliasExport(void,glGetMinmaxParameteriv,,(GLenum target, GLenum pname, GLint *params));
Should do the trick.
I tried appending that
it succeeds
but Xvnc created another error on the missing symbol glCopyColorTable
I think we need to look up what symbols xvnc required to start a vnc
I am not professional in this language yet but based on the pattern of code I am trying to export those symbols and rebuild it
By the output from
string Xvnc | grep gl
Xvnc is looking for these symbols
glFlush
glXGetProcAddressARB
glMap1f
glMap2f
glMap1d
glMap2d
glEnableClientState
glIndexPointer
glNormalPointer
glEdgeFlagPointer
glDrawArrays
glDisableClientState
glTexCoordPointer
glColorPointer
glVertexPointer
glGetIntegerv
glPixelStorei
glSeparableFilter2D glGetTexLevelParameteriv
glFinish
glFeedbackBuffer
glSelectBuffer glRenderMode
glGetString
glReadPixels
glGetTexImage
glGetPolygonStipple
glGetConvolutionParameteriv
glGetSeparableFilter glGetConvolutionFilter glGetHistogramParameteriv glGetHistogram glGetMinmax glGetColorTableParameteriv glGetColorTable glCallList glCallLists glListBase glBegin glBitmap glColor3bv glColor3dv glColor3fv glColor3iv glColor3sv glColor3ubv glColor3uiv glColor3usv glColor4bv glColor4dv glColor4fv glColor4iv glColor4sv glColor4ubv glColor4uiv glColor4usv glEdgeFlagv glEnd glIndexdv
glIndexfv
glIndexiv
glIndexsv
glNormal3bv
glNormal3dv
glNormal3fv
glNormal3iv
glNormal3sv
glRasterPos2dv
glRasterPos2fv
glRasterPos2iv
glRasterPos2sv
glRasterPos3dv
glRasterPos3fv
glRasterPos3iv
glRasterPos3sv
glRasterPos4dv
glRasterPos4fv
glRasterPos4iv
glRasterPos4sv
glRectdv
glRectfv
glRectiv
glRectsv
glTexCoord1dv
glTexCoord1fv
glTexCoord1iv
glTexCoord1sv
glTexCoord2dv
glTexCoord2fv
glTexCoord2iv glTexCoord2sv
glTexCoord3dv
glTexCoord3fv
glTexCoord3iv
glTexCoord3sv
glTexCoord4dv
glTexCoord4fv
glTexCoord4iv
glTexCoord4sv
glVertex2dv
glVertex2fv
glVertex2iv
glVertex2sv
glVertex3dv
glVertex3fv
glVertex3iv
glVertex3sv
glVertex4dv
glVertex4fv
glVertex4iv
glVertex4sv
glClipPlane
glColorMaterial
glCullFace
glFogf
glFogfv
glFogi
glFogiv
glFrontFace
glHint
glLightf
glLightfv
glLighti
glLightiv
glLightModelf
glLightModelfv
glLightModeli
glLightModeliv
glLineStipple
glLineWidth
glMaterialf
glMaterialfv
glMateriali
glMaterialiv
glPointSize
glPolygonMode
glPolygonStipple
glScissor
glShadeModel
glTexParameterf
glTexParameterfv
glTexParameteri
glTexParameteriv
glTexImage1D
glTexImage2D
glTexEnvf
glTexEnvfv
glTexEnvi
glTexEnviv
glTexGend
glTexGendv
glTexGenf
glTexGenfv
glTexGeni
glTexGeniv
glInitNames
glLoadName
glPassThrough
glPopName
glPushName
glDrawBuffer
glClear
glClearAccum
glClearIndex
glClearColor
glClearStencil
glClearDepth
glStencilMask
glColorMask
glDepthMask
glIndexMask
glAccum
glDisable
glEnable
glPopAttrib
glPushAttrib
glMapGrid1d
glMapGrid1f
glMapGrid2d
glMapGrid2f
glEvalCoord1dv
glEvalCoord1fv
glEvalCoord2dv
glEvalCoord2fv
glEvalMesh1
glEvalPoint1
glEvalMesh2
glEvalPoint2
glAlphaFunc
glBlendFunc
glLogicOp
glStencilFunc
glStencilOp
glDepthFunc
glPixelZoom
glPixelTransferf
glPixelTransferi
glPixelMapfv
glPixelMapuiv
glPixelMapusv
glReadBuffer
glCopyPixels
glDrawPixels
glDepthRange
glFrustum
glLoadIdentity
glLoadMatrixf
glLoadMatrixd
glMatrixMode
glMultMatrixf
glMultMatrixd
glOrtho
glPopMatrix
glPushMatrix
glRotated
glRotatef
glScaled
glScalef
glTranslated
glTranslatef
glViewport
glBindTexture
glIndexubv
glPolygonOffset
glCopyTexImage1D
glCopyTexImage2D
glCopyTexSubImage1D
glCopyTexSubImage2D
glPrioritizeTextures
glTexSubImage1D
glTexSubImage2D
glBlendColor
glBlendEquation
glColorTable glColorTableParameterfv
glColorTableParameteriv
glCopyColorTable
glColorSubTable
glCopyColorSubTable
glConvolutionFilter1D
glConvolutionFilter2D
glConvolutionParameterf
glConvolutionParameterfv
glConvolutionParameteri
glConvolutionParameteriv
glCopyConvolutionFilter1D glCopyConvolutionFilter2D
glHistogram
glMinmax
glResetHistogram
glResetMinmax
glTexImage3D
glTexSubImage3D
glCopyTexSubImage3D
glActiveTextureARB
glMultiTexCoord1dvARB
glMultiTexCoord1fvARB
glMultiTexCoord1ivARB
glMultiTexCoord1svARB
glMultiTexCoord2dvARB
glMultiTexCoord2fvARB
glMultiTexCoord2ivARB
glMultiTexCoord2svARB
glMultiTexCoord3dvARB
glMultiTexCoord3fvARB
glMultiTexCoord3ivARB
glMultiTexCoord3svARB
glMultiTexCoord4dvARB
glMultiTexCoord4fvARB
glMultiTexCoord4ivARB
glMultiTexCoord4svARB
glGetMapiv
glNewList
glEndList
glDeleteLists
glPixelStoref
glDeleteTextures
glGenLists
glGetBooleanv
glGetClipPlane
glGetDoublev
glGetError
glGetFloatv
glGetLightfv
glGetLightiv
glGetMapdv
glGetMapfv
glGetMaterialfv
glGetMaterialiv
glGetPixelMapfv
glGetPixelMapuiv
glGetPixelMapusv
glGetTexEnvfv
glGetTexEnviv
glGetTexGendv
glGetTexGenfv
glGetTexGeniv
glGetTexParameterfv
glGetTexParameteriv
glGetTexLevelParameterfv
glIsEnabled
glIsList
glAreTexturesResident
glGenTextures
glIsTexture
glGetColorTableParameterfv
glGetConvolutionParameterfv
glGetHistogramParameterfv
glGetMinmaxParameterfv
glGetMinmaxParameteriv
glSecondaryColorPointerEXT
glFogCoordPointerEXT
glGetProgramivARB
glGetProgramStringARB
glGetCompressedTexImageARB
glCompressedTexImage1D
glCompressedTexImage2D
glCompressedTexImage3D
glCompressedTexSubImage1D
glCompressedTexSubImage2D
glCompressedTexSubImage3D
glSampleCoverage
glBlendFuncSeparate
glFogCoorddv
glPointParameterf
glPointParameterfv
glPointParameteri
glPointParameteriv
glSecondaryColor3bv
glSecondaryColor3dv
glSecondaryColor3iv
glSecondaryColor3sv
glSecondaryColor3ubv
glSecondaryColor3uiv
glSecondaryColor3usv
glWindowPos3fv
glBeginQuery
glEndQuery
glBlendEquationSeparate
glDrawBuffers
glVertexAttrib1dv
glVertexAttrib1sv
glVertexAttrib2dv
glVertexAttrib2sv
glVertexAttrib3dv
glVertexAttrib3sv
glVertexAttrib4Nbv
glVertexAttrib4Niv
glVertexAttrib4Nsv
glVertexAttrib4Nubv
glVertexAttrib4Nuiv
glVertexAttrib4Nusv
glVertexAttrib4bv
glVertexAttrib4dv
glVertexAttrib4iv
glVertexAttrib4sv
glVertexAttrib4ubv
glVertexAttrib4uiv
glVertexAttrib4usv
glClampColor
glBindProgramARB
glProgramEnvParameter4dvARB
glProgramEnvParameter4fvARB
glProgramLocalParameter4dvARB
glProgramLocalParameter4fvARB
glProgramStringARB
glVertexAttrib1fvARB
glVertexAttrib2fvARB glVertexAttrib3fvARB
glVertexAttrib4fvARB
glBindFramebuffer
glBindRenderbuffer
glBlitFramebuffer
glDeleteFramebuffers
glDeleteRenderbuffers
glFramebufferRenderbuffer
glFramebufferTexture1D
glFramebufferTexture2D
glFramebufferTexture3D
glFramebufferTextureLayer
glGenerateMipmap
glRenderbufferStorage
glRenderbufferStorageMultisample
glSecondaryColor3fvEXT
glFogCoordfvEXT
glVertexAttrib1dvNV
glVertexAttrib1fvNV
glVertexAttrib1svNV
glVertexAttrib2dvNV
glVertexAttrib2fvNV
glDeleteQueries
glDeleteProgramsARB
glGenQueries
glGetQueryObjectiv
glGetQueryObjectuiv
glGetQueryiv
glIsQuery
glGenProgramsARB
glGetProgramEnvParameterdvARB
glGetProgramEnvParameterfvARB
glGetProgramLocalParameterdvARB
glGetProgramLocalParameterfvARB
glIsProgramARB
glCheckFramebufferStatus
glGenFramebuffers
glGenRenderbuffers
glGetFramebufferAttachmentParameteriv
glGetRenderbufferParameteriv
glIsFramebuffer
glIsRenderbuffer
glVertexAttrib2svNV
glVertexAttrib3dvNV
glVertexAttrib3fvNV
glVertexAttrib3svNV
glVertexAttrib4dvNV
glVertexAttrib4fvNV
glVertexAttrib4svNV
glVertexAttrib4ubvNV
glVertexAttribs1dvNV
glVertexAttribs1fvNV
glVertexAttribs1svNV
glVertexAttribs2dvNV
glVertexAttribs2fvNV
glVertexAttribs2svNV
glVertexAttribs3dvNV
glVertexAttribs3fvNV
glVertexAttribs3svNV
glVertexAttribs4dvNV
glVertexAttribs4fvNV
glVertexAttribs4svNV
glVertexAttribs4ubvNV
glActiveStencilFaceEXT
These is the diff between
strings Xvnc | grep "gl"
andstrings libGL.so.1 | grep gl
after exporting glGetMinmaxParameteriv
and glCopyColorTable
@ptitSeb Can you make a patch for termux proot users
I don't understand you diff. Things like glEnable
are already in gl4es.
What symbol other then glGetMinmaxParameteriv
and glCopyColorTable
are needed?
when i added those two
another Xvnc error occurred (missing symbol glGetColorTableParameterfv
)
so i made a basic string diff between /bin/Xvnc and gl4es libGL.so.1 files for lines starting with gl
strings /binXvnc | grep "gl" > one.txt
strings /lib/gl4es/libGL.so.1 | grep "gl" > two.txt
diff --normal one.txt two.txt
then i got this Pardon me if i made you confuse
No, "strings" is not what you want.
you need to use nm -D binXvnc | grep " U " | grep " gl"
to get gl symbols needed for the link
And then you need to check in nm -D libGL.so.1 | grep " T "
for symbol NOT in the list. A diff will not work unless you sort the list. Even then, it will be messy to see.
Ok This is getting way more confusing than I thought.
i made a tiny project(planing to do more) on running ubuntu 21.04 in android with termux app run with proot for non-root users
I tried to implement gl4es for vnc cause it worked really great in Xserver Xsdl but all these missing symbols line from Xvnc made me confused can you contribute to this and make it work @ptitSeb
I Think i got all missing symbols
check it out
vncserver successfully started And it's working like a charm
Thanks @ptitSeb
But still, look Over my code suggest me some edits
The functions signature are suspicious for some of them. Are they correct? I problablyprefer a new file, name "stubs.c" or something like that, with all the symbols because there are quite a few. Glad it works :)
(and now you can try some stuff with box86 on your termux :) )
I problablyprefer a new file, name "stubs.c" or something like that, with all the symbols because there are quite a few.
Ok I will Do it
(and now you can try some stuff with box86 on your termux :) )
I am excited to push new features
Running
glxgears
at ~60fps
Making my port to termux at https://github.com/RandomCoderOrg/gl4es-port
Can someone help me out with this error
vncserver: /usr/bin/Xtigervnc exited with status 127, please look into '/root/.vnc/localhost.localdomain:5902.log' to determine the reason! -2