ANGLE-Metal createViewFromBaseToMaxLevel out-of-range NSRange POC
=================================================================
Target : macOS, ANGLE-Metal backend (default), GPU process.
Requires: chromium-changes.patch applied (compromised-renderer simulation).
This page only needs to allocate a WebGL2 back buffer. On macOS+ANGLE-Metal
that back buffer is an IOSurface-backed SharedImage, and the patched
renderer's DrawingBuffer::CreateColorBuffer() injects a single
TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, 5) on the
IOSurface-pbuffer-bound SharedImage texture immediately after
BeginSharedImageAccessDirectCHROMIUM. Inside the GPU process this drives
ANGLE-Metal into:
TextureMtl::setBaseLevel
onBaseMaxLevelsChanged (isImmutableOrPBuffer()==true)
createViewFromBaseToMaxLevel()
createMipsView(5, 1)
[MTLTexture newTextureViewWithPixelFormat:...
levels:NSMakeRange(5,1)
slices:NSMakeRange(0,1)]
on a parent IOSurface MTLTexture with mipmapLevelCount==1.