• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright 2017 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 // ErrorStrings.h: Contains mapping of commonly used error messages
8 
9 #ifndef LIBANGLE_ERRORSTRINGS_H_
10 #define LIBANGLE_ERRORSTRINGS_H_
11 
12 namespace gl
13 {
14 namespace err
15 {
16 #define MSG constexpr const char *
17 
18 // clang-format off
19 MSG k3DDepthStencil = "Format cannot be GL_DEPTH_COMPONENT or GL_DEPTH_STENCIL if target is GL_TEXTURE_3D";
20 MSG kANGLECopyTexture3DUnavailable = "GL_ANGLE_copy_texture_3d extension not available.";
21 MSG kAtomicCounterResourceName = "Active atomic counter resources are not assigned name strings.";
22 MSG kAttributeZeroRequiresDivisorLimitation = "The current context doesn't support setting a non-zero divisor on the attribute with index zero. Please reorder the attributes in your vertex shader so that attribute zero can have a zero divisor.";
23 MSG kBaseLevelNegative = "Base level must be at least 0.";
24 MSG kBaseLevelNonZero = "Base level must be 0.";
25 MSG kBaseLevelOutOfRange = "Texture base level out of range";
26 MSG kBlitDepthOrStencilFormatMismatch = "Depth/stencil buffer format combination not allowed for blit.";
27 MSG kBlitDimensionsOutOfRange = "BlitFramebuffer dimensions out of 32-bit integer range.";
28 MSG kBlitExtensionDepthStencilWholeBufferBlit = "Only whole-buffer depth and stencil blits are supported by this extension.";
29 MSG kBlitExtensionFormatMismatch = "Attempting to blit and the read and draw buffer formats don't match.";
30 MSG kBlitExtensionFromInvalidAttachmentType = "Blits are only supported from 2D texture = renderbuffer or default framebuffer attachments in this extension.";
31 MSG kBlitExtensionLinear = "Linear blit not supported in this extension.";
32 MSG kBlitExtensionMultisampledDepthOrStencil = "Multisampled depth/stencil blit is not supported by this extension.";
33 MSG kBlitExtensionMultisampledWholeBufferBlit = "Only whole-buffer blit is supported from a multisampled read buffer in this extension.";
34 MSG kBlitExtensionNotAvailable = "Blit extension not available.";
35 MSG kBlitExtensionScaleOrFlip = "Scaling and flipping in BlitFramebufferANGLE not supported by this implementation.";
36 MSG kBlitExtensionToInvalidAttachmentType = "Blits are only supported to 2D texture = renderbuffer or default framebuffer attachments in this extension.";
37 MSG kBlitFeedbackLoop = "Blit feedback loop: the read and draw framebuffers are the same.";
38 MSG kBlitFramebufferMissing = "Read and draw framebuffers must both exist for a blit to succeed.";
39 MSG kBlitFromMultiview = "Attempt to read from a multi-view framebuffer.";
40 MSG kBlitIntegerWithLinearFilter = "Cannot use GL_LINEAR filter when blitting a integer framebuffer.";
41 MSG kBlitInvalidFilter = "Invalid blit filter.";
42 MSG kBlitInvalidMask = "Invalid blit mask.";
43 MSG kBlitMissingColor = "Attempt to read from a missing color attachment of a complete framebuffer.";
44 MSG kBlitMissingDepthOrStencil = "Attempt to read from a missing depth/stencil attachment of a complete framebuffer.";
45 MSG kBlitMultisampledBoundsMismatch = "Attempt to blit from a multisampled framebuffer and the bounds don't match with the draw framebuffer.";
46 MSG kBlitMultisampledFormatOrBoundsMismatch = "Attempt to blit from a multisampled framebuffer and the bounds or format of the color buffer don't match with the draw framebuffer.";
47 MSG kBlitOnlyNearestForNonColor = "Only nearest filtering can be used when blitting buffers other than the color buffer.";
48 MSG kBlitSameImageColor = "Read and write color attachments cannot be the same image.";
49 MSG kBlitSameImageDepthOrStencil = "Read and write depth stencil attachments cannot be the same image.";
50 MSG kBlitToMultiview = "Attempt to write to a multi-view framebuffer.";
51 MSG kBlitTypeMismatchFixedOrFloat = "If the read buffer contains fixed-point or floating-point values = the draw buffer must as well.";
52 MSG kBlitTypeMismatchFixedPoint = "If the read buffer contains fixed-point values = the draw buffer must as well.";
53 MSG kBlitTypeMismatchSignedInteger = "If the read buffer contains signed integer values the draw buffer must as well.";
54 MSG kBlitTypeMismatchUnsignedInteger = "If the read buffer contains unsigned integer values the draw buffer must as well.";
55 MSG kBufferAlreadyMapped = "Buffer is already mapped.";
56 MSG kBufferBoundForTransformFeedback = "Buffer is bound for transform feedback.";
57 MSG kBufferMapped = "An active buffer is mapped";
58 MSG kBufferNotBound = "A buffer must be bound.";
59 MSG kBufferNotMappable = "Attempted to map buffer object zero.";
60 MSG kBufferNotMapped = "Buffer is not mapped.";
61 MSG kBufferOffsetOverflow = "Buffer offset overflow.";
62 MSG kBufferPointerNotAvailable = "Can not get pointer for reserved buffer name zero.";
63 MSG kCannotPopDefaultDebugGroup = "Cannot pop the default debug group.";
64 MSG kClientDataInVertexArray = "Client data cannot be used with a non-default vertex array object.";
65 MSG kColorNumberGreaterThanMaxDrawBuffers = "Color number for primary color greater than or equal to MAX_DRAW_BUFFERS";
66 MSG kColorNumberGreaterThanMaxDualSourceDrawBuffers = "Color number for secondary color greater than or equal to MAX_DUAL_SOURCE_DRAW_BUFFERS";
67 MSG kCompressedDataSizeTooSmall = "dataSize is too small";
68 MSG kCompressedMismatch = "Compressed data is valid if-and-only-if the texture is compressed.";
69 MSG kCompressedTextureDimensionsMustMatchData = "Compressed texture dimensions must exactly match the dimensions of the data passed in.";
70 MSG kCompressedTexturesNotAttachable = "Compressed textures cannot be attached to a framebuffer.";
71 MSG kConstantColorAlphaLimitation = "Simultaneous use of GL_CONSTANT_ALPHA/GL_ONE_MINUS_CONSTANT_ALPHA and GL_CONSTANT_COLOR/GL_ONE_MINUS_CONSTANT_COLOR not supported by this implementation.";
72 MSG kContextLost = "Context has been lost.";
73 MSG kCopyAlias = "The read and write copy regions alias memory.";
74 MSG kCubemapFacesEqualDimensions = "Each cubemap face must have equal width and height.";
75 MSG kCubemapIncomplete = "Texture is not cubemap complete. All cubemaps faces must be defined and be the same size.";
76 MSG kDataTypeNotAligned = "Data is not evenly divisible into the number of bytes needed to store in memory a datum indicated by type.";
77 MSG kDefaultFramebuffer = "Default framebuffer is bound.";
78 MSG kDefaultFramebufferInvalidAttachment = "Invalid attachment when the default framebuffer is bound.";
79 MSG kDefaultFramebufferInvalidDrawBuffer = "Only NONE or BACK are valid draw buffers for the default framebuffer";
80 MSG kDefaultFramebufferTarget = "It is invalid to change default FBO's attachments";
81 MSG kDefaultVertexArray = "Default vertex array object is bound.";
82 MSG kDestinationImmutable = "Destination texture cannot be immutable.";
83 MSG kDestinationLevelNotDefined = "The destination level of the destination texture must be defined.";
84 MSG kDestinationTextureTooSmall = "Destination texture too small.";
85 MSG kDimensionsMustBePow2 = "Texture dimensions must be power-of-two.";
86 MSG kDispatchIndirectBufferNotBound = "Dispatch indirect buffer must be bound.";
87 MSG kDrawBufferMaskMismatch = "Active draw buffers with missing fragment shader outputs.";
88 MSG kDrawBufferTypeMismatch = "Fragment shader output type does not match the bound framebuffer attachment type.";
89 MSG kDrawFramebufferIncomplete = "Draw framebuffer is incomplete";
90 MSG kDrawIndirectBufferNotBound = "Draw indirect buffer must be bound.";
91 MSG kEGLImageCannotCreate2DMultisampled = "Cannot create a 2D texture from a multisampled EGL image.";
92 MSG kEGLImageRenderbufferFormatNotSupported = "EGL image internal format is not supported as a renderbuffer.";
93 MSG kEGLImageTextureFormatNotSupported = "EGL image internal format is not supported as a texture.";
94 MSG kElementArrayBufferBoundForTransformFeedback = "It is undefined behavior to use an element array buffer that is bound for transform feedback.";
95 MSG kElementArrayNoBufferOrPointer = "No element array buffer and no pointer.";
96 MSG kEnumNotSupported = "Enum is not currently supported.";
97 MSG kEnumRequiresGLES30 = "Enum requires GLES 3.0";
98 MSG kEnumRequiresGLES31 = "Enum requires GLES 3.1";
99 MSG kES31Required = "OpenGL ES 3.1 Required";
100 MSG kES3Required = "OpenGL ES 3.0 Required.";
101 MSG kExceedsComputeWorkGroupCountX = "num_groups_x cannot be greater than MAX_COMPUTE_WORK_GROUP_COUNT[0]";
102 MSG kExceedsComputeWorkGroupCountY = "num_groups_y cannot be greater than MAX_COMPUTE_WORK_GROUP_COUNT[1]";
103 MSG kExceedsComputeWorkGroupCountZ = "num_groups_z cannot be greater than MAX_COMPUTE_WORK_GROUP_COUNT[2]";
104 MSG kExceedsElementRange = "Element value exceeds element range.";
105 MSG kExceedsFramebufferHeight = "Params less than 0 or greater than GL_MAX_FRAMEBUFFER_HEIGHT.";
106 MSG kExceedsFramebufferSamples = "Params less than 0 or greater than GL_MAX_FRAMEBUFFER_SAMPLES.";
107 MSG kExceedsFramebufferWidth = "Params less than 0 or greater than GL_MAX_FRAMEBUFFER_WIDTH.";
108 MSG kExceedsMaxColorAttachments = "Index is greater than the maximum supported color attachments";
109 MSG kExceedsMaxDebugGroupStackDepth = "Cannot push more than GL_MAX_DEBUG_GROUP_STACK_DEPTH debug groups.";
110 MSG kExceedsMaxDebugMessageLength = "Message length is larger than GL_MAX_DEBUG_MESSAGE_LENGTH.";
111 MSG kExceedsMaxDrawBuffers = "Draw buffer greater than MAX_DRAW_BUFFERS.";
112 MSG kExceedsMaxElement = "Element value exceeds maximum element index.";
113 MSG kExceedsMaxImageUnits = "Index must be within [0, MAX_IMAGE_UNITS).";
114 MSG kExceedsMaxLabelLength = "Label length is larger than GL_MAX_LABEL_LENGTH.";
115 MSG kExceedsMaxShaderStorageBufferBindings = "Index must be within [0, MAX_SHADER_STORAGE_BUFFER_BINDINGS).";
116 MSG kExceedsMaxVertexAttribBindings = "Index must be within [0, MAX_VERTEX_ATTRIB_BINDINGS).";
117 MSG kExceedsMaxVertexAttribStride = "Stride must be within [0, MAX_VERTEX_ATTRIB_STRIDE).";
118 MSG kExceedsNumExtensions = "Index must be within [0, NUM_EXTENSIONS).";
119 MSG kExceedsNumRequestableExtensions = "Index must be within [0, NUM_REQUESTABLE_EXTENSIONS_ANGLE).";
120 MSG kExpectedProgramName = "Expected a program name = but found a shader name.";
121 MSG kExpectedShaderName = "Expected a shader name = but found a program name.";
122 MSG kExtensionNotEnabled = "Extension is not enabled.";
123 MSG kExtensionNotRequestable = "Extension is not requestable.";
124 MSG kExternalTextureNotSupported = "External texture extension not enabled";
125 MSG kFeedbackLoop = "Feedback loop formed between Framebuffer and active Texture.";
126 MSG kFixedNotInWebGL = "GL_FIXED is not supported in WebGL.";
127 MSG kFormatNotRenderable = "Internal format is not renderable.";
128 MSG kFragDataBindingIndexOutOfRange = "Fragment output color index must be zero or one.";
129 MSG kFragmentInputTypeNotFloatingPoint = "Fragment input type is not a floating point scalar or vector.";
130 MSG kFramebufferIncomplete = "Framebuffer is incomplete.";
131 MSG kFramebufferIncompleteAttachment = "Attachment type must be compatible with attachment object.";
132 MSG kFramebufferTextureInvalidLayer = "Layer invalid for framebuffer texture attachment.";
133 MSG kFramebufferTextureInvalidMipLevel = "Mip level invalid for framebuffer texture attachment.";
134 MSG kFramebufferTextureLayerIncorrectTextureType = "Texture is not a three-dimensional or two-dimensionsal array texture.";
135 MSG kGenerateMipmapNotAllowed = "Texture format does not support mipmap generation.";
136 MSG kGenerateMipmapZeroSize = "Cannot generate mipmaps for a zero-size texture in a WebGL context.";
137 MSG kGeometryShaderExtensionNotEnabled = "GL_EXT_geometry_shader extension not enabled.";
138 MSG kGLES1Only = "GLES1-only function.";
139 MSG kImageSizeMustBeZero = "imageSize must be 0 if no texture data is provided.";
140 MSG kImageSizeTooSmall = "imageSize is too small.";
141 MSG kImmutableTextureBound = "The value of TEXTURE_IMMUTABLE_FORMAT for the texture currently bound to target on the active texture unit is true.";
142 MSG kIncompatibleDrawModeAgainstGeometryShader = "Primitive mode is incompatible with the input primitive type of the geometry shader.";
143 MSG kIndexExceedsActiveUniformBlockCount = "Index exceeds active uniform block count.";
144 MSG kIndexExceedsMaxActiveUniform = "Index must be less than program active uniform count.";
145 MSG kIndexExceedsMaxActiveUniformBlock = "Index must be less than program active uniform block count.";
146 MSG kIndexExceedsMaxAtomicCounterBufferBindings = "Index must be less than MAX_ATOMIC_COUNTER_BUFFER_BINDINGS.";
147 MSG kIndexExceedsMaxDrawBuffer = "Index must be less than MAX_DRAW_BUFFERS.";
148 MSG kIndexExceedsMaxTransformFeedbackAttribs = "Index must be less than MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS.";
149 MSG kIndexExceedsMaxUniformBufferBindings = "Index must be less than MAX_UNIFORM_BUFFER_BINDINGS.";
150 MSG kIndexExceedsMaxVertexAttribute = "Index must be less than MAX_VERTEX_ATTRIBS.";
151 MSG kIndexExceedsMaxWorkgroupDimensions = "Index must be less than the number of workgroup dimensions (3).";
152 MSG kIndexExceedsSamples = "Index must be less than the value of SAMPLES.";
153 MSG kIndexExceedsTransformFeedbackBufferBindings = "Index is greater than or equal to the number of TRANSFORM_FEEDBACK_BUFFER indexed binding points.";
154 MSG kInsufficientBufferSize = "Insufficient buffer size.";
155 MSG kInsufficientParams = "More parameters are required than were provided.";
156 MSG kInsufficientVertexBufferSize = "Vertex buffer is not big enough for the draw call";
157 MSG kIntegerOverflow = "Integer overflow.";
158 MSG kInternalFormatRequiresTexture2DArray = "internalformat is an ETC2/EAC format and target is not GL_TEXTURE_2D_ARRAY.";
159 MSG kInvalidAccessBits = "Invalid access bits.";
160 MSG kInvalidAccessBitsFlush = "The explicit flushing bit may only be set if the buffer is mapped for writing.";
161 MSG kInvalidAccessBitsRead = "Invalid access bits when mapping buffer for reading";
162 MSG kInvalidAccessBitsReadWrite = "Need to map buffer for either reading or writing.";
163 MSG kInvalidAttachment = "Invalid Attachment Type.";
164 MSG kInvalidBindBufferSize = "Invalid buffer binding size.";
165 MSG kInvalidBindUniformLocation = "Location must be less than (MAX_VERTEX_UNIFORM_VECTORS + MAX_FRAGMENT_UNIFORM_VECTORS) * 4";
166 MSG kInvalidBlendEquation = "Invalid blend equation.";
167 MSG kInvalidBlendFunction = "Invalid blend function.";
168 MSG kInvalidBooleanValue = "Invalid boolean value. Must be GL_FALSE or GL_TRUE.";
169 MSG kInvalidBorder = "Border must be 0.";
170 MSG kInvalidBufferName = "name is not a valid buffer.";
171 MSG kInvalidBufferTypes = "Invalid buffer target.";
172 MSG kInvalidBufferUsage = "Invalid buffer usage enum.";
173 MSG kInvalidClearMask = "Invalid mask bits.";
174 MSG kInvalidClientState = "Invalid client vertex array type.";
175 MSG kInvalidClipPlane = "Invalid clip plane.";
176 MSG kInvalidCombinedImageUnit = "Specified unit must be in [GL_TEXTURE0 = GL_TEXTURE0 + GL_MAX_COMBINED_IMAGE_UNITS)";
177 MSG kInvalidComponents = "Invalid components.";
178 MSG kInvalidCompressedFormat = "Not a valid compressed texture format.";
179 MSG kInvalidCompressedImageSize = "Invalid compressed image size.";
180 MSG kInvalidConstantColor = "CONSTANT_COLOR (or ONE_MINUS_CONSTANT_COLOR) and CONSTANT_ALPHA (or ONE_MINUS_CONSTANT_ALPHA) cannot be used together as source and destination factors in the blend function.";
181 MSG kInvalidCopyCombination = "Invalid copy texture format combination.";
182 MSG kInvalidCoverageComponents = "components is not one of GL_RGB, GL_RGBA, GL_ALPHA or GL_NONE.";
183 MSG kInvalidCoverMode = "Invalid cover mode.";
184 MSG kInvalidCullMode = "Cull mode not recognized.";
185 MSG kInvalidDebugSeverity = "Invalid debug severity.";
186 MSG kInvalidDebugSource = "Invalid debug source.";
187 MSG kInvalidDebugSourceType = "If count is greater than zero, source and type cannot be GL_DONT_CARE.";
188 MSG kInvalidDebugType = "Invalid debug type.";
189 MSG kInvalidDefaultReadBuffer = "Read buffer must be GL_NONE or GL_BACK when reading from the default framebuffer.";
190 MSG kInvalidDepthRange = "Near value cannot be greater than far.";
191 MSG kInvalidDepthStencilDrawBuffer = "Draw buffer must be zero when using depth or stencil.";
192 MSG kInvalidDestinationTexture = "Destination texture is not a valid texture object.";
193 MSG kInvalidDestinationTextureType = "Invalid destination texture type.";
194 MSG kInvalidDrawBuffer = "Invalid draw buffer.";
195 MSG kInvalidDrawBufferCountForDefault = "The default framebuffer must have exactly one draw buffer.";
196 MSG kInvalidDrawBufferValue = "Ith value does not match COLOR_ATTACHMENTi or NONE.";
197 MSG kInvalidDrawMode = "Invalid draw mode.";
198 MSG kInvalidDrawModeTransformFeedback = "Draw mode must match current transform feedback object's draw mode.";
199 MSG kInvalidEGLImage = "EGL image is not valid.";
200 MSG kInvalidElementRange = "Invalid element range.";
201 MSG kInvalidFence = "Invalid fence object.";
202 MSG kInvalidFenceCondition = "Invalid value for condition.";
203 MSG kInvalidFenceState = "Fence must be set.";
204 MSG kInvalidFillMode = "Invalid fill mode.";
205 MSG kInvalidFilterTexture = "Texture only supports NEAREST and LINEAR filtering.";
206 MSG kInvalidFlags = "Invalid value for flags.";
207 MSG kInvalidFlushOutOfRange = "Flushed range does not fit into buffer mapping dimensions.";
208 MSG kInvalidFlushTarget = "Attempted to flush a buffer not mapped for explicit flushing.";
209 MSG kInvalidFlushZero = "Attempted to flush buffer object zero.";
210 MSG kInvalidFogDensity = "Invalid fog density (must be nonnegative).";
211 MSG kInvalidFogMode = "Invalid fog mode.";
212 MSG kInvalidFogParameter = "Invalid fog parameter.";
213 MSG kInvalidFormat = "Invalid format.";
214 MSG kInvalidFormatCombination = "Invalid combination of format = type and internalFormat.";
215 MSG kInvalidFragmentInputBinding = "No such binding.";
216 MSG kInvalidFramebufferAttachmentParameter = "Invalid parameter name for framebuffer attachment.";
217 MSG kInvalidFramebufferLayer = "Framebuffer layer cannot be less than 0 or greater than GL_MAX_FRAMEBUFFER_LAYERS_EXT.";
218 MSG kInvalidFramebufferName = "name is not a valid framebuffer.";
219 MSG kInvalidFramebufferTarget = "Invalid framebuffer target.";
220 MSG kInvalidFramebufferTextureLevel = "Mipmap level must be 0 when attaching a texture.";
221 MSG kInvalidHandleType = "Invalid handle type.";
222 MSG kInvalidImageAccess = "access is not one of the supported tokens.";
223 MSG kInvalidImageLayout = "Invalid image layout.";
224 MSG kInvalidImageFormat = "format is not one of supported image unit formats.";
225 MSG kInvalidIndentifier = "Invalid identifier.";
226 MSG kInvalidIndirectOffset = "indirect must be a multiple of the size of uint in basic machine units.";
227 MSG kInvalidInternalFormat = "Invalid internal format.";
228 MSG kInvalidLight = "Invalid light.";
229 MSG kInvalidLightModelParameter = "Invalid light model parameter.";
230 MSG kInvalidLightParameter = "Invalid light parameter.";
231 MSG kInvalidLogicOp = "Invalid logical operation.";
232 MSG kInvalidMapPointerQuery = "GL_BUFFER_MAP_POINTER can only be queried with GetBufferPointerv.";
233 MSG kInvalidMaterialFace = "Invalid material face.";
234 MSG kInvalidMaterialParameter = "Invalid material parameter.";
235 MSG kInvalidMatrixMode = "Invalid matrix mode.";
236 MSG kInvalidMemoryBarrierBit = "Invalid memory barrier bit.";
237 MSG kInvalidMipLevel = "Level of detail outside of range.";
238 MSG kInvalidMipLevels = "Invalid level count.";
239 MSG kInvalidMultisampledFramebufferOperation = "Invalid operation on multisampled framebuffer";
240 MSG kInvalidMultitextureUnit = "Specified unit must be in [GL_TEXTURE0 = GL_TEXTURE0 + GL_MAX_TEXTURE_UNITS)";
241 MSG kInvalidName = "Invalid name.";
242 MSG kInvalidNameCharacters = "Name contains invalid characters.";
243 MSG kInvalidPathCoefficientsArray = "No coefficients array given.";
244 MSG kInvalidPathCommand = "Invalid command.";
245 MSG kInvalidPathCommandsArray = "No commands array given.";
246 MSG kInvalidPathComponents = "Unexpected number of components";
247 MSG kInvalidPathCoordinateType = "Invalid coordinate type.";
248 MSG kInvalidPathEndCaps = "Invalid end caps.";
249 MSG kInvalidPathGenMode = "Invalid gen mode.";
250 MSG kInvalidPathJoinStyle = "Invalid join style.";
251 MSG kInvalidPathMatrix = "Invalid matrix.";
252 MSG kInvalidPathMiterLimit = "Invalid miter limit.";
253 MSG kInvalidPathNameArray = "No path name array.";
254 MSG kInvalidPathNameType = "Invalid path name type.";
255 MSG kInvalidPathNumCommands = "Invalid number of commands.";
256 MSG kInvalidPathNumCoords = "Invalid number of coordinates.";
257 MSG kInvalidPathNumCoordsArray = "No coordinate array given.";
258 MSG kInvalidPathNumPaths = "Invalid (negative) numPaths.";
259 MSG kInvalidPathParameter = "Invalid path parameter.";
260 MSG kInvalidPathStrokeWidth = "Invalid stroke width.";
261 MSG kInvalidPathValueArray = "No value array.";
262 MSG kInvalidPname = "Invalid pname.";
263 MSG kInvalidPointerQuery = "Invalid pointer query.";
264 MSG kInvalidPointParameter = "Invalid point parameter.";
265 MSG kInvalidPointParameterValue = "Invalid point parameter value (must be non-negative).";
266 MSG kInvalidPointSizeValue = "Invalid point size (must be positive).";
267 MSG kInvalidPrecision = "Invalid or unsupported precision type.";
268 MSG kInvalidPrimitiveMode = "Invalid primitive mode.";
269 MSG kInvalidProgramBinaryFormat = "Program binary format is not valid.";
270 MSG kInvalidProgramInterface = "Invalid program interface.";
271 MSG kInvalidProgramName = "Program object expected.";
272 MSG kInvalidProgramResourceIndex = "Invalid program resource index.";
273 MSG kInvalidProgramResourceProperty = "Invalid program resource property.";
274 MSG kInvalidProjectionMatrix = "Invalid projection matrix. Left/right = top/bottom = near/far intervals cannot be zero = and near/far cannot be less than zero.";
275 MSG kInvalidPropCount = "Invalid propCount.";
276 MSG kInvalidPropertyForProgramInterface = "Not an allowed program resource property for this program interface";
277 MSG kInvalidProvokingVertex = "Invalid provoking vertex.";
278 MSG kInvalidQueryId = "Invalid query Id.";
279 MSG kInvalidQueryName = "name is not a valid query.";
280 MSG kInvalidQueryTarget = "Invalid query target.";
281 MSG kInvalidQueryType = "Invalid query type.";
282 MSG kInvalidRange = "Invalid range.";
283 MSG kInvalidReadBuffer = "Invalid read buffer";
284 MSG kInvalidRenderbufferInternalFormat = "Invalid renderbuffer internalformat.";
285 MSG kInvalidRenderbufferName = "name is not a valid renderbuffer.";
286 MSG kInvalidRenderbufferTarget = "Invalid renderbuffer target.";
287 MSG kInvalidRenderbufferTextureParameter = "Invalid parameter name for renderbuffer attachment.";
288 MSG kInvalidRenderbufferWidthHeight = "Renderbuffer width and height cannot be negative and cannot exceed maximum texture size.";
289 MSG kInvalidResetStatus = "Reset status is not valid";
290 MSG kInvalidSampleMaskNumber = "MaskNumber cannot be greater than or equal to the value of MAX_SAMPLE_MASK_WORDS.";
291 MSG kInvalidSampler = "Sampler is not valid";
292 MSG kInvalidSamplerName = "name is not a valid sampler.";
293 MSG kInvalidShaderBinaryFormat = "Invalid shader binary format.";
294 MSG kInvalidShaderName = "Shader object expected.";
295 MSG kInvalidShaderType = "Invalid shader type.";
296 MSG kInvalidShadingModel = "Invalid shading model.";
297 MSG kInvalidSourceTexture = "Source texture is not a valid texture object.";
298 MSG kInvalidSourceTextureInternalFormat = "Source texture internal format is invalid.";
299 MSG kInvalidSourceTextureLevel = "Invalid source texture level.";
300 MSG kInvalidSourceTextureSize = "Invalid source texture height or width.";
301 MSG kInvalidSourceTextureType = "Source texture must be a valid texture type.";
302 MSG kInvalidStencil = "Invalid stencil.";
303 MSG kInvalidStencilBitMask = "Invalid stencil bit mask.";
304 MSG kInvalidSyncPointer = "Not a valid sync pointer.";
305 MSG kInvalidTarget = "Invalid target.";
306 MSG kInvalidTextureCombine = "Invalid texture combine mode.";
307 MSG kInvalidTextureCombineOp = "Invalid texture combine operand.";
308 MSG kInvalidTextureCombineSrc = "Invalid texture combine source.";
309 MSG kInvalidTextureEnvMode = "Invalid texture environment mode.";
310 MSG kInvalidTextureEnvParameter = "Invalid texture environment parameter.";
311 MSG kInvalidTextureEnvScale = "Invalid texture environment scale.";
312 MSG kInvalidTextureEnvTarget = "Invalid texture environment target.";
313 MSG kInvalidTextureFilterParam = "Texture filter not recognized.";
314 MSG kInvalidTextureLevel = "Texture level does not exist.";
315 MSG kInvalidTextureName = "Not a valid texture object name.";
316 MSG kInvalidTextureRange = "Cannot be less than 0 or greater than maximum number of textures.";
317 MSG kInvalidTextureTarget = "Invalid or unsupported texture target.";
318 MSG kInvalidTextureType = "Texture has incompatible target.";
319 MSG kInvalidTextureWrap = "Texture wrap mode not recognized.";
320 MSG kInvalidTimeout = "Invalid value for timeout.";
321 MSG kInvalidTransformation = "Invalid transformation.";
322 MSG kInvalidTransformFeedbackAttribsCount = "Count exceeds MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS.";
323 MSG kInvalidTransformFeedbackName = "name is not a valid transform feedback.";
324 MSG kInvalidType = "Invalid type.";
325 MSG kInvalidUniformCount = "Only array uniforms may have count > 1.";
326 MSG kInvalidUniformLocation = "Invalid uniform location";
327 MSG kInvalidUnpackAlignment = "Unpack alignment must be 1 = 2 = 4 = or 8.";
328 MSG kInvalidVaryingLocation = "Location exceeds max varying.";
329 MSG kInvalidVertexArray = "Vertex array does not exist.";
330 MSG kInvalidVertexArrayName = "name is not a valid vertex array.";
331 MSG kInvalidVertexAttribSize2101010 = "Type is INT_2_10_10_10_REV or UNSIGNED_INT_2_10_10_10_REV and size is not 4.";
332 MSG kInvalidVertexAttrSize = "Vertex attribute size must be 1 = 2 = 3 = or 4.";
333 MSG kInvalidVertexPointerSize = "Size for built-in vertex attribute is outside allowed range.";
334 MSG kInvalidVertexPointerStride = "Invalid stride for built-in vertex attribute.";
335 MSG kInvalidVertexPointerType = "Invalid type for built-in vertex attribute.";
336 MSG kInvalidWidth = "Invalid width.";
337 MSG kInvalidWrapModeTexture = "Invalid wrap mode for texture type.";
338 MSG kInvalidZOffset = "zoffset is larger than MAX_3D_TEXTURE_SIZE-1";
339 MSG kLengthZero = "Length must not be zero.";
340 MSG kLevelNotZero = "Texture level must be zero.";
341 MSG kLightParameterOutOfRange = "Light parameter out of range.";
342 MSG kMapOutOfRange = "Mapped range does not fit into buffer dimensions.";
343 MSG kMaterialParameterOutOfRange = "Material parameter out of range.";
344 MSG kMatrixStackOverflow = "Current matrix stack is full.";
345 MSG kMatrixStackUnderflow = "Current matrix stack has only a single matrix.";
346 MSG kMaxActiveVariablesInterface = "MAX_NUM_ACTIVE_VARIABLES requires a buffer or block interface.";
347 MSG kMismatchedFormat = "Format must match internal format.";
348 MSG kMismatchedTargetAndFormat = "Invalid texture target and format combination.";
349 MSG kMismatchedTypeAndFormat = "Invalid format and type combination.";
350 MSG kMismatchedVariableProgram = "Variable is not part of the current program.";
351 MSG kMissingName = "No name given.";
352 MSG kMissingReadAttachment = "Missing read attachment.";
353 MSG kMissingTexture = "No Texture is bound to the specified target.";
354 MSG kMissingTextureName = "texture is not the name of an existing texture object.";
355 MSG kMultisampleArrayExtensionRequired = "GL_ANGLE_texture_multisample_array not enabled.";
356 MSG kMultisampleTextureExtensionOrES31Required = "GL_ANGLE_texture_multisample or GLES 3.1 required.";
357 MSG kMultiviewActive = "The number of views in the active draw framebuffer is greater than 1.";
358 MSG kMultiviewMismatch = "The number of views in the active program and draw framebuffer does not match.";
359 MSG kMultiviewNotAvailable = "ANGLE_multiview is not available.";
360 MSG kMultiviewReadFramebuffer = "The active read framebuffer object has multiview attachments.";
361 MSG kMultiviewTimerQuery = "There is an active query for target GL_TIME_ELAPSED_EXT when the number of views in the active draw framebuffer is greater than 1.";
362 MSG kMultiviewTransformFeedback = "There is an active transform feedback object when the number of views in the active draw framebuffer is greater than 1.";
363 MSG kMultiviewViewsTooLarge = "numViews cannot be greater than GL_MAX_VIEWS_ANGLE.";
364 MSG kMultiviewViewsTooSmall = "numViews cannot be less than 1.";
365 MSG kMustHaveElementArrayBinding = "Must have element array buffer bound.";
366 MSG kNameBeginsWithGL = "Attributes that begin with 'gl_' are not allowed.";
367 MSG kNegativeAttachments = "Negative number of attachments.";
368 MSG kNegativeBaseViewIndex = "Negative baseViewIndex.";
369 MSG kNegativeBufferSize = "Negative buffer size.";
370 MSG kNegativeBufSize = "Invalid bufSize.";
371 MSG kNegativeCount = "Negative count.";
372 MSG kNegativeHeightWidthDepth = "Cannot have negative height = width = or depth.";
373 MSG kNegativeLayer = "Negative layer.";
374 MSG kNegativeLength = "Negative length.";
375 MSG kNegativeLevel = "Level is negative.";
376 MSG kNegativeLocation = "Location cannot be less than 0.";
377 MSG kNegativeMaxCount = "Negative maxcount.";
378 MSG kNegativeOffset = "Negative offset.";
379 MSG kNegativeParam = "param is negative.";
380 MSG kNegativePrimcount = "Primcount must be greater than or equal to zero.";
381 MSG kNegativeSize = "Negative size.";
382 MSG kNegativeStart = "Cannot have negative start.";
383 MSG kNegativeStride = "Cannot have negative stride.";
384 MSG kNegativeXYZ = "x = y = or z cannot be negative.";
385 MSG kNoActiveComputeShaderStage = "No active compute shader stage in this program.";
386 MSG kNoActiveGeometryShaderStage = "No active geometry shader stage in this program.";
387 MSG kNoActiveGraphicsShaderStage = "It is a undefined behaviour to render without vertex shader stage or fragment shader stage.";
388 MSG kNoActiveProgramWithComputeShader = "No active program for the compute shader stage.";
389 MSG kNoDefinedClearConversion = "No defined conversion between clear value and attachment format.";
390 MSG kNonPositiveDrawTextureDimension = "Both width and height argument of drawn texture must be positive.";
391 MSG kNoPathOrNoPathData = "No such path or path has no data.";
392 MSG kNoProgramBinaryFormats = "No program binary formats supported.";
393 MSG kNoReadFramebuffer = "No active read framebuffer.";
394 MSG kNoSampleAlphaToCoveragesLimitation = "Current renderer doesn't support alpha-to-coverage.";
395 MSG kNoSuchPath = "No such path object.";
396 MSG kNoTransformArray = "No transform array given.";
397 MSG kNoTransformFeedbackOutputVariables = "The active program has specified no output variables to record.";
398 MSG kNoZeroDivisor = "At least one enabled attribute must have a divisor of zero.";
399 MSG kNVFenceNotSupported = "GL_NV_fence is not supported";
400 MSG kObjectNotGenerated = "Object cannot be used because it has not been generated.";
401 MSG kOffsetAlignment = "offset must be a multiple of 4.";
402 MSG kOffsetAndSizeAlignment = "Offset and size must be multiple of 4.";
403 MSG kOffsetMustBeMultipleOfType = "Offset must be a multiple of the passed in datatype.";
404 MSG kOffsetMustBeMultipleOfUint = "Offset must be a multiple of the size = in basic machine units = of uint";
405 MSG kOffsetOverflow = "Offset overflows texture dimensions.";
406 MSG kOtherQueryActive = "Other query is active.";
407 MSG kOutsideOfBounds = "Parameter outside of bounds.";
408 MSG kParamOverflow = "The provided parameters overflow with the provided buffer.";
409 MSG kPixelDataNotNull = "Pixel data must be null.";
410 MSG kPixelDataNull = "Pixel data cannot be null.";
411 MSG kPixelPackBufferBoundForTransformFeedback = "It is undefined behavior to use a pixel pack buffer that is bound for transform feedback.";
412 MSG kPixelUnpackBufferBoundForTransformFeedback = "It is undefined behavior to use a pixel unpack buffer that is bound for transform feedback.";
413 MSG kPointSizeArrayExtensionNotEnabled = "GL_OES_point_size_array not enabled.";
414 MSG kProgramDoesNotExist = "Program doesn't exist.";
415 MSG kProgramInterfaceMustBeProgramOutput = "programInterface must be set to GL_PROGRAM_OUTPUT.";
416 MSG kProgramNotBound = "A program must be bound.";
417 MSG kProgramNotLinked = "Program not linked.";
418 MSG kQueryActive = "Query is active.";
419 MSG kQueryExtensionNotEnabled = "Query extension not enabled.";
420 MSG kQueryInactive = "Query is not active.";
421 MSG kQueryTargetMismatch = "Query type does not match target.";
422 MSG kReadBufferNone = "Read buffer is GL_NONE.";
423 MSG kReadBufferNotAttached = "Read buffer has no attachment.";
424 MSG kRectangleTextureCompressed = "Rectangle texture cannot have a compressed format.";
425 MSG kRelativeOffsetTooLarge = "relativeOffset cannot be greater than MAX_VERTEX_ATTRIB_RELATIVE_OFFSET.";
426 MSG kRenderableInternalFormat = "SizedInternalformat must be color-renderable = depth-renderable = or stencil-renderable.";
427 MSG kRenderbufferNotBound = "A renderbuffer must be bound.";
428 MSG kResourceMaxRenderbufferSize = "Desired resource size is greater than max renderbuffer size.";
429 MSG kResourceMaxTextureSize = "Desired resource size is greater than max texture size.";
430 MSG kSamplerFormatMismatch = "Mismatch between texture format and sampler type (signed/unsigned/float/shadow).";
431 MSG kSamplerUniformValueOutOfRange = "Sampler uniform value out of range.";
432 MSG kSamplesOutOfRange = "Samples must not be greater than maximum supported value for the format.";
433 MSG kSamplesZero = "Samples may not be zero.";
434 MSG kShaderAttachmentHasShader = "Shader attachment already has a shader.";
435 MSG kShaderSourceInvalidCharacters = "Shader source contains invalid characters.";
436 MSG kShaderStorageBufferOffsetAlignment = "Offset must be multiple of value of SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT.";
437 MSG kShaderToDetachMustBeAttached = "Shader to be detached must be currently attached to the program.";
438 MSG kSourceLevelNotDefined = "The source level of the source texture must be defined.";
439 MSG kSourceTextureLevelZeroDefined = "Source texture must level 0 defined.";
440 MSG kSourceTextureMustBeCompressed = "Source texture must have a compressed internal format.";
441 MSG kSourceTextureTooSmall = "The specified dimensions are outside of the bounds of the texture.";
442 MSG kStencilReferenceMaskOrMismatch = "Stencil reference and mask values must be the same for front facing and back facing triangles.";
443 MSG kStrideExceedsWebGLLimit = "Stride is over the maximum stride allowed by WebGL.";
444 MSG kStrideMustBeMultipleOfType = "Stride must be a multiple of the passed in datatype.";
445 MSG kSyncMissing = "Sync object does not exist.";
446 MSG kTargetMustBeTexture2DMultisampleArrayOES = "Target must be TEXTURE_2D_MULTISAMPLE_ARRAY_OES.";
447 MSG kTextureFormatMismatch = "Passed in texture target and format must match the one originally used to define the texture.";
448 MSG kTextureIsImmutable = "Texture is immutable.";
449 MSG kTextureIsNotImmutable = "Texture is not immutable.";
450 MSG kTextureNotBound = "A texture must be bound.";
451 MSG kTextureNotPow2 = "The texture is a non-power-of-two texture.";
452 MSG kTextureRectangleNotSupported = "Context does not support GL_ANGLE_texture_rectangle";
453 MSG kTextureSizeTooSmall = "Texture dimensions must all be greater than zero.";
454 MSG kTextureTargetMismatch = "Textarget must match the texture target type.";
455 MSG kTextureTargetRequiresES31 = "Texture target requires at least OpenGL ES 3.1.";
456 MSG kTextureTypeConflict = "Two textures of different types use the same sampler location.";
457 MSG kTextureTypeMismatch = "Passed in texture type must match the one originally used to define the texture.";
458 MSG kTextureWidthOrHeightOutOfRange = "Width and height must be less than or equal to GL_MAX_TEXTURE_SIZE.";
459 MSG kTransfomFeedbackAlreadyActive = "Transform feedback is already active.";
460 MSG kTransformFeedbackActiveDelete = "Attempt to delete an active transform feedback.";
461 MSG kTransformFeedbackActiveDuringLink = "Cannot link program while program is associated with an active transform feedback object.";
462 MSG kTransformFeedbackBufferDoubleBound = "A transform feedback buffer that would be written to is also bound to a non-transform-feedback target = which would cause undefined behavior.";
463 MSG kTransformFeedbackBufferMultipleOutputs = "Transform feedback has a buffer bound to multiple outputs.";
464 MSG kTransformFeedbackBufferTooSmall = "Not enough space in bound transform feedback buffers.";
465 MSG kTransformFeedbackDoesNotExist = "Transform feedback object that does not exist.";
466 MSG kTransformFeedbackNotActive = "No Transform Feedback object is active.";
467 MSG kTransformFeedbackNotPaused = "The active Transform Feedback object is not paused.";
468 MSG kTransformFeedbackPaused = "The active Transform Feedback object is paused.";
469 MSG kTransformFeedbackProgramBinary = "Cannot change program binary while program is associated with an active transform feedback object.";
470 MSG kTransformFeedbackTargetActive = "Target is TRANSFORM_FEEDBACK_BUFFER and transform feedback is currently active.";
471 MSG kTransformFeedbackUseProgram = "Cannot change active program while transform feedback is unpaused.";
472 MSG kTransformFeedbackVaryingIndexOutOfRange = "Index must be less than the transform feedback varying count in the program.";
473 MSG kTypeNotUnsignedShortByte = "Only UNSIGNED_SHORT and UNSIGNED_BYTE types are supported.";
474 MSG kUniformBufferBoundForTransformFeedback = "It is undefined behavior to use an uniform buffer that is bound for transform feedback.";
475 MSG kUniformBufferOffsetAlignment = "Offset must be multiple of value of UNIFORM_BUFFER_OFFSET_ALIGNMENT.";
476 MSG kUniformBufferTooSmall = "It is undefined behaviour to use a uniform buffer that is too small.";
477 MSG kUniformBufferUnbound = "It is undefined behaviour to have a used but unbound uniform buffer.";
478 MSG kUniformSizeMismatch = "Uniform size does not match uniform method.";
479 MSG kUniformTypeMismatch = "Uniform type does not match uniform method.";
480 MSG kUnimplementedComputeShaderPrecision = "Compute shader precision not yet implemented.";
481 MSG kUnknownParameter = "Unknown parameter value.";
482 MSG kUnsizedInternalFormatUnsupported = "Internalformat is one of the unsupported unsized base internalformats.";
483 MSG kUnsupportedDrawModeForTransformFeedback = "The draw command is unsupported when transform feedback is active and not paused.";
484 MSG kUnsupportedFloatBlending = "GL_BLEND with floating-point color attachments requires the EXT_float_blend extension.";
485 MSG kVertexArrayNoBuffer = "An enabled vertex array has no buffer.";
486 MSG kVertexArrayNoBufferPointer = "An enabled vertex array has no buffer and no pointer.";
487 MSG kVertexBufferBoundForTransformFeedback = "It is undefined behavior to use a vertex buffer that is bound for transform feedback.";
488 MSG kVertexShaderTypeMismatch = "Vertex shader input type does not match the type of the bound vertex attribute.";
489 MSG kViewportNegativeSize = "Viewport size cannot be negative.";
490 MSG kViewsExceedMaxArrayLayers = "baseViewIndex+numViews cannot be greater than GL_MAX_ARRAY_TEXTURE_LAYERS.";
491 MSG kWebgl2NameLengthLimitExceeded = "Location lengths must not be greater than 1024 characters.";
492 MSG kWebglBindAttribLocationReservedPrefix = "Attributes that begin with 'webgl_' = or '_webgl_' are not allowed.";
493 MSG kWebglNameLengthLimitExceeded = "Location name lengths must not be greater than 256 characters.";
494 MSG kZeroBoundToTarget = "Zero is bound to target.";
495 // clang-format on
496 
497 #undef MSG
498 }  // namespace err
499 }  // namespace gl
500 #endif  // LIBANGLE_ERRORSTRINGS_H_
501