mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-10 05:08:31 +09:00
glDeleteProgram and glDeleteShader are the two entry points in the program/shader name space where 0 is not "a name GL never handed out" but an explicit no-op: "if program is zero, it is silently ignored" (GL 4.6 core 7.3, and 7.1 for shaders). Both went through the shared name validator instead and recorded GL_INVALID_VALUE. Only tests that never got as far as creating a program noticed, because they still run their cleanup path: the five KHR-GL40.texture_gather.*-cube-array cases bail out of Init with "GL_ARB_texture_cube_map_array not supported", then Cleanup deletes its zero-initialised handles and the leftover error fails the case after the fact - the downstream-error-misattribution shape. Every array-taking delete already skipped 0.