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