Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - AeroShark333

Pages: 1 ... 6 7 [8] 9 10 ... 22
106
Support / Re: Minor blitshader bug
« on: April 23, 2020, 07:59:02 pm »
Ok...it remains a mystery to me. All I've added is setting a flag that reenables some vertex buffers that shouldn't have been disabled in the first place. Well...as long as it works now.
Yeah, I guess this solution will do :)
I'll see if I can get rid of these transparant blits as well

Thank you both for helping

107
Support / Re: Minor blitshader bug
« on: April 23, 2020, 07:21:58 pm »
Ok, I've updated https://jpct.de/download/beta/jpct_ae.jar. If that still doesn't have the same effect as display(), then I can do one more thing to it. Please let me know how it works out.
FrameBuffer#flushBlittingPipeline() seems to work now without any additional FrameBuffer#display() calls (except for the final call at the end of the draw call).

108
Support / Re: Minor blitshader bug
« on: April 23, 2020, 03:52:58 pm »
I'm not sure about this. Actually, I don't even understand my comment from back then anymore. Because, if you set a new blitting shader, buffered blits are executed anyway. I don't see why you should still need this dummy texture hack. fb.display() executes stored blits as well, but it also does something more. It shouldn't really hurt to use it, but I fail to see why it helps in this case. I've uploaded a new jar that adds a new method to FrameBuffer called flushBlittingPipeline() which does what it says. Maybe you can try to use that in addition or in replacement of the dummy texture blit and see if that helps.

As MichealJPCT suggested, flush() or sync() might be worth a try. There's an undocumented config switch to enable those for blitting. Set Config.blittingMode  to 9 for a flush(), to 10 for a sync() and to 11 for both and see, if that helps. I doubt it, but there has to be a reason why I put those in there...

Edit: looking at the code, these config values only enable sync() and flush() BEFORE the actual blitting. If you want to execute them afterwards as well, just add a 4 to these values.
I first downloaded the jar from the jPCT downloads page but I guess that wasn't the right new jar...
So I used that beta link later (from another thread): http://jpct.de/download/beta/jpct_ae.jar which did have the FrameBuffer#flushBlittingPipeline()
I'm not sure if the dummy blit helps anything but I believe it did help to push the shadered blits. I guess it doesn't do any harm anyway but yeah, not ideal I suppose.

Anyway, back to the multiple (shadered) blits:
Using FrameBuffer#flushBlittingPipeline() after the having blitted using the first shader doesn't work
I tried to use FrameBuffer#sync() before too but it didn't work. I haven't tried FrameBuffer#flush() before yet but it also didn't really work.
The blittingMode's 9, 10, 11, 13, 14 and 15 all didn't work.
So far only using FrameBuffer#display() seems to work...
But I believe the idea of having multiple FrameBuffer#display() calls in one draw call isn't how it's intended to be..?

109
Support / Minor blitshader bug
« on: April 23, 2020, 12:20:58 am »
Hello,

I believe I've found a minor blitshader bug, it's mostly about the blits that follow (whether these use another blitshader or no blitshader) after you are done using the blitshader in a single draw call.
I do follow the instructions I've read elsewhere on this forums:
It should work. At least I see no reason, why it shouldn't. Just make sure not to do this:

Code: [Select]
fb.setBlittingShader(...);
fb.blit(...);
fb.setBlittingShader(null);

That doesn't work, because blits are buffered but the shader isn't. If you need to reset the shader in the process, make sure to execute the blits before. You can force this by blitting a dummy blit from some other texture. Like:

Code: [Select]
fb.setBlittingShader(...);
fb.blit(...);
fb.blit(...); // <- Dummy-blit (1x1 transparent pixel with some other texture or something)
fb.setBlittingShader(null);

Now in my case, I use:
Code: [Select]
fb.setBlittingShader(shader1);
fb.blit(...);
fb.blit(...); // <- Dummy-blit (1x1 transparent pixel with some other texture or something)
fb.setBlittingShader(null);
fb.setBlittingShader(shader1);
fb.blit(...);
fb.blit(...); // <- Dummy-blit (1x1 transparent pixel with some other texture or something)
fb.setBlittingShader(null);
fb.setBlittingShader(shader2);
fb.blit(...);
fb.blit(...); // <- Dummy-blit (1x1 transparent pixel with some other texture or something)
fb.setBlittingShader(null);

