Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(61)

Side by Side Diff: src/gpu/vk/GrVkGpu.cpp

Issue 1923963002: Add work around for vulkan copies on the 5X (Closed) Base URL: https://skia.googlesource.com/skia.git@hackForDroid
Patch Set: rebase Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2015 Google Inc. 2 * Copyright 2015 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "GrVkGpu.h" 8 #include "GrVkGpu.h"
9 9
10 #include "GrContextOptions.h" 10 #include "GrContextOptions.h"
(...skipping 1244 matching lines...) Expand 10 before | Expand all | Expand 10 after
1255 srcVkRect.fBottom = src->height() - srcRect.fTop; 1255 srcVkRect.fBottom = src->height() - srcRect.fTop;
1256 dstY = dst->height() - dstPoint.fY - srcVkRect.height(); 1256 dstY = dst->height() - dstPoint.fY - srcVkRect.height();
1257 } 1257 }
1258 1258
1259 VkImageCopy copyRegion; 1259 VkImageCopy copyRegion;
1260 memset(&copyRegion, 0, sizeof(VkImageCopy)); 1260 memset(&copyRegion, 0, sizeof(VkImageCopy));
1261 copyRegion.srcSubresource = { VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, 1 }; 1261 copyRegion.srcSubresource = { VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, 1 };
1262 copyRegion.srcOffset = { srcVkRect.fLeft, srcVkRect.fTop, 0 }; 1262 copyRegion.srcOffset = { srcVkRect.fLeft, srcVkRect.fTop, 0 };
1263 copyRegion.dstSubresource = { VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, 1 }; 1263 copyRegion.dstSubresource = { VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, 1 };
1264 copyRegion.dstOffset = { dstPoint.fX, dstY, 0 }; 1264 copyRegion.dstOffset = { dstPoint.fX, dstY, 0 };
1265 copyRegion.extent = { (uint32_t)srcVkRect.width(), (uint32_t)srcVkRect.heigh t(), 0 }; 1265 // The depth value of the extent is ignored according the vulkan spec for 2D images. However, on
1266 // at least the nexus 5X it seems to be checking it. Thus as a working aroun d we must have the
1267 // depth value be 1.
1268 copyRegion.extent = { (uint32_t)srcVkRect.width(), (uint32_t)srcVkRect.heigh t(), 1 };
1266 1269
1267 fCurrentCmdBuffer->copyImage(this, 1270 fCurrentCmdBuffer->copyImage(this,
1268 srcImage, 1271 srcImage,
1269 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, 1272 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
1270 dstImage, 1273 dstImage,
1271 VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1274 VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
1272 1, 1275 1,
1273 &copyRegion); 1276 &copyRegion);
1274 } 1277 }
1275 1278
(...skipping 425 matching lines...) Expand 10 before | Expand all | Expand 10 after
1701 aglSwapBuffers(aglGetCurrentContext()); 1704 aglSwapBuffers(aglGetCurrentContext());
1702 int set_a_break_pt_here = 9; 1705 int set_a_break_pt_here = 9;
1703 aglSwapBuffers(aglGetCurrentContext()); 1706 aglSwapBuffers(aglGetCurrentContext());
1704 #elif defined(SK_BUILD_FOR_WIN32) 1707 #elif defined(SK_BUILD_FOR_WIN32)
1705 SwapBuf(); 1708 SwapBuf();
1706 int set_a_break_pt_here = 9; 1709 int set_a_break_pt_here = 9;
1707 SwapBuf(); 1710 SwapBuf();
1708 #endif 1711 #endif
1709 #endif 1712 #endif
1710 } 1713 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698