Revert "Make it invalid to use sampleType "float" with multisampled textures"
This reverts commit 9b2f273d36
.
Reason for revert: Breaking change needs deprecation period.
Original change's description:
> Make it invalid to use sampleType "float" with multisampled textures
>
> Fixed: dawn:1540
> Change-Id: I31f197d802c20ed7e6ef2ae00d4e107ab6f94278
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/102420
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
> Kokoro: Kokoro <noreply+kokoro@google.com>
> Commit-Queue: Austin Eng <enga@chromium.org>
TBR=cwallez@chromium.org,enga@chromium.org,shrekshao@google.com,noreply+kokoro@google.com,dawn-scoped@luci-project-accounts.iam.gserviceaccount.com
Change-Id: I5ac4b5691b0c4fb0ce76223c1997855e1b3485f3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/102500
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
This commit is contained in:
parent
233d64066c
commit
505e1a9368
|
@ -113,11 +113,6 @@ MaybeError ValidateBindGroupLayoutEntry(DeviceBase* device,
|
||||||
DAWN_INVALID_IF(texture.multisampled && viewDimension != wgpu::TextureViewDimension::e2D,
|
DAWN_INVALID_IF(texture.multisampled && viewDimension != wgpu::TextureViewDimension::e2D,
|
||||||
"View dimension (%s) for a multisampled texture bindings was not %s.",
|
"View dimension (%s) for a multisampled texture bindings was not %s.",
|
||||||
viewDimension, wgpu::TextureViewDimension::e2D);
|
viewDimension, wgpu::TextureViewDimension::e2D);
|
||||||
|
|
||||||
DAWN_INVALID_IF(
|
|
||||||
texture.multisampled && texture.sampleType == wgpu::TextureSampleType::Float,
|
|
||||||
"Sample type for multisampled texture bindings must not be %s.",
|
|
||||||
wgpu::TextureSampleType::Float);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (entry.storageTexture.access != wgpu::StorageTextureAccess::Undefined) {
|
if (entry.storageTexture.access != wgpu::StorageTextureAccess::Undefined) {
|
||||||
|
|
|
@ -781,7 +781,7 @@ TEST_F(BindGroupValidationTest, BufferOffsetAlignment) {
|
||||||
// Tests constraints on the texture for MultisampledTexture bindings
|
// Tests constraints on the texture for MultisampledTexture bindings
|
||||||
TEST_F(BindGroupValidationTest, MultisampledTexture) {
|
TEST_F(BindGroupValidationTest, MultisampledTexture) {
|
||||||
wgpu::BindGroupLayout layout = utils::MakeBindGroupLayout(
|
wgpu::BindGroupLayout layout = utils::MakeBindGroupLayout(
|
||||||
device, {{0, wgpu::ShaderStage::Fragment, wgpu::TextureSampleType::UnfilterableFloat,
|
device, {{0, wgpu::ShaderStage::Fragment, wgpu::TextureSampleType::Float,
|
||||||
wgpu::TextureViewDimension::e2D, true}});
|
wgpu::TextureViewDimension::e2D, true}});
|
||||||
|
|
||||||
wgpu::BindGroupEntry binding;
|
wgpu::BindGroupEntry binding;
|
||||||
|
@ -1420,69 +1420,62 @@ TEST_F(BindGroupLayoutValidationTest, DynamicBufferNumberLimit) {
|
||||||
// Test that multisampled textures must be 2D sampled textures
|
// Test that multisampled textures must be 2D sampled textures
|
||||||
TEST_F(BindGroupLayoutValidationTest, MultisampledTextureViewDimension) {
|
TEST_F(BindGroupLayoutValidationTest, MultisampledTextureViewDimension) {
|
||||||
// Multisampled 2D texture works.
|
// Multisampled 2D texture works.
|
||||||
utils::MakeBindGroupLayout(
|
utils::MakeBindGroupLayout(device,
|
||||||
device, {
|
{
|
||||||
{0, wgpu::ShaderStage::Compute, wgpu::TextureSampleType::UnfilterableFloat,
|
{0, wgpu::ShaderStage::Compute, wgpu::TextureSampleType::Float,
|
||||||
wgpu::TextureViewDimension::e2D, true},
|
wgpu::TextureViewDimension::e2D, true},
|
||||||
});
|
});
|
||||||
|
|
||||||
// Multisampled 2D (defaulted) texture works.
|
// Multisampled 2D (defaulted) texture works.
|
||||||
utils::MakeBindGroupLayout(
|
utils::MakeBindGroupLayout(device,
|
||||||
device, {
|
{
|
||||||
{0, wgpu::ShaderStage::Compute, wgpu::TextureSampleType::UnfilterableFloat,
|
{0, wgpu::ShaderStage::Compute, wgpu::TextureSampleType::Float,
|
||||||
wgpu::TextureViewDimension::Undefined, true},
|
wgpu::TextureViewDimension::Undefined, true},
|
||||||
});
|
});
|
||||||
|
|
||||||
// Multisampled 2D array texture is invalid.
|
// Multisampled 2D array texture is invalid.
|
||||||
ASSERT_DEVICE_ERROR(utils::MakeBindGroupLayout(
|
ASSERT_DEVICE_ERROR(utils::MakeBindGroupLayout(
|
||||||
device, {
|
device, {
|
||||||
{0, wgpu::ShaderStage::Compute, wgpu::TextureSampleType::UnfilterableFloat,
|
{0, wgpu::ShaderStage::Compute, wgpu::TextureSampleType::Float,
|
||||||
wgpu::TextureViewDimension::e2DArray, true},
|
wgpu::TextureViewDimension::e2DArray, true},
|
||||||
}));
|
}));
|
||||||
|
|
||||||
// Multisampled cube texture is invalid.
|
// Multisampled cube texture is invalid.
|
||||||
ASSERT_DEVICE_ERROR(utils::MakeBindGroupLayout(
|
ASSERT_DEVICE_ERROR(utils::MakeBindGroupLayout(
|
||||||
device, {
|
device, {
|
||||||
{0, wgpu::ShaderStage::Compute, wgpu::TextureSampleType::UnfilterableFloat,
|
{0, wgpu::ShaderStage::Compute, wgpu::TextureSampleType::Float,
|
||||||
wgpu::TextureViewDimension::Cube, true},
|
wgpu::TextureViewDimension::Cube, true},
|
||||||
}));
|
}));
|
||||||
|
|
||||||
// Multisampled cube array texture is invalid.
|
// Multisampled cube array texture is invalid.
|
||||||
ASSERT_DEVICE_ERROR(utils::MakeBindGroupLayout(
|
ASSERT_DEVICE_ERROR(utils::MakeBindGroupLayout(
|
||||||
device, {
|
device, {
|
||||||
{0, wgpu::ShaderStage::Compute, wgpu::TextureSampleType::UnfilterableFloat,
|
{0, wgpu::ShaderStage::Compute, wgpu::TextureSampleType::Float,
|
||||||
wgpu::TextureViewDimension::CubeArray, true},
|
wgpu::TextureViewDimension::CubeArray, true},
|
||||||
}));
|
}));
|
||||||
|
|
||||||
// Multisampled 3D texture is invalid.
|
// Multisampled 3D texture is invalid.
|
||||||
ASSERT_DEVICE_ERROR(utils::MakeBindGroupLayout(
|
ASSERT_DEVICE_ERROR(utils::MakeBindGroupLayout(
|
||||||
device, {
|
device, {
|
||||||
{0, wgpu::ShaderStage::Compute, wgpu::TextureSampleType::UnfilterableFloat,
|
{0, wgpu::ShaderStage::Compute, wgpu::TextureSampleType::Float,
|
||||||
wgpu::TextureViewDimension::e3D, true},
|
wgpu::TextureViewDimension::e3D, true},
|
||||||
}));
|
}));
|
||||||
|
|
||||||
// Multisampled 1D texture is invalid.
|
// Multisampled 1D texture is invalid.
|
||||||
ASSERT_DEVICE_ERROR(utils::MakeBindGroupLayout(
|
ASSERT_DEVICE_ERROR(utils::MakeBindGroupLayout(
|
||||||
device, {
|
device, {
|
||||||
{0, wgpu::ShaderStage::Compute, wgpu::TextureSampleType::UnfilterableFloat,
|
{0, wgpu::ShaderStage::Compute, wgpu::TextureSampleType::Float,
|
||||||
wgpu::TextureViewDimension::e1D, true},
|
wgpu::TextureViewDimension::e1D, true},
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Test that multisampled texture bindings are valid
|
// Test that multisampled texture bindings are valid
|
||||||
TEST_F(BindGroupLayoutValidationTest, MultisampledTextureSampleType) {
|
TEST_F(BindGroupLayoutValidationTest, MultisampledTextureSampleType) {
|
||||||
// Multisampled float sample type invalid.
|
// Multisampled float sample type works.
|
||||||
ASSERT_DEVICE_ERROR(utils::MakeBindGroupLayout(
|
utils::MakeBindGroupLayout(device,
|
||||||
device, {
|
{
|
||||||
{0, wgpu::ShaderStage::Compute, wgpu::TextureSampleType::Float,
|
{0, wgpu::ShaderStage::Compute, wgpu::TextureSampleType::Float,
|
||||||
wgpu::TextureViewDimension::e2D, true},
|
wgpu::TextureViewDimension::e2D, true},
|
||||||
}));
|
|
||||||
|
|
||||||
// Multisampled unfilterable float sample type works.
|
|
||||||
utils::MakeBindGroupLayout(
|
|
||||||
device, {
|
|
||||||
{0, wgpu::ShaderStage::Compute, wgpu::TextureSampleType::UnfilterableFloat,
|
|
||||||
wgpu::TextureViewDimension::e2D, true},
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Multisampled uint sample type works.
|
// Multisampled uint sample type works.
|
||||||
|
|
|
@ -623,30 +623,6 @@ crbug.com/dawn/0000 [ mac ] worker_webgpu:api,operation,render_pass,storeOp:rend
|
||||||
################################################################################
|
################################################################################
|
||||||
crbug.com/dawn/0000 [ win ] webgpu:shader,execution,expression,binary,f32_logical:* [ Slow ]
|
crbug.com/dawn/0000 [ win ] webgpu:shader,execution,expression,binary,f32_logical:* [ Slow ]
|
||||||
|
|
||||||
################################################################################
|
|
||||||
# test bug. need validation update
|
|
||||||
# github.com/gpuweb/cts/issues/1848
|
|
||||||
################################################################################
|
|
||||||
webgpu:api,validation,createBindGroup:binding_must_contain_resource_defined_in_layout: [ Failure ]
|
|
||||||
webgpu:api,validation,createBindGroup:texture,resource_state: [ Failure ]
|
|
||||||
webgpu:api,validation,createBindGroup:texture_binding_must_have_correct_usage: [ Failure ]
|
|
||||||
webgpu:api,validation,createBindGroupLayout:max_resources_per_stage,in_bind_group_layout:maxedEntry={"texture":{"multisampled":false}} [ Failure ]
|
|
||||||
webgpu:api,validation,createBindGroupLayout:max_resources_per_stage,in_bind_group_layout:maxedEntry={"texture":{"multisampled":true}} [ Failure ]
|
|
||||||
webgpu:api,validation,createBindGroupLayout:max_resources_per_stage,in_pipeline_layout:maxedEntry={"texture":{"multisampled":false}} [ Failure ]
|
|
||||||
webgpu:api,validation,createBindGroupLayout:max_resources_per_stage,in_pipeline_layout:maxedEntry={"texture":{"multisampled":true}} [ Failure ]
|
|
||||||
webgpu:api,validation,createBindGroupLayout:multisampled_validation: [ Failure ]
|
|
||||||
webgpu:api,validation,createBindGroupLayout:visibility:visibility=0 [ Failure ]
|
|
||||||
webgpu:api,validation,createBindGroupLayout:visibility:visibility=1 [ Failure ]
|
|
||||||
webgpu:api,validation,createBindGroupLayout:visibility:visibility=2 [ Failure ]
|
|
||||||
webgpu:api,validation,createBindGroupLayout:visibility:visibility=3 [ Failure ]
|
|
||||||
webgpu:api,validation,createBindGroupLayout:visibility:visibility=4 [ Failure ]
|
|
||||||
webgpu:api,validation,createBindGroupLayout:visibility:visibility=5 [ Failure ]
|
|
||||||
webgpu:api,validation,createBindGroupLayout:visibility:visibility=6 [ Failure ]
|
|
||||||
webgpu:api,validation,createBindGroupLayout:visibility:visibility=7 [ Failure ]
|
|
||||||
webgpu:api,validation,resource_usages,texture,in_pass_encoder:bindings_in_bundle:type0="multisampled-texture";type1="multisampled-texture" [ Failure ]
|
|
||||||
webgpu:api,validation,resource_usages,texture,in_pass_encoder:bindings_in_bundle:type0="multisampled-texture";type1="render-target" [ Failure ]
|
|
||||||
webgpu:api,validation,resource_usages,texture,in_pass_encoder:bindings_in_bundle:type0="render-target";type1="multisampled-texture" [ Failure ]
|
|
||||||
|
|
||||||
# New failures. Please triage:
|
# New failures. Please triage:
|
||||||
crbug.com/dawn/0000 [ intel-gen-9 win10 ] webgpu:api,operation,command_buffer,image_copy:mip_levels:initMethod="WriteTexture";checkMethod="PartialCopyT2B";format="rgba32uint";dimension="2d" [ Failure ]
|
crbug.com/dawn/0000 [ intel-gen-9 win10 ] webgpu:api,operation,command_buffer,image_copy:mip_levels:initMethod="WriteTexture";checkMethod="PartialCopyT2B";format="rgba32uint";dimension="2d" [ Failure ]
|
||||||
crbug.com/dawn/0000 webgpu:api,operation,device,lost:not_lost_on_gc: [ Failure ]
|
crbug.com/dawn/0000 webgpu:api,operation,device,lost:not_lost_on_gc: [ Failure ]
|
||||||
|
|
Loading…
Reference in New Issue