Please note that this overview is still work-in-progress. It is not yet complete and is still subject to change.
R300 refers to the R300 driver, which covers the R300, R400 and R500 families of Radeon chips. Unless noted otherwise, anything marked as R300 applies to all 3.
Feature | TinyGL | R200 | R300 | Note |
1D textures | ||||
2D textures | ||||
3D textures | ||||
Accumulation Buffer | ||||
Alpha testing | ||||
Blending | ||||
Buffer clearing | Accumulation buffer support is missing, everything else is supported. | |||
Buffer objects | ||||
Clipping | ||||
Colour index mode | ||||
Colour masking | ||||
Compressed textures | ||||
Culling | ||||
Depth buffer | ||||
Display lists | ||||
Feedback | ||||
Fog | ||||
Immediate mode | ||||
Lighting | Various limitations exist on R200 and R300/R400/R500. | |||
Line drawing | ||||
Logical Operation | ||||
Matrix functions | ||||
Miscellaneous | ||||
Multiple render targets | ||||
Multisample antialiasing | ||||
Occlusion queries | ||||
Pixel transfer manipulation | ||||
Point drawing | ||||
Polygon stippling | ||||
Primitive shading | ||||
Raster 2D | ||||
Scissoring | ||||
Selection | ||||
Shaders | R500 is not yet supported. | |||
State management | ||||
Stencil | ||||
Synchronisation | ||||
Texture comparison | ||||
Texture coord generation | ||||
Texture functions | ||||
Texture state management | ||||
Texture wrapping | Both R200 and R300/R400/R500 have hardware bugs that make some unlikely combinations of texture filtering and texture wrapping misbehave | |||
Two-sided stencil | ||||
Vertex arrays | ||||
Viewport |
OpenGL function | Supported | Note |
OpenGL function | Supported | Note |
glCopyTexImage1D | ||
glCopyTexSubImage1D | ||
glTexImage1D | ||
glTexSubImage1D |
OpenGL function | Supported | Note |
glCopyTexImage2D | ||
glCopyTexSubImage2D | ||
glTexImage2D | ||
glTexSubImage2D |
OpenGL function | Supported | Note |
glCopyTexSubImage3D | ||
glTexImage3D | ||
glTexSubImage3D |
OpenGL function | Supported | Note |
glAccum |
OpenGL function | Supported | Note |
glAlphaFunc |
OpenGL function | Supported | Note |
glBlendColor | ||
glBlendEquation | ||
glBlendEquationSeparate | ||
glBlendFunc | ||
glBlendFuncSeparate |
OpenGL function | Supported | Note |
glClear | ||
glClearAccum | ||
glClearColor | ||
glClearDepth | ||
glClearStencil |
OpenGL function | Supported | Note |
glBindBuffer | ||
glBufferData | ||
glBufferSubData | ||
glDeleteBuffers | ||
glGenBuffers | ||
glGetBufferParameteriv | ||
glGetBufferPointerv | ||
glGetBufferSubData | ||
glIsBuffer | ||
glMapBuffer | ||
glUnmapBuffer |
OpenGL function | Supported | Note |
glClipPlane | ||
glGetClipPlane |
OpenGL function | Supported | Note |
glClearIndex | Colour index mode is obsolete, not in use by any apps that I'm aware of and will not be supported. | |
glIndexMask | Colour index mode is obsolete, not in use by any apps that I'm aware of and will not be supported. | |
glIndexPointer | Colour index mode is obsolete, not in use by any apps that I'm aware of and will not be supported. | |
glIndexd | Colour index mode is obsolete, not in use by any apps that I'm aware of and will not be supported. | |
glIndexdv | Colour index mode is obsolete, not in use by any apps that I'm aware of and will not be supported. | |
glIndexf | Colour index mode is obsolete, not in use by any apps that I'm aware of and will not be supported. | |
glIndexfv | Colour index mode is obsolete, not in use by any apps that I'm aware of and will not be supported. | |
glIndexi | Colour index mode is obsolete, not in use by any apps that I'm aware of and will not be supported. | |
glIndexiv | Colour index mode is obsolete, not in use by any apps that I'm aware of and will not be supported. | |
glIndexs | Colour index mode is obsolete, not in use by any apps that I'm aware of and will not be supported. | |
glIndexsv | Colour index mode is obsolete, not in use by any apps that I'm aware of and will not be supported. | |
glIndexub | Colour index mode is obsolete, not in use by any apps that I'm aware of and will not be supported. | |
glIndexubv | Colour index mode is obsolete, not in use by any apps that I'm aware of and will not be supported. |
OpenGL function | Supported | Note |
glColorMask |
OpenGL function | Supported | Note |
glCompressedTexImage1D | ||
glCompressedTexImage2D | ||
glCompressedTexImage3D | ||
glCompressedTexSubImage1D | ||
glCompressedTexSubImage2D | ||
glCompressedTexSubImage3D | ||
glGetCompressedTexImage |
OpenGL function | Supported | Note |
glCullFace |
OpenGL function | Supported | Note |
glDepthFunc | ||
glDepthMask |
OpenGL function | Supported | Note |
glCallList | ||
glCallLists | ||
glDeleteLists | ||
glEndList | ||
glGenLists | ||
glIsList | ||
glListBase | ||
glNewList |
OpenGL function | Supported | Note |
glFeedbackBuffer | ||
glPassThrough |
OpenGL function | Supported | Note |
glFogf | ||
glFogfv | ||
glFogi | ||
glFogiv |
OpenGL function | Supported | Note |
glArrayElement | ||
glBegin | ||
glColor3b | ||
glColor3bv | ||
glColor3d | ||
glColor3dv | ||
glColor3f | ||
glColor3fv | ||
glColor3i | ||
glColor3iv | ||
glColor3s | ||
glColor3sv | ||
glColor3ub | ||
glColor3ubv | ||
glColor3ui | ||
glColor3uiv | ||
glColor3us | ||
glColor3usv | ||
glColor4b | ||
glColor4bv | ||
glColor4d | ||
glColor4dv | ||
glColor4f | ||
glColor4fv | ||
glColor4i | ||
glColor4iv | ||
glColor4s | ||
glColor4sv | ||
glColor4ub | ||
glColor4ubv | ||
glColor4ui | ||
glColor4uiv | ||
glColor4us | ||
glColor4usv | ||
glEdgeFlag | ||
glEdgeFlagv | ||
glEnd | ||
glEvalCoord1d | ||
glEvalCoord1dv | ||
glEvalCoord1f | ||
glEvalCoord1fv | ||
glEvalCoord2d | ||
glEvalCoord2dv | ||
glEvalCoord2f | ||
glEvalCoord2fv | ||
glEvalMesh1 | ||
glEvalMesh2 | ||
glEvalPoint1 | ||
glEvalPoint2 | ||
glFogCoordd | ||
glFogCoorddv | ||
glFogCoordf | ||
glFogCoordfv | ||
glGetMapdv | ||
glGetMapfv | ||
glGetMapiv | ||
glMap1d | ||
glMap1f | ||
glMap2d | ||
glMap2f | ||
glMapGrid1d | ||
glMapGrid1f | ||
glMapGrid2d | ||
glMapGrid2f | ||
glMultiTexCoord1d | ||
glMultiTexCoord1dv | ||
glMultiTexCoord1f | ||
glMultiTexCoord1fv | ||
glMultiTexCoord1i | ||
glMultiTexCoord1iv | ||
glMultiTexCoord1s | ||
glMultiTexCoord1sv | ||
glMultiTexCoord2d | ||
glMultiTexCoord2dv | ||
glMultiTexCoord2f | ||
glMultiTexCoord2fv | ||
glMultiTexCoord2i | ||
glMultiTexCoord2iv | ||
glMultiTexCoord2s | ||
glMultiTexCoord2sv | ||
glMultiTexCoord3d | ||
glMultiTexCoord3dv | ||
glMultiTexCoord3f | ||
glMultiTexCoord3fv | ||
glMultiTexCoord3i | ||
glMultiTexCoord3iv | ||
glMultiTexCoord3s | ||
glMultiTexCoord3sv | ||
glMultiTexCoord4d | ||
glMultiTexCoord4dv | ||
glMultiTexCoord4f | ||
glMultiTexCoord4fv | ||
glMultiTexCoord4i | ||
glMultiTexCoord4iv | ||
glMultiTexCoord4s | ||
glMultiTexCoord4sv | ||
glNormal3b | ||
glNormal3bv | ||
glNormal3d | ||
glNormal3dv | ||
glNormal3f | ||
glNormal3fv | ||
glNormal3i | ||
glNormal3iv | ||
glNormal3s | ||
glNormal3sv | ||
glRectd | ||
glRectdv | ||
glRectf | ||
glRectfv | ||
glRecti | ||
glRectiv | ||
glRects | ||
glRectsv | ||
glSecondaryColor3b | ||
glSecondaryColor3bv | ||
glSecondaryColor3d | ||
glSecondaryColor3dv | ||
glSecondaryColor3f | ||
glSecondaryColor3fv | ||
glSecondaryColor3i | ||
glSecondaryColor3iv | ||
glSecondaryColor3s | ||
glSecondaryColor3sv | ||
glSecondaryColor3ub | ||
glSecondaryColor3ubv | ||
glSecondaryColor3ui | ||
glSecondaryColor3uiv | ||
glSecondaryColor3us | ||
glSecondaryColor3usv | ||
glTexCoord1d | ||
glTexCoord1dv | ||
glTexCoord1f | ||
glTexCoord1fv | ||
glTexCoord1i | ||
glTexCoord1iv | ||
glTexCoord1s | ||
glTexCoord1sv | ||
glTexCoord2d | ||
glTexCoord2dv | ||
glTexCoord2f | ||
glTexCoord2fv | ||
glTexCoord2i | ||
glTexCoord2iv | ||
glTexCoord2s | ||
glTexCoord2sv | ||
glTexCoord3d | ||
glTexCoord3dv | ||
glTexCoord3f | ||
glTexCoord3fv | ||
glTexCoord3i | ||
glTexCoord3iv | ||
glTexCoord3s | ||
glTexCoord3sv | ||
glTexCoord4d | ||
glTexCoord4dv | ||
glTexCoord4f | ||
glTexCoord4fv | ||
glTexCoord4i | ||
glTexCoord4iv | ||
glTexCoord4s | ||
glTexCoord4sv | ||
glVertex2d | ||
glVertex2dv | ||
glVertex2f | ||
glVertex2fv | ||
glVertex2i | ||
glVertex2iv | ||
glVertex2s | ||
glVertex2sv | ||
glVertex3d | ||
glVertex3dv | ||
glVertex3f | ||
glVertex3fv | ||
glVertex3i | ||
glVertex3iv | ||
glVertex3s | ||
glVertex3sv | ||
glVertex4d | ||
glVertex4dv | ||
glVertex4f | ||
glVertex4fv | ||
glVertex4i | ||
glVertex4iv | ||
glVertex4s | ||
glVertex4sv | ||
glVertexAttrib1d | ||
glVertexAttrib1dv | ||
glVertexAttrib1f | ||
glVertexAttrib1fv | ||
glVertexAttrib1s | ||
glVertexAttrib1sv | ||
glVertexAttrib2d | ||
glVertexAttrib2dv | ||
glVertexAttrib2f | ||
glVertexAttrib2fv | ||
glVertexAttrib2s | ||
glVertexAttrib2sv | ||
glVertexAttrib3d | ||
glVertexAttrib3dv | ||
glVertexAttrib3f | ||
glVertexAttrib3fv | ||
glVertexAttrib3s | ||
glVertexAttrib3sv | ||
glVertexAttrib4Nbv | ||
glVertexAttrib4Niv | ||
glVertexAttrib4Nsv | ||
glVertexAttrib4Nub | ||
glVertexAttrib4Nubv | ||
glVertexAttrib4Nuiv | ||
glVertexAttrib4Nusv | ||
glVertexAttrib4bv | ||
glVertexAttrib4d | ||
glVertexAttrib4dv | ||
glVertexAttrib4f | ||
glVertexAttrib4fv | ||
glVertexAttrib4iv | ||
glVertexAttrib4s | ||
glVertexAttrib4sv | ||
glVertexAttrib4ubv | ||
glVertexAttrib4uiv | ||
glVertexAttrib4usv |
OpenGL function | Supported | Note |
glColorMaterial | ||
glGetLightfv | ||
glGetLightiv | ||
glGetMaterialfv | ||
glGetMaterialiv | ||
glLightModelf | ||
glLightModelfv | ||
glLightModeli | ||
glLightModeliv | ||
glLightf | ||
glLightfv | ||
glLighti | ||
glLightiv | ||
glMaterialf | ||
glMaterialfv | ||
glMateriali | ||
glMaterialiv |
OpenGL function | Supported | Note |
glLineStipple | ||
glLineWidth |
OpenGL function | Supported | Note |
glLogicOp |
OpenGL function | Supported | Note |
glFrustum | ||
glLoadIdentity | ||
glLoadMatrixd | ||
glLoadMatrixf | ||
glLoadTransposeMatrixd | ||
glLoadTransposeMatrixf | ||
glMatrixMode | Colour matrices (GL_COLOR) are not supported. | |
glMultMatrixd | ||
glMultMatrixf | ||
glMultTransposeMatrixd | ||
glMultTransposeMatrixf | ||
glOrtho | ||
glPopMatrix | ||
glPushMatrix | ||
glRotated | ||
glRotatef | ||
glScaled | ||
glScalef | ||
glTranslated | ||
glTranslatef |
OpenGL function | Supported | Note |
glFrontFace | ||
glGetError | Always returns GL_NO_ERROR | |
glGetString | ||
glHint | ||
glPolygonMode | ||
glPolygonOffset | ||
glReadPixels | Only GL_RGBA works on R300/R400/R500 in MorphOS 3.16, fixed in later versions. |
OpenGL function | Supported | Note |
glDrawBuffer | ||
glDrawBuffers | ||
glReadBuffer |
OpenGL function | Supported | Note |
glSampleCoverage |
OpenGL function | Supported | Note |
glBeginQuery | ||
glDeleteQueries | ||
glEndQuery | ||
glGenQueries | ||
glGetQueryObjectiv | ||
glGetQueryObjectuiv | ||
glGetQueryiv | ||
glIsQuery |
OpenGL function | Supported | Note |
glGetPixelMapfv | ||
glGetPixelMapuiv | ||
glGetPixelMapusv | ||
glPixelMapfv | ||
glPixelMapuiv | ||
glPixelMapusv | ||
glPixelStoref | ||
glPixelStorei | ||
glPixelTransferf | ||
glPixelTransferi | ||
glPixelZoom |
OpenGL function | Supported | Note |
glPointParameterf | ||
glPointParameterfv | ||
glPointParameteri | ||
glPointParameteriv | ||
glPointSize |
OpenGL function | Supported | Note |
glGetPolygonStipple | ||
glPolygonStipple |
OpenGL function | Supported | Note |
glShadeModel |
OpenGL function | Supported | Note |
glBitmap | ||
glCopyPixels | ||
glDrawPixels | ||
glRasterPos2d | ||
glRasterPos2dv | ||
glRasterPos2f | ||
glRasterPos2fv | ||
glRasterPos2i | ||
glRasterPos2iv | ||
glRasterPos2s | ||
glRasterPos2sv | ||
glRasterPos3d | ||
glRasterPos3dv | ||
glRasterPos3f | ||
glRasterPos3fv | ||
glRasterPos3i | ||
glRasterPos3iv | ||
glRasterPos3s | ||
glRasterPos3sv | ||
glRasterPos4d | ||
glRasterPos4dv | ||
glRasterPos4f | ||
glRasterPos4fv | ||
glRasterPos4i | ||
glRasterPos4iv | ||
glRasterPos4s | ||
glRasterPos4sv | ||
glWindowPos2d | ||
glWindowPos2dv | ||
glWindowPos2f | ||
glWindowPos2fv | ||
glWindowPos2i | ||
glWindowPos2iv | ||
glWindowPos2s | ||
glWindowPos2sv | ||
glWindowPos3d | ||
glWindowPos3dv | ||
glWindowPos3f | ||
glWindowPos3fv | ||
glWindowPos3i | ||
glWindowPos3iv | ||
glWindowPos3s | ||
glWindowPos3sv |
OpenGL function | Supported | Note |
glScissor |
OpenGL function | Supported | Note |
glInitNames | ||
glLoadName | ||
glPopName | ||
glPushName | ||
glRenderMode | ||
glSelectBuffer |
OpenGL function | Supported | Note |
glAttachShader | ||
glBindAttribLocation | ||
glCompileShader | ||
glCreateProgram | ||
glCreateShader | ||
glDeleteProgram | ||
glDeleteShader | ||
glDetachShader | ||
glGetActiveAttrib | ||
glGetActiveUniform | ||
glGetAttachedShaders | ||
glGetAttribLocation | ||
glGetProgramInfoLog | ||
glGetProgramiv | ||
glGetShaderInfoLog | ||
glGetShaderSource | ||
glGetShaderiv | ||
glGetUniformLocation | ||
glGetUniformfv | ||
glGetUniformiv | ||
glIsProgram | ||
glIsShader | ||
glLinkProgram | ||
glShaderSource | ||
glUniform1f | ||
glUniform1fv | ||
glUniform1i | ||
glUniform1iv | ||
glUniform2f | ||
glUniform2fv | ||
glUniform2i | ||
glUniform2iv | ||
glUniform3f | ||
glUniform3fv | ||
glUniform3i | ||
glUniform3iv | ||
glUniform4f | ||
glUniform4fv | ||
glUniform4i | ||
glUniform4iv | ||
glUniformMatrix2fv | ||
glUniformMatrix2x3fv | ||
glUniformMatrix2x4fv | ||
glUniformMatrix3fv | ||
glUniformMatrix3x2fv | ||
glUniformMatrix3x4fv | ||
glUniformMatrix4fv | ||
glUniformMatrix4x2fv | ||
glUniformMatrix4x3fv | ||
glUseProgram | ||
glValidateProgram |
OpenGL function | Supported | Note |
glDisable | ||
glEnable | ||
glGetBooleanv | ||
glGetDoublev | ||
glGetFloatv | ||
glGetIntegerv | ||
glGetPointerv | ||
glGetTexEnvfv | ||
glGetTexEnviv | ||
glIsEnabled | ||
glPopAttrib | ||
glPopClientAttrib | ||
glPushAttrib | ||
glPushClientAttrib | ||
glTexEnvf | ||
glTexEnvfv | ||
glTexEnvi | ||
glTexEnviv |
OpenGL function | Supported | Note |
glStencilFunc | ||
glStencilMask | ||
glStencilOp |
OpenGL function | Supported | Note |
glFinish | ||
glFlush |
OpenGL function | Supported | Note |
OpenGL function | Supported | Note |
glGetTexGendv | ||
glGetTexGenfv | ||
glGetTexGeniv | ||
glTexGend | ||
glTexGendv | ||
glTexGenf | ||
glTexGenfv | ||
glTexGeni | ||
glTexGeniv |
OpenGL function | Supported | Note |
OpenGL function | Supported | Note |
glActiveTexture | ||
glAreTexturesResident | ||
glBindTexture | ||
glDeleteTextures | ||
glGenTextures | ||
glGetTexImage | ||
glGetTexLevelParameterfv | ||
glGetTexLevelParameteriv | ||
glGetTexParameterfv | ||
glGetTexParameteriv | ||
glIsTexture | ||
glPrioritizeTextures | ||
glTexParameterf | ||
glTexParameterfv | ||
glTexParameteri | ||
glTexParameteriv |
OpenGL function | Supported | Note |
OpenGL function | Supported | Note |
glStencilFuncSeparate | ||
glStencilMaskSeparate | ||
glStencilOpSeparate |
OpenGL function | Supported | Note |
glClientActiveTexture | ||
glColorPointer | ||
glDisableClientState | ||
glDisableVertexAttribArray | ||
glDrawArrays | ||
glDrawElements | ||
glDrawRangeElements | ||
glEdgeFlagPointer | ||
glEnableClientState | ||
glEnableVertexAttribArray | ||
glFogCoordPointer | ||
glGetVertexAttribPointerv | ||
glGetVertexAttribdv | ||
glGetVertexAttribfv | ||
glGetVertexAttribiv | ||
glInterleavedArrays | ||
glMultiDrawArrays | ||
glMultiDrawElements | ||
glNormalPointer | ||
glSecondaryColorPointer | ||
glTexCoordPointer | ||
glVertexAttribPointer | ||
glVertexPointer |
OpenGL function | Supported | Note |
glDepthRange | ||
glViewport |
Function status | Count | Percent |
Fully supported | 12 | 2.2 |
Function exists | 229 | 41.6 |
Macro exists | 51 | 9.3 |
Not supported | 246 | 44.6 |
Will not be supported | 13 | 2.4 |