Every blit using the first shader seems to go fine but once another shader or no shader is used, blitting is kinda broken (not on all devices but most).
- When you blit (after having used the first shader) with no shader, something that doesn't match the original texture you're trying to blit is shown.
- When you blit (after having used the first shader) with another shader, either nothing is shown or the correct result is shown. (50/50 depending on device)
- When you blit (after having used the first shader) with no/another shader AND you used fb.display() before these blits, then the correct result will be shown in all cases.

So it seems that now fb.display() is required if
- you want to keep blitting normally after the first blits with shader
- you want to use another blitshader to blit with
Though, I'm not sure if fb.display() is intended to be used like that

Cheers,
Abiram

110
Support / Re: [Tips] Huge texture uploading (memory tricks)
« on: April 09, 2020, 04:40:24 pm »
BTW: Do you mind if I add this to the wiki?
I don't mind, it was meant to be written to help out other people for their future projects anyway :)

111
Support / [Tips] Huge texture uploading (memory tricks)
« on: April 03, 2020, 08:52:58 pm »
Hello,

I have been digging around a little for the memory issues I have concerning texture uploading since I do use pretty huge textures.
It seems that jPCT-AE requires twice the size of a texture (in peak memory usage) in JVM RAM: the original pixeldata of the texture + the buffer used for uploading.
But I believe that on modern day devices you can actually use tricks to consume near nothing in the JVM RAM when loading such huge textures.
I believe jPCT-AE doesn't support these features out of the box because it's been directly ported from the PC version and to provide backwards compatibility with the very old devices.

Here's the class I use to upload textures now (feel free to use it or make your own modifications to it):
Code: [Select]
package com.aeroshark333.artofearthify.utils;

import android.graphics.Bitmap;
import android.opengl.GLES20;
import android.opengl.GLUtils;

import com.threed.jpct.RGBColor;
import com.threed.jpct.Texture;

// Created by Abiram/AeroShark333
public class CustomTexture extends Texture {
    final Bitmap bmp;

    public CustomTexture(Bitmap image) {
        super(2, 2, RGBColor.BLACK);
        this.bmp = image;
    }

    public int loadTexture(final boolean forceNearest, final boolean keepInMemory){
        final int[] textureHandle = new int[1];

        GLES20.glGenTextures(1, textureHandle, 0);

        if (textureHandle[0] != 0)
        {
            // Bind to the texture in OpenGL
            GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textureHandle[0]);

            // Set filtering
            if (!forceNearest) {
                GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
                GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
            }else {
                GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST);
                GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_NEAREST);
            }

            // Load the bitmap into the bound texture.
            GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, bmp, 0);

            // Recycle the bitmap, since its data has been loaded into OpenGL.
            if (!keepInMemory) {
                bmp.recycle();
            }
        }

        if (textureHandle[0] == 0)
        {
            throw new RuntimeException("Error loading texture.");
        }

        this.setExternalId(textureHandle[0],GLES20.GL_TEXTURE_2D);
        return textureHandle[0];
    }
}

One could use the CustomTexture constructor from any Thread but the CustomTexture#loadTexture(boolean,boolean) method needs to be called from the GLThread.
This implementation is kinda very simple and it doesn't cover all of jPCT-AE's texture features (and it probably isn't really (easily) possible to have texture manipulation/effects like jPCT-AE supports them out of the box). However, the uploading process seems much faster using this method too. Also, this could potentially solve memory issues if you have them.

Now, I did say you could use near nothing in JVM RAM, so what about the Bitmap that is passed to this CustomTexture?
Well, as since Android 8.0, you can load Bitmap's immediately into the hardware-level (probably GPU..?), meaning that the Bitmap is not stored in the JVM RAM.
That is if you use Bitmap.Config.HARDWARE when you decode your image file (from resources, online of file): https://developer.android.com/reference/android/graphics/Bitmap.Config#HARDWARE.
Unfortunately, jPCT-AE does not seem to support Bitmap's that have been created using this Config, because of the immutability and inaccessibility of the Bitmap pixels.
However, but the CustomTexture class would work with Bitmap's that are using this Config.

I hope this could be useful for someone someday.
Feel free to give your thoughts and ideas :)

Cheers,
Abiram

112
Projects / Re: my project - Vehicle Simulation
« on: March 19, 2020, 01:11:59 pm »
Interesting!
I believe you're using circles as some kind of base for these cloud particles? And you're having a multiple of these circles for each cloud, I guess?
And then applying them with a random filter (in shader?) so it creates these pixel holes so it looks more cloudy.
I guess the color is either white (top) or gray (bottom).

