clang 20.0.0 (based on r547379) from build 12806354. Bug: http://b/379133546 Test: N/A Change-Id: I2eb8938af55d809de674be63cb30cf27e801862b Upstream-Commit: ad834e67b1105d15ef907f6255d4c96e8e733f57
103 lines
2.1 KiB
C++
103 lines
2.1 KiB
C++
//===-- DXILABI.h - ABI Sensitive Values for DXIL ---------------*- C++ -*-===//
|
|
//
|
|
// 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
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file contains definitions of various constants and enums that are
|
|
// required to remain stable as per the DXIL format's requirements.
|
|
//
|
|
// Documentation for DXIL can be found in
|
|
// https://github.com/Microsoft/DirectXShaderCompiler/blob/main/docs/DXIL.rst.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_SUPPORT_DXILABI_H
|
|
#define LLVM_SUPPORT_DXILABI_H
|
|
|
|
#include <cstdint>
|
|
|
|
namespace llvm {
|
|
namespace dxil {
|
|
|
|
enum class ResourceClass : uint8_t {
|
|
SRV = 0,
|
|
UAV,
|
|
CBuffer,
|
|
Sampler,
|
|
};
|
|
|
|
/// The kind of resource for an SRV or UAV resource. Sometimes referred to as
|
|
/// "Shape" in the DXIL docs.
|
|
enum class ResourceKind : uint32_t {
|
|
Invalid = 0,
|
|
Texture1D,
|
|
Texture2D,
|
|
Texture2DMS,
|
|
Texture3D,
|
|
TextureCube,
|
|
Texture1DArray,
|
|
Texture2DArray,
|
|
Texture2DMSArray,
|
|
TextureCubeArray,
|
|
TypedBuffer,
|
|
RawBuffer,
|
|
StructuredBuffer,
|
|
CBuffer,
|
|
Sampler,
|
|
TBuffer,
|
|
RTAccelerationStructure,
|
|
FeedbackTexture2D,
|
|
FeedbackTexture2DArray,
|
|
NumEntries,
|
|
};
|
|
|
|
/// The element type of an SRV or UAV resource.
|
|
enum class ElementType : uint32_t {
|
|
Invalid = 0,
|
|
I1,
|
|
I16,
|
|
U16,
|
|
I32,
|
|
U32,
|
|
I64,
|
|
U64,
|
|
F16,
|
|
F32,
|
|
F64,
|
|
SNormF16,
|
|
UNormF16,
|
|
SNormF32,
|
|
UNormF32,
|
|
SNormF64,
|
|
UNormF64,
|
|
PackedS8x32,
|
|
PackedU8x32,
|
|
};
|
|
|
|
/// Metadata tags for extra resource properties.
|
|
enum class ExtPropTags : uint32_t {
|
|
ElementType = 0,
|
|
StructuredBufferStride = 1,
|
|
SamplerFeedbackKind = 2,
|
|
Atomic64Use = 3,
|
|
};
|
|
|
|
enum class SamplerType : uint32_t {
|
|
Default = 0,
|
|
Comparison = 1,
|
|
Mono = 2, // Note: Seems to be unused.
|
|
};
|
|
|
|
enum class SamplerFeedbackType : uint32_t {
|
|
MinMip = 0,
|
|
MipRegionUsed = 1,
|
|
};
|
|
|
|
} // namespace dxil
|
|
} // namespace llvm
|
|
|
|
#endif // LLVM_SUPPORT_DXILABI_H
|