52 lines
2.0 KiB
C++
52 lines
2.0 KiB
C++
//===- RootSignatureValidations.h - HLSL Root Signature helpers -----------===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
///
|
|
/// \file This file contains helper obejcts for working with HLSL Root
|
|
/// Signatures.
|
|
///
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_FRONTEND_HLSL_ROOTSIGNATUREVALIDATIONS_H
|
|
#define LLVM_FRONTEND_HLSL_ROOTSIGNATUREVALIDATIONS_H
|
|
|
|
#include "llvm/ADT/IntervalMap.h"
|
|
#include "llvm/Frontend/HLSL/HLSLRootSignature.h"
|
|
#include "llvm/Support/Compiler.h"
|
|
|
|
namespace llvm {
|
|
namespace hlsl {
|
|
namespace rootsig {
|
|
|
|
// Basic verification of RootElements
|
|
|
|
LLVM_ABI bool verifyRootFlag(uint32_t Flags);
|
|
LLVM_ABI bool verifyVersion(uint32_t Version);
|
|
LLVM_ABI bool verifyRegisterValue(uint32_t RegisterValue);
|
|
LLVM_ABI bool verifyRegisterSpace(uint32_t RegisterSpace);
|
|
LLVM_ABI bool verifyRootDescriptorFlag(uint32_t Version,
|
|
dxbc::RootDescriptorFlags Flags);
|
|
LLVM_ABI bool verifyRangeType(uint32_t Type);
|
|
LLVM_ABI bool verifyDescriptorRangeFlag(uint32_t Version,
|
|
dxil::ResourceClass Type,
|
|
dxbc::DescriptorRangeFlags Flags);
|
|
LLVM_ABI bool verifyStaticSamplerFlags(uint32_t Version,
|
|
dxbc::StaticSamplerFlags Flags);
|
|
LLVM_ABI bool verifyNumDescriptors(uint32_t NumDescriptors);
|
|
LLVM_ABI bool verifyMipLODBias(float MipLODBias);
|
|
LLVM_ABI bool verifyMaxAnisotropy(uint32_t MaxAnisotropy);
|
|
LLVM_ABI bool verifyLOD(float LOD);
|
|
|
|
LLVM_ABI bool verifyNoOverflowedOffset(uint64_t Offset);
|
|
LLVM_ABI uint64_t computeRangeBound(uint64_t Offset, uint32_t Size);
|
|
|
|
} // namespace rootsig
|
|
} // namespace hlsl
|
|
} // namespace llvm
|
|
|
|
#endif // LLVM_FRONTEND_HLSL_ROOTSIGNATUREVALIDATIONS_H
|