Remove deprecated RenderPass*Attachment.attachment

Bug: dawn:762
Change-Id: I86144f77ffd647d2e5c01742fb67367c7a5c914e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/63382
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Brandon Jones <bajones@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
This commit is contained in:
Corentin Wallez 2021-09-14 10:42:22 +00:00 committed by Dawn LUCI CQ
parent 96ac969a33
commit 1ac4565115
6 changed files with 9 additions and 96 deletions

View File

@ -1370,19 +1370,18 @@
"render pass color attachment": { "render pass color attachment": {
"category": "structure", "category": "structure",
"members": [ "members": [
{"name": "view", "type": "texture view", "optional": true}, {"name": "view", "type": "texture view"},
{"name": "resolve target", "type": "texture view", "optional": true}, {"name": "resolve target", "type": "texture view", "optional": true},
{"name": "load op", "type": "load op"}, {"name": "load op", "type": "load op"},
{"name": "store op", "type": "store op"}, {"name": "store op", "type": "store op"},
{"name": "clear color", "type": "color"}, {"name": "clear color", "type": "color"}
{"name": "attachment", "type": "texture view", "optional": true}
] ]
}, },
"render pass depth stencil attachment": { "render pass depth stencil attachment": {
"category": "structure", "category": "structure",
"members": [ "members": [
{"name": "view", "type": "texture view", "optional": true}, {"name": "view", "type": "texture view"},
{"name": "depth load op", "type": "load op"}, {"name": "depth load op", "type": "load op"},
{"name": "depth store op", "type": "store op"}, {"name": "depth store op", "type": "store op"},
{"name": "clear depth", "type": "float"}, {"name": "clear depth", "type": "float"},
@ -1390,8 +1389,7 @@
{"name": "stencil load op", "type": "load op"}, {"name": "stencil load op", "type": "load op"},
{"name": "stencil store op", "type": "store op"}, {"name": "stencil store op", "type": "store op"},
{"name": "clear stencil", "type": "uint32_t", "default": "0"}, {"name": "clear stencil", "type": "uint32_t", "default": "0"},
{"name": "stencil read only", "type": "bool", "default": "false"}, {"name": "stencil read only", "type": "bool", "default": "false"}
{"name": "attachment", "type": "texture view", "optional": true}
] ]
}, },

View File

