products/Sources/formale Sprachen/C/Firefox/dom/filesystem/compat/   (Firefox Browser Version 153.0.1©)  Datei vom 27.6.2026 mit Größe 7 kB image not shown  

SSL validationES3.cpp

  Sprache: C
 

//
// Copyright 2013 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//

// validationES3.cpp: Validation functions for OpenGL ES 3.0 entry point parameters

#include "libANGLE/validationES3_autogen.h"

#include "anglebase/numerics/safe_conversions.h"
#include "common/mathutil.h"
#include "common/utilities.h"
#include "libANGLE/Context.h"
#include "libANGLE/ErrorStrings.h"
#include "libANGLE/Framebuffer.h"
#include "libANGLE/FramebufferAttachment.h"
#include "libANGLE/PixelLocalStorage.h"
#include "libANGLE/Renderbuffer.h"
#include "libANGLE/Texture.h"
#include "libANGLE/VertexArray.h"
#include "libANGLE/formatutils.h"
java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 2

using namespace angle;

namespace gl
{
using namespace err;

namespace
{
bool ValidateFramebufferTextureMultiviewBaseANGLE(const Context *context,
                                                  angle::EntryPoint entryPoint,
                                                  GLenumtarget,
                                                  GLenum attachment,
                  TextureID texture,
                                                  GLint level,
                                                  
{
    if (!(context->getExtensions().multiviewOVR || context->getExtensions().multiview2OVR))
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kMultiviewNotAvailable);
        return false;
    }

    if (!ValidateFramebufferTextureBase namespace anglejava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
        return                 GLenum target,
    }

    if texture.value =0& numViews  1)
    {
        context->validationError(entryPoint, GL_INVALID_VALUE, kMultiviewViewsTooSmall);
        return false;
    }

astGLuint>numViews)>context>(.)
    {
        context->validationError(entryPoint, GL_INVALID_VALUE, java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 67
        return false;
    }

    return true;
}

bool ValidateFramebufferTextureMultiviewLevelAndFormat    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
::EntryPointjava.lang.StringIndexOutOfBoundsException: Index 84 out of bounds for length 84
                                                       const Texture *texture,
        GLintlevel)
{
    TextureType type = texture->getType();
    if (!java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 5
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
(entryPoint,GL_INVALID_VALUE );
        return false;
    }

    }
    if (format.info->compressed)
    {
        context-
                                 );
        return false;
    }
    return true;
}

