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:
parent
40358fde0b
commit
97ad405216
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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.");
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -1854,7 +1854,7 @@ ConstEval::Result ConstEval::OpShiftRight(const type::Type* ty,
|
|||
using NumberT = decltype(e1);
|
||||
using T = UnwrapNumber<NumberT>;
|
||||
using UT = std::make_unsigned_t<T>;
|
||||
constexpr size_t bit_width = BitWidth<NumberT>;
|
||||
const size_t bit_width = BitWidth<NumberT>;
|
||||
const UT e1u = static_cast<UT>(e1);
|
||||
const UT e2u = static_cast<UT>(e2);
|
||||
|
||||
|
|
|
@ -112,8 +112,8 @@ struct PreservePadding::State {
|
|||
//
|
||||
// Since this requires passing pointers to the storage address space, this will also enable
|
||||
// the chromium_experimental_full_ptr_parameters extension.
|
||||
constexpr const char* kDestParamName = "dest";
|
||||
constexpr const char* kValueParamName = "value";
|
||||
const char* kDestParamName = "dest";
|
||||
const char* kValueParamName = "value";
|
||||
auto call_helper = [&](auto&& body) {
|
||||
EnableExtension();
|
||||
auto helper = helpers.GetOrCreate(ty, [&]() {
|
||||
|
|
|
@ -46,7 +46,7 @@ inline constexpr uint32_t Log2(uint64_t value) {
|
|||
#elif defined(_MSC_VER) && !defined(__clang__) && __cplusplus >= 202002L // MSVC and C++20+
|
||||
// note: std::is_constant_evaluated() added in C++20
|
||||
// required here as _BitScanReverse64 is not constexpr
|
||||
if constexpr (!std::is_constant_evaluated()) {
|
||||
if (!std::is_constant_evaluated()) {
|
||||
// NOLINTNEXTLINE(runtime/int)
|
||||
if constexpr (sizeof(unsigned long) == 8) { // 64-bit
|
||||
// NOLINTNEXTLINE(runtime/int)
|
||||
|
|
Loading…
Reference in New Issue