@ -110,7 +110,7 @@ void frame() {
WGPURenderPassDescriptor renderpassInfo = {}; WGPURenderPassDescriptor renderpassInfo = {};
WGPURenderPassColorAttachment colorAttachment = {}; WGPURenderPassColorAttachment colorAttachment = {};
{ {
colorAttachment.attachment = backbufferView; colorAttachment.view = backbufferView;
colorAttachment.resolveTarget = nullptr; colorAttachment.resolveTarget = nullptr;
colorAttachment.clearColor = {0.0f, 0.0f, 0.0f, 0.0f}; colorAttachment.clearColor = {0.0f, 0.0f, 0.0f, 0.0f};
colorAttachment.loadOp = WGPULoadOp_Clear; colorAttachment.loadOp = WGPULoadOp_Clear;

View File

@ -53,9 +53,6 @@ namespace dawn_native {
++i) { ++i) {
TextureViewBase* attachment = TextureViewBase* attachment =
descriptor->colorAttachments[static_cast<uint8_t>(i)].view; descriptor->colorAttachments[static_cast<uint8_t>(i)].view;
if (attachment == nullptr) {
attachment = descriptor->colorAttachments[static_cast<uint8_t>(i)].attachment;
}
mColorAttachmentsSet.set(i); mColorAttachmentsSet.set(i);
mColorFormats[i] = attachment->GetFormat().format; mColorFormats[i] = attachment->GetFormat().format;
if (mSampleCount == 0) { if (mSampleCount == 0) {
@ -66,9 +63,6 @@ namespace dawn_native {
} }
if (descriptor->depthStencilAttachment != nullptr) { if (descriptor->depthStencilAttachment != nullptr) {
TextureViewBase* attachment = descriptor->depthStencilAttachment->view; TextureViewBase* attachment = descriptor->depthStencilAttachment->view;
if (attachment == nullptr) {
attachment = descriptor->depthStencilAttachment->attachment;
}
mDepthStencilFormat = attachment->GetFormat().format; mDepthStencilFormat = attachment->GetFormat().format;
if (mSampleCount == 0) { if (mSampleCount == 0) {
mSampleCount = attachment->GetTexture()->GetSampleCount(); mSampleCount = attachment->GetTexture()->GetSampleCount();

View File

@ -170,8 +170,7 @@ namespace dawn_native {
} }
const TextureViewBase* resolveTarget = colorAttachment.resolveTarget; const TextureViewBase* resolveTarget = colorAttachment.resolveTarget;
const TextureViewBase* attachment = const TextureViewBase* attachment = colorAttachment.view;
colorAttachment.view != nullptr ? colorAttachment.view : colorAttachment.attachment;
DAWN_TRY(device->ValidateObject(colorAttachment.resolveTarget)); DAWN_TRY(device->ValidateObject(colorAttachment.resolveTarget));
DAWN_TRY(ValidateCanUseAs(colorAttachment.resolveTarget->GetTexture(), DAWN_TRY(ValidateCanUseAs(colorAttachment.resolveTarget->GetTexture(),
wgpu::TextureUsage::RenderAttachment)); wgpu::TextureUsage::RenderAttachment));
@ -220,24 +219,7 @@ namespace dawn_native {
uint32_t* width, uint32_t* width,
uint32_t* height, uint32_t* height,
uint32_t* sampleCount) { uint32_t* sampleCount) {
TextureViewBase* attachment; TextureViewBase* attachment = colorAttachment.view;
if (colorAttachment.view != nullptr) {
if (colorAttachment.attachment != nullptr) {
return DAWN_VALIDATION_ERROR(
"Cannot specify both a attachment and view. attachment is deprecated, "
"favor view instead.");
}
attachment = colorAttachment.view;
} else if (colorAttachment.attachment != nullptr) {
device->EmitDeprecationWarning(
"RenderPassColorAttachmentDescriptor.attachment has been deprecated. Use "
"RenderPassColorAttachmentDescriptor.view instead.");
attachment = colorAttachment.attachment;
} else {
return DAWN_VALIDATION_ERROR(
"Must specify a view for RenderPassColorAttachmentDescriptor");
}
DAWN_TRY(device->ValidateObject(attachment)); DAWN_TRY(device->ValidateObject(attachment));
DAWN_TRY( DAWN_TRY(
ValidateCanUseAs(attachment->GetTexture(), wgpu::TextureUsage::RenderAttachment)); ValidateCanUseAs(attachment->GetTexture(), wgpu::TextureUsage::RenderAttachment));
@ -279,24 +261,7 @@ namespace dawn_native {
uint32_t* sampleCount) { uint32_t* sampleCount) {
DAWN_ASSERT(depthStencilAttachment != nullptr); DAWN_ASSERT(depthStencilAttachment != nullptr);
TextureViewBase* attachment; TextureViewBase* attachment = depthStencilAttachment->view;
if (depthStencilAttachment->view != nullptr) {
if (depthStencilAttachment->attachment != nullptr) {
return DAWN_VALIDATION_ERROR(
"Cannot specify both a attachment and view. attachment is deprecated, "
"favor view instead.");
}
attachment = depthStencilAttachment->view;
} else if (depthStencilAttachment->attachment != nullptr) {
device->EmitDeprecationWarning(
"RenderPassDepthStencilAttachmentDescriptor.attachment has been deprecated. "
"Use RenderPassDepthStencilAttachmentDescriptor.view instead.");
attachment = depthStencilAttachment->attachment;
} else {
return DAWN_VALIDATION_ERROR(
"Must specify a view for RenderPassDepthStencilAttachmentDescriptor");
}
DAWN_TRY(device->ValidateObject(attachment)); DAWN_TRY(device->ValidateObject(attachment));
DAWN_TRY( DAWN_TRY(
ValidateCanUseAs(attachment->GetTexture(), wgpu::TextureUsage::RenderAttachment)); ValidateCanUseAs(attachment->GetTexture(), wgpu::TextureUsage::RenderAttachment));
@ -571,9 +536,6 @@ namespace dawn_native {
IterateBitSet(cmd->attachmentState->GetColorAttachmentsMask())) { IterateBitSet(cmd->attachmentState->GetColorAttachmentsMask())) {
uint8_t i = static_cast<uint8_t>(index); uint8_t i = static_cast<uint8_t>(index);
TextureViewBase* view = descriptor->colorAttachments[i].view; TextureViewBase* view = descriptor->colorAttachments[i].view;
if (view == nullptr) {
view = descriptor->colorAttachments[i].attachment;
}
TextureViewBase* resolveTarget = descriptor->colorAttachments[i].resolveTarget; TextureViewBase* resolveTarget = descriptor->colorAttachments[i].resolveTarget;
cmd->colorAttachments[index].view = view; cmd->colorAttachments[index].view = view;
@ -593,9 +555,6 @@ namespace dawn_native {
if (cmd->attachmentState->HasDepthStencilAttachment()) { if (cmd->attachmentState->HasDepthStencilAttachment()) {
TextureViewBase* view = descriptor->depthStencilAttachment->view; TextureViewBase* view = descriptor->depthStencilAttachment->view;
if (view == nullptr) {
view = descriptor->depthStencilAttachment->attachment;
}
cmd->depthStencilAttachment.view = view; cmd->depthStencilAttachment.view = view;
cmd->depthStencilAttachment.clearDepth = cmd->depthStencilAttachment.clearDepth =

View File

@ -34,44 +34,6 @@ class DeprecationTests : public DawnTest {
} }
}; };
// Test that setting attachment rather than view for render pass color and depth/stencil attachments
// is deprecated.
TEST_P(DeprecationTests, SetAttachmentDescriptorAttachment) {
utils::BasicRenderPass renderPass = utils::CreateBasicRenderPass(device, 1, 1);
wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
wgpu::RenderPassEncoder pass;
// Check that using .attachment with color attachments gives the warning.
wgpu::RenderPassColorAttachment* colorAttachment =
&renderPass.renderPassInfo.cColorAttachments[0];
colorAttachment->attachment = colorAttachment->view;
colorAttachment->view = nullptr;
EXPECT_DEPRECATION_WARNING(pass = encoder.BeginRenderPass(&renderPass.renderPassInfo));
pass.EndPass();
colorAttachment->view = colorAttachment->attachment;
colorAttachment->attachment = nullptr;
// Check that using .attachment with depth/stencil attachments gives the warning.
wgpu::TextureDescriptor descriptor;
descriptor.dimension = wgpu::TextureDimension::e2D;
descriptor.size = {1, 1, 1};
descriptor.sampleCount = 1;
descriptor.format = wgpu::TextureFormat::Depth24PlusStencil8;
descriptor.mipLevelCount = 1;
descriptor.usage = wgpu::TextureUsage::RenderAttachment;
wgpu::Texture depthStencil = device.CreateTexture(&descriptor);
wgpu::RenderPassDepthStencilAttachment* depthAttachment =
&renderPass.renderPassInfo.cDepthStencilAttachmentInfo;
renderPass.renderPassInfo.depthStencilAttachment = depthAttachment;
depthAttachment->attachment = depthStencil.CreateView();
EXPECT_DEPRECATION_WARNING(pass = encoder.BeginRenderPass(&renderPass.renderPassInfo));
pass.EndPass();
}
// Test that setting computeStage in a ComputePipelineDescriptor is deprecated. // Test that setting computeStage in a ComputePipelineDescriptor is deprecated.
TEST_P(DeprecationTests, ComputeStage) { TEST_P(DeprecationTests, ComputeStage) {
wgpu::ComputePipelineDescriptor csDesc; wgpu::ComputePipelineDescriptor csDesc;

View File

@ -763,7 +763,7 @@ TEST_P(D3D12DescriptorHeapTests, EncodeManyUBOAndSamplers) {
utils::ComboRenderPassDescriptor renderPassDesc({textureView}); utils::ComboRenderPassDescriptor renderPassDesc({textureView});
renderPassDesc.cColorAttachments[0].loadOp = wgpu::LoadOp::Clear; renderPassDesc.cColorAttachments[0].loadOp = wgpu::LoadOp::Clear;
renderPassDesc.cColorAttachments[0].clearColor = {0.0f, 1.0f, 0.0f, 1.0f}; renderPassDesc.cColorAttachments[0].clearColor = {0.0f, 1.0f, 0.0f, 1.0f};
renderPass.renderPassInfo.cColorAttachments[0].attachment = textureView; renderPass.renderPassInfo.cColorAttachments[0].view = textureView;
wgpu::CommandEncoder encoder = device.CreateCommandEncoder(); wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
auto pass = encoder.BeginRenderPass(&renderPassDesc); auto pass = encoder.BeginRenderPass(&renderPassDesc);