Remove validation for framebuffer fetch with MSAA Since Metal supports framebuffer fetch on multisampled targets, and the current Dawn API for fetch is only supported on Metal, it's beneficial to allow fetch in Dawn on multisampled targets as well. Change-Id: I2125c09ba390108ce431e69600a647081602a9a8 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/161220 Commit-Queue: James Godfrey-Kittle <jamesgk@google.com> Reviewed-by: Austin Eng <enga@chromium.org> Kokoro: Kokoro <noreply+kokoro@google.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/dawn/native/RenderPipeline.cpp b/src/dawn/native/RenderPipeline.cpp index 1d03bf9..f5a749c 100644 --- a/src/dawn/native/RenderPipeline.cpp +++ b/src/dawn/native/RenderPipeline.cpp
@@ -638,12 +638,6 @@ format->format); } - if (multisample.count != 1) { - DAWN_INVALID_IF(fragmentMetadata.fragmentInputMask.any(), - "Framebuffer inputs are used when the sample count (%u) is not 1.", - multisample.count); - } - if (device->IsCompatibilityMode()) { DAWN_INVALID_IF( fragmentMetadata.usesSampleMaskOutput,
diff --git a/src/dawn/tests/unittests/validation/RenderPipelineValidationTests.cpp b/src/dawn/tests/unittests/validation/RenderPipelineValidationTests.cpp index 03ac33b..0c2d853 100644 --- a/src/dawn/tests/unittests/validation/RenderPipelineValidationTests.cpp +++ b/src/dawn/tests/unittests/validation/RenderPipelineValidationTests.cpp
@@ -2553,26 +2553,6 @@ } } -// Test that the framebuffer fetch requires multisampling to be off. -TEST_F(FramebufferFetchFeatureTest, MultisampleDisallowed) { - utils::ComboRenderPipelineDescriptor desc; - desc.vertex.entryPoint = "main"; - desc.vertex.module = vsModule; - desc.cFragment.entryPoint = "main"; - desc.cFragment.module = utils::CreateShaderModule(device, R"( - enable chromium_experimental_framebuffer_fetch; - @fragment fn main(@color(0) in : vec4f) -> @location(0) vec4f { - return in; - } - )"); - - desc.multisample.count = 1; - device.CreateRenderPipeline(&desc); - - desc.multisample.count = 4; - ASSERT_DEVICE_ERROR(device.CreateRenderPipeline(&desc)); -} - // Test that the framebuffer fetch type matches the texture format exactly. TEST_F(FramebufferFetchFeatureTest, InputMatchesFormat) { struct ValidPair {