Descriptorize Texture

This patch introduces texture descriptor for texture creation instead
of texture builders.

This patch also adds "arrayLayer" to texture descriptor and removes
mDevice in TextureD3D12.
This commit is contained in:
Jiawei Shao
2018-08-27 08:44:48 +08:00
committed by Corentin Wallez
parent 75559bf1be
commit 425428f97b
46 changed files with 300 additions and 341 deletions

View File

@@ -28,13 +28,16 @@ class CopyCommandTest : public ValidationTest {
dawn::Texture Create2DTexture(uint32_t width, uint32_t height, uint32_t levels,
dawn::TextureFormat format, dawn::TextureUsageBit usage) {
dawn::Texture tex = AssertWillBeSuccess(device.CreateTextureBuilder())
.SetDimension(dawn::TextureDimension::e2D)
.SetExtent(width, height, 1)
.SetFormat(format)
.SetMipLevels(levels)
.SetAllowedUsage(usage)
.GetResult();
dawn::TextureDescriptor descriptor;
descriptor.dimension = dawn::TextureDimension::e2D;
descriptor.width = width;
descriptor.height = height;
descriptor.depth = 1;
descriptor.arrayLayer = 1;
descriptor.format = format;
descriptor.mipLevel = levels;
descriptor.usage = usage;
dawn::Texture tex = device.CreateTexture(&descriptor);
return tex;
}

View File

@@ -22,13 +22,16 @@ class RenderPassDescriptorValidationTest : public ValidationTest {
};
dawn::TextureView Create2DAttachment(dawn::Device& device, uint32_t width, uint32_t height, dawn::TextureFormat format) {
dawn::Texture attachment = device.CreateTextureBuilder()
.SetDimension(dawn::TextureDimension::e2D)
.SetExtent(width, height, 1)
.SetFormat(format)
.SetMipLevels(1)
.SetAllowedUsage(dawn::TextureUsageBit::OutputAttachment)
.GetResult();
dawn::TextureDescriptor descriptor;
descriptor.dimension = dawn::TextureDimension::e2D;
descriptor.width = width;
descriptor.height = height;
descriptor.depth = 1;
descriptor.arrayLayer = 1;
descriptor.format = format;
descriptor.mipLevel = 1;
descriptor.usage = dawn::TextureUsageBit::OutputAttachment;
dawn::Texture attachment = device.CreateTexture(&descriptor);
return attachment.CreateTextureViewBuilder()
.GetResult();

View File

@@ -71,13 +71,17 @@ bool ValidationTest::EndExpectDeviceError() {
}
dawn::RenderPassDescriptor ValidationTest::CreateSimpleRenderPass() {
auto colorBuffer = device.CreateTextureBuilder()
.SetDimension(dawn::TextureDimension::e2D)
.SetExtent(640, 480, 1)
.SetFormat(dawn::TextureFormat::R8G8B8A8Unorm)
.SetMipLevels(1)
.SetAllowedUsage(dawn::TextureUsageBit::OutputAttachment)
.GetResult();
dawn::TextureDescriptor descriptor;
descriptor.dimension = dawn::TextureDimension::e2D;
descriptor.width = 640;
descriptor.height = 480;
descriptor.depth = 1;
descriptor.arrayLayer = 1;
descriptor.format = dawn::TextureFormat::R8G8B8A8Unorm;
descriptor.mipLevel = 1;
descriptor.usage = dawn::TextureUsageBit::OutputAttachment;
auto colorBuffer = device.CreateTexture(&descriptor);
auto colorView = colorBuffer.CreateTextureViewBuilder()
.GetResult();
@@ -119,13 +123,16 @@ ValidationTest::DummyRenderPass ValidationTest::CreateDummyRenderPass() {
dummy.height = 400;
dummy.attachmentFormat = dawn::TextureFormat::R8G8B8A8Unorm;
dummy.attachment = AssertWillBeSuccess(device.CreateTextureBuilder())
.SetDimension(dawn::TextureDimension::e2D)
.SetExtent(dummy.width, dummy.height, 1)
.SetFormat(dummy.attachmentFormat)
.SetMipLevels(1)
.SetAllowedUsage(dawn::TextureUsageBit::OutputAttachment)
.GetResult();
dawn::TextureDescriptor descriptor;
descriptor.dimension = dawn::TextureDimension::e2D;
descriptor.width = dummy.width;
descriptor.height = dummy.height;
descriptor.depth = 1;
descriptor.arrayLayer = 1;
descriptor.format = dummy.attachmentFormat;
descriptor.mipLevel = 1;
descriptor.usage = dawn::TextureUsageBit::OutputAttachment;
dummy.attachment = device.CreateTexture(&descriptor);
dawn::TextureView view = AssertWillBeSuccess(dummy.attachment.CreateTextureViewBuilder()).GetResult();