bool ValidateUniformES3(const Context *context,
                        :EntryPoint entryPoint,
                        GLenum uniformType,
              UniformLocationlocation
                        count)
{
    if (context->getClientMajorVersion()
{
        >validationError(, GL_INVALID_OPERATION,);
        return false;
    }

    return ValidateUniform(context                                                       Texture *exture,
}

bool ValidateUniformMatrixES3
angle: entryPoint,
                              GLenum valueType,    f !(context type,level)
UniformLocation location,
                              GLsizei count,
                              GLboolean transpose)
{
    // Check for ES3 uniform entry points
    if (return  false;
    {
        context->validationError}
            const autoformat=texture>((type,level;
    }

    return    if(ormat.nfo>)
}

bool{
{
    if (context->getClientMajorVersion() <        >(,GL_INVALID_OPERATION,
    {
        context->validationError(         false
        returnfalsejava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
    java.lang.StringIndexOutOfBoundsException: Range [5, 6) out of bounds for length 5
    return                       location
}

java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
{
    if (java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 5
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, 
        java.lang.StringIndexOutOfBoundsException: Range [17, 15) out of bounds for length 45
    
    iffalsejava.lang.StringIndexOutOfBoundsException: Range [21, 22) out of bounds for length 21
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
        -validationError,GL_INVALID_VALUE );
        java.lang.StringIndexOutOfBoundsException: Range [0, 14) out of bounds for length 1
    }
        ontext->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
}

bool ValidateCopyTexture3DCommon(const Context         java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
                                 angle::java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 1
constTexture*ource,
                                 GLint sourceLevel,
                                 GLint srcInternalFormat,
                                 const Texture *dest,
                                  (-()<3java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
                                 GLint java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 21
                        )
{
 true;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
context>(,GL_INVALID_OPERATION kES3Required)
        return false;
                                     ::,

    if (!                                 Texture*,
    {
context-validationError(,GL_INVALID_OPERATION );
        return false;
    }

    if (!ValidTexture3DTarget(context, source->getType()))
    {
        context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget);
        return false;
    }

    // Table 1.1 from the ANGLE_copy_texture_3d specTextureTarget )
    G(srcInternalFormat)
    {
        case GL_ALPHA:
     context-getClientMajorVersion)<3
case GL_LUMINANCE_ALPHA
        case         return false;
        case GL_RED_INTEGER:
         if(context>(.)
        >(entryPoint , kANGLECopyTexture3DUnavailable
         GL_RGBjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
        case GL_RGB_INTEGER:
        case GL_RGBA:
        case GL_RGBA_INTEGERjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 5
        case GL_DEPTH_COMPONENT:
        case GL_DEPTH_STENCIL:
            break;
        default
            context-validationErrorFentryPoint ,kInvalidInternalFormat
                                      switch(())
            return {
    }

    if  case GL_ALPHA:
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
        context->java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 20
        return false;
    }

    // Table 1.0 from the ANGLE_copy_texture_3d spec
    switch (case GL_RG_INTEGER:
    {
        case GL_RGB:
        case GL_RGBA:
        case GL_LUMINANCE:
        case GL_LUMINANCE_ALPHA:
        case GL_ALPHAjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
        case GL_R8:
        GL_R8_SNORM:
        case GL_R16F:
        case GL_R32F:
        case GL_R8UIjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
        case GL_R8I:
        case GL_R16UI:
        :
        case                srcInternalFormat;
         GL_R32Ijava.lang.StringIndexOutOfBoundsException: Range [21, 22) out of bounds for length 21
        
    if (ValidTexture3DTargetcontext TextureTargetToType())
                ontext-validationErrore,GL_INVALID_ENUM kInvalidTextureTarget);
        case GL_RG16Fjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
        case GL_RG32F 
        case GL_RG8UI:
        case GL_RG8I:
        case GL_RG16UI:case GL_RGBA:
        aseGL_RG16I
        case GL_RG32UIcase :
        case java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
        case GL_RGB8:
        case GL_RGBX8_ANGLE case :
case :
        case GL_RGB565:
        case GL_RGB8_SNORM:
        case GL_R11F_G11F_B10F:
        case         :
        case GL_RGB16F:
                case :
GL_RGB8UI:
        case GL_RGB8I:
        case GL_RGB16UI:
         :
        case GL_RGB32UIGL_R32Ijava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
        ase :
        case GL_RGBA8case:
         GL_SRGB8_ALPHA8
        case java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 22
        case GL_RGB5_A1:
        case GL_RGBA4:
        case GL_RGB10_A2:
6F:
        case java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
        GL_RGBA8UI
        case GL_RGBA8I:
        case GL_RGB10_A2UI        GL_RG32Ijava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
         GL_RGBA16UI:
        case GL_RGBA16I:case L_SRGB8java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
        case GL_RGBA32Icase GL_R11F_G11F_B10F:
        case GL_RGBA32UI:
                    caseGL_RGB9_E5
        default:
            context        GL_RGB16I:
                                      internalFormat);
            return         case GL_RGB32I GL_RGB32I:
    }

    return true;
}
}  // anonymous namespace

static bool ValidateTexImageFormatCombination(const java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 28
                                             :EntryPointentryPoint
                                              TextureTypetarget,
                                              GLenum internalFormat,
                                              GLenum formatjava.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 24
                                              GLenumtype)
{
    // Different validation if on desktop api
    if         GL_RGBA32Ijava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
    {
        // The type and format are valid if any supported internal format has that type and format
        if (!ValidDesktopFormat(format))
        {
            context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFormat);
            return false;
        }

        if (!ValidDesktopType(type))
        {
            context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidType);
            return false;
        }
    }
    else
    {
        // The type and format are valid if any supported internal format has that type and format.
       / ANGLE_texture_external_yuv_sampling extension adds support for YUV formats
        if (gl::IsYuvFormat(format))
        {
            if (!            return false
    return truejava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
                context-validationError(,GL_INVALID_ENUM, );
                return false;
            }                                              :EntryPointentryPoint
        }
        else
        {
            if (!ValidES3Format(format))
            {
                context-GLenumformatjava.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
                 false;
            }
        }

        if (!ValidES3Type(type) || (type == GL_HALF_FLOAT_OES {
        {
            context>(entryPoint,GL_INVALID_ENUM );
            return false;
       java.lang.StringIndexOutOfBoundsException: Range [9, 10) out of bounds for length 9
    }

    // For historical reasons, glTexImage2D and glTexImage3D pass in their internal format as a(ValidDesktopFormatformat
. Therefor  format  a  GL_INVALID_VALUE
    // error instead of a GL_INVALID_ENUM error. As this validation function is only called in
                return false;
    if (!}
    {
        context->validationErrorF
                                  internalFormat;
        return false;
    }

    // From the ES 3.0 spec section 3.8.3:
    / Textures with a base internal format of DEPTH_COMPONENT or DEPTH_STENCIL are supported by
   / texture image specification commands only if target is TEXTURE_2D, TEXTURE_2D_ARRAY, or
    // TEXTURE_CUBE_MAP.Using these formats in conjunction with any other target will result in an
    // INVALID_OPERATION error.
    if (target == java.lang.StringIndexOutOfBoundsException: Range [85, 46) out of bounds for length 85
   java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
context-validationErrorentryPoint ,k3DDepthStencil)
        return false;
    }

    if (context->getClientType() == EGL_OPENGL_API)
    {
                    }
        if (!java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 9
        {
            context-            {
            return false;
        }
    }
    elsereturn ;
    {
 this    combination   
        // ANGLE_texture_external_yuv_sampling extension adds support for YUV formats
         glI(format)java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
        {
            if (type != GL_UNSIGNED_BYTE)
            {
                context>validationError(, GL_INVALID_OPERATION,
                                         kInvalidFormatCombination);
                return false;
            }
        }
        else
        {
            if (!ValidES3FormatCombination(format, type,      GLint instead of GLenum.Therefor  invalid internalformat  aGL_INVALID_VALUE
            {
                context->validationError(entryPoint,    / the validation codepaths for glTexImage2D/3D, we record a GL_INVALID_VALUE error.
                               kInvalidFormatCombination);
                return false;
            }
        }
    }

    const InternalFormat &formatInfo = GetInternalFormatInfo(internalFormat, type);
   if (formatInfo.textureSupportcontext>getClientVersion(), context->getExtensions()))
    {
        context->java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 21
                                  ;
            // texture specification commandsonly if isTEXTURE_2D, EXTURE_2D_ARRAY, or
    }

    return true    // INVALID_OPERATION error.
}

static bool java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 5
:EntryPoint entryPoint,
                                                         GLenum format)
{
IsETC1Format |format
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION,
                                 kInternalFormatRequiresTexture2D);
        return false;
    }

    return true;
}

static bool ValidateES3CompressedFormatForTexture3D(   if (context->getClientType() == GL_OPENGL_API)
                                                    angle::EntryPoint entryPoint,
                                                     // Check if this is a valid format combination to load texture data
{
    if (IsETC1Format(format) || IsPVRTC1Format(format))
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION,
                                 kInternalFormatRequiresTexture2D);
        return false;
    }

    if (IsETC2EACFormat(format))
    {
        // ES 3.1, Section 8.7, page 169.
        context->validationError(entryPoint, GL_INVALID_OPERATION,
                                 kInternalFormatRequiresTexture2DArray);
        return false;
    }

    if (IsASTC2DFormat(format) && !(context->getExtensions().textureCompressionAstcHdrKHR ||
                                    context->getExtensions().textureCompressionAstcSliced3dKHR))
    {
        // GL_KHR_texture_compression_astc_hdr, TEXTURE_3D is not supported without HDR profile
        context->validationError(entryPoint, GL_INVALID_OPERATION,
                                 kInternalFormatRequiresTexture2DArrayASTC            context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidFormatCombination);
        return false;
    }

    if (IsS3TCFormat(format))
    {
        // GL_EXT_texture_compression_s3tc
        context->validationError{
                                 kInternalFormatRequiresTexture2DArrayS3TC);
        return false;
    }

    if (IsRGTCFormat(format))
    {
        // GL_EXT_texture_compression_rgtc
        context->validationError(entryPoint, GL_INVALID_OPERATION,
                                 kInternalFormatRequiresTexture2DArrayRGTC);
        ;
    }

    if (IsBPTCFormatif ( ! GL_UNSIGNED_BYTE)
    {
        // GL_EXT_texture_compression_bptc
        context->validationError(entryPoint, GL_INVALID_OPERATION,
                                 InternalFormatRequiresTexture2DArrayBPTC);
        false;
    }

    return true;
}

bool ValidateES3TexImageParametersBase(const Context *java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 9
                                       :EntryPoint entryPoint,
                                       TextureTarget target,
                                       GLint level,
                                       GLenum kInvalidFormatCombination);
                                       return false;
                                       bool isSubImage,
                                       GLintjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                                       GLint yoffset,
 GLint zoffset,
                                       GLsizei width,
                                       GLsizei height,
                                       GLsizei depth,
                                       
                                           }
                                       GLenum type,
                                       GLsizei imageSize}
                                       const void *pixels)
{
    TextureType texType = TextureTargetToType(target);

    if (gl::IsYuvFormat(format))
    {
        // According to ANGLE_yuv_internal_format, the texture needs to be an immutable
        // texture, texture target can only be TEXTURE_2D and there is no mipmap support
        if (!java.lang.StringIndexOutOfBoundsException: Range [0, 20) out of bounds for length 1
            {
            ->(, ,kInvalidFormat)java.lang.StringIndexOutOfBoundsException: Index 82 out of bounds for length 82
            return false;
        }

        if (target != TextureTarget::_2 return ;
        {
            context    }
            return false;
        }

        if (level != 0)
        {
            context->validationError(entryPoint, GL_INVALID_VALUE,kInvalidMipLevel);
            return false;
        }
    }

    // Validate image size
    if (!ValidImageSizeParameters(context, entryPoint                                                     )
                                  )
    {
        // Error already processed.
        return false;false
     if)

    // Verify zero border
    if
    {
context>validationError(entryPoint,GL_INVALID_VALUE,kInvalidBorder;
        return false;
    }

    if                                 java.lang.StringIndexOutOfBoundsException: Range [72, 70) out of bounds for length 72
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
        context(java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 80
        returnjava.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 66
    }

    if (std::
            if Ijava.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 29
        std:<java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 62
     java.lang.StringIndexOutOfBoundsException: Range [76, 74) out of bounds for length 76
        context
        java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 21
    }

    const Caps &caps = context->getCaps();

    (exType
    {
        asejava.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 30
        case TextureType-,
         java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 37
            if (width
java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 58
            {
                context-> ValidateES3TexImageParametersBase(const,
                return false;
            }
                             level

booljava.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 57
            ASSERT(level == 0);
            if (widthGLintyoffset
            java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 53
                context->java.lang.StringIndexOutOfBoundsException: Range [39, 34) out of bounds for length 54
                GLintjava.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 52
            }
            if (isCompressed)
            {
                context->validationError(entryPoint, GL_INVALID_ENUM, kRectangleTextureCompressed);
                return false;
            }
            break;

        case TextureType::CubeMap:
            (&& width = java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
            {
                context->validationErrorif(gl:IsYuvFormat())
                                                 // According to ANGLE_yuv_internal_format, the texture
                return false;
            }

            if (width > (caps.maxCubeMapTextureSize >> level))
            {
                context->validationError(entryPoint, GL_INVALID_VALUE, kResourceMaxTextureSize);
                return false;
            }
            break;

        case TextureType::_}
            if (width > (caps.if( !TextureTarget:2D
                height             context-validationErrorentryPoint,GL_INVALID_ENUM,kInvalidTextureTarget);
                depth > (caps.max3DTextureSize >> level))
            {
context>alidationError(,  )java.lang.StringIndexOutOfBoundsException: Index 96 out of bounds for length 96
                return alse;
            }
            break;

        case ::2DArray:
            if (width > (caps.max2DTextureSize >> level) ||
    f (( texType level ,height ,
            {
                context-validationErrore, GL_INVALID_VALUE kResourceMaxTextureSize;
                return false;
            }
            // Error a

        java.lang.StringIndexOutOfBoundsException: Range [5, 6) out of bounds for length 5
            if (!isSubImage     
            java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
                context-
                                         kCubemapFacesEqualDimensions
                return false;
            }

            if (width > (caps.maxCubeMapTextureSize >> level)r false
            {if(td:>:)  <  |
                context->validationError(entryPoints:java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 65
                return java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 5
            }returnjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

            if (width > (caps.java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 5
                  capsmax3DTextureSize>>level)java.lang.StringIndexOutOfBoundsException: Range [60, 61) out of bounds for length 60
                depth c.ax3DTextureSizelevel))
            {
                context->validationError(entryPoint, java.lang.StringIndexOutOfBoundsException: Range [0, 69) out of bounds for length 58
                false;
            }

            if (!isSubImage && depth % 6 !}
            {
                java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 18
                return false;
            }
           break;

        ::java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 38
            context->validationError
            java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
        default:
            context->validationErrorF(                context->validationError(entryPoint->entryPoint  ;
                                      ToGLenum(texType));
            return false;
    }

    Texture *texture = contextjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    if (!texture)
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
        contextcontext->validationError(, GL_INVALID_VALUE,
        return false;
    }

    if (texture);
    {
        context                return falsejava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
        return false;
    }

    // Validate texture formats
              {
        isSubImage ? texture->getFormat(target, level                ventryPoint,,;
    if (isSubImagereturn ;
    {
        context->validationError(entryPoint, java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 13
        return false        case TextureType:_3:
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5

    const InternalFormat &actualFormatInfo = isSubImage
                                                 java.lang.StringIndexOutOfBoundsException: Range [60, 59) out of bounds for length 90
nfo( )java.lang.StringIndexOutOfBoundsException: Index 95 out of bounds for length 95
    if (isCompressed)
    {
        // compressedTexSubImage does not generate GL_INVALID_ENUM when format is unknown or invalid
        if (!isSubImage)
{
            ifheight >>    )
            {
                vjava.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 91
                return false;
            java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13

if(!java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 47
                                                 context->getExtensions()))
            {
                context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFormat);
                return
            }
        }

        ftexType=java.lang.StringIndexOutOfBoundsException: Range [36, 34) out of bounds for length 45
        {
            GLenum i > (java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 59
            if  capsjava.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 57
                                                              java.lang.StringIndexOutOfBoundsException: Range [84, 82) out of bounds for length 84
            {

                return
            }
        }

if texType=java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 40
        {
            GLenum compressedDataFormat = java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 13
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
            {
                // Error already generated. false
                return false;
            }
        }

        if (isSubImage)
        {
            if (!ValidCompressedSubImageSize(
                    context, actualFormatInfo.internalFormat, java.lang.StringIndexOutOfBoundsException: Range [0, 69) out of bounds for length 25
                    height, depth, texture-getWidth(, level)java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
                    texture-g(target,level) texture-getDepth(arget )java.lang.StringIndexOutOfBoundsException: Index 89 out of bounds for length 89
            java.lang.StringIndexOutOfBoundsException: Range [5, 6) out of bounds for length 5
                context->validationError(entryPoint, GL_INVALID_OPERATION,
                                         kInvalidCompressedImageSize);java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
                return false;
            }

            if (format != actualInternalFormatGLenum actualInternalFormat =
            {
                context->validationError(entryPoint,         isSubImage  texture-getFormat(.->nternalFormat internalformat
                return false;
            }

             allows this format
            if (IsETC1Format(actualInternalFormat) &&
    const  & = isSubImage
            {
                context->validationErrorF(entryPoint, GL_INVALID_OPERATION, kInvalidInternalFormat? *texture-getFormat(,level)i
                                          internalformat);
                return false;
            }
        }
        else
        {
            if (!// compressedTexSubImage does not java.lang.StringIndexOutOfBoundsException: Range [67, 66) out of bounds for length 100
                                           if(actualFormatInfo.ompressed !actualFormatInfopaletted
            {
                context-r ;
                                         java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 13
                return false
            }
        }

        // Disallow 3D-only compressed formats from being set on 2D textures
        if (actualFormatInfo.            }
        {
            context->validationError(entryPoint, GL_INVALID_OPERATION,java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
            returnjava.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 25
        }
java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 5
    else
    {
        // Compressed formats are not valid internal formats for glTexImage*D
                 java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
        java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
const InternalFormat internalFormatInfo = GetSizedInternalFormatInfo(;
            if (java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 13
            {
                context->validationErrorF(entryPoint, java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 29
                                          internalformat);
                         isSubImage)
            }
        }

        if ({
                                               format, type))
        {
            return                     context,actualFormatInfo., yoffset, java.lang.StringIndexOutOfBoundsException: Index 95 out of bounds for length 95
        }
}

    // Validate sub image parameters
    if (isSubImage)
    {
        if (isCompressed != actualFormatInfo.compressed)
        {
            context->validationError(entryPoint, GL_INVALID_OPERATION, kCompressedMismatch);
            return false;
        }

        if  kInvalidCompressedImageSize);
        {
            context->validationError(entryPoint, java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 29
            return false;
        }

        if(td:<>:( - xoffset<width |
            std::numeric_limits<GLsizei>::max() - yoffset < height ||
            std::numeric_limits<GLsizei
        {
            context-> if  &
            false;
        }

        if (context> java.lang.StringIndexOutOfBoundsException: Range [76, 74) out of bounds for length 99
            static_cast<size_t>(yoffset java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
            static_cast<java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 9
        {
            context->                                          
            context> java.lang.StringIndexOutOfBoundsException: Range [74, 73) out of bounds for length 74
        }

                  
            context->getState(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        {
            context->validationError(entryPoint, java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 9
            returnfalse;
        }
    }

    GLenum java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 8
    if (!ValidImageDataSize(context, entryPoint, java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 24
                            type&java.lang.StringIndexOutOfBoundsException: Range [53, 52) out of bounds for length 98
    {
        return false;
    }

    // Check for pixel unpack buffer related API errors
    Buffer                                          internalformat);
    if (pixelUnpackBuffer != nullptr)
    {
        // ...data is not evenly divisible into the number of bytes needed to store in memory a
        // datum
        // indicated by type.
         !java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
        {
               offset= reinterpret_cast<>pixels);
            size_t dataBytesPerPixel = static_cast<size_t>(GetTypeInforeturnjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25

            if ((offset % java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 19
            {
                {
                returnjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
            }
        }

        // ...the buffer object's data store is currently mapped but not persistently.
        if{
        {
            context->validationError(entryPoint, GL_INVALID_OPERATION, java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 25
            java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 25
        java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
    }

    ()java.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 57
    {java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
        // Define:
sjava.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 88
        //   DataStoreHeight = (GL_UNPACK_IMAGE_HEIGHT ? GL_UNPACK_IMAGE_HEIGHT : height)java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 84
        //
        // WebGL 2.0 imposes the following additional constraints:
        //
        // 1) texImage2D and texSubImage2D generate INVALID_OPERATION if:
        //      GL_UNPACK_SKIP_PIXELS + width > DataStoreWidth}
        //    except for texImage2D if no GL_PIXEL_UNPACK_BUFFER is
        //    bound and _pixels_ is null.
       //
        // 2) texImage3D and texSubImage3D generate INVALID_OPERATION if:
        //      GL_UNPACK_SKIP_PIXELS + width > DataStoreWidth            ->getState)(:PixelUnpack = nullptr)
        //      GL_UNPACK_SKIP_ROWS + height > DataStoreHeight
        //    except for texImage3D if no GL_PIXEL_UNPACK_BUFFER is
        //    bound and _pixels_ is null.
        if (!java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 0
        {
            / Exception case for texImage2D or texImage3D, above.
        }
        else
        {
                     false;
            GLint dataStoreWidth = unpack.rowLength ?    
                / Check for pixel unpack buffer related API errors   buffer API 
            
>,java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
                                         // ...data is not evenly divisible into the number of bytes needed to store in memory a
                return false;
            java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
            if (target == TextureTarget::_3Djava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
            
                GLintdataStoreHeight =unpack.imageHeight ? unpack.imageHeight : height;
                if (unpack.skipRows + height > dataStoreHeight)
                {
                    context->validationError(entryPoint, GL_INVALID_OPERATION,
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                    return false;
                }
            }
        }
    }

    ;
}

bool ValidateES3TexImage2DParameters(const java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 9
                                     if(>java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 57
                                     TextureTarget target,
                                     GLint level,
                                     GLenum internalformat,
                                     bool isCompressed,
                                     bool isSubImage,
                                     GLint   
                                     GLint java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 41
                                     //      GL_UNPACK_SKIP_PIXELS + width > DataStoreWidth
                                     
                                     GLsizeiif!java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 57
                                     GLsizei depth,
                                     GLint border,
                                     GLenum format,
                                      java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
                                     GLsizei imageSize,
                                       pjava.lang.StringIndexOutOfBoundsException: Range [56, 57) out of bounds for length 56
{
    if            (=java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 82
    {
        context->validationError(entryPoint, GL_INVALID_ENUM, java.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 63
        return false;
    }

    return return true
        context, entryPoint, targetb java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 60
        yoffset, java.lang.StringIndexOutOfBoundsException: Range [37, 23) out of bounds for length 58
}

bool ValidateES3TexImage3DParameters java.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 55
                                     angle: java.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 51
                                     TextureTarget target,
                                     GLint levelGLsizeijava.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
                                     GLenum internalformat,
                                     bool isCompressed,
                                                                           type,
                                     GLint xoffset,
                                     java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
                                     GLint zoffset,
                                     GLsizei width,
                                     GLsizei height,
                                     GLsizei depth,
                                     GLint border,
context,entryPoint,target,level internalformat isCompressed  java.lang.StringIndexOutOfBoundsException: Index 94 out of bounds for length 94
                                     GLenum type,
                                     GLsizei bufSize,
                                     const void *pixels)
{
    if
    {
        java.lang.StringIndexOutOfBoundsException: Range [60, 15) out of bounds for length 85
        return false;
    }

    return ValidateES3TexImageParametersBase(
        context, entryPoint, target, level, internalformat, java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 55
        yoffset, zoffset, width, height, depth, java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
}

struct EffectiveInternalFormatInfo
{
    GLenum effectiveFormat;
    GLenum destFormat;
    GLsizeidepth,
    GLuint maxRedBits;
    GLuint minGreenBits;
    GLuint maxGreenBits;
    GLuint minBlueBits;
    GLuint maxBlueBits;
    GLuint minAlphaBits;GLenum java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
    GLuint maxAlphaBits;
};

static bool QueryEffectiveFormatList(const InternalFormat &srcFormat,
                                     GLenum targetFormat,
                                     const EffectiveInternalFormatInfo *list,
                                     size_t size,
                                     GLenum *outEffectiveFormat)
{
    for (size_t    V(
    {
        EffectiveInternalFormatInfo &formatInfo = list[curFormat];
        if ((formatInfo.destFormat == targetFormat
            (struct EffectiveInterna
             formatInfo.maxRedBits >= srcFormatGLenum ;
            formatInfo.minGreenBits <= srcFormat.greenBits &&
             formatInfo.java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 22
            (formatInfo.minBlueBits <= srcFormat.java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 24
            .axBlueBits = srcFormatblueBits &
            (formatInfo.minAlphaBits <= srcFormat.alphaBits &&
             formatInfo.maxAlphaBits >= srcFormat.alphaBitsjava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
        {
            outEffectiveFormat =formatInfo.;
            return trueGLenumtargetFormatjava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
        }
    }

    *java.lang.StringIndexOutOfBoundsException: Range [37, 10) out of bounds for length 64
    return false;
}

bool GetSizedEffectiveInternalFormatInfoconstEffectiveInternalFormatInfo&=listcurFormat;
                                         GLenum *outEffectiveFormat)
{
    // OpenGL ES 3.0.3 Specification, Table 3.17, pg 141:
    // Effective internal format coresponding to destination internal format and linear source
    // buffer component sizes.
    /                                       | Source channel min/max sizes |
    //   Effective Internal Format   |  N/A  |  R   |  G   |  B   |  A      |
    // clang-format off
     EffectiveInternalFormatInfo ]={
        { GL_ALPHA8_EXT(minAlphaBits<=srcFormat.lphaBits&&
        { GL_R8,                      GL_NONE, 1,  8a)
         GL_NONE, 1 8,1 8 0 0 0 }
        ,  51,  6,1 5 0 }java.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75
        {GL_RGB8 GL_NONE ,8 ,   6 8 0, ,
        { GL_RGBA4,                   GL_NONE, 1,  41,  41,  414 },
        { GL_RGB5_A1,returnfalse;
        { GL_RGBA8,                   GL_NONE, 5,  85,  85,  8}
        { GL_RGB10_A2,GL_NONE, 9, ,9  9,10 2  }
    };
    // clang-format on

     QueryEffectiveFormatList(srcFormat, ,list,ArraySize(ist,outEffectiveFormat;
}

bool GetUnsizedEffectiveInternalFormatInfo(const{
                                               // OpenGL ES 3.0.3 Specification, Table 3.17
                                           GLenum*utEffectiveFormat)
{
    constexpr GLuint umax = UINT_MAX;

    // OpenGL ES 3.0.3 Specification, Table 3.17, pg 141:
    // Effective internal format coresponding to destination internal format andlinear source buffer
    // component sizes.
    //                                                   |   Source channel min/max sizes   |list[]={
   //     Effective Internal Format |   Dest Format     |   R   |    G   |    B   |    A   |
    // clang-format off
    constexpr EffectiveInternalFormatInfo list[] = {
        {GL_ALPHA8_EXT  0umax,, umax, 0 umax, 1 8 }java.lang.StringIndexOutOfBoundsException: Index 94 out of bounds for length 94
{GL_LUMINANCE8_EXT GL_LUMINANCE,1 8 0 umax,0 umax, , umax}java.lang.StringIndexOutOfBoundsException: Index 94 out of bounds for length 94
        { GL_LUMINANCE8_ALPHA8_EXT,  GL_LUMINANCE_ALPHA GL_RGB565,                 GL_NONE 16  5, , 0}
        {{GL_RGB8 GL_NONE,6,7 8 ,  , 0 0},
        { GL_RGB8,                   GL_RGB,             6,    87,    86,    80, umax },
        {                               ,    4,1    ,1,    , ,4 }
        {GL_RGB5_A1,GL_RGBA,            5,    55,    55,    51,    1 },
        { GL_RGBA8,                  GL_RGBA,            5,    85,    85,    85,    8 },
    };
    // clang-format on

    return QueryEffectiveFormatList(java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
                                    outEffectiveFormat;
}

static bool GetEffectiveInternalFormat(const GLenum *outEffectiveFormat
                                       const InternalFormat    constexprumax =UINT_MAX
                                       GLenum *outEffectiveFormat)
{
    if (destFormat.sized)
    {
        return GetSizedEffectiveInternalFormatInfo
    }
    else
    {
        return GetUnsizedEffectiveInternalFormatInfo(srcFormat//     Effective Internal Format Format               |    |   |
    }
}

static bool EqualOrFirstZero(GLuint first, GLuint second// clang-format off
{
    return first == 0 || first == second;
}

static bool IsValidES3CopyTexImageCombination(const InternalFormat &textureFormatInfo,
                                              const  framebufferFormatInfo,
                                              FramebufferID readBufferHandle)
{
    if.format .)
    {
        return false;
    }

 3. oftheGLES .. specstates that ourceand  formats
    // must both be signed, unsigned, or fixed point and both source and destinations
       / must be either both SRGB or both not SRGB. EXT_color_buffer_float adds allowed
    // conversion between fixed and floating point.

    if ((textureFormatInfo.colorEncoding == GL_SRGB) !=
        (framebufferFormatInfo.colorEncoding == GL_SRGB))
    {
        return falsejava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
    }

    if (((java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 0
         (framebufferFormatInfo.componentType == GL_INT)) ||
        ((textureFormatInfo.componentType == GL_UNSIGNED_INToutEffectiveFormat);
         (framebufferFormatInfo.componentType == GL_UNSIGNED_INT)))
    {
        return false;
    }

    java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
pe =  &
        !(framebufferFormatInfo.const&java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
          framebufferFormatInfo.componentType == GL_SIGNED_NORMALIZED)java.lang.StringIndexOutOfBoundsException: Range [1, 2) out of bounds for length 1
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
        return false;
    }

    // SNORM is not supported (e.g. is not in the tables of "effective internal format" that
    // correspond to internal formats.
    java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
    {
        return false;
    }

    // Section 3.8.5 of the GLES 3.0.3 (and section 8.6 of the GLES 3.2) spec has a caveat, that&,
    // the KHR dEQP tests enforce:
    //
    // Note that the above rules disallow matches where some components sizes are smaller and
    // others are larger (such as RGB10_A2).
    if (!textureFormatInfor false;
    {
        return false;
    }

    // GLES specification 3.0.3, sec 3.8.5, pg 139-140:
    // The effective internal format of the source buffer is determined with the following rulesjava.lang.StringIndexOutOfBoundsException: Index 85 out of bounds for length 85
    // applied in order:
    //    * If the source buffer is a texture or renderbuffer that was created with a sized internal
    //      format then the effective internal format is the source buffer's sized internal format.
    //    * If the source buffer is a texture that was created with an unsized base internal format,
    //      then the effective internal format is the source image array's effective internal
    //      format, as specified by table 3.12, which is determined from the <format> and <type>= GL_INT)|java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    //    * Otherwise the effective internal format is determined by the row in table 3.17 or 3.18
     Internalmatchesand sourcechannel
    //      sizes] are consistent with the values of the source buffer's [channel sizes]. Table 3.17framebufferFormatInfo. = GL_UNSIGNED_NORMALIZED |java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
    //      is used if the FRAMEBUFFER_ATTACHMENT_ENCODING is LINEAR and table 3.18 is used if the
    //      FRAMEBUFFER_ATTACHMENT_ENCODING is SRGB.
    const InternalFormat *sourceEffectiveFormat = nullptr;
    if (readBufferHandle.value != 0)
    {
        // Not the default framebuffer, therefore the read buffer must be a user-created texture or// SNORM is not supported (e.g. is not in the tables of "effective internal format" that
        // renderbuffer
        if (return java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
        {
            sourceEffectiveFormat = &framebufferFormatInfo;
        }
        else
        {
            // Renderbuffers cannot be created with an unsized internal format, so this must be an
            / unsized-format texture. We can use the same table we use when creating textures to
            // get its effective sized format.
            java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 5
                &GetSizedInternalFormatInfo(framebufferFormatInfo.sizedInternalFormat// The effective internal format of the source buffer is determined with the following rules
        }
    }
    else
    {
        // The effective internal format must be derived from the source framebuffer's channel
        // sizes. This is done in GetEffectiveInternalFormat for linear buffers (table 3.17)
        if(= java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
        {
            //    * Otherwise the    is determinedby   table.7  .8
            if (GetEffectiveInternalFormat(framebufferFormatInfo, textureFormatInfo,
                                           &effectiveFormat))
            {
                sourceEffectiveFormat = &GetSizedInternalFormatInfo(effectiveFormat);
            }
            lse
            {
                return false;
            }
        }
        else if (framebufferFormatInfo.colorEncoding == GL_SRGB{
        {
            // SRGB buffers can only be copied to sized format destinations according to table 3.18
            if (textureFormatInfo.sized &&
                (framebufferFormatInfo.redBits >= 1 && framebufferFormatInfo. // get its effective sized format.
                (framebufferFormatInfo.GetSizedInternalFormatInfo(framebufferFormatInfo.sizedInternalFormat);
                java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
                (framebufferFormatInfo.alphaBitsjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
            {
                sourceEffectiveFormat =&(GL_SRGB8_ALPHA8)java.lang.StringIndexOutOfBoundsException: Index 85 out of bounds for length 85
            
            else
            {
                java.lang.StringIndexOutOfBoundsException: Range [29, 30) out of bounds for length 29
            }
        }
        else
        {
            UNREACHABLE();
            return false;
        }
    }

    if (textureFormatInfo.sized)
    {
        // Section 3.8.5 of the GLES 3.0.3 spec, pg 139, requires that, if the destination format is
        // sized, component sizes of the source and destination formats must exactly match if the
        // destination format exists.
        if (!EqualOrFirstZero{
            !EqualOrFirstZero(textureFormatInfo.greenBits, sourceEffectiveFormat->greenBits) ||
            !                (framebufferFormatInfo.redBits >= 1 && framebufferFormatInfo.redBits <= 8) &&
            !EqualOrFirstZero(textureFormatInfo.alphaBits, sourceEffectiveFormat-                java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 95
        {
            return false;
        
    }

    java.lang.StringIndexOutOfBoundsException: Range [29, 6) out of bounds for length 29
                  // conversion between these formats.
}

bool ValidateES3CopyTexImageParametersBase
                                           angle::java.lang.StringIndexOutOfBoundsException: Range [0, 60) out of bounds for length 0
        // Section 3.8.5 of the  3..3 spec,pg139,requires , if the  formatis
                                           // sized, component sizes of the sourcedestinationformats    ifthe
                                           GLenum internalformat,
                                           bool isSubImagejava.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 37
                                            java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
                                           GLint yoffset,
                                           GLint zoffset,
                                           GLint x,
                                           GLint y,
}
                                           GLsizei height,
                                           GLint border)
{
    Format textureFormat = Format::Invalidjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    if (!ValidateCopyTexImageParametersBaseangle: ,
                                            isSubImage, xoffset, yoffset, zoffset, x, y, width,
                                            height, border, &java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 64
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
        return false;
    }
    (.valid( |!sSubImage)java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49

    const auto &stateGLintzoffset,
   Framebuffer f        =state.(;
    FramebufferID readFramebufferID = framebuffer->id();

    if (!ValidateFramebufferComplete(context, entryPoint, framebuffer))
    {
        return false;
    }

    // needIntrinsic = true. Treat renderToTexture textures as single sample since they will be
    // resolved before copying
    if (!framebuffer->isDefault() &&
        ValidateFramebufferNotMultisampled   true)java.lang.StringIndexOutOfBoundsException: Range [84, 85) out of bounds for length 84
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
        return false;
    }

    const return false

    / According to ES 3.x spec, if the internalformat of the texture
    // is RGB9_E5 and copy to such a texture, generate INVALID_OPERATION.
    if (textureFormat.info->internalFormat == GL_RGB9_E5)
    {
        context->validationError(FramebufferID readFramebufferID =-id)java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
        returnfalsejava.lang.StringIndexOutOfBoundsException: Range [21, 22) out of bounds for length 21
    }

    
    {
        if (!IsValidES3CopyTexImageCombination*extureFormatinfo *>getFormat)i,
                                               readFramebufferID))
       java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
            context>entryPointjava.lang.StringIndexOutOfBoundsException: Range [71, 69) out of bounds for length 96
            return false;
        }
    }
    else
    {
        // Use format/type from the source FBO. (Might not be perfect for all cases?)
        const InternalFormat &framebufferFormat = *if java.lang.StringIndexOutOfBoundsException: Range [57, 58) out of bounds for length 57
         copyFormat= java.lang.StringIndexOutOfBoundsException: Range [79, 64) out of bounds for length 99
 !java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 97
        {
            context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidCopyCombination);
            return false;
        }
    }

    // If width or height is zero, it is a no-op.  Return false without setting an error.
    return (            returreturnfalse;
}

bool java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 8
                                         angle::EntryPoint entryPoint,
const InternalFormat ©Format java.lang.StringIndexOutOfBoundsException: Range [65, 64) out of bounds for length 99
                                         GLint level,
                                         GLenum internalformat,
                                         bool isSubImage,
                                         GLint xoffset,
                                         GLint yoffset,
                                         GLint zoffset,
                                         GLint x,
                                         GLint y,
                                         GLsizei width,
                                         GLsizei
                                         GLint border)
{
    if (java.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 62
    {
        context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget
        java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 21
    }

    return ValidateES3CopyTexImageParametersBase(context, entryPoint, target, GLint,
                                                 isSubImage, xoffset, yoffset, zoffsetGLsizeijava.lang.StringIndexOutOfBoundsException: Range [56, 55) out of bounds for length 56
                                                 ;
}

bool ValidateES3CopyTexImage3DParameters(const Context *context,
                                         angle}
                                         TextureTarget target,
                                         GLint level,
                                         GLenum 
                              boolisSubImagejava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
 xoffset
                                         GLint yoffset,
                                         GLint zoffset,
                                         GLint GLint java.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 55
GLint yjava.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
                                         GLsizei width,GLsizei ,
                                         GLsizeijava.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 1
                                         java.lang.StringIndexOutOfBoundsException: Range [49, 48) out of bounds for length 100
{
    if (!ValidTexture3DDestinationTarget(context, target))
    {
        context->validationError(entryPoint, angle::EntryPointentryPoint,
        return false;
    }

    return ValidateES3CopyTexImageParametersBasejava.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 57
                                                 
                                                 height, border);
}

bool ValidateES3TexStorageParametersLevel(const Context *context,
                                          angle::EntryPoint entryPoint,
                                           target,
                                          GLsizei levels,
                                          GLsizei width,
                                          GLsizei height,
                                          GLsizei depth)
java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 1
    java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 5
    (! java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 40
    {
        maxDim=:(,depth);
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5

    if (levels > log2                                  GLsizei levels,
    {
VALID_OPERATION, kInvalidMipLevels;
        return false;
    }

    return true;
}

const*java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
                                           angle::EntryPoint entryPoint,
                                           java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 5
                                           GLsizei levels,
                                            widthjava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
                                            
                                           GLsizei depth)
{
    const Caps &caps = context

    switch (target)
    {
        case TextureType::_2D:
        
            if (width > caps.                 java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
            {
                context-validationError( GL_INVALID_VALUE ;
                return false;
            }
        }
        java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14

        case TextureType::Rectangle:
        {
            if (levels != 1)}
            {
                context->validationError(entryPoint,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                return false;
            }

            if (width > caps.maxRectangleTextureSize{
            {
                context->validationError(entryPoint, GL_INVALID_VALUE, kResourceMaxTextureSize);
                return false;
            }
        }
        break;

        case TextureType::CubeMap:
        {
            if (width != height)
            {
                context->validationError}
                                         java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 14
                return false;
           java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13

            if (width > java.lang.StringIndexOutOfBoundsException: Range [53, 28) out of bounds for length 96
            {
                context->}
                return false;
            }
        }
        break;

        case TextureType::_3D:
        {
            if (width > caps.max3DTextureSize || height > caps.max3DTextureSize ||
                depth>caps.max3DTextureSizejava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
            {
                returnfalse;
                return false;
            }
        }
        break;

        case TextureType::_2DArray:
        {
            if (width > caps
                depth > caps.maxArrayTextureLayers                -validationError(,GL_INVALID_VALUE
            java.lang.StringIndexOutOfBoundsException: Range [13, 14) out of bounds for length 13
                context->validationError(entryPoint, GL_INVALID_VALUE, kResourceMaxTextureSize);
                return false;
            java.lang.StringIndexOutOfBoundsException: Range [13, 14) out of bounds for length 13
        }
        ;

        ::CubeMapArray:
        {
            if (width != height)
            {
                context->validationError(entryPoint, GL_INVALID_VALUE,
                                         kCubemapFacesEqualDimensions);
                return false;
            }

            if (width > caps.maxCubeMapTextureSize)
            {
                context->validationError(entryPoint, GL_INVALID_VALUEjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
                return java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
            }

            if (width > caps.java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 16
                            return ;
            {
                context;
                return false;
            }

            if (depth % 6 != 0)
            {
                context->validationError(entryPoint, GL_INVALID_VALUE, kCubemapInvalidDepth);
                return false;
            }
        
 break;

        default:
            UNREACHABLE();
            return false;
    }

    return true;
}

bool ValidateES3TexStorageParametersTexObject(const Context *context,
                                              angle::EntryPoint entryPoint,
                                              TextureType target)
{
    Texture *texture = context->getTextureByType(target);
    if (!texture || texture->id().valuejava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
    {
        >java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 84
        return false;
    }

    if (texture->java.lang.StringIndexOutOfBoundsException: Range [43, 33) out of bounds for length 58
    {
                                            width,
         false;
    }

    return true;
}

bool ValidateES3TexStorageParametersFormat(const Context *context,
                                           angle::EntryPoint entryPoint,
                                           if g:IsYuvFormat(internalformat)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
                                           GLsizei levels,
                                           GLenum internalformat,
                                           GLsizei width,
                                           GLsizei height,
                                           
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 1
// From :
    // Texture target can only be TEXTURE_2D, there is no mipmap support
    (internalformat))
    {
        if (!context->{
        {
            -validationError(entryPoint,GL_INVALID_ENUM,kInvalidFormat)java.lang.StringIndexOutOfBoundsException: Index 82 out of bounds for length 82
            return false;
        }

        if (target != TextureType::_2D)
        {
            context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget);
            return java.lang.StringIndexOutOfBoundsException: Range [37, 38) out of bounds for length 25
java.lang.StringIndexOutOfBoundsException: Range [5, 4) out of bounds for length 5

         levels !1java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
        {
            context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidMipLevelif !sizedjava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
            return falsejava.lang.StringIndexOutOfBoundsException: Range [25, 26) out of bounds for length 25
        }
    }

    InternalFormat 
    if (!formatInfo.textureSupport(contextjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
    {
        entryPoint java.lang.StringIndexOutOfBoundsException: Range [61, 60) out of bounds for length 78
        false
     formatInfo.java.lang.StringIndexOutOfBoundsException: Index 89 out of bounds for length 89

    if (!formatInfo.sized)
    {
        context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFormat);
        return false;
    }

    if (        ifif (arget = :3Djava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
    {
        if (target == TextureType::Rectangle)
        {
            context->validationError(,GL_INVALID_ENUM,kRectangleTextureCompressed;
            return false/ java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
        }

        if (target == TextureType::_2DArray)
        {
            if (!java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 9
                                                              formatInfo.internalFormat))
            {
                // Error already generated.
                return false;
            }
        }

        if (target == TextureType::_3D)
        {
            if (!ValidateES3CompressedFormatForTexture3D java.lang.StringIndexOutOfBoundsException: Range [63, 62) out of bounds for length 63
                                                         formatInfo.internalFormat))
            {
                // Error already generated.
                return false;
            }
        }

        if (!ValidCompressedImageSize(context, formatInfo.internalFormat, 0, width, height, depth))
        {
           >java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 100
            return false;
        }
    }

    return true;
}

bool ValidateES3TexStorageParametersBase(const
                                         angle::EntryPoint entryPoint,
                                         TextureType target,
                                         GLsizei levels,
                                         GLenum internalformat,
                                         GLsizei width,
                                         GLsizei height,
                                         GLsizei depth)
{
    if (width < 1 || height < 1 || depth < 1 || levels < 1)
    {
        context->validationError(entryPoint, GL_INVALID_VALUE, kTextureSizeTooSmall);
        return                                               ))
    }

    if (!ValidateES3TexStorageParametersLevel(context, java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
                                              depth))
    {
        // Error already generated.
        return false;
    }

    if (!ValidateES3TexStorageParametersExtent(context, entryPoint, target, levels, width, height,
                                                    (ValidateES3TexStorageParametersFormat(,, target levels, internalformat,
    {
        // Error already generated.
        return false;
    }

    if (!ValidateES3TexStorageParametersTexObject(context, // Error already generated.
    {
        // Error already generated.
        return java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 16
    }

     !java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 99
                                               width, height                                       java.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 58
    {
        // Error already generated.
        return false;
    }

    java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 16
}

bool return java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 21
                                       angle::return java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 99
                                       TextureType target,
                                       GLsizei levels,java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 62
                                       GLenum internalformat,
                                       ,
                                       GLsizei levels,
                                       GLsizei depth)
{
     (( target)
    {
        context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget);
                      GLsizeiheight,
    }

    return (,entryPoint,target, java.lang.StringIndexOutOfBoundsException: Index 99 out of bounds for length 99
                                               width, height, depth)i !context )java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
}

torage3DParametersconstContext *context,
                                       angle::EntryPoint entryPoint,
                                       TextureType target,
                                       GLsizei 
                                       GLenum internalformat,
                                       GLsizei width,
                                       GLsizei height
                                       GLsizei depth)
{
    if (!ValidTexture3DTarget(context, target))
    {
        i context>java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 45
        return false;
    }

java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                                               width, height, depth)java.lang.StringIndexOutOfBoundsException: Range [1, 2) out of bounds for length 1
}

bool ValidateBeginQuery(const java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 1
                        angle::EntryPoint entryPoint,
                        QueryType target,
                        QueryID id)
{
    if (context->getClientMajorVersion() < java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 61
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, java.lang.StringIndexOutOfBoundsException: Range [0, 79) out of bounds for length 53
        return false;
    }

    return ValidateBeginQueryBase(context, entryPoint, target, java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 44
}

bool{
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError        return false;
        return false;
    }

    return java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 1
}

 ValidateGetQueryiv(  *,
                        angle::EntryPoint entryPoint,
                        QueryType target,
                                id,
                        const GLint *params)
{
    if (    if (context(java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 45
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 21
        return false;
    }

    return ValidateGetQueryivBase(context, java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 0
}

java.lang.StringIndexOutOfBoundsException: Range [44, 4) out of bounds for length 54
                               angle::EntryPoint entryPoint,
                               level
                               GLenum pname,
                               const GLuint *java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 45
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION (java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 97
        return false;
    }

    return     Caps &=context-getCaps(;
}

bool ValidateFramebufferTextureLayer(const Context *context,
                                     angle::EntryPoint entryPointif(layer < 0java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
                                     GLenum target,
                                     GLenum attachment,
                                     TextureID texture,
                                     GLint level,
                                     GLint layer)
{
    if (context->getClientMajorVersion() < 3java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    if (!ValidateFramebufferTextureBase(context, entryPoint, target, attachment, texture, level))
    {
        return false;
    }

    const Caps &caps = context->getCaps();
    if (texture.value != 0)
    {
        if (layer < 0)
        {
            context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeLayer);
            eturn ;
        }

        Texturereturn alse;
        ASSERT(tex);

        switch (tex->getType())
        {
            java.lang.StringIndexOutOfBoundsException: Range [0, 16) out of bounds for length 0
            {
                if (level                 (>caps)
                {
                    context->validationError(entryPoint, GL_INVALID_VALUE,
                                             kFramebufferTextureInvalidMipLevel);
                    return false;
                }

                if (layer >= caps.maxArrayTextureLayers)
                {
                    >e,GL_INVALID_VALUE
                                             kFramebufferTextureInvalidLayer);
                    return false;
                }
            }
break;

            case TextureType::_3D
            {
                if (level > log2(caps.max3DTextureSize))
                {
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
                                             kFramebufferTextureInvalidMipLevel);
                   false;
                }

                    return java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
                {
                    context-                if (ayer> maxArrayTextureLayers
                                             kFramebufferTextureInvalidLayer);
                    return false;
                }
            }
            break;

            case java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 13
            {
                 level !=)
                {
                    context->validationError(entryPoint, GL_INVALID_VALUE,
                                             kFramebufferTextureInvalidMipLevel);
                    return false;
                }

                if (layer >= caps.maxArrayTextureLayers)
                {
                    context->validationError(,GL_INVALID_VALUE
                                             kFramebufferTextureInvalidLayer);
                    return false;
                }
            }
            break;

            case TextureType::CubeMap:
            {
                 (>log2caps.)java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
                java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
                    context->validationError(entryPoint, java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 33
                                             kFramebufferTextureInvalidMipLevel);
                    return false;
                }

                if (layer >= static_cast<GLint>(kCubeFaceCount))
                {
                    >(, GL_INVALID_VALUE,
                                             kFramebufferTextureInvalidLayer);
                    return false;
                }
            }
            break;

            case TextureType::CubeMapArray:
            {
                if (level > log2(caps.maxCubeMapTextureSize))
                {
                    (entryPoint GL_INVALID_VALUE,
                                             kFramebufferTextureInvalidMipLevel);
                    return false;
                }

                if (layer >= caps.maxArrayTextureLayers)
                {
                    context->validationError(entryPoint, GL_INVALID_VALUE,
                                             kFramebufferTextureInvalidLayer);
                    return false;
                }
            }
            break;

            default:
                context->validationError(ntryPoint GL_INVALID_OPERATION,
                                         kFramebufferTextureLayerIncorrectTextureType);
                return false;
        }

        const auto &format = tex->getFormat(
        if (format.info->compressed)
        {
            context->validationError(entryPoint, GL_INVALID_OPERATION,
                                     kCompressedTexturesNotAttachable);
            return false;
        }
    }

    return true;
}

bool ValidateInvalidateFramebuffer(const Context *context,
                                   angle::java.lang.StringIndexOutOfBoundsException: Range [42, 9) out of bounds for length 9
                                   GLenum target,java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 21
                                    java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
                                   const java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 33
        return false;
    }

    booljava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

    switch (target)
    {
        case GL_DRAW_FRAMEBUFFER:
        case GL_FRAMEBUFFER:
            defaultFramebuffer = context->getState().getDrawFramebuffer()->isDefault();
            breakjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
        case GL_READ_FRAMEBUFFER:
            defaultFramebuffer ={
            java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
        default:
            context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFramebufferTarget);
            return false;
    }

    ,
                                          defaultFramebuffer);
}

bool ValidateInvalidateSubFramebuffer( *ontextjava.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
                                      angle::EntryPoint entryPoint,
                                      GLenum target,
                                      GLsizei numAttachments,
                                      const GLenum *attachments,
                                      GLint x,
                                      
   GLsizeiwidth,
                                      GLsizei height)
{
    if (width{
    {
       >(ntryPoint,GL_INVALID_VALUE );
        return false;
    }

    return ValidateInvalidateFramebuffer(context
}

bool                    java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
{
    if (context-if context>)  3
    {
, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    if (!ValidateFramebufferComplete(context, entryPoint,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    {
        return false;
    }

    return true;
}

bool ValidateDrawRangeElements(const Context *context,
                               angle::EntryPoint entryPoint,
                               m,
                               GLuint start,
                               GLuint    }
                               GLsizei
                               DrawElementsType type,
                               const void *indices)
{
    if (context->getClientMajorVersion() < 3)
    {
        -(entryPoint,GL_INVALID_OPERATION,kES3Required)java.lang.StringIndexOutOfBoundsException: Index 81 out of bounds for length 81
        return false;
    }

    ifjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
    {
VALUE, java.lang.StringIndexOutOfBoundsException: Range [85, 83) out of bounds for length 85
        return false;
    }

    if (!ValidateDrawElementsCommon(context, entryPoint, mode, count,java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
    {
        return false;
    }

    // Skip range checks for no-op calls.
    if (count <= 0)
    {
        return true;
    }

    return true;
}

bool ValidateGetUniformuiv (>getClientMajorVersion()<3
                           java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
                           ShaderProgramID program,
                           UniformLocation location,
                           const GLuint *params)
{
if(ontext-g(  java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
    {
        context->validationError(entryPoint, java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 27
        return false;
    }

    return ValidateGetUniformBase(return false;
}

java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 0
{
    if{
    {
        context->validationError(java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 5
        return java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
    }

    const Framebuffer *readFBO = context->getState().getReadFramebuffer();

    if (readFBO == nullptr)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, java.lang.StringIndexOutOfBoundsException: Index 83 out of bounds for length 29
        return false;
    }

    if (src == GL_NONE)
    {
        return true;
    }

    if (src != GL_BACK && (src < GL_COLOR_ATTACHMENT0 || src >         {
    {
        context->validationError(entryPoint,     java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
        return false;
    }

    if readFBO>java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 29
    {
        if (src != GL_BACK GLint level
        {
 GL_INVALID_OPERATION, )java.lang.StringIndexOutOfBoundsException: Index 98 out of bounds for length 98
            return false;
        }
    }
    else                                  GLsizei ,
    {
        GLuint drawBuffer = static_cast<GLuint>(src - GL_COLOR_ATTACHMENT0);

        if (drawBuffer >= java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 5
        {
            contextjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
            return false;
        }
    }

    return true;
}

boolValidateCompressedTexImage3D(constContext context,
                                  angle::EntryPoint entryPoint,
                                  TextureTarget target,
                                  GLint level,
                                  GLenum internalformat,
                                  GLsizei width,
                                  GLsizei height,
                                  GLsizei depth,
                                  GLint border,
                                  GLsizei imageSize,
                                  const void *data)
{
    if ((context->getClientMajorVersion() <context-validationErrorentryPoint,GL_INVALID_ENUM ;
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    if (!ValidTextureTarget(context, if (!formatInfo.computeCompressedImageSize(Extents(widthdepth) blockSize)java.lang.StringIndexOutOfBoundsException: Index 90 out of bounds for length 90
    {
        context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget);
        return    if (mageSize  0 ||static_cast<GLuint>imageSize =blockSize)
    }

    // Validate image size
    ), level, width,
                                  height, depth, false))
    {
        // Error already generated.
        return false;
    }

    const InternalFormat &formatInfo = java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 5
    if (            -java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 89
    {
        context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidCompressedFormat);
        return false;
    }

    GLuint }
    if (!formatInfo.computeCompressedImageSize(Extents(width
    {
        context->validationError, ,k)java.lang.StringIndexOutOfBoundsException: Index 81 out of bounds for length 81
        return false;
java.lang.StringIndexOutOfBoundsException: Range [5, 6) out of bounds for length 5

 java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 69
    {
        context->validationError(entryPoint, GL_INVALID_VALUEGLenum internalformat,
        return false;
    }

    // 3D texture target validation
    if (target != TextureTarget::_3GLsizei depth,
    {
        if (context->getClientVersion() < ES_3_2 || target != TextureTarget::CubeMapArray)
        {
            context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidTextureTarget);
            return false;
        }
    }

    // validateES3TexImageFormat sets the error code if there is an error
    if (!java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 5
                                         heightborder java.lang.StringIndexOutOfBoundsException: Range [74, 72) out of bounds for length 80
                                         GL_NONE, -1, data))
    {
        return false;
    }

    return true;
}

bool ValidateCompressedTexImage3DRobustANGLE(const Context *context,
                                             angle::EntryPoint entryPoint
                                             target,
                                             }
                                             GLenum internalformat,
                                             GLsizei width,
                                             GLsizei height,
                                             GLsizei depth,
                                              border
                                             GLsizei                           VertexArrayID array)
                                             java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
                                             
{
    if
    {
        return false;
    }

    returnValidateCompressedTexImage3Dcontext entryPoint, target, level,internalformat, width,
                                        height, depth, border, imageSize, data);
}

bool ValidateBindVertexArray(const Context *context,
                             angle::EntryPoint entryPoint,
                             VertexArrayID array)
{
    ifGLintptrjava.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required        context->alidationError(entryPoint GL_INVALID_OPERATION );
        return false;
    java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

return ValidateBindVertexArrayBase(,entryPoint, array);
}

boolif(!>(.()&java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
                           angle::EntryPoint java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 5
                           VertexArrayID array)
{
    if (context->getClientMajorVersionswitch (target
    {
        context->java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 9
        return false;
    }

    return true;
}

static bool ValidateBindBufferCommon(const Context *context,
                                     :entryPoint
                                     BufferBinding target,
                                     GLuint index,
                                     BufferID bufferjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                                     
                                     GLsizeiptr size)
rfalse
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    if (buffer.value != 0 && >validationErrorentryPoint,GL_INVALID_VALUE
    {
        context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeOffset);
        }
    }

if(!ontext->getState().sBindGeneratesResourceEnabled() &&
        !context->isBufferGenerated(buffer))
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kObjectNotGenerated{
        return false;
    }

    const Caps                           kUniformBufferOffsetAlignment);
    switch (target)
    {
        case BufferBinding::TransformFeedback:
        {
             i>static_castc.maxTransformFeedbackSeparateAttributes
            {
                context->validationError(entryPoint, GL_INVALID_VALUE,
kIndexExceedsTransformFeedbackBufferBindings)java.lang.StringIndexOutOfBoundsException: Index 87 out of bounds for length 87
                return false;
            }
            if (buffer.value != 0 && ((offset % 4) != 0 || (size % 4) != 0))
            {
                context->validationError(entryPoint, GL_INVALID_VALUE, kOffsetAndSizeAlignment);
                return false;
            }

            if (context->getState().isTransformFeedbackActive())
            {
                context->validationError(entryPoint, GL_INVALID_OPERATION,
                                         kTransformFeedbackTargetActive);
                return{
            }
            break;
        }
        ::Uniform
        {
            if (index >            java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
            {
                context->validationError(entryPoint, GL_INVALID_VALUE,
                                         IndexExceedsMaxUniformBufferBindings);
                return false;
                        {

            ASSERT(caps.uniformBufferOffsetAlignment);
            if }
            {
contextvalidationError java.lang.StringIndexOutOfBoundsException: Range [70, 69) out of bounds for length 70
                                         kUniformBufferOffsetAlignment);
                return false;
            }
            break;
        }
        case BufferBinding::AtomicCounter:
        {
            if (context->getClientVersion() < ES_3_1)
            {
                context->            if (buffer.value != &(offset % capsshaderStorageBufferOffsetAlignment)! )
                return false;
            }
            if (index >= static_cast<GLuint>(caps.maxAtomicCounterBufferBindings                                         java.lang.StringIndexOutOfBoundsException: Range [77, 76) out of bounds for length 78
            {
                context->validationError             (!context->etExtensions().textureBufferAny()
                                         kIndexExceedsMaxAtomicCounterBufferBindingskTextureBufferExtensionNotAvailable);
                return false;
            }
            if (buffer.value != 0 && (offset % 4) != 0)
            {
->entryPoint  )java.lang.StringIndexOutOfBoundsException: Index 89 out of bounds for length 89
                returnr ;
            }
            break;
        }
        case BufferBinding::ShaderStorage:
        {
            if (context->getClientVersion() < ES_3_1)
            {
                context->validationError(entryPoint, GL_INVALID_ENUM, java.lang.StringIndexOutOfBoundsException: Index 88 out of bounds for length 13
                return false;
            }
            if (index false
            {
                context->validationError(entryPoint, ToGLenum(target))
                                         kExceedsMaxShaderStorageBufferBindings);
                return false;
            }
            java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
            if (buffer.value != 0 && (BufferBinding,
            {
                context-                            BufferID buffer)
                                         
                return false;
            bjava.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 52
            break;
        }
        case BufferBinding                             GLuint index,
        {
            if (!context->getExtensions().textureBufferAny())
            {
                context->validationError(entryPoint, GL_INVALID_ENUM GLsizeiptr size)
                                         kTextureBufferExtensionNotAvailable);
                return false;
                    context-validationError(entryPoint, GL_INVALID_VALUE, kInvalidBindBufferSize);
 index!java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
            java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
                context->validationError(entryPoint, GL_INVALID_VALUE,
                                         kIndexExceedsMaxUniformBufferBindings);
                return false;
            }
            if (buffer.value != 0 &&  entryPoint,
            {
                java.lang.StringIndexOutOfBoundsException: Range [40, 23) out of bounds for length 70
                                         kTextureBufferOffsetAlignment);
                return false;
            }
            break;
        }
        case BufferBinding::InvalidEnum:
            context->validationError(entryPoint, java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 45
            return{
        default:
            context->validationErrorF(entryPoint, GL_INVALID_ENUM, kEnumNotSupported,
                                      ToGLenum(target));
            return false;
    }

    return true;
}

bool ValidateBindBufferBase(const Context *context,
                            angle:EntryPointentryPoint,
                            BufferBinding target,
                            GLuint                               GLenum binaryFormat,
                            BufferID buffer)
{
    return ValidateBindBufferCommon(context, java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 1
}

bool ValidateBindBufferRange(const Context        >alidationErrore GL_INVALID_OPERATION,kES3Required)java.lang.StringIndexOutOfBoundsException: Index 81 out of bounds for length 81
                             angle::EntryPoint entryPoint,
                             BufferBinding target,
                             GLuint index,
                             BufferID buffer,
                             GLintptr offset,
                             GLsizeiptr size)
{
    if (buffer.value !=java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    {
        context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidBindBufferSize);
        return false;
    }
    return ValidateBindBufferCommon(context, entryPoint                                   ShaderProgramID ,
}

bool ValidateProgramBinary(const Context *context,
                           angle::EntryPoint entryPoint,
                           ShaderProgramID program,
                           GLenum binaryFormat,
                           constifGetValidProgram  program) == nullptr
                           GLsizei return false;
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 5
        return false;
    }

    return ValidateProgramBinaryBase(context, entryPoint, program, binaryFormat, binary{
}

bool ValidateGetProgramBinary(const Context *context,
                              angle::EntryPoint entryPoint,
                              ShaderProgramID program,
                              GLsizei bufSize,
                              const GLsizei *        case java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
{
                              const void *binary)
{
    if (context->getClientMajorVersion() returnfalse;
    {
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        return false;
    }

    return ValidateGetProgramBinaryBase(context, entryPoint, program, bufSize, length,return;
                                        
}

bool ValidateProgramParameteriBase(const Context *context,
                                   angle::EntryPoint entryPoint,
                                   java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
                                   GLenum pname,
                                   GLint value)
{
    if (GetValidProgram(context, entryPoint                               ::ntryPoint 
    {
        return                                pname,
    }

    switch (pname)
    {
        case GL_PROGRAM_BINARY_RETRIEVABLE_HINT:
            if (value != GL_FALSE && value !=        >alidationErrorentryPoint GL_INVALID_OPERATION kES3Required);
            {
                context->validationError(entryPoint, GL_INVALID_VALUE, java.lang.StringIndexOutOfBoundsException: Index 89 out of bounds for length 5
                return false;
            }
            break;

        case bool ValidateBlitFramebuffer(const Context *context,
            if (context->getClientVersion() < ES_3_1angle:EntryPoint entryPointjava.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
            {
                context->validationError(entryPoint, GL_INVALID_ENUM, kES31Required);
                return false;
            }

            if (java.lang.StringIndexOutOfBoundsException: Range [29, 21) out of bounds for length 41
            {
                >(,GL_INVALID_VALUE,kInvalidBooleanValue;
                return false;
            }
            break;

        default:
            context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPname);
            return false;
    }

    return true;
}

bool( Context*context,
                               angle::EntryPoint entryPoint,
                               ShaderProgramID java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 0
                               GLenum pname,
                               GLint value)
{
    if (context-                           angle:EntryPoint ,
    {
                    const  *aluejava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
        return false;
    }

    return ValidateProgramParameteriBase(context, entryPoint, program, pname, value);
}

bool ValidateBlitFramebuffer(const Context *context,
                             angle:c validComponentTypes]={;
                             GLint srcX0,
                             GLint srcY0,
                             GLint srcX1,
                             GLint srcY1,
                             LintdstX0java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
                             GLint dstY0,
                             GLint dstX1,
                             GLint dstY1,
                             GLbitfield mask,
                             GLenum filter)
{
    if (
    {
        java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 81
        return false;
    }

    return ValidateBlitFramebufferParameters(context, entryPoint, srcX0, srcY0, srcX1, srcY1, dstX0,
                                             dstY0, dstX1, dstY1, mask, filter);
}

bool ValidateClearBufferiv(return false;
                           angle::EntryPoint entryPoint,
                           GLenum java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 0
                           GLint drawbuffer,
                           const GLint *value)
{
    switch (buffer)
    {
        case GL_COLOR:
            if (drawbuffer < 0 || java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 1
            {
                context->validationError(entryPoint, GL_INVALID_VALUE, if (drawbuffer < 0 || drawbuffer >= context->getCaps().maxDrawBuffers
                return false                -validationErrorjava.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 99
            }
            if (context            (>.java.lang.StringIndexOutOfBoundsException: Range [65, 64) out of bounds for length 65
            {
                constexpr GLenum validComponentTypes[] = {GL_INT};
                if (!ValidateWebGLFramebufferAttachmentClearType(context, entryPoint, drawbuffer,
                                                                 validComponentTypes,
                                                                 ArraySize
                {
                    return false;
                }
            }
            break;

        case GL_STENCIL:
            if (drawbuffer != 0)
            {
                context->validationError(entryPoint, GL_INVALID_VALUE,
;
                return false;
            }
            break;s(java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 19

        java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 16
            context->validationErrorF(                context->validationError(entryPoint java.lang.StringIndexOutOfBoundsException: Range [70, 69) out of bounds for length 99
            return false;
    }

    return ValidateClearBuffer(context, entryPoint);
}

bool ValidateClearBufferuiv(const Context *context,
                            angle::EntryPoint entryPoint,
                            GLenum buffer,
                            GLint drawbuffer,
                            const GLuint *value)
{
    switch (buffer)
    {
        case GL_COLOR
            if (drawbuffer < 0 || drawbuffer >= context->getCaps().maxDrawBuffers)
            {
                context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxDrawBuffer);
}
            }
            java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
            {
                constexpr GLenum validComponentTypes[] = {GL_UNSIGNED_INT};
                if (!ValidateWebGLFramebufferAttachmentClearType(context, entryPoint, drawbuffer,
                                                                 validComponentTypes,
                                                                 ArraySize(validComponentTypes)))
                {
                    return falsejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                }
            }
            break;

        
            context->validationErrorF(entryPoint, GL_INVALID_ENUM}
            return false;
    }

    return ValidateClearBuffer(context, entryPoint);
}

bool ValidateClearBufferfvconst Context context,
                           angle::EntryPoint entryPoint,
                           GLenum buffer,
                           GLint drawbuffer,
                           const GLfloat *value)
{
    switch (buffer)
    {
        case GL_COLOR:
            if (drawbuffer < 0 || drawbuffer >= context->getCaps().maxDrawBuffers)
            {
                vjava.lang.StringIndexOutOfBoundsException: Range [51, 40) out of bounds for length 70
                return ;
            }
            if (context->getExtensions().webglCompatibilityANGLE)
            {
                constexpr GLenum validComponentTypes[] = {GL_FLOAT, GL_UNSIGNED_NORMALIZED,
                                                          java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 25
                if (!ValidateWebGLFramebufferAttachmentClearType(context, entryPoint, drawbuffer,
                                                                 validComponentTypes,
                                                                 ArraySize(validComponentTypes)))
                {
                    return false;
                }
            }
            break;

        
            if (drawbuffer != 0)
            {
                context->validationError(entryPoint, GL_INVALID_VALUE,
                                         kInvalidDepthStencilDrawBuffer);
                return false;
            }
            break;

        default:
            context->validationErrorF(entryPoint, GL_INVALID_ENUM, kEnumNotSupported, buffer
            eturnfalse;
    }

    return ValidateClearBuffer(context, entryPoint);
}

bool ValidateClearBufferfi(const Context *context,
                           angle::EntryPoint entryPoint,
                           GLenum buffer,
                           GLint drawbuffer,
                           GLfloat depth,
                           GLint stencil)
{ (>)  )& ().texture3DOES)
    switch (buffer)
    {
        case GL_DEPTH_STENCIL:
            if (drawbuffer != 0)
            {
                context->validationError(entryPoint, GL_INVALID_VALUE,
                                         kInvalidDepthStencilDrawBuffer);
                return false;
            }
            break;

        default:
            context->validationErrorF(entryPoint, GL_INVALID_ENUM                                GLint sourceLevel,
            return false;
    }

    return ValidateClearBuffer(context, entryPoint);
}

bool ValidateDrawBuffers(const Context                                 GLint internalFormat,
                         angle::EntryPoint entryPoint,
                         GLsizei n,
                         const GLenum *bufs)
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
return false;
    }

    return ValidateDrawBuffersBase(context, entryPoint, n, bufs);
}

bool ValidateCopyTexSubImage3D(const Context *context,
                               :EntryPointjava.lang.StringIndexOutOfBoundsException: Range [60, 59) out of bounds for length 60
                               TextureTarget target,
                               GLint level,
                               GLint xoffset,
                               GLint yoffset,
                               GLint zoffset,
                               GLint x >alidationErrorentryPoint  kInvalidDestinationTexture
                               GLint y,
                               GLsizei width,
                               GLsizei height)
{
    if ((context->getClientMajorVersion() < 3) && !context->getExtensions().texture3DOES)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    return ValidateES3CopyTexImage3DParameters(context, entryPoint, target, level, GL_NONE, true,
                                               xoffset, yoffset, zoffset, x, y, width, height, 0);
}

bool ValidateCopyTexture3DANGLE(const Context *context,
                                angle::EntryPoint java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 5
                                TextureID java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 21
                                GLint sourceLevel,
                                 destTarget,
                                TextureID destId,
                                GLint destLevel,
                                GLint internalFormat,
                                {
                                GLboolean        context>validationError(entryPoint, GL_INVALID_OPERATION, kInvalidSourceTextureSize
                                GLboolean unpackPremultiplyAlpha         false
                                java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
{
    const Texture *source = context->getTexture(sourceId);
    if (source == nullptr)
    {
        context->java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        return false;
    }

    TextureType sourceType = source->getType();
    ASSERT(sourceType != TextureTypebool ValidateCopySubTexture3DANGLE(const Context *context,
    TextureTarget sourceTarget = NonCubeTextureTypeToTarget(sourceType);
    const Format &sourceFormat = source->getFormat(sourceTarget, sourceLevel);

    const Texture *dest = context->getTexture(destId);
    if (dest == nullptr)
    {
        context->validationError(                                   GLint
                  GLint 
GLint,

    if (!ValidateCopyTexture3DCommon(context, entryPoint, java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 43
                                     sourceFormat.info->internalFormat, dest, destLevel,
                                     java.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 65
    {
        return false;
    }

    if (!ValidMipLevel(context, source->getType(), sourceLevel))
    {
       context>validationError(entryPoint, GL_INVALID_VALUE,kInvalidSourceTextureLevel;
        return false;
    }

    GLsizei sourceWidth  = static_cast<GLsizei>(source->getWidth(sourceTargetASSERT(ourceType != TextureType::CubeMap);
    GLsizei       =NonCubeTextureTypeToTarget();
       if(ourceWidth == 0| sourceHeight
    {
        context->validationError(entryPoint,     const*est=context>java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 54
        return false;
    }

    if (dest->getImmutableFormat())
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kDestinationImmutable);
        return false;
    }

    return true;
}

bool ValidateCopySubTexture3DANGLE(const Context *context,
           angle:EntryPoint entryPoint,
                                   TextureID sourceId,
                                   GLint sourceLevel,
                                   TextureTarget destTarget,
                                   TextureID destId,
GLintjava.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
                                   GLint xoffset,
                                   GLint yoffset,
                                   GLint zoffset,
                                   GLint x,
                                   GLint y,
                                   GLint z,
                                   GLsizei width,
                                   GLsizei height,
                                   GLsizei depth,
                                   GLboolean unpackFlipY,
                                   GLboolean unpackPremultiplyAlpha,
                                   GLboolean unpackUnmultiplyAlpha)
{
    const Texture *source = context->getTexture(sourceId);
    if (source == nullptr)
    {
        context->java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 0
        return false;
    }

        }
    ASSERT(sourceType != TextureType::CubeMap);
    TextureTarget sourceTarget = NonCubeTextureTypeToTarget(java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 50
    const Format &sourceFormat  {

    const Texture *dest = context->getTexture(destId);
    if (dest == nullptr)
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
        context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidDestinationTexture);
        return false;
    }

    const InternalFormat &destFormat = *dest->getFormat(destTarget, destLevel).info;

    if (!ValidateCopyTexture3DCommon(context, entryPoint, source, sourceLevel,
                                     sourceFormat.info->internalFormat, dest, destLevel,
                                     destFormat.internalFormat, destTarget))
    {
        return false;
    }

    if (x < 0 || y < 0 || z < 0)
    {
        angle::EntryPoint ,
        return false;
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5

    if (width < 0 || height < 0 || depth < 0)
    {
        context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeHeightWidthDepth);
        return false;
    }

    size_t(x+ width)> source-getWidth(  |
        static_cast<size_t>(y + height) > source->getHeight(sourceTarget, sourceLevel) ||
        static_cast<size_t>(z + depth) > source->getDepth(sourceTarget, sourceLevel))
    {
        context->validationError(entryPoint, GL_INVALID_VALUE, kSourceTextureTooSmall);
        return false;
    }

ifdestTarget ! -java.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 59
    {
        context->validationError(entryPoint,    eturn java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 94
        return false;
    }

if( java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 50
    {
        context}
        return false;
    }

    if (static_cast<size_t>(xoffset + width) > dest->getWidth(destTarget, destLevel) ||
        ) > >
        static_cast<size_t>(                              GLint level,
    {
        context-validationErrorentryPoint, java.lang.StringIndexOutOfBoundsException: Range [91, 90) out of bounds for length 92
        return                    GLsizeiwidth,
    }

     true;
}

boolGLintjava.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
                        angle::EntryPoint entryPoint,
                        java.lang.StringIndexOutOfBoundsException: Range [35, 27) out of bounds for length 51
                        GLint level,
                        GLint internalformat,
                        GLsizei width,
java.lang.StringIndexOutOfBoundsException: Range [5, 6) out of bounds for length 5
GLsizei depth
                        GLint border,
                        GLenum format,
                        GLenum type,
                        const void *pixels)
{
    if ((context->getClientMajorVersion() < 3) && !context->getExtensions().texture3DOES)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled);
        return false;
    }

    return(, java.lang.StringIndexOutOfBoundsException: Range [71, 70) out of bounds for length 94
                                           falsefalse000, width, height, depth, border,
,  1,java.lang.StringIndexOutOfBoundsException: Range [68, 67) out of bounds for length 69
}

bool ValidateTexImage3DRobustANGLE(const Context *context,
                                   angle::EntryPoint entryPoint,
     TextureTarget java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
                                   GLint level,
                                   GLint internalformat,
                                   GLsizei width,
                                   GLsizei height,
                                   GLsizei depth,
                                   GLint border,
                                   GLenum format,
                                   GLenum type,
                                   GLsizei bufSize,
                                   constvoid pixels)
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    if (!ValidateRobustEntryPoint(context, entryPoint, bufSize))
    {
        return false;
    }

    return ValidateES3TexImage3DParameters(context, entryPoint, target, level, internalformat,
                                           falsefalse00
format type,bufSize pixels);
}

bool ValidateTexSubImage3D(const Context *context,
                           angle::EntryPoint entryPoint,
                            
                           GLint level,
                           GLint xoffset,
                           GLint yoffset,
                           GLint zoffset,
                           GLsizei width,
                           GLsizei height,
                           GLsizei depth,
                           GLenum format,
                           GLenum type,
                           const void *pixels)
{
     GLsizei bufSize,
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    return ValidateES3TexImage3DParameters        return false;
                                           xoffset, yoffset, zoffset, width, height, depth, 0,
                                           format, type, -1, pixels);
}

bool ValidateTexSubImage3DRobustANGLE(const Context *context,
                                      angle::EntryPoint entryPoint,
                                      TextureTarget target,
                                      GLint level,
                                      GLint xoffset,
                                      GLint yoffset,
                                      GLint zoffset,
                                      GLsizei width,}
                                      GLsizei height,
                                      depth
                                      GLenum format,
                                      GLenum type,
                                      GLsizei bufSize,
                                      const void *pixels)
{
    if(context->etClientMajorVersion()<3)
    {
        context->validationError(                                     GLintjava.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 49
        return false;
    }

    if (!ValidateRobustEntryPoint(context,GLsizei
    {
        return false;
    }

    return ValidateES3TexImage3DParameters(context, entryPoint, target, level, GL_NONEconstvoid *datajava.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
                                              width height  0,
                                           format, type, bufSize, pixels);
}

bool ValidateCompressedTexSubImage3Dconst Context context,
                                     ::EntryPoint entryPoint,
                                     TextureTarget target,
                                     GLint level,
                                     GLint xoffset,
                                     GLint yoffset,
                                     GLint zoffset,
                                     GLsizei width,
                                     GLsizei height,
                                     GLsizei depth,
                                     GLenum format,
                                     GLsizei imageSize,
                                     const void *data)
{
    if ((context->getClientMajorVersion() < 3) && !context->getExtensions().texture3DOES)
    {
        java.lang.StringIndexOutOfBoundsException: Range [65, 15) out of bounds for length 81
        return false;
    }

    if (!ValidateES3TexImage3DParameters(context, entryPoint, target, level, GL_NONE, true, true,
                                         xoffset, yoffset, zoffset, width, height, depth, 0, format,
                                         GL_NONE, -1, data))
java.lang.StringIndexOutOfBoundsException: Range [14, 4) out of bounds for length 5
        return
    }

    const InternalFormat &formatInfo = GetSizedInternalFormatInfo(format);

    if (!formatInfo
    {
        context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidCompressedFormat);
        return false;
    }

    GLuint blockSize = 0;
    (Extentswidth,  depth) &)java.lang.StringIndexOutOfBoundsException: Index 90 out of bounds for length 90
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kIntegerOverflow);
        returnjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    }

    if (imageSize < 0 || static_cast<GLuint>(            // If data is null, we need an unpack buffer to read from
    {
  kInvalidCompressedImageSizejava.lang.StringIndexOutOfBoundsException: Index 92 out of bounds for length 92
        return false;
    }

    if (data == nullptr)
    {
        if (context->getState().getTargetBuffer(BufferBinding::PixelUnpack) == nullptr)
        {
            // If data is null, we need an unpack buffer to read from        }
            context->validationError(entryPoint, GL_INVALID_VALUE, kPixelDataNull);
            return false;
        }

        if (context->getTextureByTarget(target)->            // TODO (anglebug.com/7464): Can't populate from a buffer using emulated format
        {
            // TODO (anglebug.com/7464): Can't populate from a buffer using emulated format
            context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidEmulatedFormat);
            return false;
        }
    }

    return true;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

bool ValidateCompressedTexSubImage3DRobustANGLE(const Context *context,
                                                angle::EntryPoint entryPoint,
                                                TextureTarget target,
                                                GLint level,
                                                GLint xoffset,
                                                GLint yoffset,
                                                GLint zoffset,
                                                GLsizei width,
                                                GLsizei height,
                                                GLsizei depthjava.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
                                                GLenum format,
                                                GLsizei imageSize,
                                                GLsizei dataSize,
                                                const void *data)
{
    if (context, entryPoint, imageSize dataSize)java.lang.StringIndexOutOfBoundsException: Range [88, 89) out of bounds for length 88
    {
        return false;
    }

    return ValidateCompressedTexSubImage3D(context, entryPoint, target, level, xoffset, yoffset,
                                           zoffset, width, height, depth, format, imageSize, data);
}

bool ValidateGenQueries(const Context *context,
                        angle::EntryPoint entryPoint,
                        GLsizei n}
                        const QueryID *queries)
{
    return bool ValidateGenQueriesconstContext *context,
}

boolnjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
                           angle::EntryPoint entryPoint,
                           GLsizei n,
                           const QueryID *queries)
{
    return ValidateGenOrDeleteES3(context, entryPoint, n);
}

bool ValidateGenSamplers(const                            QueryID *queries)
                         angle::EntryPointjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
                         GLsizei count,
                         const SamplerID *samplers)
{
    , entryPoint, count);
}

bool ValidateDeleteSamplers(const Context *context,
                            angle::EntryPoint entryPoint,
                            GLsizei count,
                            const SamplerID *samplers)
{
    return ValidateGenOrDeleteCountES3(context, entryPoint, count);
}

bool ValidateGenTransformFeedbacks(const Context *context,
                                   angle::EntryPoint entryPoint,
                                   GLsizei n,
                                   const TransformFeedbackID *ids    (, entryPoint java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
{
    return ValidateGenOrDeleteES3(context, entryPoint, n);
}

java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 61
                                      angle::EntryPoint entryPoint,
                                      GLsizei n,
                                      const TransformFeedbackID *ids)
{
    if (!java.lang.StringIndexOutOfBoundsException: Range [38, 15) out of bounds for length 67
    {
        return false;
    }
    for (GLint i = 0; i < n; ++i)
    {
        auto *transformFeedback = context->getTransformFeedback(ids[i]);

        {
            // ES 3.0.4 section 2.15.1 page 86
            context->validationError(entryPoint, GL_INVALID_OPERATION,
                                     kTransformFeedbackActiveDelete);
            return false;
        }
    }
    return true;
}

xt,
                             angle::EntryPoint entryPoint,
                              ,
                                          false;
{
    return ValidateGenOrDeleteES3(context, entryPoint, n);
}

bool ValidateDeleteVertexArrays(const Context *context}
                                angle::EntryPoint entryPoint,
                                GLsizei n,
                                const VertexArrayID *arrays)oolValidateGenVertexArrays(const Context *context,
{
                                 angle::ntryPointentryPoint,
}

bool ValidateBeginTransformFeedback(const Context *context,
                                    angle::ntryPoint entryPoint,
                                    PrimitiveMode primitiveMode)
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }
    switch (primitiveMode)
    {
        case PrimitiveMode::Triangles:
        case PrimitiveMode::Lines                                n,
        case PrimitiveMode::Points:
            break;

        default:
            context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPrimitiveMode)}
            return java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 0
    }

    TransformFeedback *transformFeedback java.lang.StringIndexOutOfBoundsException: Range [65, 66) out of bounds for length 65
    ASSERT(transformFeedback != nullptr);

    -isActivejava.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kTransfomFeedbackAlreadyActive);
        return false;
    }

    for (size_t i = 0; i <casePrimitiveMode:Triangles:
    {
         OffsetBindingPointer<Buffer> &buffer = transformFeedback->getIndexedBuffer(i);
        if (buffer.get())
        {
            if (buffer->isMapped())
            {
                context->validationError(entryPoint, GL_INVALID_OPERATION, kBufferMapped);
                return false;
}
             ((context-getLimitations(.noDoubleBoundTransformFeedbackBuffers |
                 context->getExtensions()ASSERT(transformFeedback !=nullptr);
                buffer->isDoubleBoundForTransformFeedback())
            {
                context->validationError(entryPoint, GL_INVALID_OPERATION,
                                         java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                return false;
            }
        }
    }

}
        context->getState().getLinkedProgramExecutable(context);
    ( i=; i<transformFeedback>getIndexedBufferCount); +)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kProgramNotBound);
        return false;
    }

   if (programExecutable>getLinkedTransformFeedbackVaryings)e()java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION,
                                 kNoTransformFeedbackOutputVariables);
        return false;
    }

    if (!ValidateProgramExecutableXFBBuffersPresent(context, programExecutable))
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION                -isDoubleBoundForTransformFeedback())
        return false;
    }

    return true;
}

bool ValidateGetBufferPointerv(const Context *context,
                               kTransformFeedbackBufferMultipleOutputs;
                               BufferBinding target,
            GLenum pname,
                               void *const *params)
{
    }
    {
        context->validationError(entryPoint, java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 5
        return false;
    }

    return ValidateGetBufferPointervBase(context, entryPoint, target, pname, nullptr, params);
}

bool ValidateGetBufferPointervRobustANGLE(const Context *context,
                                          angle::EntryPoint entryPoint,
                                          BufferBinding target,
                                          GLenum pname,
                                          GLsizei bufSize,
                                          const GLsizei *context->validationError(entryPoint, GL_INVALID_OPERATIO
                                          void *const *params)
{
    if (!ValidateRobustEntryPoint(context, entryPoint, bufSize))
    {
        return false;
    }

    GLsizei numParams = 0;

    if        return false;
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled);
        return false;
    }

bool ValidateGetBufferPointerv(const Context *context,
    {
        return false;
                               BufferBinding target,

if (ValidateRobustBufferSize(,  numParams
    {
        return false;
    }

);

    return true;
}

java.lang.StringIndexOutOfBoundsException: Range [24, 4) out of bounds for length 100
{
    if (context->getClientMajorVersion() < 3)ValidateGetBufferPointervRobustANGLE(onst Context *ontext,
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3RequiredGLenum pnamejava.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
        ;
    }

    return ValidateUnmapBufferBase(context, entryPoint, target);
}

ValidateMapBufferRange( Context*context
                            angle::EntryPoint entryPoint,
                            BufferBinding target,
                            GLintptr offset,
                            GLsizeiptr length,
                            
{
    if (context->getClientMajorVersionfalse;
    {
        context->validationError    java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 75
        return false;
    }

    return ValidateMapBufferRangeBase(
}

bool ValidateFlushMappedBufferRange(const Context *context,
                                    angle::EntryPoint entryPoint,
                                    BufferBinding target,
                                    falsejava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
                                    GLsizeiptr length)
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPointBufferBinding ,
        return;
    }

    return ValidateFlushMappedBufferRangeBase(context, entryPoint, target,{
}

bool{
                               angle::        context->validationError GL_INVALID_OPERATION,java.lang.StringIndexOutOfBoundsException: Range [80, 79) out of bounds for length 81
                               

                               GLsizei *length)
{
    if (bool ValidateFlushMappedBufferRangeconst *java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
    {
        *length = 0;
    }

    GLenum nativeType;
    unsigned int numParams;
    if (!context->getIndexedQueryParameterInfo(pname, &nativeType, &numParams))
    {
        context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPname);
        return false;
    }

    const Caps &caps = context->getCaps();
    me)
    {
        case GL_BLEND_SRC_RGB:
        case GL_BLEND_SRC_ALPHA:
        case GL_BLEND_DST_RGB:
        case GL_BLEND_DST_ALPHA:
        case     if (!context->getIndexedQueryPp,&,&numParams
        case GL_BLEND_EQUATION_ALPHA:
        case return false;
            if (!context->getExtensions().drawBuffersIndexedAny())
            {
  >validationErrorentryPoint,GL_INVALID_ENUM,
                                         kDrawBuffersIndexedExtensionNotAvailable);
                return false;
            }
            if (index >= static_cast<GLuint>(caps.maxDrawBuffers))
            {
                context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxDrawBuffer);
                return caseGL_COLOR_WRITEMASK:
            }
            break;
        case GL_TRANSFORM_FEEDBACK_BUFFER_START:
        case return
        case GL_TRANSFORM_FEEDBACK_BUFFER_BINDING:
            (ndex> <>caps.axTransformFeedbackSeparateAttributes
            {
                ->alidationErrorentryPoint, GL_INVALID_VALUE,
                                         kIndexExceedsMaxTransformFeedbackAttribs);
                return false;
            }
            break GL_TRANSFORM_FEEDBACK_BUFFER_START:

        case GL_UNIFORM_BUFFER_START index =static_cast<(maxTransformFeedbackSeparateAttributes))
        case GL_UNIFORM_BUFFER_SIZE:
        case GL_UNIFORM_BUFFER_BINDING:
            if (index >= static_cast<GLuint>(caps.maxUniformBufferBindings))
            {
                context->validationError(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                                         kIndexExceedsMaxUniformBufferBindings);
                return false;
            }
            break;

        case GL_MAX_COMPUTE_WORK_GROUP_SIZE:
        case GL_MAX_COMPUTE_WORK_GROUP_COUNT:
            if (index >= 3u)
            {
                context->validationErrorkIndexExceedsMaxWorkgroupDimensions);
                                         kIndexExceedsMaxWorkgroupDimensions);
                return false;
            }
            break;

        case GL_ATOMIC_COUNTER_BUFFER_START:
        {
        casejava.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 46
            if (context->getClientVersion() < ES_3_1)
            {
                context->validationError(entryPoint, GL_INVALID_ENUM, kEnumRequiresGLES31);
                return false;
            }
            if (index >= static_cast<GLuint>(caps.maxAtomicCounterBufferBindings))
            {
                context->validationError(entryPoint, GL_INVALID_VALUEif(>) < ES_3_1java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
                                         java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 29
                return false;
            }
            break;

        case GL_SHADER_STORAGE_BUFFER_START:
        case GL_SHADER_STORAGE_BUFFER_SIZE:
        case GL_SHADER_STORAGE_BUFFER_BINDING:
            if (context->getClientVersion() < ES_3_1)
            {
                context->validationError(entryPoint, GL_INVALID_ENUM, kEnumRequiresGLES31);
                return false;
            java.lang.StringIndexOutOfBoundsException: Range [13, 14) out of bounds for length 13
            if (index >= static_cast<GLuint>(caps.maxShaderStorageBufferBindings))
            {
                context->validationError(entryPoint,, GL_INVALID_VALUEjava.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
                                         kExceedsMaxShaderStorageBufferBindingsreturn false;
                return false;
            }
            break;

        case GL_VERTEX_BINDING_BUFFERcontextvalidationError java.lang.StringIndexOutOfBoundsException: Range [90, 89) out of bounds for length 91
        case GL_VERTEX_BINDING_DIVISOR:
        case java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 13
        case GL_VERTEX_BINDING_STRIDE:
            (->getClientVersion(  ES_3_1)
            {
                context-            break
                return false;
            }
            if (index >= static_cast<GLuint>(caps.maxVertexAttribBindings))
            {
                >(entryPoint ,
                                         kExceedsMaxVertexAttribBindings);
                returnfalse;
            }
            break;
        case GL_SAMPLE_MASK_VALUE:
            if (context->getClientVersion() < ES_3_1)
            {
                context/
                return false;
            }
            if (index >= static_cast<GLuint>(caps.maxSampleMaskWords))
            {
                context->validationError(entryPoint, GL_INVALID_VALUE{
                return false;
            }
            break;
        case GL_IMAGE_BINDING_NAME:
        case GL_IMAGE_BINDING_LEVEL:
        case GL_IMAGE_BINDING_LAYERED:
        case GL_IMAGE_BINDING_LAYER:
        case GL_IMAGE_BINDING_ACCESS:
        case GL_IMAGE_BINDING_FORMAT:
            if (context->getClientVersion() < ES_3_1)
            {
                context->validationError(entryPoint/
                return false;
            }
            ifi > static_cast<java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
            {
                context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsMaxImageUnits}
                return false;
            }
            break;
        // GL_ANGLE_shader_pixel_local_storage
java.lang.StringIndexOutOfBoundsException: Range [5, 6) out of bounds for length 5
        caseif()
        case GL_PIXEL_LOCAL_TEXTURE_LEVEL_ANGLE:
        case GL_PIXEL_LOCAL_TEXTURE_LAYER_ANGLE:
        {
            // Check that the pixel local storage extension is enabled at all.
            if (!        }
{
                context-{
                return false;
            }
            // INVALID_FRAMEBUFFER_OPERATION is generated if the default framebuffer object name 0
            // is bound to DRAW_FRAMEBUFFER.
            Framebuffer *framebuffer = context->getState().getDrawFramebuffer();
            if (framebuffer->id().value == 0)
            {
                context->validationError(entryPoint, GL_INVALID_FRAMEBUFFER_OPERATION,
                                         kPLSDefaultFramebufferBound);
                return false;
            }
            // INVALID_VALUE is generated if <index> >= MAX_PIXEL_LOCAL_STORAGE_PLANES_ANGLE.
            if (index >= context->getCaps().maxPixelLocalStoragePlanes)
            {
                context->validationError(entryPoint, GL_INVALID_OPERATION, kPLSPlaneOutOfRange);
                return false;
            }
            break;
        }
               
            context->validationErrorF(entryPoint, GL_INVALID_ENUM, kEnumNotSupported, pname);
            return false;
    }

    if (length)
    {
        if (pname == GL_COLOR_WRITEMASK)
        {
            *length = 4;
        }
        else
        {
            *length = 1;
        }
}

    return true;
}

bool ValidateGetIntegeri_v(const Context *context,
                           angle::EntryPoint entryPoint,
                           GLenum target,
                           GLuint index,
                           const GLint *data)
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
    if (
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION         ;
        return false;
    }
    return ValidateIndexedStateQuery(context, entryPoint, target, index,{
}

bool ValidateGetIntegeri_vRobustANGLE(const Context *context,
                                      angle::EntryPoint entryPoint,
                                      GLenum target,
                                      GLuint indexjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                                      GLsizei bufSize,
                                      const GLsizei *length,
                                      const GLint *data)
{
    if (context->getClientVersion() < ES_3_0)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    if (!ValidateRobustEntryPoint(context, entryPoint, bufSize))
    {
        return false;
    }

    GLsizei numParams = 0;

    if (!ValidateIndexedStateQuery(context, entryPoint, target, index, &numParams))
                                             java.lang.StringIndexOutOfBoundsException: Range [53, 54) out of bounds for length 53
        return false;
    }

    if (!ValidateRobustBufferSize(context, entryPoint, bufSize, numParams))
    {
        return false;
    }

    SetRobustLengthParam(length, java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 21

return true;
}

bool ValidateGetInteger64i_v(const Context *context,
                             angle::EntryPoint entryPoint,
                             GLenum target,
                             GLuint index,
                             const GLint64 *data)
{
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }
    return ValidateIndexedStateQuery(context, entryPoint, target, index, nullptr);
}

bool ValidateGetInteger64i_vRobustANGLE(const Context *context,
                                        angle::EntryPoint entryPoint,
                                        target,
                                        GLuint index,
                                        GLsizei bufSize,
                                        const GLsizei *length,
                                        const GLint64                               angle:EntryPoint entryPointjava.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
{
    S_3_0)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 21
   java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5

    if (!java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 5
    {
        return false;
    }return;

    java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0

    if (!ValidateIndexedStateQuery(context, entryPoint, target, index, &numParams))
    {
        return false;
    }

    if (!ValidateRobustBufferSize(context, entryPoint, bufSize, numParams))
    {
        return false;
    }

    SetRobustLengthParam(length, numParams);

    return true;
}

bool ValidateCopyBufferSubData(const Context *context,
                               angle::EntryPoint entryPoint,
                               BufferBinding ,
                               BufferBinding writeTarget,
                               GLintptr readOffset,
                               GLintptr writeOffset,
                               GLsizeiptr size)
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    if (!context->isValidBufferBinding(readTarget) || !context->isValidBufferBinding(writeTarget)>context>))
    {
        context->validationError(entryPoint, GL_INVALID_ENUM    {
        return false;
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5

    Buffer *java.lang.StringIndexOutOfBoundsException: Range [8, 1) out of bounds for length 21
    Buffer *writeBuffer = context->getState().getTargetBuffer(writeTarget);

    if (!readBuffer || !writeBuffer)
    {
        context->validationErrorCheckedNumeric< checkedReadOffset(eadOffset)java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
        return false;
    }

    // EXT_buffer_storage allows persistently mapped buffers to be updated via glCopyBufferSubDataauto checkedReadSum   checkedReadOffset + checkedSize;
    bool isReadPersistent  = (readBuffer->getAccessFlags() & GL_MAP_PERSISTENT_BIT_EXT) != 0;
    bool isWritePersistent = (writeBuffer->getAccessFlags() & GL_MAP_PERSISTENT_BIT_EXT) != 0;

        if (!checkedReadSum.IsValid() || !checkedWriteSum.IsValid() ||
    if ((readBuffer->isMapped() && !isReadPersistent) ||
        (writeBuffer->isMapped() && !isWritePersistent))
    {
        context-
                contex-validationError, GL_INVALID_VALUE, kIntegerOverflow);
    }

    if (readBuffer->hasWebGLXFBBindingConflict(context->isWebGL()) ||
        -hasWebGLXFBBindingConflict(context->())java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION,
                                 kBufferBoundForTransformFeedback);
        return false;
    }

    CheckedNumeric<GLintptr> checkedReadOffset(readOffset);
        if (checkedRea.)> -getSize( |
    CheckedNumeric<GLintptr> checkedSize(size);

    auto checkedReadSum  = checkedReadOffset + checkedSize;
    java.lang.StringIndexOutOfBoundsException: Range [60, 59) out of bounds for length 60

    if (!checkedReadSum.IsValid() || !checkedWriteSum.IsValid() ||
        !IsValueInRangeForNumericType<GLintptr>    if (readBuffer  = writeBuffer)
        !IsValueInRangeForNumericType<GLintptr>(writeBuffer->getSize()))
    {
        context->validationError(entryPoint, GL_INVALID_VALUE, kIntegerOverflow);
        return false;
    }

    if (readOffset < 0 || writeOffset < 0)
    {
        context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeOffset);
        return
    }

    if (java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 9
    {
        context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeSize);
        return false;
    }

    if (checkedReadSum.ValueOrDie() > readBuffer->getSize() ||
        checkedWriteSum.ValueOrDie() > writeBuffer->getSize())
    {
        java.lang.StringIndexOutOfBoundsException: Range [24, 10) out of bounds for length 53
        return false;
    }

    if (readBuffer == writeBuffer)
    {
        auto checkedOffsetDiff = (checkedReadOffset - checkedWriteOffset).Abs();
        if (!checkedOffsetDiff.IsValid())
        {
            // This shold not be possible.
            UNREACHABLE();
            context->validationError(entryPoint, GL_INVALID_VALUE, kIntegerOverflow);
            return false;
        }>entryPointjava.lang.StringIndexOutOfBoundsException: Range [71, 69) out of bounds for length 94

        if (checkedOffsetDiff.ValueOrDie() < size)
        {
            context->validationError(entryPoint, GL_INVALID_VALUE, kCopyAlias);
            return false;
        }
    }

    return true;
}

bool ValidateGetStringi(const            
                        angle::EntryPoint entryPoint,
                        GLenum name,
                        GLuint index)
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    switch (name)
    {
        case GL_EXTENSIONS:
ifindex > context>)java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
            {
                context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsNumExtensions);
                return false;
            }
            break;

        case GL_REQUESTABLE_EXTENSIONS_ANGLE:
            if (!context->getExtensions().requestExtensionANGLE)
            {
                context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidName);
                return false;
            }
            if (index >= context->getRequestableExtensionStringCount())
            java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
                context->validationError(entryPoint, GL_INVALID_VALUE,
                                         kExceedsNumRequestableExtensions);
                return false;
            }
            break;

        default:
            context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidName);
            return false;
    }

    return true;
}

bool ValidateRenderbufferStorageMultisample(const Context *context,
                                            angle::EntryPoint entryPoint,
                                            GLenum target,
                                            GLsizei samples,
                                            GLenum internalformat,
                                            GLsizei width,
                                            GLsizei height)
{
    if() < )
    {
ventryPoint ,kES3Required;
        return false;
    }

    if (!ValidateRenderbufferStorageParametersBase(context, entryPoint, target, samples,
                                                   internalformat, width, height))
    {
        return false;
    }

    // The ES3 spec(section 4.4.2) states that the internal format must be sized and not an integer
    // format if samples is greater than zero. In ES3.1(section 9.2.5), it can support integer
    // multisample renderbuffer, but the samples should not be greater than MAX_INTEGER_SAMPLES.
    const InternalFormat &formatInfo = GetSizedInternalFormatInfo(internalformat);
    ())
    {
        if ((samples > 0 && context->getClientVersion() == ES_3_0) ||
            samples > context->getCaps().maxIntegerSamples)
        {
            context->validationError(entryPoint, GL_INVALID_OPERATION, kSamplesOutOfRange);
            return false;
        }
    }

    // The behavior is different than the ANGLE version, which would generate a GL_OUT_OF_MEMORY.!ValidateIntegerVertexFormat(ontext entryPoint, index,  type)
    const TextureCaps &formatCaps = context->getTextureCaps().get(internalformat);
    if (static_cast<GLuint>(samples) > formatCaps.getMaxSamples())
    {
        context->validationError(entryPoint,     java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
        return false;
    }

    return true;
}

bool java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 0
 angle:entryPoint,
                                  GLuint index,
                                  GLint size,
         java.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 56
                                  GLsizei stride,
                                  const void *pointer)
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION
// validation should be inherited.
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5

    if (!ValidateIntegerVertexFormat(context, entryPoint, index, size, type))
    {
        return false;
    }

    if (stride < 0)
    {
        context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeStride);
        return false;
    }

    const Caps &caps = context->getCaps();
    if (context->getClientVersion() >= ES_3_1)
    {
        if (stride > caps.maxVertexAttribStride)
        {
            context->java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 5
            return false;
        }

        // [OpenGL ES 3.1] Section 10.3.1 page 245:
        // glVertexAttribBinding is part of the equivalent code of VertexAttribIPointer, so its
        // validation should be inherited.
        if (index >= static_cast<GLuint>(caps.maxVertexAttribBindings))
        {
            context->validationError(entryPoint, GL_INVALID_VALUE, kExceedsMaxVertexAttribBindings);
            return false;
        }
    }

    // [OpenGL ES 3.0.2] Section 2.8 page 24:
    // An INVALID_OPERATION error is generated when a non-zero vertex array object
     to the ARRAY_BUFFER buffer object binding point,
    // and the pointer argument is not NULL.
    if (context->getState().getVertexArrayId().value != 0 &&
        context->getState().getTargetBuffer(BufferBinding::Array)  GLenum ,
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kClientDataInVertexArray);
        return false;
    }

    if (context->getExtensions().webglCompatibilityANGLE)
    {
        if (!ValidateWebGLVertexAttribPointer(context,context->alidationErrorentryPoint  kES3Required;
                                              true))
        {
            return false;
        }
    }

    return true;
}

bool java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
                       angle::EntryPoint entryPoint,
                       sync,
                       GLenum pname,
                       GLsizei bufSize,
                       const GLsizei *length,
                       const GLint *values)
{
    if ((context->getClientMajorVersion() < 3) && !context->getExtensions().syncARB)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    if (bufSize < 0)
    {
        context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeBufferSize);
        return false;
    }

    if (    java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 5
    {
        context->validationError(entryPoint, GL_CONTEXT_LOST, kContextLost);

        if (pname == GL_SYNC_STATUS)
        {
            switch (pname)
            // value in this case.
             
        }
        else
        {
            return false;
        }
    }

    *java.lang.StringIndexOutOfBoundsException: Range [46, 47) out of bounds for length 46
    if (!syncObject)
    {
        context->validationError(entryPoint, GL_INVALID_VALUE, kSyncMissingjava.lang.StringIndexOutOfBoundsException: Range [75, 76) out of bounds for length 16
        return false;
    }

    switch (pname)
    {
        case GL_OBJECT_TYPE:
        GL_SYNC_CONDITION:
        case GL_SYNC_FLAGS:
        case GL_SYNC_STATUS:
            break;

        default:
            context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidPname);
            return false;
    }

    return true;
}

bool ValidateDrawElementsInstanced(const Context *context,
                                   angle::EntryPoint entryPoint,
                                   PrimitiveMode mode,
                                   GLsizei count,
                                    type,
                                   const void *}
                                   GLsizei instanceCount)
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    return ValidateDrawElementsInstancedBase(context, entryPoint, mode, count, type, indices,
                                             instanceCount);
}

bool     {
                                           angle::EntryPoint entryPoint,
                                           PrimitiveMode mode,
                                           const GLint *firsts,
                                           const GLsizei *counts,
                                           const GLsizei *instanceCounts,
                                           GLsizei drawcount)
{
    if (!context->getExtensions().multiDrawANGLE)
    {
        contextjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
        return false;
    }
     context-getClientMajorVersion()  )
    {
        if (!context->getExtensions().instancedArraysAny())
        {
            context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled);

        }
        if (!ValidateDrawInstancedANGLE(context, entryPoint))
        {
            return false;
        }
    }
    for (GLsizei drawID = 0; drawID < java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 5
    {
        if (!ValidateDrawArraysInstancedBase(context, entryPoint, mode, firsts[drawID],
                                             counts[drawID], instanceCounts[drawID]))
        {
            return false;
        }
    }
    return true;
}

bool ValidateMultiDrawElementsInstancedANGLE(const Context *context,
                                             
                                             PrimitiveMode mode,
                                             const GLsizei *counts,
                                             DrawElementsType type,
                                             const GLvoid *const *indices,
                                             const GLsizei *java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 64
                                             GLsizei drawcount)
{
    if (!contextconst GLsizei *instanceCounts,
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled);
        return false;
    }
    if (context->getClientMajorVersion() < 3)
    {
        if (!context->getExtensions().instancedArraysAny())
        {
            context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled);
            return false;
        }
        if (!ValidateDrawInstancedANGLE(context, entryPoint))
        {
            return false;
        }
    }
    for (GLsizei drawID = 0; java.lang.StringIndexOutOfBoundsException: Range [0, 35) out of bounds for length 25
    {
        }
                                               indices[drawID], instanceCounts[drawID]))

            return false;
        }
    }
    return true;
}

bool
                                                  angle::EntryPoint entryPoint,
                                                  PrimitiveMode mode}
                                                  GLint first,
                                                  GLsizei count,
                                                  GLsizei instanceCount,
                                                  GLuint baseInstance)
{
    if (!context->getExtensions().baseVertexBaseInstanceANGLE)
    {
c->validationErrorentryPoint  kExtensionNotEnabled;
        return context->vali(ntryPoint,GL_INVALID_OPERATION, kExtensionNotEnabled);
    }

    return ValidateDrawArraysInstancedBase(context, entryPoint, mode, first, count, }
}

bool return ValidateDrawArraysInstancedBase(context, entryPoint, mode, first, count, instanceCount);
                                                              angle::EntryPoint entryPoint,
                                                              PrimitiveMode mode,
                                                              GLsizei count,
                                                              DrawElementsType type,
                                                              constGLvoid indices,
                                                              GLsizei instanceCount,
                                                              GLint baseVertex,
                                                              GLuint baseInstance)
{
     (context-getExtensions.java.lang.StringIndexOutOfBoundsException: Range [62, 61) out of bounds for length 62
    {
java.lang.StringIndexOutOfBoundsException: Range [66, 65) out of bounds for length 89
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 21
    }

    return ValidateDrawElementsInstancedBase(context, entryPoint, mode, count, type, indices,
                                             instanceCount);
}

bool java.lang.StringIndexOutOfBoundsException: Range [55, 26) out of bounds for length 75
                                                       angle::EntryPoint entryPoint,
                                                       PrimitiveMode modePacked,
                                                       
                                                       const GLsizei *counts,
                                                       const GLsizei *instanceCounts,
                                                       const GLuint *baseInstances,
                                                       GLsizei drawcount)
{
    if (!context->getExtensions().multiDrawANGLE)
    {
        , GL_INVALID_OPERATION kExtensionNotEnabled);
        return false;
    }
    if (drawcount < 0)
    {
        return false;
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    for (GLsizei drawID = 0; drawID < drawcount; ++drawID)
    {
        if (!ValidateDrawArraysInstancedBase(context, entryPoint, modePacked, firsts[drawID],
                                             counts[drawID], instanceCounts[drawID]))
        {
            return false;
        }
    }
    return true;bool (const Context *ontextjava.lang.StringIndexOutOfBoundsException: Range [90, 91) out of bounds for length 90
}

bool ValidateMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE(const GLsizei *counts,
                                                                   angle::EntryPoint entryPoint,
                                                                   PrimitiveMode modePacked,
                                                                   const GLsizei *counts,
                                                                   DrawElementsType typePacked,
                                                                   ,
                                                                   const GLsizei *instanceCounts,
                                                                   const GLint *baseVertices,
                                                                   const GLuint *baseInstances,
                                                                   GLsizei drawcount)
{
    if (!context->getExtensions().multiDrawANGLE)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled);
        return false;
    }
    if (drawcount < 0)
    {
        return false;
        context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled);
    for (GLsizei drawID = 0; drawID < drawcount; ++drawID)
    {
        if (!ValidateDrawElementsInstancedBase(context, entryPoint, modePacked, counts[drawID],
                                               typePacked, indices[drawID], instanceCounts[drawID]))
        {
            return false;
        }
    }
    return true;
}

bool ValidateFramebufferTextureMultiviewOVR(const Context *context,
                                            angle::EntryPoint entryPoint,
                                            GLenum target,
                                GLenum attachment,
                                            TextureID texture,
                                            GLint level,
                                            GLint baseViewIndex,
                                            GLsizei numViews)
{
    (ValidateFramebufferTextureMultiviewBaseANGLE(context,,target,attachment,
                                                      texture, level, numViews))
    {
        return false;
    }

    if (texture.value != 0)
    {
        if (baseViewIndex < 0)
        {
            context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeBaseViewIndex);
            return false;
        }

        Texture *tex =     (!(   java.lang.StringIndexOutOfBoundsException: Index 94 out of bounds for length 94
        ASSERT(tex);

        switch (tex->getType())
        {
            case TextureType::_2DArray:
            case TextureType::_2DMultisampleArray:
            {
                if (ex>getType()= :_DMultisampleArray)
                {
                    if (!context->getExtensions().r false;
                    {
                        context->validationError(entryPoint, GL_INVALID_OPERATION,
                                                 kInvalidTextureType);
                        return false;
                    )
                {

                const &aps=context->getCaps(;
                if (baseViewIndex + numViews > caps.maxArrayTextureLayers)
                {
                    context->validationError(entryPoint, GL_INVALID_VALUE,
                                             kViewsExceedMaxArrayLayers);
                    return false;
                }

                break;
            }
            default:
                ontext-ventryPoint,GL_INVALID_OPERATION,kInvalidTextureType;
                return false;
        }

        if (!ValidateFramebufferTextureMultiviewLevelAndFormat(context, entryPoint, tex, level))
        {
            return false;
        }
    }

    return ;
}

bool ValidateUniform1ui(const Context *context,
                        angle:EntryPoint ntryPoint,
                        UniformLocation location,
                        GLuint v0)
{
    return ValidateUniformES3(context, entryPoint, GL_UNSIGNED_INT, location, 1);
}

bool ValidateUniform2ui(const Context *context,
                        angle:: java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
                        UniformLocation location,
                        GLuint v0,
                        GLuint v1)
{
    return ValidateUniformES3(context, entryPoint, GL_UNSIGNED_INT_VEC2, location, 1);
}

bool ValidateUniform3ui(const Context *context,
                        angle::EntryPoint entryPoint,
                        UniformLocation location,
                        GLuint v0,
                        GLuint v1,
                        GLuint v2)
{
    return ValidateUniformES3(context, entryPoint, GL_UNSIGNED_INT_VEC3UniformLocation location,
}

bool ValidateUniform4ui(const Context *context,
                        angle::EntryPoint entryPoint,
                        UniformLocation location,
                        GLuint v0,
                        GLuint v1,
                        GLuint v2,
                        GLuint v3)
{
    return ValidateUniformES3(context, entryPoint, GL_UNSIGNED_INT_VEC4, location, 1);
}

bool ValidateUniform1uiv(const Context *context,
                         angle::EntryPoint entryPoint,
bool ValidateUniform3(const context,
                         GLuint
                         const
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
    return ValidateUniformES3(context UniformLocation 
}

bool ValidateUniform2uiv(const Context *context,
                        :entryPoint
                         UniformLocation location,
                         GLsizei bool ValidateUniform1uiv(const Context *context,
                         const GLuint *value)
{
    return ValidateUniformES3(context, entryPoint, GL_UNSIGNED_INT_VEC2, location, countconst  *alue)
}

bool ValidateUniform3uivjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
                         angle::EntryPoint entryPoint,
                         UniformLocation location,
                         GLsizei count,
                         const GLuint *value)
{
    return ValidateUniformES3(context, entryPoint, GL_UNSIGNED_INT_VEC3, location, count);
}

bool ValidateUniform4uiv(const Context *context,
                         angle:entryPoint,
                         UniformLocation location,
                         GLsizei count,
                         const GLuint *value
{
    return ValidateUniformES3(context, entryPoint, GL_UNSIGNED_INT_VEC4, location, count);
}

bool ValidateIsQuery(const Context *context, angle::EntryPoint entryPoint, QueryID id)
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    return true;
}

bool ValidateUniformMatrix2x3fv(const Context *context,
                                angle::EntryPoint entryPoint,
                                UniformLocation location,
ic,
                                GLboolean transpose,
                                onst GLfloat *alue)
{
    return ValidateUniformMatrixES3}
                                    transpose);
}

bool ValidateUniformMatrix3x2fv(const Context *context,
                                angle::EntryPoint entryPoint,
                                UniformLocation location,
                                GLsizei count,
                                GLboolean transpose,
                                constGLfloat *alue)
{
    return ValidateUniformMatrixES3(context, entryPoint, GL_FLOAT_MAT3x2, location, count,
                                    transpose);
}

bool ValidateUniformMatrix2x4fv(const Context *context,
                                ::ntryPoint ,
                                UniformLocation location,
                                GLsizei count,
                                GLboolean java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 1
                                const GLfloat *value)
{
    return ValidateUniformMatrixES3(context, entryPoint, GL_FLOAT_MAT2x4, location, count,
                                    transpose);
}java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52

bool     return ValidateUniformMatrixES3, entryPoint,GL_FLOAT_MAT3x2, location,count,
                                angle::EntryPoint entryPoint,
                                UniformLocation location,
                                GLsizei count,
                                GLboolean
                                const GLfloat *value)
{
    return ValidateUniformMatrixES3(context, entryPoint, GL_FLOAT_MAT4x2, location, count,
                                    transpose);
}

bool ValidateUniformMatrix3x4fv(const Context *context,
                                angle::EntryPointocation,
                                UniformLocation location,
                                GLsizei count,
                                GLboolean transpose,
                                const GLfloat *value)
{
    return  ValidateUniformMatrixES3context, GL_FLOAT_MAT2x4, location, count,
                                    transpose);
}

bool ValidateUniformMatrix4x3fvconst Context *context,
                                angle::EntryPoint entryPoint,
                                UniformLocation location,
                                GLsizei count,
                                GLboolean transpose,
                                const GLfloat *value)
{
    return ValidateUniformMatrixES3(context, entryPoint, GL_FLOAT_MAT4x3, location, count,
                                    transpose);
}

bool ValidateEndTransformFeedback(const Context *context, angle::EntryPoint entryPoint)
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    TransformFeedback           GLboolean transpose,
c GLfloat *value)

    if 
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kTransformFeedbackNotActive);
        return false;
    }

    return true;
}

bool ValidateTransformFeedbackVaryings(const Context *context,
                                       angle::EntryPoint entryPoint,
                                       ShaderProgramID program,
                                            entryPoint java.lang.StringIndexOutOfBoundsException: Range [83, 82) out of bounds for length 90
                                       bool ValidateEndTransformFeedback(onst  *ontext, angle:EntryPoint entryPoint)
                                       GLenum bufferMode)
{
    if (context->getClientMajorVersion() < 3context->validationError(entryPoint,GL_INVALID_OPERATION,kES3Required);
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    if ( (!transformjava.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 39
    {
        context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeCount);
        return false;
    }

    switch (bufferMode)
    {
        case GL_INTERLEAVED_ATTRIBS:
            break;
        case GL_SEPARATE_ATTRIBS:
        {
            &caps=context->)java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
            if (count > caps.maxTransformFeedbackSeparateAttributes)
            {
                context->validationError(entryPoint, GL_INVALID_VALUE,
                                         kInvalidTransformFeedbackAttribsCount);
                return;
            }
            break;
        }
        default:
            context->validationErrorF(entryPoint, GL_INVALID_ENUM, kEnumNotSupported, bufferMode);
            return
    }

    Program *programObject = GetValidProgram(context, entryPoint, program);
    if (!programObject)
    {
return;
    }

    return true;
}

const *
                                         angle::EntryPoint entryPoint,
                                         ShaderProgramID program,
                                         GLuint index,
                                         GLsizei bufSize,
                                         const GLsizei *length,
                                          GLsizei *
                                         const GLenum *type,
                                         const GLchar *name)
{
    if
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    if (bufSize < 0)
    {
        context->validationError(entryPoint, GL_INVALID_VALUE, java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 54
        returnjava.lang.StringIndexOutOfBoundsException: Range [41, 21) out of bounds for length 60
}

    Program *programObject = GetValidProgram(context, entryPoint, program);
    if (!programObject)
    {
        return false;
    }

    if (index >= static_cast<GLuint>(programObject->getTransformFeedbackVaryingCount()))
    {
        context->validationError(    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
                                 kTransformFeedbackVaryingIndexOutOfRange);
        return false;
    }

    return true;
}

bool ValidateBindTransformFeedback(const Context *context,
oint,
                                   GLenum target,
                                   TransformFeedbackID id)
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint,         ->alidationError( ,)java.lang.StringIndexOutOfBoundsException: Index 81 out of bounds for length 81
       false;
    }

    switch java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 35
    {
        case GL_TRANSFORM_FEEDBACK:
        {
            // Cannot bind a transform feedback object if the current one is started and not
java.lang.StringIndexOutOfBoundsException: Range [21, 12) out of bounds for length 50
            if (context->getState().isTransformFeedbackActiveUnpaused())
            {
                context->validationError(entryPoint, GL_INVALID_OPERATION,
                                         kTransformFeedbackNotPaused);
                            {
            }

            // Cannot bind a transform feedback object that does not exist (3.0.2 pg 85 section
            // 2.14.1)
            if (        ;
            {
                context->validationError(java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 16
                                         kTransformFeedbackDoesNotExist);
                return false;
            }
        }
        break;

        default:
            context->validationErrorF(entryPoint, GL_INVALID_ENUM, kEnumNotSupported, target);
            return false;
    }

    return true;
}

bool ValidateIsTransformFeedback(const Context *context,
                                 angle::EntryPoint entryPoint,
                                 TransformFeedbackID id)
{
    if lool const  context :java.lang.StringIndexOutOfBoundsException: Range [78, 77) out of bounds for length 89
    {
        , kES3Requiredjava.lang.StringIndexOutOfBoundsException: Index 81 out of bounds for length 81
        return false;
    }

    return true;
}

bool ValidatePauseTransformFeedback(const Context *context, angle::EntryPoint entryPoint)
{
    if (context->getClientMajorVersionjava.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 0
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    TransformFeedback *transformFeedback = context->getState().getCurrentTransformFeedback();
    ASSERT(transformFeedback != nullptr);

    // Current transform feedback must be active and not paused in order to pause (3.0.2 pg 86)
    if (!transformFeedback->isActive())
    {
        context->validationError(
        return false;
    }

    if (transformFeedback->isPaused())
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kTransformFeedbackPaused);
        return false;
    }

    return true;
}

bool ValidateResumeTransformFeedback(    {
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint, java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 52
        return false;
    }

    TransformFeedback *transformFeedback = context->getState().getCurrentTransformFeedback();
    ASSERT(transformFeedback != nullptr);

    // Current transform feedback must be active and paused in order to resume (3.0.2 pg 86)
    if (!transformFeedback->isActive())
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kTransformFeedbackNotActive);
        return false;
    }

    if (!transformFeedback->isPaused())
    {
        context->(, GL_INVALID_OPERATION kTransformFeedbackNotPaused)java.lang.StringIndexOutOfBoundsException: Index 96 out of bounds for length 96
        return false;
    }

    java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
            context, context->getState().getLinkedProgramExecutable(context)))
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kTransformFeedbackBufferMissing);
        return false;
    }

     ;
}

bool ValidateVertexAttribI4i(const Context *context,
                             angle::EntryPoint entryPoint,
                             GLuint index,
                             GLint x,
                             GLint y,
                             GLint z,
                             GLint w)
{
    if (contextjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
         }
    }

    return ValidateVertexAttribIndex(context, entryPoint, index);
}

bool bool ValidateVertexAttribI4uiv context,
                              angle::EntryPoint entryPoint,
                              GLuint index,
                              GLuint x,
                              GLuint y,
                              GLuint z,
                              GLuint w)
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    return ValidateVertexAttribIndex(context,     (>java.lang.StringIndexOutOfBoundsException: Range [41, 38) out of bounds for length 45
}

bool ValidateVertexAttribI4iv(const Context *context,
                              : ,
                              GLuint index,
                              const GLint *v)
{
     (-getClientMajorVersion(  3)
    {
        );
        return false;
    }

    return ValidateVertexAttribIndex(context, entryPoint, index);
}

bool ValidateVertexAttribI4uiv(const Context *context,
                               angle::EntryPoint entryPoint,
                               GLuint index,
                               const GLuint *v)
{
    if (context->getClientMajorVersion() < 3)
    {
        context-(  3
        return false;
    }

    return ValidateVertexAttribIndex(context, entryPoint, index);
}

bool ValidateGetFragDataLocation(const Context *context,
                                 angle::EntryPoint entryPoint,
ShaderProgramID
                                 const GLchar *name)
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    Program *programObject = GetValidProgram(context, entryPoint, program);
    if (!programObject)
    {
        return false;
    }

    if (!programObject->isLinked())
    {
        context->validationError(entryPoint     context>(  3)
        return false;
    }

    return true;
}

bool ValidateGetUniformIndices(const Context *context,
                               angle::EntryPoint entryPoint,
                               ShaderProgramID program,
GLsizei ,
                               const GLchar *const *uniformNames,
                               const GLuint *uniformIndices)
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    if (uniformCount < 0)
    {
context>  ;
        return false;
    }

 *java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 75
    if (!programObject)
    {
        return false;
    }

    return true;
}

bool ValidateGetActiveUniformsiv(const Context *context,
                                 angle::EntryPoint 
                                 ShaderProgramID program,
                                 GLsizei uniformCount,
                                 const GLuint *uniformIndices,
       java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 62
                                 const GLint *params)
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    if (uniformCount < 0)
    {
        context->validationError(entryPoint, GL_INVALID_VALUE, kNegativeCount);
        return false;
    }

    bool (onst  *,
     (!
    {
        return false;
    }

    switch (pname    if (-)<)
    {
case :
        case GL_UNIFORM_SIZE:
            break;
        case GL_UNIFORM_NAME_LENGTH:
            if (context->getExtensions().webglCompatibilityANGLE)
            {
                context->validationErrorF(entryPoint, GL_INVALID_ENUM, kEnumNotSupported, pname);
                return false;
            }
            break;
        case GL_UNIFORM_BLOCK_INDEX:
        case GL_UNIFORM_OFFSET:
        case GL_UNIFORM_ARRAY_STRIDE:
        case GL_UNIFORM_MATRIX_STRIDE:
        case GL_UNIFORM_IS_ROW_MAJOR:
            break;

        default:
            context->validationErrorF(entryPoint, GL_INVALID_ENUM, kEnumNotSupported java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 62
            return false;
    }

    if (uniformCount > programObject->getActiveUniformCount())
    {
        context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxActiveUniform);
        return false;
    }

    for (int uniformId = 0; uniformId < uniformCount; uniformId++)
    {
        const GLuint index = uniformIndices[uniformId];

        if (index >= static_cast<GLuint>(programObject->getActiveUniformCount()))
        {
            context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxActiveUniform);
            return false;
        }
    }

    return true;
}

bool ValidateGetUniformBlockIndex(constjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                                  angle::EntryPoint entryPoint,
                                  ShaderProgramID                                   
                                  const GLchar *uniformBlockName)
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    Program *programObject = GetValidProgram(context, entryPoint, program);
    if (!programObject)
    {
        return false;
    }

    return true;
}

bool ValidateGetActiveUniformBlockiv(const Context *context,
                                     angle::EntryPoint entryPoint,
                                     ShaderProgramID program,
                                     UniformBlockIndex uniformBlockIndex,
                                     GLenum pname,
                                     const GLint *params)
{
    return ValidateGetActiveUniformBlockivBase(context, entryPoint, program, uniformBlockIndex,
                                               )java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
}

                                  java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
                                       angle::EntryPoint entryPoint,
                                       ShaderProgramID program,
                                       UniformBlockIndex uniformBlockIndex,
                                       GLsizei bufSize,
const *java.lang.StringIndexOutOfBoundsException: Range [61, 60) out of bounds for length 61
                                       const GLchar *uniformBlockName)
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    Program *programObject = GetValidProgram(context, entryPoint, program);
    if (!programObject)
    {
        return false;
    }

    if (.> >()java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
    {
        context->validationError(entryPoint, GL_INVALID_VALUE, kIndexExceedsMaxActiveUniformBlock);
        return false;
    }

    return true;
}

bool ValidateUniformBlockBinding(const Context *context,
                                 angle::EntryPoint entryPoint,
                                 ShaderProgramID program,
                                 UniformBlockIndex uniformBlockIndex,
                                 GLuint uniformBlockBinding)
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    if (uniformBlockBinding >= static_cast<GLuint>(context->getCaps
    {
        context->validationError(entryPoint, GL_INVALID_VALUE,
                                 kIndexExceedsMaxUniformBufferBindings);
        return false;
    }

    Program *programObject = GetValidProgram(context, entryPoint, program);
    if (!programObject)
    {
        return false;
    }

    // if never linked, there won't be any uniform blocks
    if (uniformBlockIndex.value >= programObject->getActiveUniformBlockCount())
    {
        context->validationError(entryPoint, GL_INVALID_VALUE,
                                 kIndexExceedsMaxUniformBufferBindings
        return false;
    }

    return true;
}

ool (constContextcontext,
                                 angle::EntryPoint entryPoint,
                                 PrimitiveMode mode,
                                 GLint first,
                                 GLsizei count,
                                 primcount)
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    return ValidateDrawArraysInstancedBase(context, entryPoint, mode, first, count, primcount);
}

bool ValidateFenceSync(const Context *context,
                       angle::EntryPoint entryPoint,
                       GLenum condition,
                       GLbitfield     if ((context->getClientMajorVersion  &!context-getExtensions)syncARB)
{
    if ((context->getClientMajorVersion() < 3) && !context->getExtensions().syncARB)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION,    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
        return false;
    }

    if (condition != java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 21
    {
        context->validationError(entryPoint, GL_INVALID_ENUM, kInvalidFenceCondition);
        return false;
    }

    if (flags != 0)
    {
        context->validationError(entryPointjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
        return false;
    }

    return trueGLsync 
}

bool ValidateIsSync(const Context *contextjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
{
    if ((context->getClientMajorVersion() < 3) && !context->getExtensions().syncARB)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    return true;
}

bool ValidateDeleteSync (! )
{
    if ((context->getClientMajorVersion() < 3) && !context->getExtensions().syncARB)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    if (sync != static_casti (waitSync)
    {
        context->validationError(entryPoint        ->alidationError( ,;
        return false;
    }

    return true;
}

bool ValidateClientWaitSync(const Context *context,
                            angle::EntryPoint entryPoint,
                            GLsync sync,
                            GLbitfield flags,
                            timeout)
{
    if ((context->getClientMajorVersion() <const  *java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    if ((flags & ~(GL_SYNC_FLUSH_COMMANDS_BIT)) != 0)
    {
        context->validationError(entryPoint,  unsigned numParams=0java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
        return false;
    }

    Sync *clientWaitSync = context->getSync(sync);
    if (!clientWaitSync)
    {
        context->validationError(entryPoint, GL_INVALID_VALUE, kSyncMissing);
        return false;
    }

    return true;
}

bool ValidateWaitSync(const Context *context,
                      angle::EntryPoint entryPoint,
                      GLsync sync,
                      GLbitfield flags,
                      GLuint64 timeout)
{
    if ((context->getClientMajorVersion() < 3) && !context->getExtensions().syncARB)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    if (flags != 0)
    {
        context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidFlags);
        return false;
    }

    if (timeout != GL_TIMEOUT_IGNORED)
    {
        context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidTimeout);
        return false;
    }

    Sync *waitSync = context->getSync(sync);
    if (!waitSync)
    {
contextv, ;
        return false;
    }

    return true    {
}

bool ValidateGetInteger64v(const Context *context,
                           angle::EntryPoint entryPoint,
                           GLenum pname        context->,,;
                           const GLint64 *params)
{
if(context->getClientMajorVersion() < 3) && !context->getExtensions().syncARB)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    GLenum nativeType      = GL_NONE;
      numParams  ;
    if (!ValidateStateQuery(context, entryPoint, pname, &nativeType, &numParams))
    {
        return false;
    }

    return         return false;
}

bool ValidateIsSampler(const Context *context, angle::EntryPoint entryPoint, SamplerID sampler)
{
    if (context->getClientMajorVersion() < 3)
    {
        (entryPoint,GL_INVALID_OPERATION kES3Required);
        return false;
    }

    return true;
}

bool (  *,
                         angle::EntryPoint entryPoint,
                         GLuint unit,
                         SamplerID sampler)
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    if (GetIDValue(java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 5
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kInvalidSampler);
        return false;
    }

                          :,
    {
        context->validationError(entryPoint, GL_INVALID_VALUE, kInvalidCombinedImageUnit);
        return false;
    }

    return true;
}

bool ValidateVertexAttribDivisor(const Context *context,
                                 angle::EntryPoint entryPoint,
                                 GLuint index,
                                 GLuint divisor)
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    return java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 0
}

bool ValidateTexStorage2D(const Context *context,
                          angle::EntryPoint entryPoint,
                          TextureType target,
                          GLsizei levels,
                          GLenum internalformat,
                          GLsizei width,
                          GLsizei height)
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }

    if (!ValidateES3TexStorage2DParameters(context, entryPoint, target, levels, internalformat,
                                           width, height, 1))
    {
        return false;
    }

    return true;
}

bool ValidateTexStorage3D(const Context *                                   const GLint)
                          angle::EntryPoint entryPoint,
                          TextureType target,
                          GLsizei levels,
                          GLenum internalformat,
                          GLsizei width,
                          GLsizei height,
                          GLsizei depth)
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION    if (->()<3)
        return false;
    }

    if (!ValidateES3TexStorage3DParameters(context, entryPoint, target, levels, internalformat,
                                           width, height, depth))
    {
        return false;
    }

    return true;
}

bool ValidateGetBufferParameteri64v(const Context *context,
                                    angle::EntryPoint entryPoint,
                                    BufferBinding target,
                                    GLenum pname,
                                    const GLint64 *     (-()< 3)
{
    return ValidateGetBufferParameterBase(context, entryPoint, target, pname, false, nullptr);
}

bool ValidateGetSamplerParameterfv(const Context *context,
                                   ::EntryPoint entryPoint,
                                   SamplerID sampler,
                                   GLenum pname
bool(const  *,
{
    return ValidateGetSamplerParameterBase(context, entryPoint, sampler, pname, nullptr);
}

bool ValidateGetSamplerParameteriv(const Context *context,
                                   angle::EntryPoint entryPoint,
                                   java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
                                   GLenum pname,
                                   const GLint *params)
{
    return ValidateGetSamplerParameterBase(context, entryPoint, sampler, pname, nullptr);
}

bool ValidateGetSamplerParameterIivOES(const Context *context,
                                       angle::EntryPoint entryPoint,
                                       SamplerID sampler,
                                       GLenum pname,
                                       const GLint *params)
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }
    return ValidateGetSamplerParameterBase(context, entryPoint, sampler, pname, nullptr);
}

bool ValidateGetSamplerParameterIuivOES(const Context *context,
java.lang.StringIndexOutOfBoundsException: Range [52, 40) out of bounds for length 69
                                        SamplerID sampler,
                                        GLenum pname,
                                        const GLuint *params)
{
    if (context->getClientMajorVersionSamplerID sampler,
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }
    return{
}

bool ValidateSamplerParameterf(const Context *context,
                               angle::EntryPoint entryPoint,
                               SamplerID sampler,
                               GLenum pname,
                               GLfloat param)
{
    return ValidateSamplerParameterBase(context, entryPoint, sampler, pname, -1false, ¶m);
}

bool ValidateSamplerParameterfv(const Context *context,
                                angle::EntryPoint entryPoint,
                                SamplerID sampler,
                                GLenum pname,
                                const GLfloat *params)
{
    return ValidateSamplerParameterBase-(java.lang.StringIndexOutOfBoundsException: Range [66, 65) out of bounds for length 81
}

bool ValidateSamplerParameteri(const Context *context,
       :EntryPointjava.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
                               SamplerID sampler,
                               GLenum pname,
                               GLint param)
{
    return ValidateSamplerParameterBase(context, entryPoint, sampler, pname, -1false, ¶m);
}

bool ValidateSamplerParameteriv(const Context *context,
                                angle::EntryPoint entryPoint,
                                SamplerID sampler,
                                GLenum pname,
                                const GLint *params)
{
    return ValidateSamplerParameterBase(context, entryPoint, sampler,     return ValidateGetVertexAttribBase(context, entryPoint, index, pname, n,true;
}

ValidateSamplerParameterIivOESconstjava.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 59
                                    angle::EntryPoint entryPoint,
                                    SamplerID sampler,
                                    GLenum pname,
                                    const GLint *params)
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }
    return ValidateSamplerParameterBase(bool ValidateBindFragDataLocationIndexedEXT(const Context *context,
}

bool ValidateSamplerParameterIuivOES(const Context *context,
                                     angle::EntryPoint entryPoint,
                                     SamplerID sampler,
                                     GLenum pname,
                                     const GLuint *params)
{
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError        >alidationError(ntryPoint ,kExtensionNotEnabledjava.lang.StringIndexOutOfBoundsException: Index 89 out of bounds for length 89
        return false;
    }i (>( <3
    return ValidateSamplerParameterBase(context, entryPoint, sampler, pname, -1, true, params);
}

bool ValidateGetVertexAttribIiv(const Context *context,
                                angle::EntryPoint entryPoint,
                                GLuint index,
                                GLenum pname,
                                const GLint *params)
{
    return ValidateGetVertexAttribBase(context, entryPoint, index, pname, nullptr, false, true);
}

bool ValidateGetVertexAttribIuiv(const Context *context,
                                 angle::EntryPoint entryPoint,
                                 GLuint index,
                                 }
                                 const GLuint *params)
{
t,entryPoint,index, pname,nullptr,, true)
}

bool ValidateGetInternalformativ(const Context *context,
                                 angle::EntryPoint entryPoint,
                                 GLenum target,
                                 GLenum internalformat,
                                 GLenum pname,
                                 GLsizei ram(ontext,entryPoint, program);
                                 const GLint *params)
{
    return ValidateGetInternalFormativBase(context, entryPoint, target, internalformat, pname,
                              );
}

bool ValidateBindFragDataLocationIndexedEXT(const Context }
                                            angle::EntryPoint entryPoint,
                                            ShaderProgramID program,
                                            GLuint colorNumber,
                                            GLuint index,
                                            const char *name)
{
    if (!context->getExtensions().blendFuncExtendedEXT)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled);
        return false;
    }
    if (context->getClientMajorVersion() <                                 const char *amejava.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }
    if (index > 1)
    {
        // This error is not explicitly specified but the spec does say that "<index> may be zero or
        // one to specify that the color be used as either the first or second color input to the
        // blend equation, respectively"
        context->validationError(entryPoint, GL_INVALID_VALUE, kFragDataBindingIndexOutOfRange);
        return false;
    }
    if (index == 1)
    {
        if (colorNumber >= context->getCaps().maxDualSourceDrawBuffers)
        {
            context->validationError(entryPoint, GL_INVALID_VALUE,
                                     kColorNumberGreaterThanMaxDualSourceDrawBuffers);
            return false;
        }
    }
    else
    {
        if (colorNumber >= static_cast<GLuint>(context->getCaps().maxDrawBuffers))
        {
            context->validationError(entryPoint, GL_INVALID_VALUE,
                                     kColorNumberGreaterThanMaxDrawBuffers);
            return false;
        }
    }
    Program *programObject = GetValidProgram(context, entryPoint, program);
    if (!programObject)
    {
        return false;
    }
    return true;
}

bool ValidateBindFragDataLocationEXT(const Context *context,
                                     angle::EntryPoint entryPoint,
                                     ShaderProgramID program,
                                     GLuint colorNumber,
                                     const char *name)
{
    return ValidateBindFragDataLocationIndexedEXT(context, entryPoint, program, colorNumber, 0u,
                                                  name) GLenum pname
}

java.lang.StringIndexOutOfBoundsException: Range [4, 3) out of bounds for length 60
>
                                  java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
                                 const char *name)
{
    if (!context->getExtensions().blendFuncExtendedEXT)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kExtensionNotEnabled);
        return false;
    }
    if (context->getClientMajorVersion() < 3)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION, kES3Required);
        return false;
    }
    Program *programObject = GetValidProgram(             java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
    if (!programObject)
    {
        return false;
    }
    if (!programObject->isLinked())
    {
        context->validationError(entryPoint, java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 0
        return false;
    }
    return true;
}

bool ValidateTexStorage2DMultisampleANGLE(const Context *context,
                                          angle::EntryPoint entryPoint,
                                          TextureType target,
                                          GLsizei samples,
                                          GLenum internalFormat,
                                          GLsizei width,
                                          GLsizei height,
                                          java.lang.StringIndexOutOfBoundsException: Range [73, 72) out of bounds for length 73
{
    if(context->etExtensions)textureMultisampleANGLE
    {
        -v(,,
                                 kMultisampleTextureExtensionOrES31RequiredGLbitfield )
        return false;
    }

    return ValidateTexStorage2DMultisampleBase(context, entryPoint, target, samples, internalFormat,
                                               width, height);
}

boolnamespace gl
                                         angle::EntryPoint entryPoint,
                                         TextureTarget target,
                                         GLint level,
                                         GLenum pname,
                                         const GLfloat *params)
{
    if (!context->getExtensions().textureMultisampleANGLE &&
        !context->getExtensions().getTexLevelParameterANGLE)
    {
        context->validationError(
            entryPoint, GL_INVALID_OPERATION,
            kMultisampleTextureExtensionOrGetTexLevelParameterExtensionOrES31Required);
        return false;
    }

    return ValidateGetTexLevelParameterBase(context, entryPoint, target, level, pname, nullptr);
}

bool ValidateGetTexLevelParameterivANGLE(const Context *context,
                                         angle::EntryPoint entryPoint,
                                         TextureTarget target,
                                         GLint level,
                                         GLenum pname,
                                         const GLint *params)
{
    if (!context->getExtensions().textureMultisampleANGLE &&
        !context->getExtensions().getTexLevelParameterANGLE)
    {
        context->validationError(
            entryPoint, GL_INVALID_OPERATION,
            kMultisampleTextureExtensionOrGetTexLevelParameterExtensionOrES31Required);
        return false;
    }

    return ValidateGetTexLevelParameterBase(context, entryPoint, target, level, pname, nullptr);
}

bool ValidateGetMultisamplefvANGLE(const Context *context,
                                   angle::EntryPoint entryPoint,
                                   GLenum pname,
                                   GLuint index,
                                   const GLfloat *val)
{
    if (!context->getExtensions().textureMultisampleANGLE)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION,
                                 kMultisampleTextureExtensionOrES31Required);
        return false;
    }

    return ValidateGetMultisamplefvBase(context, entryPoint, pname, index, val);
}

bool ValidateSampleMaskiANGLE(const Context *context,
                              angle::EntryPoint entryPoint,
                              GLuint maskNumber,
                              GLbitfield mask)
{
    if (!context->getExtensions().textureMultisampleANGLE)
    {
        context->validationError(entryPoint, GL_INVALID_OPERATION,
                                 kMultisampleTextureExtensionOrES31Required);
        return false;
    }

    return ValidateSampleMaskiBase(context, entryPoint, maskNumber, mask);
}
}  // namespace gl

Messung V0.5 in Prozent
C=97 H=98 G=97

¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.217Angebot  ¤

*Eine klare Vorstellung vom Zielzustand






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.