mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-22 05:20:37 +02:00
meta: Fix the pbo usage in meta for GLES{1,2} contexts
OpenGL ES 1.0 doesn't support using GL_STREAM_DRAW and both ES 1.0 and 2.0 don't support GL_STREAM_READ in glBufferData(). So, handle it correctly by calling the _mesa_meta_begin() before create_texture_for_pbo(). V2: Remove the changes related to allocate_storage. (Ian) Cc: <mesa-stable@lists.freedesktop.org> Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
parent
0d047d10f1
commit
6d4ebbe9e5
1 changed files with 13 additions and 8 deletions
|
|
@ -214,20 +214,22 @@ _mesa_meta_pbo_TexSubImage(struct gl_context *ctx, GLuint dims,
|
|||
*/
|
||||
image_height = packing->ImageHeight == 0 ? height : packing->ImageHeight;
|
||||
|
||||
_mesa_meta_begin(ctx, ~(MESA_META_PIXEL_TRANSFER |
|
||||
MESA_META_PIXEL_STORE));
|
||||
|
||||
pbo_tex_image = create_texture_for_pbo(ctx, create_pbo,
|
||||
GL_PIXEL_UNPACK_BUFFER,
|
||||
dims, width, height, depth,
|
||||
format, type, pixels, packing,
|
||||
&pbo, &pbo_tex);
|
||||
if (!pbo_tex_image)
|
||||
if (!pbo_tex_image) {
|
||||
_mesa_meta_end(ctx);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (allocate_storage)
|
||||
ctx->Driver.AllocTextureImageBuffer(ctx, tex_image);
|
||||
|
||||
_mesa_meta_begin(ctx, ~(MESA_META_PIXEL_TRANSFER |
|
||||
MESA_META_PIXEL_STORE));
|
||||
|
||||
readFb = ctx->Driver.NewFramebuffer(ctx, 0xDEADBEEF);
|
||||
if (readFb == NULL)
|
||||
goto fail;
|
||||
|
|
@ -361,15 +363,18 @@ _mesa_meta_pbo_GetTexSubImage(struct gl_context *ctx, GLuint dims,
|
|||
*/
|
||||
image_height = packing->ImageHeight == 0 ? height : packing->ImageHeight;
|
||||
|
||||
_mesa_meta_begin(ctx, ~(MESA_META_PIXEL_TRANSFER |
|
||||
MESA_META_PIXEL_STORE));
|
||||
|
||||
pbo_tex_image = create_texture_for_pbo(ctx, false, GL_PIXEL_PACK_BUFFER,
|
||||
dims, width, height, depth,
|
||||
format, type, pixels, packing,
|
||||
&pbo, &pbo_tex);
|
||||
if (!pbo_tex_image)
|
||||
return false;
|
||||
|
||||
_mesa_meta_begin(ctx, ~(MESA_META_PIXEL_TRANSFER |
|
||||
MESA_META_PIXEL_STORE));
|
||||
if (!pbo_tex_image) {
|
||||
_mesa_meta_end(ctx);
|
||||
return false;
|
||||
}
|
||||
|
||||
/* GL_CLAMP_FRAGMENT_COLOR doesn't affect ReadPixels and GettexImage */
|
||||
if (ctx->Extensions.ARB_color_buffer_float)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue