mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-15 08:06:19 +00:00
Revert "Add ComparisonSampler binding type and validation tests"
This reverts commit 6d9e4f8076.
Reason for revert: Breaks the roll in Chromium, gpu_sampler.cc must first be
fixed to use the new undefined value, before this can be landed.
Original change's description:
> Add ComparisonSampler binding type and validation tests
>
> Bug: dawn:367
> Change-Id: Iba1d3d03f6247a356b6f3fabfe7a7ba3c0753171
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/18423
> Reviewed-by: Austin Eng <enga@chromium.org>
> Commit-Queue: Austin Eng <enga@chromium.org>
TBR=cwallez@chromium.org,kainino@chromium.org,enga@chromium.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: dawn:367
Change-Id: Ic071a601df2063bd2da5388b2e75c1a121924a69
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/19983
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
This commit is contained in:
committed by
Commit Bot service account
parent
24730cde43
commit
8edb723dea
@@ -264,13 +264,16 @@ TEST_P(BindGroupTests, UBOSamplerAndTexture) {
|
||||
wgpu::Buffer buffer = utils::CreateBufferFromData(device, &transform, sizeof(transform),
|
||||
wgpu::BufferUsage::Uniform);
|
||||
|
||||
wgpu::SamplerDescriptor samplerDescriptor = {};
|
||||
wgpu::SamplerDescriptor samplerDescriptor;
|
||||
samplerDescriptor.minFilter = wgpu::FilterMode::Nearest;
|
||||
samplerDescriptor.magFilter = wgpu::FilterMode::Nearest;
|
||||
samplerDescriptor.mipmapFilter = wgpu::FilterMode::Nearest;
|
||||
samplerDescriptor.addressModeU = wgpu::AddressMode::ClampToEdge;
|
||||
samplerDescriptor.addressModeV = wgpu::AddressMode::ClampToEdge;
|
||||
samplerDescriptor.addressModeW = wgpu::AddressMode::ClampToEdge;
|
||||
samplerDescriptor.lodMinClamp = kLodMin;
|
||||
samplerDescriptor.lodMaxClamp = kLodMax;
|
||||
samplerDescriptor.compare = wgpu::CompareFunction::Never;
|
||||
|
||||
wgpu::Sampler sampler = device.CreateSampler(&samplerDescriptor);
|
||||
|
||||
|
||||
@@ -122,13 +122,16 @@ protected:
|
||||
void TestAddressModes(AddressModeTestCase u, AddressModeTestCase v, AddressModeTestCase w) {
|
||||
wgpu::Sampler sampler;
|
||||
{
|
||||
wgpu::SamplerDescriptor descriptor = {};
|
||||
wgpu::SamplerDescriptor descriptor;
|
||||
descriptor.minFilter = wgpu::FilterMode::Nearest;
|
||||
descriptor.magFilter = wgpu::FilterMode::Nearest;
|
||||
descriptor.mipmapFilter = wgpu::FilterMode::Nearest;
|
||||
descriptor.addressModeU = u.mMode;
|
||||
descriptor.addressModeV = v.mMode;
|
||||
descriptor.addressModeW = w.mMode;
|
||||
descriptor.lodMinClamp = kLodMin;
|
||||
descriptor.lodMaxClamp = kLodMax;
|
||||
descriptor.compare = wgpu::CompareFunction::Never;
|
||||
sampler = device.CreateSampler(&descriptor);
|
||||
}
|
||||
|
||||
|
||||
@@ -86,13 +86,16 @@ protected:
|
||||
wgpu::FilterMode kFilterMode = wgpu::FilterMode::Nearest;
|
||||
wgpu::AddressMode kAddressMode = wgpu::AddressMode::ClampToEdge;
|
||||
|
||||
wgpu::SamplerDescriptor samplerDescriptor = {};
|
||||
wgpu::SamplerDescriptor samplerDescriptor;
|
||||
samplerDescriptor.minFilter = kFilterMode;
|
||||
samplerDescriptor.magFilter = kFilterMode;
|
||||
samplerDescriptor.mipmapFilter = kFilterMode;
|
||||
samplerDescriptor.addressModeU = kAddressMode;
|
||||
samplerDescriptor.addressModeV = kAddressMode;
|
||||
samplerDescriptor.addressModeW = kAddressMode;
|
||||
samplerDescriptor.lodMinClamp = kLodMin;
|
||||
samplerDescriptor.lodMaxClamp = kLodMax;
|
||||
samplerDescriptor.compare = wgpu::CompareFunction::Never;
|
||||
mSampler = device.CreateSampler(&samplerDescriptor);
|
||||
|
||||
mVSModule = CreateDefaultVertexShaderModule(device);
|
||||
|
||||
@@ -1506,126 +1506,3 @@ TEST_F(BindingsValidationTest, BindGroupsWithLessBindingsThanPipelineLayout) {
|
||||
|
||||
TestComputePassBindings(bg.data(), kBindingNum, computePipeline, false);
|
||||
}
|
||||
|
||||
class ComparisonSamplerBindingTest : public ValidationTest {
|
||||
protected:
|
||||
wgpu::RenderPipeline CreateFragmentPipeline(wgpu::BindGroupLayout* bindGroupLayout,
|
||||
const char* fragmentSource) {
|
||||
wgpu::ShaderModule vsModule =
|
||||
utils::CreateShaderModule(device, utils::SingleShaderStage::Vertex, R"(
|
||||
#version 450
|
||||
void main() {
|
||||
})");
|
||||
|
||||
wgpu::ShaderModule fsModule =
|
||||
utils::CreateShaderModule(device, utils::SingleShaderStage::Fragment, fragmentSource);
|
||||
|
||||
utils::ComboRenderPipelineDescriptor pipelineDescriptor(device);
|
||||
pipelineDescriptor.vertexStage.module = vsModule;
|
||||
pipelineDescriptor.cFragmentStage.module = fsModule;
|
||||
wgpu::PipelineLayout pipelineLayout =
|
||||
utils::MakeBasicPipelineLayout(device, bindGroupLayout);
|
||||
pipelineDescriptor.layout = pipelineLayout;
|
||||
return device.CreateRenderPipeline(&pipelineDescriptor);
|
||||
}
|
||||
};
|
||||
|
||||
// TODO(crbug.com/dawn/367): Disabled until we can perform shader analysis
|
||||
// of which samplers are comparison samplers.
|
||||
TEST_F(ComparisonSamplerBindingTest, DISABLED_ShaderAndBGLMatches) {
|
||||
// Test that sampler binding works with normal sampler in the shader.
|
||||
{
|
||||
wgpu::BindGroupLayout bindGroupLayout = utils::MakeBindGroupLayout(
|
||||
device, {{0, wgpu::ShaderStage::Fragment, wgpu::BindingType::Sampler}});
|
||||
|
||||
CreateFragmentPipeline(&bindGroupLayout, R"(
|
||||
#version 450
|
||||
layout(set = 0, binding = 0) uniform sampler samp;
|
||||
|
||||
void main() {
|
||||
})");
|
||||
}
|
||||
|
||||
// Test that comparison sampler binding works with shadow sampler in the shader.
|
||||
{
|
||||
wgpu::BindGroupLayout bindGroupLayout = utils::MakeBindGroupLayout(
|
||||
device, {{0, wgpu::ShaderStage::Fragment, wgpu::BindingType::ComparisonSampler}});
|
||||
|
||||
CreateFragmentPipeline(&bindGroupLayout, R"(
|
||||
#version 450
|
||||
layout(set = 0, binding = 0) uniform samplerShadow samp;
|
||||
|
||||
void main() {
|
||||
})");
|
||||
}
|
||||
|
||||
// Test that sampler binding does not work with comparison sampler in the shader.
|
||||
{
|
||||
wgpu::BindGroupLayout bindGroupLayout = utils::MakeBindGroupLayout(
|
||||
device, {{0, wgpu::ShaderStage::Fragment, wgpu::BindingType::Sampler}});
|
||||
|
||||
ASSERT_DEVICE_ERROR(CreateFragmentPipeline(&bindGroupLayout, R"(
|
||||
#version 450
|
||||
layout(set = 0, binding = 0) uniform samplerShadow samp;
|
||||
|
||||
void main() {
|
||||
})"));
|
||||
}
|
||||
|
||||
// Test that comparison sampler binding does not work with normal sampler in the shader.
|
||||
{
|
||||
wgpu::BindGroupLayout bindGroupLayout = utils::MakeBindGroupLayout(
|
||||
device, {{0, wgpu::ShaderStage::Fragment, wgpu::BindingType::ComparisonSampler}});
|
||||
|
||||
ASSERT_DEVICE_ERROR(CreateFragmentPipeline(&bindGroupLayout, R"(
|
||||
#version 450
|
||||
layout(set = 0, binding = 0) uniform sampler samp;
|
||||
|
||||
void main() {
|
||||
})"));
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(ComparisonSamplerBindingTest, SamplerAndBindGroupMatches) {
|
||||
// Test that sampler binding works with normal sampler.
|
||||
{
|
||||
wgpu::BindGroupLayout bindGroupLayout = utils::MakeBindGroupLayout(
|
||||
device, {{0, wgpu::ShaderStage::Fragment, wgpu::BindingType::Sampler}});
|
||||
|
||||
wgpu::SamplerDescriptor desc = {};
|
||||
utils::MakeBindGroup(device, bindGroupLayout, {{0, device.CreateSampler(&desc)}});
|
||||
}
|
||||
|
||||
// Test that comparison sampler binding works with sampler w/ compare function.
|
||||
{
|
||||
wgpu::BindGroupLayout bindGroupLayout = utils::MakeBindGroupLayout(
|
||||
device, {{0, wgpu::ShaderStage::Fragment, wgpu::BindingType::ComparisonSampler}});
|
||||
|
||||
wgpu::SamplerDescriptor desc = {
|
||||
.compare = wgpu::CompareFunction::Never,
|
||||
};
|
||||
utils::MakeBindGroup(device, bindGroupLayout, {{0, device.CreateSampler(&desc)}});
|
||||
}
|
||||
|
||||
// Test that sampler binding does not work with sampler w/ compare function.
|
||||
{
|
||||
wgpu::BindGroupLayout bindGroupLayout = utils::MakeBindGroupLayout(
|
||||
device, {{0, wgpu::ShaderStage::Fragment, wgpu::BindingType::Sampler}});
|
||||
|
||||
wgpu::SamplerDescriptor desc = {
|
||||
.compare = wgpu::CompareFunction::Never,
|
||||
};
|
||||
ASSERT_DEVICE_ERROR(
|
||||
utils::MakeBindGroup(device, bindGroupLayout, {{0, device.CreateSampler(&desc)}}));
|
||||
}
|
||||
|
||||
// Test that comparison sampler binding does not work with normal sampler.
|
||||
{
|
||||
wgpu::BindGroupLayout bindGroupLayout = utils::MakeBindGroupLayout(
|
||||
device, {{0, wgpu::ShaderStage::Fragment, wgpu::BindingType::ComparisonSampler}});
|
||||
|
||||
wgpu::SamplerDescriptor desc = {};
|
||||
ASSERT_DEVICE_ERROR(
|
||||
utils::MakeBindGroup(device, bindGroupLayout, {{0, device.CreateSampler(&desc)}}));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user