Comments (4)
Hi @kidapu,
Root cause is RenderAPI_OpenGLCoreES::BeginModifyVertexBuffer return 0, so ModifyVertexBuffer is not working.
I have walkaround this issue by use GLES3 glMapBufferRange to get point of vertex buffer:
void* RenderAPI_OpenGLCoreES::BeginModifyVertexBuffer(void* bufferHandle, size_t* outBufferSize)
{
glBindBuffer(GL_ARRAY_BUFFER, (GLuint)(size_t)bufferHandle);
GLint size = 0;
glGetBufferParameteriv(GL_ARRAY_BUFFER, GL_BUFFER_SIZE, &size);
*outBufferSize = size;
void* mapped = glMapBufferRange(GL_ARRAY_BUFFER, 0, size, GL_MAP_WRITE_BIT);
return mapped;
}
void RenderAPI_OpenGLCoreES::EndModifyVertexBuffer(void* bufferHandle)
{
glBindBuffer(GL_ARRAY_BUFFER, (GLuint)(size_t)bufferHandle);
glUnmapBuffer(GL_ARRAY_BUFFER);
}
Then it is working fine on Android:
from nativerenderingplugin.
I updated Android.mk
and rebuilt libRenderingPlugin.so
.
APP_OPTIM := debug
APP_ABI := armeabi-v7a arm64-v8a
APP_PLATFORM := android-21
# APP_STL := gnustl_static
APP_STL := c++_static
APP_CPPFLAGS += -std=c++11
NDK_TOOLCHAIN_VERSION := clang
APP_BUILD_SCRIPT := Android.mk
And tried to build apk, but the app crashes when it's launched.
This is the crash log.
$ adb logcat --buffer=crash
09-03 18:29:23.219 12173 12191 F libc : ./../../../source/RenderAPI_OpenGLCoreES.cpp:182: void RenderAPI_OpenGLCoreES::CreateResources(): assertion "glGetError() == GL_NO_ERROR" failed
09-03 18:29:23.411 12173 12191 F libc : Fatal signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0xdce2df00 in tid 12191 (UnityMain), pid 12173 (com.Company.aaa)
09-03 18:29:23.473 12232 12232 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
09-03 18:29:23.480 12232 12232 F DEBUG : Build fingerprint: 'lge/joan_dcm_jp/L-01K:9/PKQ1.190414.001/20072184679ed:user/release-keys'
09-03 18:29:23.480 12232 12232 F DEBUG : Revision: '12'
09-03 18:29:23.480 12232 12232 F DEBUG : ABI: 'arm'
09-03 18:29:23.480 12232 12232 F DEBUG : pid: 12173, tid: 12191, name: UnityMain >>> com.Company.aaa <<<
09-03 18:29:23.480 12232 12232 F DEBUG : signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0xdce2df00
09-03 18:29:23.480 12232 12232 F DEBUG : Abort message: './../../../source/RenderAPI_OpenGLCoreES.cpp:182: void RenderAPI_OpenGLCoreES::CreateResources(): assertion "glGetError() == GL_NO_ERROR" failed'
09-03 18:29:23.480 12232 12232 F DEBUG : r0 c7ff984c r1 c7ff9958 r2 00000000 r3 dce2df00
09-03 18:29:23.480 12232 12232 F DEBUG : r4 c7ff984c r5 db90ab00 r6 00000000 r7 c7ff9958
09-03 18:29:23.480 12232 12232 F DEBUG : r8 00002f9f r9 c7ff9e80 r10 c7ff9f00 r11 c7ff9a58
09-03 18:29:23.480 12232 12232 F DEBUG : ip c603d77c sp c7ff96d8 lr c5c95384 pc dce2df00
09-03 18:29:23.500 12232 12232 F DEBUG :
09-03 18:29:23.500 12232 12232 F DEBUG : backtrace:
09-03 18:29:23.500 12232 12232 F DEBUG : #00 pc 00002f00 <anonymous:dce2b000>
09-03 18:29:23.500 12232 12232 F DEBUG : #01 pc 0018c380 /data/app/com.Company.aaa-CZ--GOFq6q-9LFPUXF3Yqw==/lib/arm/libmonobdwgc-2.0.so (mono_walk_stack_full+1544)
09-03 18:29:23.500 12232 12232 F DEBUG : #02 pc 0018a020 /data/app/com.Company.aaa-CZ--GOFq6q-9LFPUXF3Yqw==/lib/arm/libmonobdwgc-2.0.so (mono_walk_stack_with_state+308)
09-03 18:29:23.500 12232 12232 F DEBUG : #03 pc 0018c588 /data/app/com.Company.aaa-CZ--GOFq6q-9LFPUXF3Yqw==/lib/arm/libmonobdwgc-2.0.so (mono_walk_stack+64)
09-03 18:29:23.500 12232 12232 F DEBUG : #04 pc 009752df /data/app/com.Company.aaa-CZ--GOFq6q-9LFPUXF3Yqw==/lib/arm/libunity.so (NativeRuntimeException::signal_handler(int, siginfo*, void*)+334)
09-03 18:29:23.500 12232 12232 F DEBUG : #05 pc 0025e5d0 /data/app/com.Company.aaa-CZ--GOFq6q-9LFPUXF3Yqw==/lib/arm/libmonobdwgc-2.0.so (mono_chain_signal+180)
09-03 18:29:23.500 12232 12232 F DEBUG : #06 pc 0025e72c /data/app/com.Company.aaa-CZ--GOFq6q-9LFPUXF3Yqw==/lib/arm/libmonobdwgc-2.0.so (__krait_sigabrt_signal_handler+148)
09-03 18:29:23.500 12232 12232 F DEBUG : #07 pc 00019a24 /system/lib/libc.so
09-03 18:29:23.500 12232 12232 F DEBUG : #08 pc 0001ce26 /system/lib/libc.so (abort+54)
09-03 18:29:23.500 12232 12232 F DEBUG : #09 pc 0001d0a3 /system/lib/libc.so (__assert2+22)
09-03 18:29:23.500 12232 12232 F DEBUG : #10 pc 0000e9a8 /data/app/com.Company.aaa-CZ--GOFq6q-9LFPUXF3Yqw==/lib/arm/libRenderingPlugin.so (RenderAPI_OpenGLCoreES::CreateResources()+516)
09-03 18:29:23.500 12232 12232 F DEBUG : #11 pc 0000eb44 /data/app/com.Company.aaa-CZ--GOFq6q-9LFPUXF3Yqw==/lib/arm/libRenderingPlugin.so (RenderAPI_OpenGLCoreES::ProcessDeviceEvent(UnityGfxDeviceEventType, IUnityInterfaces*)+48)
09-03 18:29:23.500 12232 12232 F DEBUG : #12 pc 0000c60c /data/app/com.Company.aaa-CZ--GOFq6q-9LFPUXF3Yqw==/lib/arm/libRenderingPlugin.so
09-03 18:29:23.500 12232 12232 F DEBUG : #13 pc 0000c4a0 /data/app/com.Company.aaa-CZ--GOFq6q-9LFPUXF3Yqw==/lib/arm/libRenderingPlugin.so (UnityPluginLoad+124)
09-03 18:29:23.500 12232 12232 F DEBUG : #14 pc 0076da01 /data/app/com.Company.aaa-CZ--GOFq6q-9LFPUXF3Yqw==/lib/arm/libunity.so (RegisterPlugin(void*, UnityPluginFunctions&)+196)
09-03 18:29:23.500 12232 12232 F DEBUG : #15 pc 0076db55 /data/app/com.Company.aaa-CZ--GOFq6q-9LFPUXF3Yqw==/lib/arm/libunity.so (InitializePlugin(void*)+92)
09-03 18:29:23.500 12232 12232 F DEBUG : #16 pc 0076e109 /data/app/com.Company.aaa-CZ--GOFq6q-9LFPUXF3Yqw==/lib/arm/libunity.so (FindAndLoadUnityPlugin(char const*, void**)+120)
09-03 18:29:23.500 12232 12232 F DEBUG : #17 pc 002f9294 /data/app/com.Company.aaa-CZ--GOFq6q-9LFPUXF3Yqw==/lib/arm/libmonobdwgc-2.0.so (mono_lookup_pinvoke_call+1056)
09-03 18:29:23.500 12232 12232 F DEBUG : #18 pc 0030dc0c /data/app/com.Company.aaa-CZ--GOFq6q-9LFPUXF3Yqw==/lib/arm/libmonobdwgc-2.0.so (mono_marshal_get_native_wrapper+640)
09-03 18:29:23.500 12232 12232 F DEBUG : #19 pc 00090aac /data/app/com.Company.aaa-CZ--GOFq6q-9LFPUXF3Yqw==/lib/arm/libmonobdwgc-2.0.so (mono_method_to_ir+48488)
09-03 18:29:23.500 12232 12232 F DEBUG : #20 pc 00065200 /data/app/com.Company.aaa-CZ--GOFq6q-9LFPUXF3Yqw==/lib/arm/libmonobdwgc-2.0.so (mini_method_compile+4240)
09-03 18:29:23.500 12232 12232 F DEBUG : #21 pc 0006a0d4 /data/app/com.Company.aaa-CZ--GOFq6q-9LFPUXF3Yqw==/lib/arm/libmonobdwgc-2.0.so (mono_jit_compile_method_inner+1808)
09-03 18:29:23.500 12232 12232 F DEBUG : #22 pc 0006ff00 /data/app/com.Company.aaa-CZ--GOFq6q-9LFPUXF3Yqw==/lib/arm/libmonobdwgc-2.0.so (mono_jit_compile_method_with_opt+1948)
09-03 18:29:23.501 12232 12232 F DEBUG : #23 pc 0006f74c /data/app/com.Company.aaa-CZ--GOFq6q-9LFPUXF3Yqw==/lib/arm/libmonobdwgc-2.0.so (mono_jit_compile_method+80)
09-03 18:29:23.501 12232 12232 F DEBUG : #24 pc 001940bc /data/app/com.Company.aaa-CZ--GOFq6q-9LFPUXF3Yqw==/lib/arm/libmonobdwgc-2.0.so (common_call_trampoline+2752)
09-03 18:29:23.501 12232 12232 F DEBUG : #25 pc 001935ac /data/app/com.Company.aaa-CZ--GOFq6q-9LFPUXF3Yqw==/lib/arm/libmonobdwgc-2.0.so (mono_magic_trampoline+188)
09-03 18:29:23.501 12232 12232 F DEBUG : #26 pc 0000006a <anonymous:e6280000>
When the plugin is loaded, it's down in this line.
https://github.com/Unity-Technologies/NativeRenderingPlugin/blob/master/PluginSource/source/RenderAPI_OpenGLCoreES.cpp#L182
UnityPluginLoad() => OnGraphicsDeviceEvent() => RenderAPI_OpenGLCoreES::ProcessDeviceEvent() => CreateResources() => Crash ><
from nativerenderingplugin.
When I run glGetError()
before assert(), I got this view on Android. Maybe only vertex shader is disable.
And I printf( glGetError() ), it says GL_INVALID_ENUM
( int 1280).
I think the error occurs before RenderPlugin.cpp => UnityPluginLoad()
.
from nativerenderingplugin.
I forked your repository, and add some code for investigating this bug.
https://github.com/kidapu/NativeRenderingPlugin/commits/master
from nativerenderingplugin.
Related Issues (20)
- Windows Setup Guide
- GNU makefile error
- It desn't work for UnityEditor(2018.4.12f1) with Vulkan RenderAPI
- Modifying vertex buffer on WebGL is disabled HOT 1
- Vulkan support
- No REAL Documentation?
- Can't get android to work with Vulkan HOT 2
- Native Plugin crash on Windows using OpenGL ES 3 HOT 4
- Plugin Load on Startup HOT 1
- Not working with Vulkan HOT 1
- Apple Silicon and Unity 2021.3.8f1 - DllNotFoundException: RenderingPlugin assembly:<unknown assembly> type:<unknown type> member:(null) HOT 8
- Multisamples issues in Vulkan
- Webgl Multithread support?
- how to use NativeRenderingPlugin with android JNI ? HOT 1
- Does AccessRenderBufferTexture of Vulkan Plugin API can transition image layout?
- How does Vulkan API interception work before VkInstance and VkDevice creating and after that?
- Unity project does not work in 2018.1
- How to get openl Context?
- UWP libraries shipped with the Unity sample does not have the function signature of "SetMeshBuffersFromUnity"
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nativerenderingplugin.