I believe it'd look better with even smaller circle particles but it'd be heavy for devices I suppose...

113
Support / Re: Crash (native)
« on: March 11, 2020, 12:53:21 am »
Alright, thank you. I figured it'd not make a big difference but I mostly wondered if this was intentional so I guess not.

About the ideal batch size, I have found Config.glBatchSize=3000 to be pretty ideal in my use cases when the vertex count for the Object3D is smaller than about 100000. The Config.glBatchSize needs to be further decreased when your Object3D has higher vertexcount. But this different per Object3D structure again...

In my use case the distance between vertices does become smaller for higher vertexcount... I don't know if that could be a problem that the vertices become more dense. I have noticed a stronger drop for the needed glBatchSize for higher polygoncount UV-spheres than for higher polygoncount ico-spheres.

114
Support / Re: Crash (native)
« on: March 10, 2020, 03:04:25 am »
I actually do have an emulator on my PC where I can reproduce this SIGSEGV error.
However, I'm not sure if the emulator crash truly is identical to the crashes that users receive.

In Android Studio, I've been using the debug option to test some things out.
I'd let the application stop once it hits  the following line :
Code: [Select]
gl11.glDrawElements(this.primitiveType, this.indexCount, 5123, 0);
It's not running the above line yet until I tell it to continue, the app basically hangs/suspends in meantime.
While the app is suspended, I can run an evaluation (custom code) that I can insert through the debugger as follows:
Code: [Select]
for(int xxx=3;xxx<this.indexCount;xxx+=3){
System.out.println("Indexcount=" + xxx);
gl11.glDrawElements(this.primitiveType, xxx, 5123, 0);
}

Now there are three different scenario's:
- The application crashes when a certain index count (xxx) has been reached. (lower limit)
- The application crashes for another index count (xxx+6). (higher limit)
- The application doesn't crash at all (because it does still happen randomly...)

So for an Object3D, there's always two values as index count where it could crash: xxx and xxx+6.

The only thing that changes this xxx value (and xxx+6 value) is:
- the vertex count of the object
- the overall structure of the object.

I have only tested this with UV-spheres and ico-spheres.

As a conclusion, I have found that if it was possible to lower these 'index counts', so that high values are not reached, the crash won't happen.
The only way to achieve that is to lower the Config.glBatchSize value.
And yes, with the emulator this does help to reduce the occurences of this SIGSEGV crash to 0.
I'm not sure if this will fix the issue for real devices but it's worth a shot I guess.

I have two questions remaining, however:
- Why is the default Config.glBatchSize = 8000?
- If an Object3D for instance has 48000 vertices and the Config.glBatchSize = 8000. The Object3D loads it in batches of 23997, 24000 and 3 vertices. Why is the first batch 3 vertices smaller than the batch size would suggest?


115
Support / Re: Object3D generating issue
« on: February 15, 2020, 06:53:25 pm »
And regarding why the normal rendering doesn't show 'defects' when Object3D#forceGeometryIndices() is enabled?

116
Support / Re: Object3D generating issue
« on: February 14, 2020, 02:23:30 pm »
I don't really know either why this happens...
When I draw the wireframe model, I can see some 'defects' inside the model that I believe shouldn't actually be there.
When rendered normally (no wireframe), the model shows up normally on the emulator but on the phone it will have missing triangles (holes basically).
I fixed this problem for now by using Object3D#forceGeometryIndices() which doesn't give any problem with the rendering of the model. (but the wireframe model is actually still messed up)

EDIT: https://www.dropbox.com/s/kxyeu61vz9s8nht/bug.png?dl=0
Here's the messy model I was talking about (radius = 0.5f). It's not just these two lines, there's much more (also shorter ones)...
Whenever I check for the distances between all vertices before calling Object3D#addTriangle(), it does not show me any signs of vertices having distances to other vertices that are about the length of these defect lines. In fact the min and max lengths between vertices is: min:0.034591455 max:0.041302014
While I'd estimate that these defect lines are bigger that the radius of 0.5f... Weird..?  :o

117
Support / Re: Object3D generating issue
« on: February 13, 2020, 02:21:41 pm »
I've noticed now that it perhaps is defects in the generated model, and I wonder if Object3D.addTriangle works by adding triangles that are not adjacent to other triangles (so basically floating triangles)
Also, does it matter in what order you define the 3 vertices anti clockwise.
Is there a difference between v3 -> v2 -> v1 and v1 -> v3 -> v2?

