Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions include/dxc/DXIL/DxilConstants.h
Original file line number Diff line number Diff line change
Expand Up @@ -2370,6 +2370,9 @@ const uint64_t ShaderFeatureInfo_ExtendedCommandInfo = 0x100000000;
// Experimental SM 6.9+ - Reserved, not yet supported.
const uint64_t ShaderFeatureInfo_Reserved = 0x8000000;

// SM 6.10+
const uint64_t ShaderFeatureInfo_LinearAlgebra = 0x200000000;

// Maximum count without rolling over into another 64-bit field is 40,
// so the last flag we can use for a feature requirement is: 0x8000000000
// This is because of the following set of flags, considered optional
Expand Down
1 change: 1 addition & 0 deletions include/dxc/DXIL/DxilOperations.h
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,7 @@ class OP {
static bool IsDxilOpFuncName(llvm::StringRef name);
static bool IsDxilOpFunc(const llvm::Function *F);
static bool IsDxilOpLinAlgFuncName(llvm::StringRef Name);
static bool IsDxilOpLinAlgFunc(const llvm::Function *F);
static bool IsDxilOpFuncCallInst(const llvm::Instruction *I);
static bool IsDxilOpFuncCallInst(const llvm::Instruction *I, OpCode opcode);
static bool IsDxilOpWave(OpCode C);
Expand Down
11 changes: 10 additions & 1 deletion include/dxc/DXIL/DxilShaderFlags.h
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,10 @@ class ShaderFlags {
void SetRequiresGroup(bool flag) { m_bRequiresGroup = flag; }
bool GetRequiresGroup() const { return m_bRequiresGroup; }

// SM 6.10+
void SetLinearAlgebra(bool flag) { m_bLinearAlgebra = flag; }
bool GetLinearAlgebra() const { return m_bLinearAlgebra; }

private:
// Bit: 0
unsigned
Expand Down Expand Up @@ -359,7 +363,12 @@ class ShaderFlags {
unsigned m_bRequiresGroup : 1; // SHADER_FEATURE_OPT_REQUIRES_GROUP
// (OptFeatureInfo_RequiresGroup)

uint32_t m_align1 : 23; // align to 64 bit.
// SM 6.10+
// m_bLinearAlgebra indicates the shader uses LinearAlgebra features.
// Bit: 41
unsigned m_bLinearAlgebra : 1; // SHADER_FEATURE_LINEAR_ALGEBRA

uint32_t m_align1 : 22; // align to 64 bit.
};

} // namespace hlsl
Loading
Loading