Fix MSVC 14.29 errors:

- It doens't know which operator == to use when there is using
 EnumClassBitmask that looks like (a & b) == 0. Instead use just
 the form (a & b).
 - It doesn't do automatic capture of constexpr variables in lambdas so
 turn a couple constexpr into regular const.
 - It (correctly) warns that if constexpr (std::is_constant_evaluated())
 is always true, so remove the constexpr keyword.

 Bug: None

Change-Id: If7857abd1c30acb0736557844ff13f32a19d54cf
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117888
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Corentin Wallez <cwallez@chromium.org>
This commit is contained in:
Corentin Wallez
2023-01-30 14:49:27 +00:00
committed by Dawn LUCI CQ
parent 40358fde0b
commit 97ad405216
8 changed files with 14 additions and 14 deletions

View File

@@ -149,7 +149,7 @@ MaybeError ValidateTextureBinding(DeviceBase* device,
texture->GetSampleCount(), texture, bindingInfo.texture.multisampled);
DAWN_INVALID_IF(
(supportedTypes & requiredType) == 0,
!(supportedTypes & requiredType),
"None of the supported sample types (%s) of %s match the expected sample "
"types (%s).",
supportedTypes, texture, requiredType);

View File

@@ -69,19 +69,19 @@ bool Format::IsColor() const {
}
bool Format::HasDepth() const {
return (aspects & Aspect::Depth) != 0;
return aspects & Aspect::Depth;
}
bool Format::HasStencil() const {
return (aspects & Aspect::Stencil) != 0;
return aspects & Aspect::Stencil;
}
bool Format::HasDepthOrStencil() const {
return (aspects & (Aspect::Depth | Aspect::Stencil)) != 0;
return aspects & (Aspect::Depth | Aspect::Stencil);
}
bool Format::IsMultiPlanar() const {
return (aspects & (Aspect::Plane0 | Aspect::Plane1)) != 0;
return aspects & (Aspect::Plane0 | Aspect::Plane1);
}
bool Format::CopyCompatibleWith(const Format& format) const {
@@ -212,7 +212,7 @@ FormatTable BuildFormatTable(const DeviceBase* device) {
UNREACHABLE();
}
} else {
ASSERT((sampleTypes & SampleTypeBit::Float) != 0);
ASSERT(sampleTypes & SampleTypeBit::Float);
firstAspect->baseType = wgpu::TextureComponentType::Float;
}
firstAspect->supportedSampleTypes = sampleTypes;

View File

@@ -415,8 +415,8 @@ MaybeError ValidateCompatibilityOfSingleBindingWithLayout(const DeviceBase* devi
layoutInfo.texture.multisampled, shaderInfo.texture.multisampled);
// TODO(dawn:563): Provide info about the sample types.
DAWN_INVALID_IF((SampleTypeToSampleTypeBit(layoutInfo.texture.sampleType) &
shaderInfo.texture.compatibleSampleTypes) == 0,
DAWN_INVALID_IF(!(SampleTypeToSampleTypeBit(layoutInfo.texture.sampleType) &
shaderInfo.texture.compatibleSampleTypes),
"The sample type in the shader is not compatible with the "
"sample type of the layout.");

View File

@@ -371,7 +371,7 @@ MaybeError ValidateTextureDescriptor(const DeviceBase* device,
// Depth/stencil formats are valid for 2D textures only. Metal has this limit. And D3D12
// doesn't support depth/stencil formats on 3D textures.
DAWN_INVALID_IF(descriptor->dimension != wgpu::TextureDimension::e2D &&
(format->aspects & (Aspect::Depth | Aspect::Stencil)) != 0,
(format->aspects & (Aspect::Depth | Aspect::Stencil)),
"The dimension (%s) of a texture with a depth/stencil format (%s) is not 2D.",
descriptor->dimension, format->format);

View File

@@ -246,7 +246,7 @@ MaybeError Texture::ClearTexture(const SubresourceRange& range,
float fClearColor = (clearValue == TextureBase::ClearValue::Zero) ? 0.f : 1.f;
if (GetFormat().isRenderable) {
if ((range.aspects & (Aspect::Depth | Aspect::Stencil)) != 0) {
if (range.aspects & (Aspect::Depth | Aspect::Stencil)) {
GLfloat depth = fClearColor;
GLint stencil = clearColor;
if (range.aspects & Aspect::Depth) {