Because I seem to get lines in my wireframe model which I don't think I have defined

118
Support / Re: Crash (native)
« on: January 27, 2020, 11:53:47 pm »
I now have this stacktrace, maybe it's possible to find something interesting

Code: [Select]
backtrace:
  #00  pc 00000000000150a0  /vendor/lib64/libsrv_um.so
  #01  pc 0000000000027190  /vendor/lib64/egl/libGLESv2_mtk.so
  #02  pc 000000000002ac68  /vendor/lib64/egl/libGLESv2_mtk.so
  #03  pc 0000000000025dbc  /vendor/lib64/egl/libGLESv2_mtk.so
  #04  pc 0000000000025878  /vendor/lib64/egl/libGLESv2_mtk.so (glDrawElements+140)
  #05  pc 00000000000da720  /system/lib64/libandroid_runtime.so (android_glDrawElements__IIILjava_nio_Buffer_2(_JNIEnv*, _jobject*, int, int, int, _jobject*)+304)
  #06  pc 00000000003bc8e4  /system/framework/arm64/boot-framework.oat (offset 0x3b3000) (android.graphics.Color.nativeRGBToHSV [DEDUPED]+196)
  #07  pc 0000000000562a4c  /system/lib64/libart.so (art_quick_invoke_static_stub+604)
  #08  pc 00000000000d0360  /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+232)
  #09  pc 0000000000284b38  /system/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+344)
  #10  pc 000000000027eaf4  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+948)
  #11  pc 0000000000533624  /system/lib64/libart.so (MterpInvokeStatic+204)
  #12  pc 0000000000554f94  /system/lib64/libart.so (ExecuteMterpImpl+14612)
  #13  pc 00000000001fa708  /data/app/com.aeroshark333.artofearthify-y8JycfhWqFOb07jVYzYokA==/oat/arm64/base.vdex (com.threed.jpct.GL20.glDrawElements)
  #14  pc 00000000002585f0  /system/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.1077557954)+496)
  #15  pc 000000000025e170  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
  #16  pc 000000000027ead8  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+920)
  #17  pc 0000000000533098  /system/lib64/libart.so (MterpInvokeInterface+1392)
  #18  pc 0000000000555014  /system/lib64/libart.so (ExecuteMterpImpl+14740)
  #19  pc 00000000001f6c92  /data/app/com.aeroshark333.artofearthify-y8JycfhWqFOb07jVYzYokA==/oat/arm64/base.vdex (com.threed.jpct.CompiledInstance.render+4206)
  #20  pc 00000000002585f0  /system/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.1077557954)+496)
  #21  pc 000000000025e170  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
  #22  pc 000000000027fbe4  /system/lib64/libart.so (bool art::interpreter::DoCall<true, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+724)
  #23  pc 000000000053548c  /system/lib64/libart.so (MterpInvokeVirtualQuickRange+420)
  #24  pc 0000000000558c14  /system/lib64/libart.so (ExecuteMterpImpl+30100)
  #25  pc 00000000001fef10  /data/app/com.aeroshark333.artofearthify-y8JycfhWqFOb07jVYzYokA==/oat/arm64/base.vdex (com.threed.jpct.GLRenderer.drawVertexArray+492)
  #26  pc 00000000002585f0  /system/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.1077557954)+496)
  #27  pc 000000000025e170  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
  #28  pc 000000000027fbe4  /system/lib64/libart.so (bool art::interpreter::DoCall<true, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+724)
  #29  pc 000000000053548c  /system/lib64/libart.so (MterpInvokeVirtualQuickRange+420)
  #30  pc 0000000000558c14  /system/lib64/libart.so (ExecuteMterpImpl+30100)
  #31  pc 0000000000221be6  /data/app/com.aeroshark333.artofearthify-y8JycfhWqFOb07jVYzYokA==/oat/arm64/base.vdex (com.threed.jpct.World.draw+234)
  #32  pc 00000000002585f0  /system/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.1077557954)+496)
  #33  pc 000000000025e170  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
  #34  pc 000000000027fbe4  /system/lib64/libart.so (bool art::interpreter::DoCall<true, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+724)
  #35  pc 0000000000534c94  /system/lib64/libart.so (MterpInvokeDirectRange+244)
  #36  pc 0000000000555214  /system/lib64/libart.so (ExecuteMterpImpl+15252)
  #37  pc 0000000000221ae4  /data/app/com.aeroshark333.artofearthify-y8JycfhWqFOb07jVYzYokA==/oat/arm64/base.vdex (com.threed.jpct.World.draw+12)
  #38  pc 00000000002585f0  /system/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.1077557954)+496)
  #39  pc 000000000025e170  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
  #40  pc 000000000027ead8  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+920)
  #41  pc 0000000000535170  /system/lib64/libart.so (MterpInvokeVirtualQuick+584)
  #42  pc 0000000000558b94  /system/lib64/libart.so (ExecuteMterpImpl+29972)
  #43  pc 0000000000195c2e  /data/app/com.aeroshark333.artofearthify-y8JycfhWqFOb07jVYzYokA==/oat/arm64/base.vdex (com.aeroshark333.artofearthify.lw.ArtOfEarthify.onDrawFrame+1902)
  #44  pc 00000000002585f0  /system/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.1077557954)+496)
  #45  pc 000000000025e170  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
  #46  pc 000000000027ead8  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+920)
  #47  pc 0000000000535170  /system/lib64/libart.so (MterpInvokeVirtualQuick+584)
  #48  pc 0000000000558b94  /system/lib64/libart.so (ExecuteMterpImpl+29972)
  #49  pc 0000000000197ad4  /data/app/com.aeroshark333.artofearthify-y8JycfhWqFOb07jVYzYokA==/oat/arm64/base.vdex (com.aeroshark333.artofearthify.lw.LiveWallpaperRenderer.onDrawFrame+4)
  #50  pc 00000000002585f0  /system/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.1077557954)+496)
  #51  pc 0000000000521b38  /system/lib64/libart.so (artQuickToInterpreterBridge+1032)
  #52  pc 000000000056b8fc  /system/lib64/libart.so (art_quick_to_interpreter_bridge+92)
  #53  pc 0000000000a8ea70  /system/framework/arm64/boot-framework.oat (offset 0x3b3000) (android.opengl.GLSurfaceView$GLThread.guardedRun+4000)
  #54  pc 0000000000a8fb30  /system/framework/arm64/boot-framework.oat (offset 0x3b3000) (android.opengl.GLSurfaceView$GLThread.run+224)
  #55  pc 0000000000562788  /system/lib64/libart.so (art_quick_invoke_stub+584)
  #56  pc 00000000000d0340  /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
  #57  pc 0000000000466148  /system/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104)
  #58  pc 0000000000467210  /system/lib64/libart.so (art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue*)+424)
  #59  pc 00000000004942a0  /system/lib64/libart.so (art::Thread::CreateCallback(void*)+1120)
  #60  pc 0000000000084bd4  /system/lib64/libc.so (__pthread_start(void*)+36)
  #61  pc 000000000002344c  /system/lib64/libc.so (__start_thread+68)

