Implementing Queue::WriteTexture in Vulkan

Added implementation of writeTexture in Vulkan.

Bug: dawn:483
Change-Id: Id74b6518c46caf59e07a9d16dd51d8c28340fd50
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/24660
Commit-Queue: Tomek Ponitka <tommek@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
This commit is contained in:
Tomek Ponitka
2020-07-16 09:08:41 +00:00
committed by Commit Bot service account
parent 1b9b53a395
commit e28cc55cac
9 changed files with 169 additions and 25 deletions

View File

@@ -1171,4 +1171,4 @@ TEST_P(CompressedTextureWriteTextureTest,
}
}
DAWN_INSTANTIATE_TEST(CompressedTextureWriteTextureTest, MetalBackend());
DAWN_INSTANTIATE_TEST(CompressedTextureWriteTextureTest, MetalBackend(), VulkanBackend());

View File

@@ -294,6 +294,8 @@ class QueueWriteTextureTests : public DawnTest {
// Test writing the whole texture for varying texture sizes.
TEST_P(QueueWriteTextureTests, VaryingTextureSize) {
DAWN_SKIP_TEST_IF(IsSwiftshader());
for (unsigned int w : {127, 128}) {
for (unsigned int h : {63, 64}) {
for (unsigned int d : {1, 3, 4}) {
@@ -490,4 +492,4 @@ TEST_P(QueueWriteTextureTests, VaryingArrayBytesPerRow) {
}
}
DAWN_INSTANTIATE_TEST(QueueWriteTextureTests, MetalBackend());
DAWN_INSTANTIATE_TEST(QueueWriteTextureTests, MetalBackend(), VulkanBackend());

View File

@@ -1147,7 +1147,7 @@ TEST_P(TextureZeroInitTest, CopyTextureToBufferNonRenderableUnaligned) {
// In this test WriteTexture fully overwrites a texture
TEST_P(TextureZeroInitTest, WriteWholeTexture) {
// TODO(dawn:483): Remove this condition after implementing WriteTexture in those backends.
DAWN_SKIP_TEST_IF(IsOpenGL() || IsVulkan() || IsD3D12());
DAWN_SKIP_TEST_IF(IsOpenGL() || IsD3D12());
wgpu::TextureDescriptor descriptor = CreateTextureDescriptor(
1, 1, wgpu::TextureUsage::CopyDst | wgpu::TextureUsage::CopySrc, kColorFormat);
@@ -1182,7 +1182,7 @@ TEST_P(TextureZeroInitTest, WriteWholeTexture) {
// half.
TEST_P(TextureZeroInitTest, WriteTextureHalf) {
// TODO(dawn:483): Remove this condition after implementing WriteTexture in those backends.
DAWN_SKIP_TEST_IF(IsOpenGL() || IsVulkan() || IsD3D12());
DAWN_SKIP_TEST_IF(IsOpenGL() || IsD3D12());
wgpu::TextureDescriptor descriptor = CreateTextureDescriptor(
4, 1,
@@ -1222,7 +1222,7 @@ TEST_P(TextureZeroInitTest, WriteTextureHalf) {
// is needed for neither the subresources involved in the write nor the other subresources.
TEST_P(TextureZeroInitTest, WriteWholeTextureArray) {
// TODO(dawn:483): Remove this condition after implementing WriteTexture in those backends.
DAWN_SKIP_TEST_IF(IsOpenGL() || IsVulkan() || IsD3D12());
DAWN_SKIP_TEST_IF(IsOpenGL() || IsD3D12());
wgpu::TextureDescriptor descriptor = CreateTextureDescriptor(
1, 6, wgpu::TextureUsage::CopyDst | wgpu::TextureUsage::CopySrc, kColorFormat);
@@ -1265,7 +1265,7 @@ TEST_P(TextureZeroInitTest, WriteWholeTextureArray) {
// half.
TEST_P(TextureZeroInitTest, WriteTextureArrayHalf) {
// TODO(dawn:483): Remove this condition after implementing WriteTexture in those backends.
DAWN_SKIP_TEST_IF(IsOpenGL() || IsVulkan() || IsD3D12());
DAWN_SKIP_TEST_IF(IsOpenGL() || IsD3D12());
wgpu::TextureDescriptor descriptor = CreateTextureDescriptor(
4, 6,
@@ -1312,7 +1312,7 @@ TEST_P(TextureZeroInitTest, WriteTextureArrayHalf) {
// In this test WriteTexture fully overwrites a texture at mip level.
TEST_P(TextureZeroInitTest, WriteWholeTextureAtMipLevel) {
// TODO(dawn:483): Remove this condition after implementing WriteTexture in those backends.
DAWN_SKIP_TEST_IF(IsOpenGL() || IsVulkan() || IsD3D12());
DAWN_SKIP_TEST_IF(IsOpenGL() || IsD3D12());
wgpu::TextureDescriptor descriptor = CreateTextureDescriptor(
4, 1, wgpu::TextureUsage::CopyDst | wgpu::TextureUsage::CopySrc, kColorFormat);
@@ -1351,7 +1351,7 @@ TEST_P(TextureZeroInitTest, WriteWholeTextureAtMipLevel) {
// other half.
TEST_P(TextureZeroInitTest, WriteTextureHalfAtMipLevel) {
// TODO(dawn:483): Remove this condition after implementing WriteTexture in those backends.
DAWN_SKIP_TEST_IF(IsOpenGL() || IsVulkan() || IsD3D12());
DAWN_SKIP_TEST_IF(IsOpenGL() || IsD3D12());
wgpu::TextureDescriptor descriptor = CreateTextureDescriptor(
4, 1,