1 // 2 // Copyright (c) 2013 The ANGLE Project Authors. All rights reserved. 3 // Use of this source code is governed by a BSD-style license that can be 4 // found in the LICENSE file. 5 // 6 7 // Contants.h: Defines some implementation specific and gl constants 8 9 #ifndef LIBANGLE_CONSTANTS_H_ 10 #define LIBANGLE_CONSTANTS_H_ 11 12 #include "common/platform.h" 13 14 namespace gl 15 { 16 17 // The binary cache is currently left disable by default, and the application can enable it. 18 const size_t kDefaultMaxProgramCacheMemoryBytes = 0; 19 20 enum 21 { 22 // Implementation upper limits, real maximums depend on the hardware 23 MAX_SAMPLE_MASK_WORDS = 2, 24 25 MAX_VERTEX_ATTRIBS = 16, 26 MAX_VERTEX_ATTRIB_BINDINGS = 16, 27 28 // Implementation upper limits, real maximums depend on the hardware 29 IMPLEMENTATION_MAX_VARYING_VECTORS = 32, 30 IMPLEMENTATION_MAX_DRAW_BUFFERS = 8, 31 IMPLEMENTATION_MAX_FRAMEBUFFER_ATTACHMENTS = 32 IMPLEMENTATION_MAX_DRAW_BUFFERS + 2, // 2 extra for depth and/or stencil buffers 33 34 IMPLEMENTATION_MAX_VERTEX_SHADER_UNIFORM_BUFFERS = 16, 35 IMPLEMENTATION_MAX_FRAGMENT_SHADER_UNIFORM_BUFFERS = 16, 36 IMPLEMENTATION_MAX_COMBINED_SHADER_UNIFORM_BUFFERS = 37 IMPLEMENTATION_MAX_VERTEX_SHADER_UNIFORM_BUFFERS + 38 IMPLEMENTATION_MAX_FRAGMENT_SHADER_UNIFORM_BUFFERS, 39 40 IMPLEMENTATION_MAX_TRANSFORM_FEEDBACK_BUFFERS = 4, 41 42 // Maximum number of views which are supported by the implementation of ANGLE_multiview. 43 IMPLEMENTATION_ANGLE_MULTIVIEW_MAX_VIEWS = 4, 44 45 // These are the maximums the implementation can support 46 // The actual GL caps are limited by the device caps 47 // and should be queried from the Context 48 IMPLEMENTATION_MAX_2D_TEXTURE_SIZE = 16384, 49 IMPLEMENTATION_MAX_CUBE_MAP_TEXTURE_SIZE = 16384, 50 IMPLEMENTATION_MAX_3D_TEXTURE_SIZE = 2048, 51 IMPLEMENTATION_MAX_2D_ARRAY_TEXTURE_LAYERS = 2048, 52 53 // 1+log2 of max of MAX_*_TEXTURE_SIZE 54 IMPLEMENTATION_MAX_TEXTURE_LEVELS = 15, 55 56 // Limit active textures so we can use fast bitsets. 57 IMPLEMENTATION_MAX_SHADER_TEXTURES = 32, 58 IMPLEMENTATION_MAX_ACTIVE_TEXTURES = IMPLEMENTATION_MAX_SHADER_TEXTURES * 2, 59 }; 60 } 61 62 #endif // LIBANGLE_CONSTANTS_H_ 63