diff --git a/doc/required-extensions.dox b/doc/required-extensions.dox index 443109d1a..5598d000c 100644 --- a/doc/required-extensions.dox +++ b/doc/required-extensions.dox @@ -24,6 +24,7 @@ supported on Intel GPUs even if they are capable of OpenGL 2.1 only). - @subpage requires-extension - @subpage requires-gles30 - @subpage requires-es-extension +- @subpage unsupported @page requires-gl Functionality requiring desktop OpenGL (not available on OpenGL ES) @page requires-gl30 Functionality requiring OpenGL 3.0 diff --git a/doc/unsupported.dox b/doc/unsupported.dox new file mode 100644 index 000000000..4d6ae1232 --- /dev/null +++ b/doc/unsupported.dox @@ -0,0 +1,22 @@ +/** @page unsupported Unsupported OpenGL features + +Some functionality, which is either soon-to-be deprecated or isn't proven to +add any performance gains, is not supported in %Magnum. + +@section unsupported-features Unsupported features + +- Luminance texture formats (OpenGL ES) are not supported, as they are + deprecated in OpenGL ES 3.0 and not present in core desktop OpenGL. +- Fixed precision data types (OpenGL ES) are not supported, as they occupy the + same memory as floats and they aren't faster than floats on current hardware + anymore. + +@section unsupported-extensions Unsupported extensions + +- @extension{INTEL,map_texture} negatively affects texture access performance. + Combination of buffer mapping and pixel buffers might be of the same or + better performance, without affecting texture access speed. +- @extension{NV,draw_texture} can be done with framebuffer blitting and + doesn't make any full-screen postprocessing easier, as shaders are excluded. + +*/ diff --git a/src/Extensions.h b/src/Extensions.h index 16491af8d..e656bc447 100644 --- a/src/Extensions.h +++ b/src/Extensions.h @@ -127,11 +127,14 @@ namespace GL { _extension(GL,EXT,transform_feedback, GL210, GL300) // #352 _extension(GL,EXT,direct_state_access, GL210, None) // #353 _extension(GL,EXT,texture_snorm, GL300, GL310) // #365 + } namespace INTEL { + /* INTEL_map_texture not supported */ // #429 } namespace NV { _extension(GL,NV,half_float, GL210, GL300) // #283 _extension(GL,NV,primitive_restart, GL210, GL310) // #285 _extension(GL,NV,depth_buffer_float, GL210, GL300) // #334 _extension(GL,NV,conditional_render, GL210, GL300) // #346 + /* NV_draw_texture not supported */ // #430 } } #undef _extension diff --git a/src/Mesh.h b/src/Mesh.h index 96d624877..da12210db 100644 --- a/src/Mesh.h +++ b/src/Mesh.h @@ -97,7 +97,6 @@ more information. @todo Support for normalized values (e.g. for color as char[4] passed to shader as floating-point vec4) @todo Support for packed unsigned integer types for attributes (OpenGL 3.3, @extension{ARB,vertex_type_2_10_10_10_rev}) -@todo Support for fixed precision type for attributes (OpenGL 4.1, @extension{ARB,ES2_compatibility}) @todo Support for double type for attributes (OpenGL 4.1, @extension{ARB,vertex_attrib_64bit}) @todo Support for indirect draw buffer (OpenGL 4.0, @extension{ARB,draw_indirect}) @todo Redo in a way that allows glMultiDrawArrays, glDrawArraysInstanced etc.