Hash :
b436aac3
Author :
Date :
2018-07-18T17:23:48
Vulkan: Support inverted blit for depth/stencil. Depth/stencil formats are packed tightly when reading back Images with vkCmdCopyImageToBuffer. Same for the reverse. Thus we need to take this into account when doing our blitWithReadback implementation. This splits the depth/stencil blit into two separate steps. Fixes all the remaining blit failures in BlitFramebufferANGLETest. Bug: angleproject:2673 Change-Id: Ie9f43f782a82b5a0746d00122b24f81088d57c4c Reviewed-on: https://chromium-review.googlesource.com/1140740 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
//
// Copyright (c) 2014 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// copyimage.inl: Defines image copying functions
namespace angle
{
template <typename sourceType, typename colorDataType>
void ReadColor(const uint8_t *source, uint8_t *dest)
{
sourceType::readColor(reinterpret_cast<Color<colorDataType>*>(dest),
reinterpret_cast<const sourceType*>(source));
}
template <typename destType, typename colorDataType>
void WriteColor(const uint8_t *source, uint8_t *dest)
{
destType::writeColor(reinterpret_cast<destType*>(dest),
reinterpret_cast<const Color<colorDataType>*>(source));
}
template <typename SourceType>
void ReadDepthStencil(const uint8_t *source, uint8_t *dest)
{
SourceType::ReadDepthStencil(reinterpret_cast<DepthStencil *>(dest),
reinterpret_cast<const SourceType *>(source));
}
template <typename DestType>
void WriteDepthStencil(const uint8_t *source, uint8_t *dest)
{
DestType::WriteDepthStencil(reinterpret_cast<DestType *>(dest),
reinterpret_cast<const DepthStencil *>(source));
}
} // namespace angle