GLES: fix texture-to-texture copy with offset src or dest region.
glBlitFramebuffer() takes min and max coordinates, not min and size. Bug: dawn:1084 Change-Id: I7b8b53ecd9c5ade20d4d7a909bd134c13a2d960b Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/85081 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Austin Eng <enga@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org>
This commit is contained in:
parent
de6486f9f6
commit
f32ae5b680
|
@ -140,8 +140,8 @@ namespace dawn::native::opengl {
|
||||||
dstLevel, dst.z + layer);
|
dstLevel, dst.z + layer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gl.BlitFramebuffer(src.x, src.y, size.width, size.height, dst.x, dst.y, size.width,
|
gl.BlitFramebuffer(src.x, src.y, src.x + size.width, src.y + size.height, dst.x, dst.y,
|
||||||
size.height, blitMask, GL_NEAREST);
|
dst.x + size.width, dst.y + size.height, blitMask, GL_NEAREST);
|
||||||
}
|
}
|
||||||
gl.Enable(GL_SCISSOR_TEST);
|
gl.Enable(GL_SCISSOR_TEST);
|
||||||
gl.DeleteFramebuffers(1, &readFBO);
|
gl.DeleteFramebuffers(1, &readFBO);
|
||||||
|
|
|
@ -1194,8 +1194,6 @@ TEST_P(CopyTests_T2B, Texture3DFull) {
|
||||||
|
|
||||||
// Test that copying a range of texture 3D depths in one texture-to-buffer-copy works.
|
// Test that copying a range of texture 3D depths in one texture-to-buffer-copy works.
|
||||||
TEST_P(CopyTests_T2B, Texture3DSubRegion) {
|
TEST_P(CopyTests_T2B, Texture3DSubRegion) {
|
||||||
DAWN_TEST_UNSUPPORTED_IF(IsANGLE()); // TODO(crbug.com/angleproject/5967)
|
|
||||||
|
|
||||||
constexpr uint32_t kWidth = 256;
|
constexpr uint32_t kWidth = 256;
|
||||||
constexpr uint32_t kHeight = 128;
|
constexpr uint32_t kHeight = 128;
|
||||||
constexpr uint32_t kDepth = 6;
|
constexpr uint32_t kDepth = 6;
|
||||||
|
@ -1789,8 +1787,6 @@ TEST_P(CopyTests_B2T, Texture3DFull) {
|
||||||
|
|
||||||
// Test that copying a range of texture 3D Depths in one texture-to-buffer-copy works.
|
// Test that copying a range of texture 3D Depths in one texture-to-buffer-copy works.
|
||||||
TEST_P(CopyTests_B2T, Texture3DSubRegion) {
|
TEST_P(CopyTests_B2T, Texture3DSubRegion) {
|
||||||
DAWN_TEST_UNSUPPORTED_IF(IsANGLE()); // TODO(crbug.com/angleproject/5967)
|
|
||||||
|
|
||||||
constexpr uint32_t kWidth = 256;
|
constexpr uint32_t kWidth = 256;
|
||||||
constexpr uint32_t kHeight = 128;
|
constexpr uint32_t kHeight = 128;
|
||||||
constexpr uint32_t kDepth = 6;
|
constexpr uint32_t kDepth = 6;
|
||||||
|
@ -2299,7 +2295,6 @@ TEST_P(CopyTests_T2T, Texture3DTo2DArrayFull) {
|
||||||
// Test that copying between 3D texture and 2D array textures works. It includes partial copy
|
// Test that copying between 3D texture and 2D array textures works. It includes partial copy
|
||||||
// for src and/or dst texture, non-zero offset (copy origin), non-zero mip level.
|
// for src and/or dst texture, non-zero offset (copy origin), non-zero mip level.
|
||||||
TEST_P(CopyTests_T2T, Texture3DAnd2DArraySubRegion) {
|
TEST_P(CopyTests_T2T, Texture3DAnd2DArraySubRegion) {
|
||||||
DAWN_TEST_UNSUPPORTED_IF(IsANGLE()); // TODO(crbug.com/angleproject/5967)
|
|
||||||
// TODO(crbug.com/dawn/1216): Remove this suppression.
|
// TODO(crbug.com/dawn/1216): Remove this suppression.
|
||||||
DAWN_SUPPRESS_TEST_IF(IsD3D12() && IsNvidia());
|
DAWN_SUPPRESS_TEST_IF(IsD3D12() && IsNvidia());
|
||||||
|
|
||||||
|
@ -2374,7 +2369,6 @@ TEST_P(CopyTests_T2T, Texture2DArrayTo3DFull) {
|
||||||
|
|
||||||
// Test that copying subregion of a 3D texture in one texture-to-texture-copy works.
|
// Test that copying subregion of a 3D texture in one texture-to-texture-copy works.
|
||||||
TEST_P(CopyTests_T2T, Texture3DSubRegion) {
|
TEST_P(CopyTests_T2T, Texture3DSubRegion) {
|
||||||
DAWN_TEST_UNSUPPORTED_IF(IsANGLE()); // TODO(crbug.com/angleproject/5967)
|
|
||||||
constexpr uint32_t kWidth = 256;
|
constexpr uint32_t kWidth = 256;
|
||||||
constexpr uint32_t kHeight = 128;
|
constexpr uint32_t kHeight = 128;
|
||||||
constexpr uint32_t kDepth = 6u;
|
constexpr uint32_t kDepth = 6u;
|
||||||
|
@ -2402,7 +2396,6 @@ TEST_P(CopyTests_T2T, Texture3DTo2DArraySubRegion) {
|
||||||
// Test that copying subregion of a 2D array to a 3D texture to in one texture-to-texture-copy
|
// Test that copying subregion of a 2D array to a 3D texture to in one texture-to-texture-copy
|
||||||
// works.
|
// works.
|
||||||
TEST_P(CopyTests_T2T, Texture2DArrayTo3DSubRegion) {
|
TEST_P(CopyTests_T2T, Texture2DArrayTo3DSubRegion) {
|
||||||
DAWN_TEST_UNSUPPORTED_IF(IsANGLE()); // TODO(crbug.com/angleproject/5967)
|
|
||||||
// TODO(crbug.com/dawn/1216): Remove this suppression.
|
// TODO(crbug.com/dawn/1216): Remove this suppression.
|
||||||
DAWN_SUPPRESS_TEST_IF(IsD3D12() && IsNvidia());
|
DAWN_SUPPRESS_TEST_IF(IsD3D12() && IsNvidia());
|
||||||
constexpr uint32_t kWidth = 256;
|
constexpr uint32_t kWidth = 256;
|
||||||
|
|
|
@ -92,10 +92,6 @@ namespace {
|
||||||
DAWN_TEST_UNSUPPORTED_IF(GetParam().mFormat == wgpu::TextureFormat::RGBA8Snorm &&
|
DAWN_TEST_UNSUPPORTED_IF(GetParam().mFormat == wgpu::TextureFormat::RGBA8Snorm &&
|
||||||
HasToggleEnabled("disable_snorm_read"));
|
HasToggleEnabled("disable_snorm_read"));
|
||||||
|
|
||||||
// TODO(crbug.com/angleproject/5967): This texture readback hits an assert in ANGLE.
|
|
||||||
DAWN_SUPPRESS_TEST_IF(GetParam().mDimension == wgpu::TextureDimension::e3D &&
|
|
||||||
IsANGLE());
|
|
||||||
|
|
||||||
// TODO(crbug.com/dawn/791): Determine Intel specific platforms this occurs on, and
|
// TODO(crbug.com/dawn/791): Determine Intel specific platforms this occurs on, and
|
||||||
// implement a workaround on all backends (happens on Windows too, but not on our test
|
// implement a workaround on all backends (happens on Windows too, but not on our test
|
||||||
// machines).
|
// machines).
|
||||||
|
|
Loading…
Reference in New Issue