dawn-cmake/src
Jiawei Shao 72508d6d06 Support BC5 formats on Vulkan
This patch supports BC5 formats on Vulkan backends and adds related
Dawn end2end tests.

For the textures with BC formats, they could have non-multiple-of-4
sizes on the non-zero mipmap levels in sampling, but we are still
required to provide texture data in complete 4x4 blocks in texture
copies because that is the size of which they are stored in GPU memory.

In this patch, we refer the term "physical memory size" as the memory
size of the texture subresource in GPU memory, and the term "virtual
memory size" as the size used in texture sampling. As Dawn requires
the Extent3D in texture copies must fit in the physical memory size,
while Vulkan requires it must fit in the virtual memory size, this
patch recalculates the imageExtent to ensure it always follow this
Vulkan validation rules.

For Dawn end2end tests, note that we use pure green and pure red for
the textures because BC5 does not support SRGB formats. Furthermore,
"CopyPartofTextureSubResourceIntoNonZeroMipmapLevel" is skipped in
this patch because there is an issue on the T2T copies from a region
within the virtual size of one texture to another one that exceeds
the virtual size of another texture in Vulkan SPEC.

BUG=dawn:42
TEST=dawn_end2end_tests

Change-Id: I17518cd335fb13125cb753bbf879bc06eb20e426
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/8260
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
2019-07-02 23:55:55 +00:00
..
common Add most WebGPU texture formats on Vulkan 2019-07-01 09:58:07 +00:00
dawn Generators: main.py is now dawn_json_generator.py 2019-06-11 18:03:05 +00:00
dawn_native Support BC5 formats on Vulkan 2019-07-02 23:55:55 +00:00
dawn_wire Implement CreateBufferMappedAsync in dawn_wire and dawn_native 2019-06-14 17:35:56 +00:00
fuzzers Init PointSize value when pipeline topology is PointList in end2end 2019-06-21 10:56:35 +00:00
include Add begin-capture-on-startup testing flag 2019-06-21 02:09:05 +00:00
tests Support BC5 formats on Vulkan 2019-07-02 23:55:55 +00:00
utils Support BC5 formats on Vulkan 2019-07-02 23:55:55 +00:00