mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-14 15:46:28 +00:00
Fix validation of multisampled BGL bindings
Bug: chromium:1097501, chromium:1097514 Change-Id: I18f03398488cc3b5adf6755989e787e117d8a004 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/23640 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jiawei Shao <jiawei.shao@intel.com> Commit-Queue: Austin Eng <enga@chromium.org>
This commit is contained in:
committed by
Commit Bot service account
parent
4cf65bcab5
commit
8ab3719fc4
@@ -727,6 +727,7 @@ TEST_F(BindGroupLayoutValidationTest, DynamicBufferNumberLimit) {
|
||||
}
|
||||
}
|
||||
|
||||
// Test that multisampled textures must be 2D sampled textures
|
||||
TEST_F(BindGroupLayoutValidationTest, MultisampledTextures) {
|
||||
// Multisampled 2D texture works.
|
||||
utils::MakeBindGroupLayout(
|
||||
@@ -742,6 +743,13 @@ TEST_F(BindGroupLayoutValidationTest, MultisampledTextures) {
|
||||
wgpu::TextureViewDimension::Undefined},
|
||||
});
|
||||
|
||||
// Multisampled 2D storage texture is invalid.
|
||||
ASSERT_DEVICE_ERROR(utils::MakeBindGroupLayout(
|
||||
device, {
|
||||
{0, wgpu::ShaderStage::Compute, wgpu::BindingType::ReadonlyStorageTexture,
|
||||
false, true, wgpu::TextureViewDimension::e2D},
|
||||
}));
|
||||
|
||||
// Multisampled 2D array texture is invalid.
|
||||
ASSERT_DEVICE_ERROR(utils::MakeBindGroupLayout(
|
||||
device, {
|
||||
@@ -771,6 +779,34 @@ TEST_F(BindGroupLayoutValidationTest, MultisampledTextures) {
|
||||
}));
|
||||
}
|
||||
|
||||
// Test that it is an error to pass multisampled=true for non-texture bindings
|
||||
TEST_F(BindGroupLayoutValidationTest, MultisampledMustBeTexture) {
|
||||
// Base: Multisampled 2D texture works.
|
||||
utils::MakeBindGroupLayout(
|
||||
device, {
|
||||
{0, wgpu::ShaderStage::Compute, wgpu::BindingType::SampledTexture, false, true,
|
||||
wgpu::TextureViewDimension::e2D},
|
||||
});
|
||||
|
||||
// Multisampled uniform buffer binding is invalid
|
||||
ASSERT_DEVICE_ERROR(utils::MakeBindGroupLayout(
|
||||
device, {
|
||||
{0, wgpu::ShaderStage::Compute, wgpu::BindingType::UniformBuffer, false, true},
|
||||
}));
|
||||
|
||||
// Multisampled storage buffer binding is invalid
|
||||
ASSERT_DEVICE_ERROR(utils::MakeBindGroupLayout(
|
||||
device, {
|
||||
{0, wgpu::ShaderStage::Compute, wgpu::BindingType::StorageBuffer, false, true},
|
||||
}));
|
||||
|
||||
// Multisampled sampler binding is invalid
|
||||
ASSERT_DEVICE_ERROR(utils::MakeBindGroupLayout(
|
||||
device, {
|
||||
{0, wgpu::ShaderStage::Compute, wgpu::BindingType::Sampler, false, true},
|
||||
}));
|
||||
}
|
||||
|
||||
constexpr uint64_t kBufferSize = 3 * kMinDynamicBufferOffsetAlignment + 8;
|
||||
constexpr uint32_t kBindingSize = 9;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user