mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
intel: Don't try to blorp or blit CopyTexSubImage(1D_ARRAY).
Blorp and the hardware blitter can't be used to implement CopyTexSubImage when the image type is 1D_ARRAY, because of a coordinate system mismatch (the Y coordinate in the source image is supposed to be matched up to the Z coordinate in the destination texture). The hardware blitter path (intel_copy_texsubimage) contained a perf debug warning for this case, but it failed to actually fall back. The blorp path didn't even check. Fixes piglit test "copyteximage 1D_ARRAY". Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
32d1f423bc
commit
2fd785d126
2 changed files with 7 additions and 0 deletions
|
|
@ -347,6 +347,12 @@ brw_blorp_copytexsubimage(struct intel_context *intel,
|
|||
return false;
|
||||
}
|
||||
|
||||
/* We can't use blorp to copy to a 1D array texture, since it can only
|
||||
* write to one layer of the texture at a time.
|
||||
*/
|
||||
if (dst_mt->target == GL_TEXTURE_1D_ARRAY)
|
||||
return false;
|
||||
|
||||
/* Source clipping shouldn't be necessary, since copytexsubimage (in
|
||||
* src/mesa/main/teximage.c) calls _mesa_clip_copytexsubimage() which
|
||||
* takes care of it.
|
||||
|
|
|
|||
|
|
@ -83,6 +83,7 @@ intel_copy_texsubimage(struct intel_context *intel,
|
|||
if (intelImage->base.Base.TexObject->Target == GL_TEXTURE_1D_ARRAY ||
|
||||
intelImage->base.Base.TexObject->Target == GL_TEXTURE_2D_ARRAY) {
|
||||
perf_debug("no support for array textures\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
/* glCopyTexImage (and the glBlitFramebuffer() path that reuses this)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue