mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-08-02 18:25:56 +00:00
Renames dawn_native::ComponentTypeBit to SampleTypeBit and makes the bitmask match wgpu::TextureSampleType. wgpu::TextureComponentType should be removed in a follow-up CL. The Format table is augmented with float/unfilterable-float information so that textures can be validated against the BGLEntry's TextureSampleType. EntryPointMetadata::ShaderBindingInfo no longer inherits BindingInfo because the two types are diverging further. Most notably, this CL reflects from Tint the supported SampleTypeBits for texture bindings. This bitset is validated against the bind group layout. Adds an isFiltering getter to SamplerBase. A filtering sampler must not be used with a non-filtering sampler binding. Lastly, the CL reflects sampler/texture pairs from Tint and validates an entrypoint against the pipeline layout that a filtering sampler is not used with an unfilterable-float texture binding. Bug: dawn:367 Change-Id: If9f2c0d8fbad5641c2ecc30615a3c68a6ed6150a Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/56521 Reviewed-by: Jiawei Shao <jiawei.shao@intel.com> Commit-Queue: Austin Eng <enga@chromium.org>
47 lines
1.8 KiB
C++
47 lines
1.8 KiB
C++
// Copyright 2020 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.
|
|
|
|
// This file contains utilities to convert from-to spirv.hpp datatypes without polluting other
|
|
// headers with spirv.hpp
|
|
|
|
#ifndef DAWNNATIVE_SPIRV_UTILS_H_
|
|
#define DAWNNATIVE_SPIRV_UTILS_H_
|
|
|
|
#include "dawn_native/Format.h"
|
|
#include "dawn_native/PerStage.h"
|
|
#include "dawn_native/dawn_platform.h"
|
|
|
|
#include <spirv_cross.hpp>
|
|
|
|
namespace dawn_native {
|
|
|
|
// Returns the spirv_cross equivalent for this shader stage and vice-versa.
|
|
spv::ExecutionModel ShaderStageToExecutionModel(SingleShaderStage stage);
|
|
SingleShaderStage ExecutionModelToShaderStage(spv::ExecutionModel model);
|
|
|
|
// Returns the texture view dimension for corresponding to (dim, arrayed).
|
|
wgpu::TextureViewDimension SpirvDimToTextureViewDimension(spv::Dim dim, bool arrayed);
|
|
|
|
// Returns the texture format corresponding to format.
|
|
wgpu::TextureFormat SpirvImageFormatToTextureFormat(spv::ImageFormat format);
|
|
|
|
// Returns the format "component type" corresponding to the SPIRV base type.
|
|
wgpu::TextureComponentType SpirvBaseTypeToTextureComponentType(
|
|
spirv_cross::SPIRType::BaseType spirvBaseType);
|
|
SampleTypeBit SpirvBaseTypeToSampleTypeBit(spirv_cross::SPIRType::BaseType spirvBaseType);
|
|
|
|
} // namespace dawn_native
|
|
|
|
#endif // DAWNNATIVE_SPIRV_UTILS_H_
|