Skip to content

Commit 8313c0e

Browse files
committed
nfc: prep dxbc::SamplerFilter
1 parent e1de7ef commit 8313c0e

File tree

4 files changed

+56
-43
lines changed

4 files changed

+56
-43
lines changed

llvm/include/llvm/BinaryFormat/DXContainer.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -221,11 +221,13 @@ inline bool isValidShaderVisibility(uint32_t V) {
221221
return false;
222222
}
223223

224-
#define STATIC_SAMPLER_FILTER(Val, Enum) Enum = Val,
225-
enum class StaticSamplerFilter : uint32_t {
224+
#define FILTER(Val, Enum) Enum = Val,
225+
enum class SamplerFilter : uint32_t {
226226
#include "DXContainerConstants.def"
227227
};
228228

229+
LLVM_ABI ArrayRef<EnumEntry<SamplerFilter>> getSamplerFilters();
230+
229231
#define TEXTURE_ADDRESS_MODE(Val, Enum) Enum = Val,
230232
enum class TextureAddressMode : uint32_t {
231233
#include "DXContainerConstants.def"

llvm/include/llvm/BinaryFormat/DXContainerConstants.def

Lines changed: 41 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -137,46 +137,47 @@ SHADER_VISIBILITY(7, Mesh)
137137
#undef SHADER_VISIBILITY
138138
#endif // SHADER_VISIBILITY
139139

140-
#ifdef STATIC_SAMPLER_FILTER
141-
142-
STATIC_SAMPLER_FILTER(0, MIN_MAG_MIP_POINT)
143-
STATIC_SAMPLER_FILTER(0x1, MIN_MAG_POINT_MIP_LINEAR)
144-
STATIC_SAMPLER_FILTER(0x4, MIN_POINT_MAG_LINEAR_MIP_POINT)
145-
STATIC_SAMPLER_FILTER(0x5, MIN_POINT_MAG_MIP_LINEAR)
146-
STATIC_SAMPLER_FILTER(0x10, MIN_LINEAR_MAG_MIP_POINT)
147-
STATIC_SAMPLER_FILTER(0x11, MIN_LINEAR_MAG_POINT_MIP_LINEAR)
148-
STATIC_SAMPLER_FILTER(0x14, MIN_MAG_LINEAR_MIP_POINT)
149-
STATIC_SAMPLER_FILTER(0x15, MIN_MAG_MIP_LINEAR)
150-
STATIC_SAMPLER_FILTER(0x55, ANISOTROPIC)
151-
STATIC_SAMPLER_FILTER(0x80, COMPARISON_MIN_MAG_MIP_POINT)
152-
STATIC_SAMPLER_FILTER(0x81, COMPARISON_MIN_MAG_POINT_MIP_LINEAR)
153-
STATIC_SAMPLER_FILTER(0x84, COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT)
154-
STATIC_SAMPLER_FILTER(0x85, COMPARISON_MIN_POINT_MAG_MIP_LINEAR)
155-
STATIC_SAMPLER_FILTER(0x90, COMPARISON_MIN_LINEAR_MAG_MIP_POINT)
156-
STATIC_SAMPLER_FILTER(0x91, COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR)
157-
STATIC_SAMPLER_FILTER(0x94, COMPARISON_MIN_MAG_LINEAR_MIP_POINT)
158-
STATIC_SAMPLER_FILTER(0x95, COMPARISON_MIN_MAG_MIP_LINEAR)
159-
STATIC_SAMPLER_FILTER(0xd5, COMPARISON_ANISOTROPIC)
160-
STATIC_SAMPLER_FILTER(0x100, MINIMUM_MIN_MAG_MIP_POINT)
161-
STATIC_SAMPLER_FILTER(0x101, MINIMUM_MIN_MAG_POINT_MIP_LINEAR)
162-
STATIC_SAMPLER_FILTER(0x104, MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT)
163-
STATIC_SAMPLER_FILTER(0x105, MINIMUM_MIN_POINT_MAG_MIP_LINEAR)
164-
STATIC_SAMPLER_FILTER(0x110, MINIMUM_MIN_LINEAR_MAG_MIP_POINT)
165-
STATIC_SAMPLER_FILTER(0x111, MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR)
166-
STATIC_SAMPLER_FILTER(0x114, MINIMUM_MIN_MAG_LINEAR_MIP_POINT)
167-
STATIC_SAMPLER_FILTER(0x115, MINIMUM_MIN_MAG_MIP_LINEAR)
168-
STATIC_SAMPLER_FILTER(0x155, MINIMUM_ANISOTROPIC)
169-
STATIC_SAMPLER_FILTER(0x180, MAXIMUM_MIN_MAG_MIP_POINT)
170-
STATIC_SAMPLER_FILTER(0x181, MAXIMUM_MIN_MAG_POINT_MIP_LINEAR)
171-
STATIC_SAMPLER_FILTER(0x184, MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT)
172-
STATIC_SAMPLER_FILTER(0x185, MAXIMUM_MIN_POINT_MAG_MIP_LINEAR)
173-
STATIC_SAMPLER_FILTER(0x190, MAXIMUM_MIN_LINEAR_MAG_MIP_POINT)
174-
STATIC_SAMPLER_FILTER(0x191, MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR)
175-
STATIC_SAMPLER_FILTER(0x194, MAXIMUM_MIN_MAG_LINEAR_MIP_POINT)
176-
STATIC_SAMPLER_FILTER(0x195, MAXIMUM_MIN_MAG_MIP_LINEAR)
177-
STATIC_SAMPLER_FILTER(0x1d5, MAXIMUM_ANISOTROPIC)
178-
#undef STATIC_SAMPLER_FILTER
179-
#endif // STATIC_SAMPLER_FILTER
140+
// #FILTER(value, enum).
141+
#ifdef FILTER
142+
143+
FILTER(0, MinMagMipPoint)
144+
FILTER(0x1, MinMagPointMipLinear)
145+
FILTER(0x4, MinPointMagLinearMipPoint)
146+
FILTER(0x5, MinPointMagMipLinear)
147+
FILTER(0x10, MinLinearMagMipPoint)
148+
FILTER(0x11, MinLinearMagPointMipLinear)
149+
FILTER(0x14, MinMagLinearMipPoint)
150+
FILTER(0x15, MinMagMipLinear)
151+
FILTER(0x55, Anisotropic)
152+
FILTER(0x80, ComparisonMinMagMipPoint)
153+
FILTER(0x81, ComparisonMinMagPointMipLinear)
154+
FILTER(0x84, ComparisonMinPointMagLinearMipPoint)
155+
FILTER(0x85, ComparisonMinPointMagMipLinear)
156+
FILTER(0x90, ComparisonMinLinearMagMipPoint)
157+
FILTER(0x91, ComparisonMinLinearMagPointMipLinear)
158+
FILTER(0x94, ComparisonMinMagLinearMipPoint)
159+
FILTER(0x95, ComparisonMinMagMipLinear)
160+
FILTER(0xd5, ComparisonAnisotropic)
161+
FILTER(0x100, MinimumMinMagMipPoint)
162+
FILTER(0x101, MinimumMinMagPointMipLinear)
163+
FILTER(0x104, MinimumMinPointMagLinearMipPoint)
164+
FILTER(0x105, MinimumMinPointMagMipLinear)
165+
FILTER(0x110, MinimumMinLinearMagMipPoint)
166+
FILTER(0x111, MinimumMinLinearMagPointMipLinear)
167+
FILTER(0x114, MinimumMinMagLinearMipPoint)
168+
FILTER(0x115, MinimumMinMagMipLinear)
169+
FILTER(0x155, MinimumAnisotropic)
170+
FILTER(0x180, MaximumMinMagMipPoint)
171+
FILTER(0x181, MaximumMinMagPointMipLinear)
172+
FILTER(0x184, MaximumMinPointMagLinearMipPoint)
173+
FILTER(0x185, MaximumMinPointMagMipLinear)
174+
FILTER(0x190, MaximumMinLinearMagMipPoint)
175+
FILTER(0x191, MaximumMinLinearMagPointMipLinear)
176+
FILTER(0x194, MaximumMinMagLinearMipPoint)
177+
FILTER(0x195, MaximumMinMagMipLinear)
178+
FILTER(0x1d5, MaximumAnisotropic)
179+
#undef FILTER
180+
#endif // FILTER
180181

181182
#ifdef TEXTURE_ADDRESS_MODE
182183

llvm/include/llvm/ObjectYAML/DXContainerYAML.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ struct RootParameterYamlDesc {
165165
};
166166

167167
struct StaticSamplerYamlDesc {
168-
uint32_t Filter = llvm::to_underlying(dxbc::StaticSamplerFilter::ANISOTROPIC);
168+
uint32_t Filter = llvm::to_underlying(dxbc::SamplerFilter::Anisotropic);
169169
uint32_t AddressU = llvm::to_underlying(dxbc::TextureAddressMode::Wrap);
170170
uint32_t AddressV = llvm::to_underlying(dxbc::TextureAddressMode::Wrap);
171171
uint32_t AddressW = llvm::to_underlying(dxbc::TextureAddressMode::Wrap);

llvm/lib/BinaryFormat/DXContainer.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,16 @@ ArrayRef<EnumEntry<ShaderVisibility>> dxbc::getShaderVisibility() {
9999
return ArrayRef(ShaderVisibilityValues);
100100
}
101101

102+
#define FILTER(Val, Enum) {#Enum, SamplerFilter::Enum},
103+
104+
static const EnumEntry<SamplerFilter> SamplerFilterNames[] = {
105+
#include "llvm/BinaryFormat/DXContainerConstants.def"
106+
};
107+
108+
ArrayRef<EnumEntry<SamplerFilter>> dxbc::getSamplerFilters() {
109+
return ArrayRef(SamplerFilterNames);
110+
}
111+
102112
#define TEXTURE_ADDRESS_MODE(Val, Enum) {#Enum, TextureAddressMode::Enum},
103113

104114
static const EnumEntry<TextureAddressMode> TextureAddressModeNames[] = {

0 commit comments

Comments
 (0)