在立方体贴图阵列纹理上调用glTextureStorage3D时,我得到一个GL_INVALID_VALUE.我的代码非常抽象,但是将纹理创建中的原始gl代码转储到gl错误归结为:
[SafeGL DUMP] glCreateTextures(glTargets[uint32_t(type)], 1, &id_) // glTargets[uint32_t(type)] = GL_TEXTURE_CUBE_MAP_ARRAY
[SafeGL DUMP] glTextureParameteri(id_, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR)
[SafeGL DUMP] glTextureParameteri(id_, GL_TEXTURE_MAG_FILTER, GL_LINEAR)
[SafeGL DUMP] glTextureStorage3D(id_, mipLevels, glFormats[uint32_t(format_)], width, height, depth) // mipLevels = 1, glFormats[uint32_t(format_)] = GL_RG16F, width = 1024, height = 1024, depth = 4
/!\ GL ERROR 501: GL_INVALID_VALUE -- Breaking to debugger.
Run Code Online (Sandbox Code Playgroud)
GL规范指定"如果宽度,高度或深度为负,则生成INVALID_VALUE错误".除了我的情况,它不是......
我唯一的猜测是,我要么遇到一个特定供应商的无证错误(在nvidia 375.70驱动程序上的GL 4.4上下文),或者我做了一些完全错误的事情但是我完全失去了什么.
任何的想法 ?
编辑:刚刚更新驱动程序到378.66,无济于事.