1
在立方体贴图阵列纹理上调用glTextureStorage3D时,我得到一个GL_INVALID_VALUE。我的代码是很抽象的,但反倾销从纹理制作到GL错误的原始GL代码归结为:glTextureStorage3D与立方体贴图阵列上的GL_INVALID_VALUE
[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.
的GL规范规定,如果宽度,高度和深度产生“的INVALID_VALUE错误负。”除了在我的情况下,这不是......
我唯一的猜测是,我要么遇到一个未公开的错误这是供应商特定的(在NVIDIA GL 4.4上下文375.70驱动程序),或我在做一些完全错误的,但那么我完全丧失了什么。
有什么想法?
编辑:只更新驱动程序到378.66,无济于事。
'glTextureStorage3D'和'glCreateTextures'是OpenGL 4.5的函数,但是您正在创建4.4上下文。 – SurvivalMachine
@SurvivalMachine:可能4.4是要求的格式,但驱动程序给了4.5,否则'glCreateTextures'甚至不能工作。 – peppe
@peppe Yup就是这样!发现虽然一丝不苟地阅读glTexStorage3D的整个规格。标记为已解决:) – xtrium