diff options
Diffstat (limited to 'src/mesa/state_tracker')
-rw-r--r-- | src/mesa/state_tracker/st_cb_texture.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c index 3de96adf3ed..ed3bbc72584 100644 --- a/src/mesa/state_tracker/st_cb_texture.c +++ b/src/mesa/state_tracker/st_cb_texture.c @@ -989,6 +989,16 @@ st_CopyTexSubImage(struct gl_context *ctx, GLuint dims, goto fallback; } + if (texImage->TexObject->Target == GL_TEXTURE_1D_ARRAY) { + /* 1D arrays might be thought of as 2D images but the actual layout + * might not be that way. At some points, we convert OpenGL's 1D + * array 'height' into gallium 'layers' and that prevents the blit + * utility code from doing the right thing. Simpy use the memcpy-based + * fallback. + */ + goto fallback; + } + if (matching_base_formats && src_format == dest_format && !do_flip) { |