mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 07:28:11 +02:00
svga: use copy_region_vgpu10() for region copies when possible
v2: remove extra svga_define_texture_level() call, per Charmaine. Acked-by: Roland Scheidegger <sroland@vmware.com> Reviewed-by: Charmaine Lee <charmainel@vmware.com>
This commit is contained in:
parent
1d0be402c7
commit
92b44efef4
1 changed files with 37 additions and 4 deletions
|
|
@ -138,7 +138,6 @@ svga_resource_copy_region(struct pipe_context *pipe,
|
|||
src_z = src_box->z;
|
||||
}
|
||||
|
||||
/* different src/dst type???*/
|
||||
if (dst_tex->target == PIPE_TEXTURE_CUBE ||
|
||||
dst_tex->target == PIPE_TEXTURE_1D_ARRAY) {
|
||||
dst_face_layer = dstz;
|
||||
|
|
@ -150,14 +149,48 @@ svga_resource_copy_region(struct pipe_context *pipe,
|
|||
dst_z = dstz;
|
||||
}
|
||||
|
||||
svga_texture_copy_handle(svga,
|
||||
stex->handle,
|
||||
stex = svga_texture(src_tex);
|
||||
dtex = svga_texture(dst_tex);
|
||||
|
||||
if (svga_have_vgpu10(svga)) {
|
||||
/* vgpu10 */
|
||||
if (util_format_is_compressed(src_tex->format) ==
|
||||
util_format_is_compressed(dst_tex->format) &&
|
||||
!util_format_is_depth_and_stencil(src_tex->format) &&
|
||||
stex->handle != dtex->handle &&
|
||||
src_tex->target == dst_tex->target) {
|
||||
copy_region_vgpu10(svga,
|
||||
src_tex,
|
||||
src_box->x, src_box->y, src_z,
|
||||
src_level, src_face_layer,
|
||||
dtex->handle,
|
||||
dst_tex,
|
||||
dstx, dsty, dst_z,
|
||||
dst_level, dst_face_layer,
|
||||
src_box->width, src_box->height, src_box->depth);
|
||||
}
|
||||
else {
|
||||
util_resource_copy_region(pipe, dst_tex, dst_level, dstx, dsty, dstz,
|
||||
src_tex, src_level, src_box);
|
||||
}
|
||||
}
|
||||
else {
|
||||
/* vgpu9 */
|
||||
if (src_tex->format == dst_tex->format) {
|
||||
svga_texture_copy_handle(svga,
|
||||
stex->handle,
|
||||
src_box->x, src_box->y, src_z,
|
||||
src_level, src_face_layer,
|
||||
dtex->handle,
|
||||
dstx, dsty, dst_z,
|
||||
dst_level, dst_face_layer,
|
||||
src_box->width, src_box->height,
|
||||
src_box->depth);
|
||||
}
|
||||
else {
|
||||
util_resource_copy_region(pipe, dst_tex, dst_level, dstx, dsty, dstz,
|
||||
src_tex, src_level, src_box);
|
||||
}
|
||||
}
|
||||
|
||||
/* Mark the destination image as being defined */
|
||||
svga_define_texture_level(dtex, dst_face_layer, dst_level);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue