mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-06-13 18:13:47 +00:00
A lot of our switches over enum values use the following pattern: default: UNREACHABLE(); return foo; This is problematic because when adding a new value to one of the WebGPU enums, there is no compilation error for switches that are missing it. Currently we're supposed to write code and tests and fix UNREACHABLEs when we see them. Instead we should strive to have most switches on enums to be complete and explicitily tag unreachable values as UNREACHABLE. Some switches might still want to use default: UNREACHABLE() if only a couple values need to be handled out of very many. In this CL we go through all the UNRAECHABLEs and change them if need be. Also an ErrorQueue class is added to avoid having QueueBase::SubmitImpl just be UNREACHABLE (and force overriding instead). Bug: dawn:527 Change-Id: I33dfb4703104912cc5f001f9faf907a61324de68 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/28501 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
55 lines
1.9 KiB
C++
55 lines
1.9 KiB
C++
// Copyright 2019 The Dawn Authors
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
#include "dawn_native/opengl/UtilsGL.h"
|
|
|
|
#include "common/Assert.h"
|
|
|
|
namespace dawn_native { namespace opengl {
|
|
|
|
GLuint ToOpenGLCompareFunction(wgpu::CompareFunction compareFunction) {
|
|
switch (compareFunction) {
|
|
case wgpu::CompareFunction::Never:
|
|
return GL_NEVER;
|
|
case wgpu::CompareFunction::Less:
|
|
return GL_LESS;
|
|
case wgpu::CompareFunction::LessEqual:
|
|
return GL_LEQUAL;
|
|
case wgpu::CompareFunction::Greater:
|
|
return GL_GREATER;
|
|
case wgpu::CompareFunction::GreaterEqual:
|
|
return GL_GEQUAL;
|
|
case wgpu::CompareFunction::NotEqual:
|
|
return GL_NOTEQUAL;
|
|
case wgpu::CompareFunction::Equal:
|
|
return GL_EQUAL;
|
|
case wgpu::CompareFunction::Always:
|
|
return GL_ALWAYS;
|
|
|
|
case wgpu::CompareFunction::Undefined:
|
|
UNREACHABLE();
|
|
}
|
|
}
|
|
|
|
GLint GetStencilMaskFromStencilFormat(wgpu::TextureFormat depthStencilFormat) {
|
|
switch (depthStencilFormat) {
|
|
case wgpu::TextureFormat::Depth24PlusStencil8:
|
|
return 0xFF;
|
|
|
|
default:
|
|
UNREACHABLE();
|
|
}
|
|
}
|
|
}} // namespace dawn_native::opengl
|