LLVM
23.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/StringRef.h
"
21
#include <cstdint>
22
23
namespace
llvm
{
24
namespace
dxil
{
25
26
enum class
ResourceClass
:
uint8_t
{
27
SRV
= 0,
28
UAV
,
29
CBuffer
,
30
Sampler
,
31
LastEntry
=
Sampler
,
32
};
33
34
enum class
ResourceDimension
:
uint8_t
{
35
Unknown
= 0,
36
Dim1D
,
37
Dim2D
,
38
Dim3D
,
39
Cube
,
40
};
41
42
/// The kind of resource for an SRV or UAV resource. Sometimes referred to as
43
/// "Shape" in the DXIL docs.
44
enum class
ResourceKind
:
uint32_t
{
45
Invalid
= 0,
46
Texture1D
,
47
Texture2D
,
48
Texture2DMS
,
49
Texture3D
,
50
TextureCube
,
51
Texture1DArray
,
52
Texture2DArray
,
53
Texture2DMSArray
,
54
TextureCubeArray
,
55
TypedBuffer
,
56
RawBuffer
,
57
StructuredBuffer
,
58
CBuffer
,
59
Sampler
,
60
TBuffer
,
61
RTAccelerationStructure
,
62
FeedbackTexture2D
,
63
FeedbackTexture2DArray
,
64
NumEntries
,
65
};
66
67
/// The element type of an SRV or UAV resource.
68
enum class
ElementType
:
uint32_t
{
69
Invalid
= 0,
70
I1
,
71
I16
,
72
U16
,
73
I32
,
74
U32
,
75
I64
,
76
U64
,
77
F16
,
78
F32
,
79
F64
,
80
SNormF16
,
81
UNormF16
,
82
SNormF32
,
83
UNormF32
,
84
SNormF64
,
85
UNormF64
,
86
PackedS8x32
,
87
PackedU8x32
,
88
};
89
90
/// Metadata tags for extra resource properties.
91
enum class
ExtPropTags
:
uint32_t
{
92
ElementType
= 0,
93
StructuredBufferStride
= 1,
94
SamplerFeedbackKind
= 2,
95
Atomic64Use
= 3,
96
};
97
98
enum class
SamplerType
:
uint32_t
{
99
Default
= 0,
100
Comparison
= 1,
101
Mono
= 2,
// Note: Seems to be unused.
102
};
103
104
enum class
SamplerFeedbackType
:
uint32_t
{
105
MinMip
= 0,
106
MipRegionUsed
= 1,
107
};
108
109
const
unsigned
MinWaveSize
= 4;
110
const
unsigned
MaxWaveSize
= 128;
111
112
LLVM_ABI
StringRef
getResourceClassName
(
ResourceClass
RC);
113
}
// namespace dxil
114
}
// namespace llvm
115
116
#endif
// LLVM_SUPPORT_DXILABI_H
LLVM_ABI
#define LLVM_ABI
Definition
Compiler.h:213
StringRef.h
llvm::StringRef
StringRef - Represent a constant reference to a string, i.e.
Definition
StringRef.h:55
uint32_t
uint8_t
llvm::dxil
Definition
DXILMetadataAnalysis.h:21
llvm::dxil::getResourceClassName
LLVM_ABI StringRef getResourceClassName(ResourceClass RC)
Definition
DXILABI.cpp:21
llvm::dxil::ResourceKind
ResourceKind
The kind of resource for an SRV or UAV resource.
Definition
DXILABI.h:44
llvm::dxil::ResourceKind::FeedbackTexture2D
@ FeedbackTexture2D
Definition
DXILABI.h:62
llvm::dxil::ResourceKind::TextureCube
@ TextureCube
Definition
DXILABI.h:50
llvm::dxil::ResourceKind::TypedBuffer
@ TypedBuffer
Definition
DXILABI.h:55
llvm::dxil::ResourceKind::FeedbackTexture2DArray
@ FeedbackTexture2DArray
Definition
DXILABI.h:63
llvm::dxil::ResourceKind::NumEntries
@ NumEntries
Definition
DXILABI.h:64
llvm::dxil::ResourceKind::Texture2DArray
@ Texture2DArray
Definition
DXILABI.h:52
llvm::dxil::ResourceKind::TBuffer
@ TBuffer
Definition
DXILABI.h:60
llvm::dxil::ResourceKind::Texture2DMS
@ Texture2DMS
Definition
DXILABI.h:48
llvm::dxil::ResourceKind::Texture3D
@ Texture3D
Definition
DXILABI.h:49
llvm::dxil::ResourceKind::RTAccelerationStructure
@ RTAccelerationStructure
Definition
DXILABI.h:61
llvm::dxil::ResourceKind::Texture1DArray
@ Texture1DArray
Definition
DXILABI.h:51
llvm::dxil::ResourceKind::Texture2D
@ Texture2D
Definition
DXILABI.h:47
llvm::dxil::ResourceKind::TextureCubeArray
@ TextureCubeArray
Definition
DXILABI.h:54
llvm::dxil::ResourceKind::StructuredBuffer
@ StructuredBuffer
Definition
DXILABI.h:57
llvm::dxil::ResourceKind::RawBuffer
@ RawBuffer
Definition
DXILABI.h:56
llvm::dxil::ResourceKind::Texture2DMSArray
@ Texture2DMSArray
Definition
DXILABI.h:53
llvm::dxil::ResourceKind::Texture1D
@ Texture1D
Definition
DXILABI.h:46
llvm::dxil::ResourceClass
ResourceClass
Definition
DXILABI.h:26
llvm::dxil::ResourceClass::Sampler
@ Sampler
Definition
DXILABI.h:30
llvm::dxil::ResourceClass::UAV
@ UAV
Definition
DXILABI.h:28
llvm::dxil::ResourceClass::CBuffer
@ CBuffer
Definition
DXILABI.h:29
llvm::dxil::ResourceClass::LastEntry
@ LastEntry
Definition
DXILABI.h:31
llvm::dxil::ResourceClass::SRV
@ SRV
Definition
DXILABI.h:27
llvm::dxil::ExtPropTags
ExtPropTags
Metadata tags for extra resource properties.
Definition
DXILABI.h:91
llvm::dxil::ExtPropTags::SamplerFeedbackKind
@ SamplerFeedbackKind
Definition
DXILABI.h:94
llvm::dxil::ExtPropTags::StructuredBufferStride
@ StructuredBufferStride
Definition
DXILABI.h:93
llvm::dxil::ExtPropTags::Atomic64Use
@ Atomic64Use
Definition
DXILABI.h:95
llvm::dxil::ResourceCounterDirection::Invalid
@ Invalid
Definition
DXILResource.h:368
llvm::dxil::ResourceCounterDirection::Unknown
@ Unknown
Definition
DXILResource.h:367
llvm::dxil::SamplerType
SamplerType
Definition
DXILABI.h:98
llvm::dxil::SamplerType::Mono
@ Mono
Definition
DXILABI.h:101
llvm::dxil::SamplerType::Default
@ Default
Definition
DXILABI.h:99
llvm::dxil::SamplerType::Comparison
@ Comparison
Definition
DXILABI.h:100
llvm::dxil::ResourceDimension
ResourceDimension
Definition
DXILABI.h:34
llvm::dxil::ResourceDimension::Dim1D
@ Dim1D
Definition
DXILABI.h:36
llvm::dxil::ResourceDimension::Cube
@ Cube
Definition
DXILABI.h:39
llvm::dxil::ResourceDimension::Dim3D
@ Dim3D
Definition
DXILABI.h:38
llvm::dxil::ResourceDimension::Dim2D
@ Dim2D
Definition
DXILABI.h:37
llvm::dxil::SamplerFeedbackType
SamplerFeedbackType
Definition
DXILABI.h:104
llvm::dxil::SamplerFeedbackType::MinMip
@ MinMip
Definition
DXILABI.h:105
llvm::dxil::SamplerFeedbackType::MipRegionUsed
@ MipRegionUsed
Definition
DXILABI.h:106
llvm::dxil::ElementType
ElementType
The element type of an SRV or UAV resource.
Definition
DXILABI.h:68
llvm::dxil::ElementType::UNormF16
@ UNormF16
Definition
DXILABI.h:81
llvm::dxil::ElementType::PackedU8x32
@ PackedU8x32
Definition
DXILABI.h:87
llvm::dxil::ElementType::F64
@ F64
Definition
DXILABI.h:79
llvm::dxil::ElementType::UNormF64
@ UNormF64
Definition
DXILABI.h:85
llvm::dxil::ElementType::U64
@ U64
Definition
DXILABI.h:76
llvm::dxil::ElementType::SNormF64
@ SNormF64
Definition
DXILABI.h:84
llvm::dxil::ElementType::F32
@ F32
Definition
DXILABI.h:78
llvm::dxil::ElementType::F16
@ F16
Definition
DXILABI.h:77
llvm::dxil::ElementType::UNormF32
@ UNormF32
Definition
DXILABI.h:83
llvm::dxil::ElementType::SNormF16
@ SNormF16
Definition
DXILABI.h:80
llvm::dxil::ElementType::SNormF32
@ SNormF32
Definition
DXILABI.h:82
llvm::dxil::ElementType::I1
@ I1
Definition
DXILABI.h:70
llvm::dxil::ElementType::I16
@ I16
Definition
DXILABI.h:71
llvm::dxil::ElementType::U32
@ U32
Definition
DXILABI.h:74
llvm::dxil::ElementType::PackedS8x32
@ PackedS8x32
Definition
DXILABI.h:86
llvm::dxil::ElementType::I32
@ I32
Definition
DXILABI.h:73
llvm::dxil::ElementType::I64
@ I64
Definition
DXILABI.h:75
llvm::dxil::ElementType::U16
@ U16
Definition
DXILABI.h:72
llvm::dxil::MaxWaveSize
const unsigned MaxWaveSize
Definition
DXILABI.h:110
llvm::dxil::MinWaveSize
const unsigned MinWaveSize
Definition
DXILABI.h:109
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition
Types.h:26
Generated on
for LLVM by
1.14.0