LLVM
19.0.0git
include
llvm
Support
DXILABI.h
Go to the documentation of this file.
1
//===-- DXILABI.h - ABI Sensitive Values for DXIL ---------------*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
//
9
// This file contains definitions of various constants and enums that are
10
// required to remain stable as per the DXIL format's requirements.
11
//
12
// Documentation for DXIL can be found in
13
// https://github.com/Microsoft/DirectXShaderCompiler/blob/main/docs/DXIL.rst.
14
//
15
//===----------------------------------------------------------------------===//
16
17
#ifndef LLVM_SUPPORT_DXILABI_H
18
#define LLVM_SUPPORT_DXILABI_H
19
20
#include "
llvm/ADT/StringSwitch.h
"
21
22
namespace
llvm
{
23
namespace
dxil {
24
25
enum class
ParameterKind
: uint8_t {
26
Invalid
= 0,
27
Void
,
28
Half
,
29
Float
,
30
Double
,
31
I1
,
32
I8
,
33
I16
,
34
I32
,
35
I64
,
36
Overload
,
37
CBufferRet
,
38
ResourceRet
,
39
DXILHandle
,
40
};
41
42
enum class
ResourceClass
: uint8_t {
43
SRV
= 0,
44
UAV
,
45
CBuffer
,
46
Sampler
,
47
};
48
49
/// The kind of resource for an SRV or UAV resource. Sometimes referred to as
50
/// "Shape" in the DXIL docs.
51
enum class
ResourceKind
:
uint32_t
{
52
Invalid
= 0,
53
Texture1D
,
54
Texture2D
,
55
Texture2DMS
,
56
Texture3D
,
57
TextureCube
,
58
Texture1DArray
,
59
Texture2DArray
,
60
Texture2DMSArray
,
61
TextureCubeArray
,
62
TypedBuffer
,
63
RawBuffer
,
64
StructuredBuffer
,
65
CBuffer
,
66
Sampler
,
67
TBuffer
,
68
RTAccelerationStructure
,
69
FeedbackTexture2D
,
70
FeedbackTexture2DArray
,
71
NumEntries
,
72
};
73
74
/// The element type of an SRV or UAV resource.
75
enum class
ElementType
:
uint32_t
{
76
Invalid
= 0,
77
I1
,
78
I16
,
79
U16
,
80
I32
,
81
U32
,
82
I64
,
83
U64
,
84
F16
,
85
F32
,
86
F64
,
87
SNormF16
,
88
UNormF16
,
89
SNormF32
,
90
UNormF32
,
91
SNormF64
,
92
UNormF64
,
93
PackedS8x32
,
94
PackedU8x32
,
95
};
96
97
}
// namespace dxil
98
}
// namespace llvm
99
100
#endif
// LLVM_SUPPORT_DXILABI_H
StringSwitch.h
This file implements the StringSwitch template, which mimics a switch() statement whose cases are str...
uint32_t
llvm::dxil::ResourceKind
ResourceKind
The kind of resource for an SRV or UAV resource.
Definition:
DXILABI.h:51
llvm::dxil::ResourceKind::FeedbackTexture2D
@ FeedbackTexture2D
llvm::dxil::ResourceKind::TextureCube
@ TextureCube
llvm::dxil::ResourceKind::TypedBuffer
@ TypedBuffer
llvm::dxil::ResourceKind::FeedbackTexture2DArray
@ FeedbackTexture2DArray
llvm::dxil::ResourceKind::NumEntries
@ NumEntries
llvm::dxil::ResourceKind::Texture2DArray
@ Texture2DArray
llvm::dxil::ResourceKind::TBuffer
@ TBuffer
llvm::dxil::ResourceKind::Texture2DMS
@ Texture2DMS
llvm::dxil::ResourceKind::Texture3D
@ Texture3D
llvm::dxil::ResourceKind::RTAccelerationStructure
@ RTAccelerationStructure
llvm::dxil::ResourceKind::Texture1DArray
@ Texture1DArray
llvm::dxil::ResourceKind::Texture2D
@ Texture2D
llvm::dxil::ResourceKind::TextureCubeArray
@ TextureCubeArray
llvm::dxil::ResourceKind::StructuredBuffer
@ StructuredBuffer
llvm::dxil::ResourceKind::RawBuffer
@ RawBuffer
llvm::dxil::ResourceKind::Texture2DMSArray
@ Texture2DMSArray
llvm::dxil::ResourceKind::Texture1D
@ Texture1D
llvm::dxil::ResourceClass
ResourceClass
Definition:
DXILABI.h:42
llvm::dxil::ResourceClass::Sampler
@ Sampler
llvm::dxil::ResourceClass::UAV
@ UAV
llvm::dxil::ResourceClass::CBuffer
@ CBuffer
llvm::dxil::ResourceClass::SRV
@ SRV
llvm::dxil::ElementType
ElementType
The element type of an SRV or UAV resource.
Definition:
DXILABI.h:75
llvm::dxil::ElementType::UNormF16
@ UNormF16
llvm::dxil::ElementType::PackedU8x32
@ PackedU8x32
llvm::dxil::ElementType::F64
@ F64
llvm::dxil::ElementType::UNormF64
@ UNormF64
llvm::dxil::ElementType::U64
@ U64
llvm::dxil::ElementType::SNormF64
@ SNormF64
llvm::dxil::ElementType::F32
@ F32
llvm::dxil::ElementType::F16
@ F16
llvm::dxil::ElementType::UNormF32
@ UNormF32
llvm::dxil::ElementType::SNormF16
@ SNormF16
llvm::dxil::ElementType::SNormF32
@ SNormF32
llvm::dxil::ElementType::U32
@ U32
llvm::dxil::ElementType::PackedS8x32
@ PackedS8x32
llvm::dxil::ElementType::U16
@ U16
llvm::dxil::ParameterKind
ParameterKind
Definition:
DXILABI.h:25
llvm::dxil::ParameterKind::Float
@ Float
llvm::dxil::ParameterKind::ResourceRet
@ ResourceRet
llvm::dxil::ParameterKind::CBufferRet
@ CBufferRet
llvm::dxil::ParameterKind::DXILHandle
@ DXILHandle
llvm::dxil::ParameterKind::Invalid
@ Invalid
llvm::dxil::ParameterKind::I8
@ I8
llvm::dxil::ParameterKind::Void
@ Void
llvm::dxil::ParameterKind::Overload
@ Overload
llvm::dxil::ParameterKind::I1
@ I1
llvm::dxil::ParameterKind::I16
@ I16
llvm::dxil::ParameterKind::Half
@ Half
llvm::dxil::ParameterKind::I32
@ I32
llvm::dxil::ParameterKind::Double
@ Double
llvm::dxil::ParameterKind::I64
@ I64
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition:
AddressRanges.h:18
Generated on Sat Jun 29 2024 06:29:00 for LLVM by
1.9.6