Lines 13,19,25,31,37,43,49 are most interesting perhaps

119
Support / Re: Crash (native)
« on: June 13, 2019, 07:48:09 pm »
I don't...

120
Support / Re: Crash (native)
« on: June 07, 2019, 05:45:34 pm »
This looks like a similar stacktrace from another user:

java.lang.RuntimeException:
  at com.threed.jpct.Logger.log (Logger.java:206)
  at com.threed.jpct.GL20.checkError (GL20.java:163)
  at com.threed.jpct.GL20.glGenBuffers (GL20.java:1385)
  at com.threed.jpct.CompiledInstance.compileToVBO (CompiledInstance.java:1478)
  at com.threed.jpct.CompiledInstance.render (CompiledInstance.java:606)
  at com.threed.jpct.GLRenderer.drawWireframe (GLRenderer.java:2548)
  at com.threed.jpct.World.draw (World.java:1424)
  at com.threed.jpct.World.drawWireframe (World.java:1132)
  at com.aeroshark333.artofearthify.lw.ArtOfEarthify$1.run (ArtOfEarthify.java:732)
  at com.aeroshark333.artofearthify.utils.WorkerThread$2.run (WorkerThread.java:46)
  at com.aeroshark333.artofearthify.lw.ArtOfEarthify.onDrawFrame (ArtOfEarthify.java:1402)
  at com.aeroshark333.artofearthify.lw.LiveWallpaperRenderer.onDrawFrame (LiveWallpaperRenderer.java:45)
  at android.opengl.GLSurfaceView$GLThread.guardedRun (GLSurfaceView.java:1531)
  at android.opengl.GLSurfaceView$GLThread.run (GLSurfaceView.java:1248)

Pages: 1 ... 6 7 [8] 9 10 ... 22