| OLD | NEW |
| 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 583 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 594 region.imageSubresource = { VK_IMAGE_ASPECT_COLOR_BIT, SkToU32(currentMi
pLevel), 0, 1 }; | 594 region.imageSubresource = { VK_IMAGE_ASPECT_COLOR_BIT, SkToU32(currentMi
pLevel), 0, 1 }; |
| 595 region.imageOffset = { left, flipY ? tex->height() - top - currentHeight
: top, 0 }; | 595 region.imageOffset = { left, flipY ? tex->height() - top - currentHeight
: top, 0 }; |
| 596 region.imageExtent = { (uint32_t)currentWidth, (uint32_t)currentHeight,
1 }; | 596 region.imageExtent = { (uint32_t)currentWidth, (uint32_t)currentHeight,
1 }; |
| 597 | 597 |
| 598 currentWidth = SkTMax(1, currentWidth/2); | 598 currentWidth = SkTMax(1, currentWidth/2); |
| 599 currentHeight = SkTMax(1, currentHeight/2); | 599 currentHeight = SkTMax(1, currentHeight/2); |
| 600 } | 600 } |
| 601 | 601 |
| 602 transferBuffer->unmap(); | 602 transferBuffer->unmap(); |
| 603 | 603 |
| 604 // make sure the unmap has finished | |
| 605 transferBuffer->addMemoryBarrier(this, | |
| 606 VK_ACCESS_HOST_WRITE_BIT, | |
| 607 VK_ACCESS_TRANSFER_READ_BIT, | |
| 608 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, | |
| 609 VK_PIPELINE_STAGE_TRANSFER_BIT, | |
| 610 false); | |
| 611 | |
| 612 // Change layout of our target so it can be copied to | 604 // Change layout of our target so it can be copied to |
| 613 tex->setImageLayout(this, | 605 tex->setImageLayout(this, |
| 614 VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, | 606 VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, |
| 615 VK_ACCESS_TRANSFER_WRITE_BIT, | 607 VK_ACCESS_TRANSFER_WRITE_BIT, |
| 616 VK_PIPELINE_STAGE_TRANSFER_BIT, | 608 VK_PIPELINE_STAGE_TRANSFER_BIT, |
| 617 false); | 609 false); |
| 618 | 610 |
| 619 // Copy the buffer to the image | 611 // Copy the buffer to the image |
| 620 fCurrentCmdBuffer->copyBufferToImage(this, | 612 fCurrentCmdBuffer->copyBufferToImage(this, |
| 621 transferBuffer, | 613 transferBuffer, |
| (...skipping 1227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1849 // Currently it is fine for us to always pass in 1 for the clear count even
if no attachment | 1841 // Currently it is fine for us to always pass in 1 for the clear count even
if no attachment |
| 1850 // uses it. In the current state, we also only use the LOAD_OP_CLEAR for the
color attachment | 1842 // uses it. In the current state, we also only use the LOAD_OP_CLEAR for the
color attachment |
| 1851 // which is always at the first attachment. | 1843 // which is always at the first attachment. |
| 1852 fCurrentCmdBuffer->beginRenderPass(this, renderPass, 1, colorClear, *target,
*pBounds, true); | 1844 fCurrentCmdBuffer->beginRenderPass(this, renderPass, 1, colorClear, *target,
*pBounds, true); |
| 1853 fCurrentCmdBuffer->executeCommands(this, buffer); | 1845 fCurrentCmdBuffer->executeCommands(this, buffer); |
| 1854 fCurrentCmdBuffer->endRenderPass(this); | 1846 fCurrentCmdBuffer->endRenderPass(this); |
| 1855 | 1847 |
| 1856 this->didWriteToSurface(target, &bounds); | 1848 this->didWriteToSurface(target, &bounds); |
| 1857 } | 1849 } |
| 1858 | 1850 |
| OLD | NEW |