Jak mohu ladit chyby EGL_BAD_CONFIG?

hlasů
0

Mám nějaký kód, pro který musím povolit Anti aliasing (celý projektový src zde ). Očekávaným výsledkem v okamžiku, kdy je červený obrazovka.

Tady je můj GLSurfaceViewpohled na kód (src zde na GitHub):

class AAEnabledGLSurfaceView(context: Context, attrs: AttributeSet) : GLSurfaceView(context, attrs) {
    private val renderer = MRenderer()

    init {
        setEGLContextClientVersion(2)
        setEGLConfigChooser(MultiSampleConfigChooser())
        setRenderer(renderer)
        holder.setFormat(PixelFormat.TRANSLUCENT)
        setZOrderOnTop(true)
        renderMode = GLSurfaceView.RENDERMODE_WHEN_DIRTY
    }
}

I použít následující EGLCOnfigChooserimplementační (SRC zde na GitHub):

private class MultiSampleConfigChooser : GLSurfaceView.EGLConfigChooser {

    override fun chooseConfig(egl: EGL10, display: EGLDisplay): EGLConfig {

        val value = intArrayOf(0)
        val returnedConfigs = arrayOfNulls<EGLConfig>(16)

        var minimalSpecs = intArrayOf(
            EGL10.EGL_RED_SIZE,
            8,
            EGL10.EGL_GREEN_SIZE,
            8,
            EGL10.EGL_BLUE_SIZE,
            8,
            EGL10.EGL_ALPHA_SIZE,
            8,
            EGL10.EGL_SAMPLE_BUFFERS,
            1,
            EGL10.EGL_SAMPLES,
            2,
            EGL10.EGL_NONE
        )

        if (!egl.eglChooseConfig(display, minimalSpecs, returnedConfigs, returnedConfigs.size, value)) {
            throw IllegalArgumentException(No config found)
        }

        val configCount = value[0]
        Log.d(TAG, $configCount configs found)

        return returnedConfigs[0]!!
    }
}

Kód funguje na Nexus 5 , ale na Asus P027 , když jsem spustit projekt, dostanu následující výjimku:

2018-11-07 15:17:35.600 26630-26646/com.whatnow.wtf E/AndroidRuntime: FATAL EXCEPTION: GLThread 5223
    Process: com.whatnow.wtf, PID: 26630
    java.lang.RuntimeException: createContext failed: EGL_BAD_CONFIG
        at android.opengl.GLSurfaceView$EglHelper.throwEglException(GLSurfaceView.java:1205)
        at android.opengl.GLSurfaceView$EglHelper.throwEglException(GLSurfaceView.java:1196)
        at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:1046)
        at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1416)
        at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1253)

... což je docela k ničemu, protože to opravdu není mi řekni, co část mé config bylo špatné. Ví někdo, co to s kódem, nebo ještě lépe v pořádku, jak bych jít o ladění tyto věci? Nevidím nic jiného v protokolech.

Položena 07/11/2018 v 23:33
zdroj uživatelem
V jiných jazycích...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more