According to the WebGL Specification the method texImage2D has an overload with 6 arguments and one with 9 arguments. TexImage2DAsync batches the command with only 8 arguments. The border argument is not passed (it always has to be 0...)
Possible fix in WebGLContext.cs:
public async Task TexImage2DAsync<T>(Texture2DType target, int level, PixelFormat internalFormat, int width, int height, PixelFormat format, PixelType type, T[] pixels)
where T : struct
=> await this.BatchCallAsync(TEX_IMAGE_2D, isMethodCall: true, target, level, internalFormat, width, height, 0, format, type, pixels);
Stack trace:
