Ich schreibe ein OpenGL ES 3.1-Programm und möchte die maximale Größe der Arbeitsgruppe für das Gerät kennen, auf dem ich laufe (es läuft auf Android 6).Erhalten Sie maximale Arbeitsgruppengröße für Compute Shader?
Für PC-Abfrage GL_MAX_COMPUTE_WORK_GROUP_COUNT
und GL_MAX_COMPUTE_WORK_GROUP_SIZE
funktioniert gut, aber ich kann das Äquivalent für auf Android zu tun scheinen, ich OpenGL error: InvalidEnum
, wenn ich etwas versuchen, wie
OpenTK Code:
int[] work_grp_cnt = new int[3];
GL.GetInteger(All.MaxComputeWorkGroupCount, work_grp_cnt);
Same mit nativer Android APIs:
int[] work_grp_cnt = new int[3];
IntBuffer maxCount = IntBuffer.Allocate(3);
GLES20.GlGetIntegerv(GLES31.GlMaxComputeWorkGroupCount, maxCount);
maxCount.Get(work_grp_cnt);
(in beiden Fällen ist die GLGetInteger hebt den gleichen InvalidEnum Fehler) Ist das mit OpenGL ES 3.1 möglich?
Ich benutze ein Sony Xperia Z5
ich die Java-Äquivalent von meiner Funktion hinzugefügt haben, ihr die gleichen Fehler. Auch der Fehler ist auf der OpenGL-Seite, was mich denken lässt, dass ich die falsche API anrufe, nicht dass meine Syntax falsch ist, wie Sie vorgeschlagen haben. – sydd
Das ist nicht die gleiche Funktion. Der "i_" -Teil ist wichtig. –
Danke, du hast Recht. Ich habe den Arbeitscode als eine andere Antwort veröffentlicht. – sydd