st/mesa: Fix glEGLImageTargetTexture2DOES.
stObj->pt should be set in st_bind_surface, just as in st_TexImage. On the other hand, st_TexImage should unreference stObj->pt. It also needs to initialize the texture image again as _mesa_clear_texture_object clears the image.
This commit is contained in:
parent
4f6faf65d1
commit
0f74efdef0
|
@ -128,7 +128,8 @@ st_bind_surface(GLcontext *ctx, GLenum target,
|
|||
_mesa_set_fetch_functions(texImage, 2);
|
||||
|
||||
/* FIXME create a non-default sampler view from the pipe_surface? */
|
||||
pipe_resource_reference(&stImage->pt, ps->texture);
|
||||
pipe_resource_reference(&stObj->pt, ps->texture);
|
||||
pipe_resource_reference(&stImage->pt, stObj->pt);
|
||||
|
||||
stObj->width0 = ps->width;
|
||||
stObj->height0 = ps->height;
|
||||
|
|
|
@ -548,6 +548,14 @@ st_TexImage(GLcontext * ctx,
|
|||
/* switch to "normal" */
|
||||
if (stObj->surface_based) {
|
||||
_mesa_clear_texture_object(ctx, texObj);
|
||||
pipe_resource_reference(&stObj->pt, NULL);
|
||||
|
||||
/* oops, need to init this image again */
|
||||
_mesa_init_teximage_fields(ctx, target, texImage,
|
||||
width, height, depth, border, internalFormat);
|
||||
_mesa_choose_texture_format(ctx, texObj, texImage, target, level,
|
||||
internalFormat, format, type);
|
||||
|
||||
stObj->surface_based = GL_FALSE;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue