gl: Do not use raw GL image copy command for RSX data

This commit is contained in:
kd-11 2022-06-05 18:29:39 +03:00 committed by kd-11
parent 35ef19cfc8
commit 4995b4abe3

View File

@ -194,8 +194,10 @@ namespace gl
if (src_w == slice.dst_w && src_h == slice.dst_h)
{
glCopyImageSubData(src_image->id(), GL_TEXTURE_2D, 0, src_x, src_y, 0,
dst_image->id(), static_cast<GLenum>(dst_image->get_target()), slice.level, slice.dst_x, slice.dst_y, slice.dst_z, src_w, src_h, 1);
gl::g_hw_blitter->copy_image(cmd, src_image, dst_image, 0, slice.level,
position3i{ src_x, src_y, 0 },
position3i{ slice.dst_x, slice.dst_y, slice.dst_z },
size3i{ src_w, src_h, 1 });
}
else
{
@ -222,8 +224,10 @@ namespace gl
if (_dst != dst_image)
{
// Data cast comes after scaling
glCopyImageSubData(tmp->id(), GL_TEXTURE_2D, 0, slice.dst_x, slice.dst_y, 0,
dst_image->id(), static_cast<GLenum>(dst_image->get_target()), slice.level, slice.dst_x, slice.dst_y, slice.dst_z, slice.dst_w, slice.dst_h, 1);
gl::g_hw_blitter->copy_image(cmd, tmp.get(), dst_image, 0, slice.level,
position3i{slice.dst_x, slice.dst_y, 0},
position3i{slice.dst_x, slice.dst_y, slice.dst_z},
size3i{slice.dst_w, slice.dst_h, 1});
}
}
}