diff --git a/.pick_status.json b/.pick_status.json index d9f73f7b944..5bb65a87558 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -5244,7 +5244,7 @@ "description": "mesa: fix glTexPageCommitmentARB and glTexturePageCommitmentEXT level check", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "90415c1a3a4b987a9cf38a44a094eea9f27d0b9c", "notes": null diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c index 927ff199e04..00b4b4dcf8f 100644 --- a/src/mesa/main/texobj.c +++ b/src/mesa/main/texobj.c @@ -2413,13 +2413,17 @@ texture_page_commitment(struct gl_context *ctx, GLenum target, return; } - if (level < 0 || level > tex_obj->_MaxLevel) { + if (level < 0 || level >= _mesa_max_texture_levels(ctx, target)) { /* Not in error list of ARB_sparse_texture. */ _mesa_error(ctx, GL_INVALID_VALUE, "%s(level %d)", func, level); return; } - struct gl_texture_image *image = tex_obj->Image[0][level]; + struct gl_texture_image *image = _mesa_select_tex_image(tex_obj, target, level); + if (!image) { + _mesa_error(ctx, GL_INVALID_OPERATION, "%s(no image for level %d)", func, level); + return; + } int max_depth = image->Depth; if (target == GL_TEXTURE_CUBE_MAP)