aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu
diff options
context:
space:
mode:
authorGravatar Matt Sarett <msarett@google.com>2017-01-24 12:43:41 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-01-24 18:19:37 +0000
commitcf3525a95eea54d00727392463a6fe648914c3ea (patch)
tree9a462d3c8e76d53f22c35d44b73e9e12439437dc /src/gpu
parent57bc1e7bc804be4779dd09409046f62c4d43e3cd (diff)
SkPixelInfo::CopyPixels() refactor part 0: only one memcpy() case
I envision this eventually looking like the following: Fast Path 1: memcpy Fast Path 2: Legacy RGBA/BGRA unpremul/premul Fast Path 3: SkColorSpaceXform Fallback: Raster pipeline BUG=skia:6021 Change-Id: I3f0e36b08b051ab4ba3949f04474f20d0c20a963 Reviewed-on: https://skia-review.googlesource.com/7435 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Matt Sarett <msarett@google.com>
Diffstat (limited to 'src/gpu')
-rw-r--r--src/gpu/vk/GrVkGpu.cpp25
1 files changed, 4 insertions, 21 deletions
diff --git a/src/gpu/vk/GrVkGpu.cpp b/src/gpu/vk/GrVkGpu.cpp
index 9bb4c57cf1..b6b8a5d827 100644
--- a/src/gpu/vk/GrVkGpu.cpp
+++ b/src/gpu/vk/GrVkGpu.cpp
@@ -477,13 +477,8 @@ bool GrVkGpu::uploadTexDataLinear(GrVkTexture* tex,
dstRow -= layout.rowPitch;
}
} else {
- // If there is no padding on the src (rowBytes) or dst (layout.rowPitch) we can memcpy
- if (trimRowBytes == rowBytes && trimRowBytes == layout.rowPitch) {
- memcpy(mapPtr, data, trimRowBytes * height);
- } else {
- SkRectMemcpy(mapPtr, static_cast<size_t>(layout.rowPitch), data, rowBytes, trimRowBytes,
- height);
- }
+ SkRectMemcpy(mapPtr, static_cast<size_t>(layout.rowPitch), data, rowBytes, trimRowBytes,
+ height);
}
GrVkMemory::FlushMappedAlloc(this, alloc);
@@ -580,8 +575,6 @@ bool GrVkGpu::uploadTexDataOptimal(GrVkTexture* tex,
src -= rowBytes;
dst += trimRowBytes;
}
- } else if (trimRowBytes == rowBytes) {
- memcpy(dst, src, trimRowBytes * currentHeight);
} else {
SkRectMemcpy(dst, trimRowBytes, src, rowBytes, trimRowBytes, currentHeight);
}
@@ -966,12 +959,7 @@ bool copy_testing_data(GrVkGpu* gpu, void* srcData, const GrVkAlloc& alloc,
// If there is no padding on dst we can do a single memcopy.
// This assumes the srcData comes in with no padding.
- if (srcRowBytes == dstRowBytes) {
- memcpy(mapPtr, srcData, srcRowBytes * h);
- } else {
- SkRectMemcpy(mapPtr, static_cast<size_t>(dstRowBytes), srcData, srcRowBytes,
- srcRowBytes, h);
- }
+ SkRectMemcpy(mapPtr, static_cast<size_t>(dstRowBytes), srcData, srcRowBytes, srcRowBytes, h);
GrVkMemory::FlushMappedAlloc(gpu, alloc);
GR_VK_CALL(gpu->vkInterface(), UnmapMemory(gpu->device(), alloc.fMemory));
return true;
@@ -1756,12 +1744,7 @@ bool GrVkGpu::onReadPixels(GrSurface* surface,
dstRow -= rowBytes;
}
} else {
- if (transBufferRowBytes == rowBytes) {
- memcpy(buffer, mappedMemory, rowBytes*height);
- } else {
- SkRectMemcpy(buffer, rowBytes, mappedMemory, transBufferRowBytes, tightRowBytes,
- height);
- }
+ SkRectMemcpy(buffer, rowBytes, mappedMemory, transBufferRowBytes, tightRowBytes, height);
}
transferBuffer->unmap();