Move DxilModule into DXIL directory. (#1599)
* Move DxilModule into DXIL directory.
This commit is contained in:
Родитель
9ffa90c1e8
Коммит
4df08af7c0
|
@ -11,15 +11,14 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include "dxc/HLSL/DxilConstants.h"
|
||||
#include "dxc/HLSL/DxilShaderModel.h"
|
||||
#include "dxc/HLSL/DxilCompType.h"
|
||||
#include "dxc/HLSL/DxilInterpolationMode.h"
|
||||
#include "dxc/HLSL/DxilSemantic.h"
|
||||
#include "dxc/HLSL/DxilSignatureElement.h"
|
||||
#include "dxc/HLSL/DxilCBuffer.h"
|
||||
#include "dxc/HLSL/DxilResource.h"
|
||||
#include "dxc/HLSL/DxilSampler.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/HLSL/DxilRootSignature.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilConstants.h"
|
||||
#include "dxc/DXIL/DxilShaderModel.h"
|
||||
#include "dxc/DXIL/DxilCompType.h"
|
||||
#include "dxc/DXIL/DxilInterpolationMode.h"
|
||||
#include "dxc/DXIL/DxilSemantic.h"
|
||||
#include "dxc/DXIL/DxilSignatureElement.h"
|
||||
#include "dxc/DXIL/DxilCBuffer.h"
|
||||
#include "dxc/DXIL/DxilResource.h"
|
||||
#include "dxc/DXIL/DxilSampler.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include "dxc/HLSL/DxilResourceBase.h"
|
||||
#include "dxc/DXIL/DxilResourceBase.h"
|
||||
|
||||
|
||||
namespace hlsl {
|
|
@ -17,7 +17,7 @@
|
|||
#include <stdint.h>
|
||||
#include <iterator>
|
||||
#include <functional>
|
||||
#include "dxc/HLSL/DxilConstants.h"
|
||||
#include "dxc/DXIL/DxilConstants.h"
|
||||
#include "dxc/Support/WinAdapter.h"
|
||||
|
||||
struct IDxcContainerReflection;
|
|
@ -10,8 +10,8 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
#include "dxc/HLSL/DxilSignature.h"
|
||||
#include "dxc/HLSL/DxilFunctionProps.h"
|
||||
#include "dxc/DXIL/DxilSignature.h"
|
||||
#include "dxc/DXIL/DxilFunctionProps.h"
|
||||
|
||||
namespace hlsl {
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include "dxc/HLSL/DxilConstants.h"
|
||||
#include "dxc/DXIL/DxilConstants.h"
|
||||
|
||||
namespace llvm {
|
||||
class Function;
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include "dxc/HLSL/DxilConstants.h"
|
||||
#include "dxc/DXIL/DxilConstants.h"
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <vector>
|
|
@ -11,14 +11,14 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include "dxc/HLSL/DxilMetadataHelper.h"
|
||||
#include "dxc/HLSL/DxilCBuffer.h"
|
||||
#include "dxc/HLSL/DxilResource.h"
|
||||
#include "dxc/HLSL/DxilSampler.h"
|
||||
#include "dxc/HLSL/DxilShaderFlags.h"
|
||||
#include "dxc/HLSL/DxilSignature.h"
|
||||
#include "dxc/HLSL/DxilConstants.h"
|
||||
#include "dxc/HLSL/DxilTypeSystem.h"
|
||||
#include "dxc/DXIL/DxilMetadataHelper.h"
|
||||
#include "dxc/DXIL/DxilCBuffer.h"
|
||||
#include "dxc/DXIL/DxilResource.h"
|
||||
#include "dxc/DXIL/DxilSampler.h"
|
||||
#include "dxc/DXIL/DxilShaderFlags.h"
|
||||
#include "dxc/DXIL/DxilSignature.h"
|
||||
#include "dxc/DXIL/DxilConstants.h"
|
||||
#include "dxc/DXIL/DxilTypeSystem.h"
|
||||
#include "dxc/HLSL/ComputeViewIdState.h"
|
||||
|
||||
#include <memory>
|
|
@ -12,8 +12,8 @@
|
|||
#pragma once
|
||||
|
||||
#include "DxilConstants.h"
|
||||
#include "dxc/HLSL/DxilResourceBase.h"
|
||||
#include "dxc/HLSL/DxilCompType.h"
|
||||
#include "dxc/DXIL/DxilResourceBase.h"
|
||||
#include "dxc/DXIL/DxilCompType.h"
|
||||
|
||||
|
||||
namespace hlsl {
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include "dxc/HLSL/DxilResourceBase.h"
|
||||
#include "dxc/DXIL/DxilResourceBase.h"
|
||||
|
||||
namespace hlsl {
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include "dxc/HLSL/DxilConstants.h"
|
||||
#include "dxc/DXIL/DxilConstants.h"
|
||||
#include <string>
|
||||
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include "dxc/HLSL/DxilSignatureElement.h"
|
||||
#include "dxc/DXIL/DxilSignatureElement.h"
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
@ -40,9 +40,6 @@ public:
|
|||
const DxilSignatureElement &GetElement(unsigned idx) const;
|
||||
const std::vector<std::unique_ptr<DxilSignatureElement> > &GetElements() const;
|
||||
|
||||
// Packs the signature elements per DXIL constraints and returns the number of rows used for the signature
|
||||
unsigned PackElements(DXIL::PackingStrategy packing);
|
||||
|
||||
// Returns true if all signature elements that should be allocated are allocated
|
||||
bool IsFullyAllocated() const;
|
||||
|
||||
|
@ -51,6 +48,10 @@ public:
|
|||
|
||||
bool UseMinPrecision() const { return m_UseMinPrecision; }
|
||||
|
||||
DXIL::SigPointKind GetSigPointKind() const { return m_sigPointKind; }
|
||||
|
||||
static bool ShouldBeAllocated(DXIL::SemanticInterpretationKind);
|
||||
|
||||
private:
|
||||
DXIL::SigPointKind m_sigPointKind;
|
||||
std::vector<std::unique_ptr<DxilSignatureElement> > m_Elements;
|
|
@ -12,10 +12,9 @@
|
|||
#pragma once
|
||||
|
||||
#include "llvm/ADT/StringRef.h"
|
||||
#include "dxc/HLSL/DxilSemantic.h"
|
||||
#include "dxc/HLSL/DxilInterpolationMode.h"
|
||||
#include "dxc/HLSL/DxilCompType.h"
|
||||
#include "dxc/HLSL/DxilSignatureAllocator.h"
|
||||
#include "dxc/DXIL/DxilSemantic.h"
|
||||
#include "dxc/DXIL/DxilInterpolationMode.h"
|
||||
#include "dxc/DXIL/DxilCompType.h"
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <limits.h>
|
||||
|
@ -108,44 +107,4 @@ protected:
|
|||
unsigned m_DynIdxCompMask;
|
||||
};
|
||||
|
||||
class DxilPackElement : public DxilSignatureAllocator::PackElement {
|
||||
DxilSignatureElement *m_pSE;
|
||||
bool m_bUseMinPrecision;
|
||||
|
||||
public:
|
||||
DxilPackElement(DxilSignatureElement *pSE, bool useMinPrecision) : m_pSE(pSE), m_bUseMinPrecision(useMinPrecision) {}
|
||||
~DxilPackElement() override {}
|
||||
uint32_t GetID() const override { return m_pSE->GetID(); }
|
||||
DXIL::SemanticKind GetKind() const override { return m_pSE->GetKind(); }
|
||||
DXIL::InterpolationMode GetInterpolationMode() const override { return m_pSE->GetInterpolationMode()->GetKind(); }
|
||||
DXIL::SemanticInterpretationKind GetInterpretation() const override { return m_pSE->GetInterpretation(); }
|
||||
DXIL::SignatureDataWidth GetDataBitWidth() const override {
|
||||
uint8_t size = m_pSE->GetCompType().GetSizeInBits();
|
||||
// bool, min precision, or 32 bit types map to 32 bit size.
|
||||
if (size == 16) {
|
||||
return m_bUseMinPrecision ? DXIL::SignatureDataWidth::Bits32 : DXIL::SignatureDataWidth::Bits16;
|
||||
}
|
||||
else if (size == 1 || size == 32) {
|
||||
return DXIL::SignatureDataWidth::Bits32;
|
||||
}
|
||||
return DXIL::SignatureDataWidth::Undefined;
|
||||
}
|
||||
uint32_t GetRows() const override { return m_pSE->GetRows(); }
|
||||
uint32_t GetCols() const override { return m_pSE->GetCols(); }
|
||||
bool IsAllocated() const override { return m_pSE->IsAllocated(); }
|
||||
uint32_t GetStartRow() const override { return m_pSE->GetStartRow(); }
|
||||
uint32_t GetStartCol() const override { return m_pSE->GetStartCol(); }
|
||||
|
||||
void ClearLocation() override {
|
||||
m_pSE->SetStartRow(-1);
|
||||
m_pSE->SetStartCol(-1);
|
||||
}
|
||||
void SetLocation(uint32_t Row, uint32_t Col) override {
|
||||
m_pSE->SetStartRow(Row);
|
||||
m_pSE->SetStartCol(Col);
|
||||
}
|
||||
|
||||
DxilSignatureElement *Get() { return m_pSE; }
|
||||
};
|
||||
|
||||
} // namespace hlsl
|
|
@ -12,8 +12,8 @@
|
|||
#pragma once
|
||||
#include "llvm/ADT/StringRef.h"
|
||||
#include "llvm/ADT/MapVector.h"
|
||||
#include "dxc/HLSL/DxilCompType.h"
|
||||
#include "dxc/HLSL/DxilInterpolationMode.h"
|
||||
#include "dxc/DXIL/DxilCompType.h"
|
||||
#include "dxc/DXIL/DxilInterpolationMode.h"
|
||||
|
||||
#include <memory>
|
||||
#include <string>
|
|
@ -0,0 +1,71 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// DxilSignatureElement.h //
|
||||
// Copyright (C) Microsoft Corporation. All rights reserved. //
|
||||
// This file is distributed under the University of Illinois Open Source //
|
||||
// License. See LICENSE.TXT for details. //
|
||||
// //
|
||||
// Class to pack HLSL signature element. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "llvm/ADT/StringRef.h"
|
||||
#include "dxc/DXIL/DxilSemantic.h"
|
||||
#include "dxc/DXIL/DxilInterpolationMode.h"
|
||||
#include "dxc/DXIL/DxilCompType.h"
|
||||
#include "dxc/HLSL/DxilSignatureAllocator.h"
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <limits.h>
|
||||
|
||||
namespace hlsl {
|
||||
|
||||
class ShaderModel;
|
||||
|
||||
class DxilPackElement : public DxilSignatureAllocator::PackElement {
|
||||
DxilSignatureElement *m_pSE;
|
||||
bool m_bUseMinPrecision;
|
||||
|
||||
public:
|
||||
DxilPackElement(DxilSignatureElement *pSE, bool useMinPrecision) : m_pSE(pSE), m_bUseMinPrecision(useMinPrecision) {}
|
||||
~DxilPackElement() override {}
|
||||
uint32_t GetID() const override { return m_pSE->GetID(); }
|
||||
DXIL::SemanticKind GetKind() const override { return m_pSE->GetKind(); }
|
||||
DXIL::InterpolationMode GetInterpolationMode() const override { return m_pSE->GetInterpolationMode()->GetKind(); }
|
||||
DXIL::SemanticInterpretationKind GetInterpretation() const override { return m_pSE->GetInterpretation(); }
|
||||
DXIL::SignatureDataWidth GetDataBitWidth() const override {
|
||||
uint8_t size = m_pSE->GetCompType().GetSizeInBits();
|
||||
// bool, min precision, or 32 bit types map to 32 bit size.
|
||||
if (size == 16) {
|
||||
return m_bUseMinPrecision ? DXIL::SignatureDataWidth::Bits32 : DXIL::SignatureDataWidth::Bits16;
|
||||
}
|
||||
else if (size == 1 || size == 32) {
|
||||
return DXIL::SignatureDataWidth::Bits32;
|
||||
}
|
||||
return DXIL::SignatureDataWidth::Undefined;
|
||||
}
|
||||
uint32_t GetRows() const override { return m_pSE->GetRows(); }
|
||||
uint32_t GetCols() const override { return m_pSE->GetCols(); }
|
||||
bool IsAllocated() const override { return m_pSE->IsAllocated(); }
|
||||
uint32_t GetStartRow() const override { return m_pSE->GetStartRow(); }
|
||||
uint32_t GetStartCol() const override { return m_pSE->GetStartCol(); }
|
||||
|
||||
void ClearLocation() override {
|
||||
m_pSE->SetStartRow(-1);
|
||||
m_pSE->SetStartCol(-1);
|
||||
}
|
||||
void SetLocation(uint32_t Row, uint32_t Col) override {
|
||||
m_pSE->SetStartRow(Row);
|
||||
m_pSE->SetStartCol(Col);
|
||||
}
|
||||
|
||||
DxilSignatureElement *Get() { return m_pSE; }
|
||||
};
|
||||
|
||||
class DxilSignature;
|
||||
// Packs the signature elements per DXIL constraints and returns the number of rows used for the signature.
|
||||
unsigned PackDxilSignature(DxilSignature &sig, DXIL::PackingStrategy packing);
|
||||
|
||||
} // namespace hlsl
|
|
@ -10,7 +10,7 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
#include "DxilConstants.h"
|
||||
#include "dxc/DXIL/DxilConstants.h"
|
||||
|
||||
namespace hlsl {
|
||||
namespace RDAT {
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include "dxc/HLSL/DxilConstants.h"
|
||||
#include "dxc/DXIL/DxilConstants.h"
|
||||
#include <vector>
|
||||
|
||||
namespace hlsl {
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
#include <memory>
|
||||
#include "dxc/Support/Global.h"
|
||||
#include "dxc/HLSL/DxilConstants.h"
|
||||
#include "dxc/DXIL/DxilConstants.h"
|
||||
#include "dxc/Support/WinAdapter.h"
|
||||
|
||||
namespace llvm {
|
||||
|
|
|
@ -12,14 +12,14 @@
|
|||
#pragma once
|
||||
|
||||
#include "dxc/Support/Global.h"
|
||||
#include "dxc/HLSL/DxilMetadataHelper.h"
|
||||
#include "dxc/HLSL/DxilConstants.h"
|
||||
#include "dxc/DXIL/DxilMetadataHelper.h"
|
||||
#include "dxc/DXIL/DxilConstants.h"
|
||||
#include "dxc/HLSL/HLResource.h"
|
||||
#include "dxc/HLSL/HLOperations.h"
|
||||
#include "dxc/HLSL/DxilSampler.h"
|
||||
#include "dxc/HLSL/DxilShaderModel.h"
|
||||
#include "dxc/HLSL/DxilSignature.h"
|
||||
#include "dxc/HLSL/DxilFunctionProps.h"
|
||||
#include "dxc/DXIL/DxilSampler.h"
|
||||
#include "dxc/DXIL/DxilShaderModel.h"
|
||||
#include "dxc/DXIL/DxilSignature.h"
|
||||
#include "dxc/DXIL/DxilFunctionProps.h"
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include "dxc/HLSL/DxilResource.h"
|
||||
#include "dxc/DXIL/DxilResource.h"
|
||||
|
||||
|
||||
namespace hlsl {
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
#include <algorithm>
|
||||
#include <functional>
|
||||
|
||||
#include "dxc/HLSL/DXIL.h"
|
||||
#include "dxc/DXIL/DXIL.h"
|
||||
|
||||
using namespace llvm;
|
||||
using namespace hlsl;
|
||||
|
|
|
@ -21,8 +21,8 @@
|
|||
#include "llvm/IR/Module.h"
|
||||
#include "llvm/IR/IRBuilder.h"
|
||||
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "llvm/Analysis/DxilConstantFolding.h"
|
||||
#include "llvm/Analysis/DxilSimplify.h"
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
#include "llvm/Support/MemoryBuffer.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
#include <deque>
|
||||
#include "dxc/HLSL/DxilOperations.h" // HLSL Change
|
||||
#include "dxc/DXIL/DxilOperations.h" // HLSL Change
|
||||
using namespace llvm;
|
||||
|
||||
namespace {
|
||||
|
|
|
@ -22,4 +22,5 @@ add_subdirectory(ProfileData)
|
|||
# add_subdirectory(LibDriver) # HLSL Change
|
||||
add_subdirectory(DxcSupport) # HLSL Change
|
||||
add_subdirectory(HLSL) # HLSL Change
|
||||
add_subdirectory(DXIL) # HLSL Change
|
||||
add_subdirectory(DxrFallback) # HLSL Change
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
# Copyright (C) Microsoft Corporation. All rights reserved.
|
||||
# This file is distributed under the University of Illinois Open Source License. See LICENSE.TXT for details.
|
||||
add_llvm_library(LLVMDXIL
|
||||
DxilCBuffer.cpp
|
||||
DxilCompType.cpp
|
||||
DxilContainer.cpp
|
||||
DxilInterpolationMode.cpp
|
||||
DxilMetadataHelper.cpp
|
||||
DxilModule.cpp
|
||||
DxilOperations.cpp
|
||||
DxilResource.cpp
|
||||
DxilResourceBase.cpp
|
||||
DxilSampler.cpp
|
||||
DxilSemantic.cpp
|
||||
DxilShaderFlags.cpp
|
||||
DxilShaderModel.cpp
|
||||
DxilSignature.cpp
|
||||
DxilSignatureElement.cpp
|
||||
DxilTypeSystem.cpp
|
||||
DxilUtil.cpp
|
||||
|
||||
ADDITIONAL_HEADER_DIRS
|
||||
${LLVM_MAIN_INCLUDE_DIR}/llvm/IR
|
||||
)
|
||||
|
||||
add_dependencies(LLVMDXIL intrinsics_gen)
|
|
@ -7,7 +7,7 @@
|
|||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/HLSL/DxilCBuffer.h"
|
||||
#include "dxc/DXIL/DxilCBuffer.h"
|
||||
#include "dxc/Support/Global.h"
|
||||
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/HLSL/DxilCompType.h"
|
||||
#include "dxc/DXIL/DxilCompType.h"
|
||||
#include "dxc/Support/Global.h"
|
||||
|
||||
#include "llvm/IR/LLVMContext.h"
|
|
@ -9,7 +9,7 @@
|
|||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/HLSL/DxilContainer.h"
|
||||
#include "dxc/DXIL/DxilContainer.h"
|
||||
#include <algorithm>
|
||||
|
||||
namespace hlsl {
|
|
@ -7,7 +7,7 @@
|
|||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/HLSL/DxilInterpolationMode.h"
|
||||
#include "dxc/DXIL/DxilInterpolationMode.h"
|
||||
#include "dxc/Support/Global.h"
|
||||
|
||||
|
|
@ -8,18 +8,18 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/Support/Global.h"
|
||||
#include "dxc/HLSL/DxilMetadataHelper.h"
|
||||
#include "dxc/HLSL/DxilShaderModel.h"
|
||||
#include "dxc/HLSL/DxilCBuffer.h"
|
||||
#include "dxc/HLSL/DxilResource.h"
|
||||
#include "dxc/HLSL/DxilSampler.h"
|
||||
#include "dxc/HLSL/DxilSignatureElement.h"
|
||||
#include "dxc/HLSL/DxilSignature.h"
|
||||
#include "dxc/HLSL/DxilTypeSystem.h"
|
||||
#include "dxc/DXIL/DxilMetadataHelper.h"
|
||||
#include "dxc/DXIL/DxilShaderModel.h"
|
||||
#include "dxc/DXIL/DxilCBuffer.h"
|
||||
#include "dxc/DXIL/DxilResource.h"
|
||||
#include "dxc/DXIL/DxilSampler.h"
|
||||
#include "dxc/DXIL/DxilSignatureElement.h"
|
||||
#include "dxc/DXIL/DxilSignature.h"
|
||||
#include "dxc/DXIL/DxilTypeSystem.h"
|
||||
#include "dxc/HLSL/DxilRootSignature.h"
|
||||
#include "dxc/HLSL/ComputeViewIdState.h"
|
||||
#include "dxc/HLSL/DxilFunctionProps.h"
|
||||
#include "dxc/HLSL/DxilShaderFlags.h"
|
||||
#include "dxc/DXIL/DxilFunctionProps.h"
|
||||
#include "dxc/DXIL/DxilShaderFlags.h"
|
||||
|
||||
#include "llvm/IR/Constants.h"
|
||||
#include "llvm/IR/Function.h"
|
|
@ -8,15 +8,15 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/Support/Global.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/HLSL/DxilShaderModel.h"
|
||||
#include "dxc/HLSL/DxilSignatureElement.h"
|
||||
#include "dxc/HLSL/DxilContainer.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilShaderModel.h"
|
||||
#include "dxc/DXIL/DxilSignatureElement.h"
|
||||
#include "dxc/DXIL/DxilContainer.h"
|
||||
#include "dxc/HLSL/DxilRootSignature.h"
|
||||
#include "dxc/HLSL/DxilFunctionProps.h"
|
||||
#include "dxc/DXIL/DxilFunctionProps.h"
|
||||
#include "dxc/Support/WinAdapter.h"
|
||||
#include "DxilEntryProps.h"
|
||||
#include "dxc/DXIL/DxilEntryProps.h"
|
||||
|
||||
#include "llvm/IR/Constants.h"
|
||||
#include "llvm/IR/Function.h"
|
|
@ -9,9 +9,9 @@
|
|||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/Support/Global.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
|
||||
#include "llvm/ADT/ArrayRef.h"
|
||||
#include "llvm/IR/LLVMContext.h"
|
|
@ -7,9 +7,9 @@
|
|||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/HLSL/DxilResource.h"
|
||||
#include "dxc/DXIL/DxilResource.h"
|
||||
#include "dxc/Support/Global.h"
|
||||
#include "dxc/HLSL/DxilResourceBase.h"
|
||||
#include "dxc/DXIL/DxilResourceBase.h"
|
||||
#include "llvm/IR/Constant.h"
|
||||
#include "llvm/IR/DerivedTypes.h"
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/HLSL/DxilResourceBase.h"
|
||||
#include "dxc/DXIL/DxilResourceBase.h"
|
||||
#include "dxc/Support/Global.h"
|
||||
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/HLSL/DxilSampler.h"
|
||||
#include "dxc/DXIL/DxilSampler.h"
|
||||
#include "dxc/Support/Global.h"
|
||||
|
||||
|
|
@ -7,10 +7,10 @@
|
|||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/HLSL/DxilSigPoint.h"
|
||||
#include "dxc/HLSL/DxilSemantic.h"
|
||||
#include "dxc/HLSL/DxilSignature.h"
|
||||
#include "dxc/HLSL/DxilShaderModel.h"
|
||||
#include "dxc/DXIL/DxilSigPoint.h"
|
||||
#include "dxc/DXIL/DxilSemantic.h"
|
||||
#include "dxc/DXIL/DxilSignature.h"
|
||||
#include "dxc/DXIL/DxilShaderModel.h"
|
||||
#include "dxc/Support/Global.h"
|
||||
|
||||
#include <string>
|
|
@ -7,11 +7,11 @@
|
|||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/HLSL/DxilContainer.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/HLSL/DxilShaderFlags.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/HLSL/DxilResource.h"
|
||||
#include "dxc/DXIL/DxilContainer.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilShaderFlags.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilResource.h"
|
||||
#include "dxc/Support/Global.h"
|
||||
#include "llvm/IR/LLVMContext.h"
|
||||
#include "llvm/IR/Instructions.h"
|
|
@ -9,8 +9,8 @@
|
|||
|
||||
#include <limits.h>
|
||||
|
||||
#include "dxc/HLSL/DxilShaderModel.h"
|
||||
#include "dxc/HLSL/DxilSemantic.h"
|
||||
#include "dxc/DXIL/DxilShaderModel.h"
|
||||
#include "dxc/DXIL/DxilSemantic.h"
|
||||
#include "dxc/Support/Global.h"
|
||||
|
||||
|
|
@ -8,9 +8,8 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/Support/Global.h"
|
||||
#include "dxc/HLSL/DxilSignature.h"
|
||||
#include "dxc/HLSL/DxilSignatureAllocator.h"
|
||||
#include "dxc/HLSL/DxilSigPoint.h"
|
||||
#include "dxc/DXIL/DxilSignature.h"
|
||||
#include "dxc/DXIL/DxilSigPoint.h"
|
||||
#include "llvm/ADT/STLExtras.h"
|
||||
|
||||
using std::vector;
|
||||
|
@ -87,11 +86,8 @@ const std::vector<std::unique_ptr<DxilSignatureElement> > &DxilSignature::GetEle
|
|||
return m_Elements;
|
||||
}
|
||||
|
||||
namespace {
|
||||
|
||||
static bool ShouldBeAllocated(const DxilSignatureElement *SE) {
|
||||
DXIL::SemanticInterpretationKind I = SE->GetInterpretation();
|
||||
switch (I) {
|
||||
bool DxilSignature::ShouldBeAllocated(DXIL::SemanticInterpretationKind Kind) {
|
||||
switch (Kind) {
|
||||
case DXIL::SemanticInterpretationKind::NA:
|
||||
case DXIL::SemanticInterpretationKind::NotInSig:
|
||||
case DXIL::SemanticInterpretationKind::NotPacked:
|
||||
|
@ -103,12 +99,9 @@ static bool ShouldBeAllocated(const DxilSignatureElement *SE) {
|
|||
return true;
|
||||
}
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
|
||||
bool DxilSignature::IsFullyAllocated() const {
|
||||
for (auto &SE : m_Elements) {
|
||||
if (!ShouldBeAllocated(SE.get()))
|
||||
if (!ShouldBeAllocated(SE.get()->GetInterpretation()))
|
||||
continue;
|
||||
if (!SE->IsAllocated())
|
||||
return false;
|
||||
|
@ -125,107 +118,6 @@ unsigned DxilSignature::NumVectorsUsed(unsigned streamIndex) const {
|
|||
return NumVectors;
|
||||
}
|
||||
|
||||
unsigned DxilSignature::PackElements(DXIL::PackingStrategy packing) {
|
||||
unsigned rowsUsed = 0;
|
||||
|
||||
// Transfer to elements derived from DxilSignatureAllocator::PackElement
|
||||
std::vector<DxilPackElement> packElements;
|
||||
for (auto &SE : m_Elements) {
|
||||
if (ShouldBeAllocated(SE.get()))
|
||||
packElements.emplace_back(SE.get(), m_UseMinPrecision);
|
||||
}
|
||||
|
||||
if (m_sigPointKind == DXIL::SigPointKind::GSOut) {
|
||||
// Special case due to support for multiple streams
|
||||
DxilSignatureAllocator alloc[4] = {{32, UseMinPrecision()},
|
||||
{32, UseMinPrecision()},
|
||||
{32, UseMinPrecision()},
|
||||
{32, UseMinPrecision()}};
|
||||
std::vector<DxilSignatureAllocator::PackElement*> elements[4];
|
||||
for (auto &SE : packElements) {
|
||||
elements[SE.Get()->GetOutputStream()].push_back(&SE);
|
||||
}
|
||||
for (unsigned i = 0; i < 4; ++i) {
|
||||
if (!elements[i].empty()) {
|
||||
unsigned streamRowsUsed = 0;
|
||||
switch (packing) {
|
||||
case DXIL::PackingStrategy::PrefixStable:
|
||||
streamRowsUsed = alloc[i].PackPrefixStable(elements[i], 0, 32);
|
||||
break;
|
||||
case DXIL::PackingStrategy::Optimized:
|
||||
streamRowsUsed = alloc[i].PackOptimized(elements[i], 0, 32);
|
||||
break;
|
||||
default:
|
||||
DXASSERT(false, "otherwise, invalid packing strategy supplied");
|
||||
}
|
||||
if (streamRowsUsed > rowsUsed)
|
||||
rowsUsed = streamRowsUsed;
|
||||
}
|
||||
}
|
||||
// rowsUsed isn't really meaningful in this case.
|
||||
return rowsUsed;
|
||||
}
|
||||
|
||||
const SigPoint *SP = SigPoint::GetSigPoint(m_sigPointKind);
|
||||
DXIL::PackingKind PK = SP->GetPackingKind();
|
||||
|
||||
switch (PK) {
|
||||
case DXIL::PackingKind::None:
|
||||
// no packing.
|
||||
break;
|
||||
|
||||
case DXIL::PackingKind::InputAssembler:
|
||||
// incrementally assign each element that belongs in the signature to the start of the next free row
|
||||
for (auto &SE : packElements) {
|
||||
SE.SetLocation(rowsUsed, 0);
|
||||
rowsUsed += SE.GetRows();
|
||||
}
|
||||
break;
|
||||
|
||||
case DXIL::PackingKind::Vertex:
|
||||
case DXIL::PackingKind::PatchConstant: {
|
||||
DxilSignatureAllocator alloc(32, UseMinPrecision());
|
||||
std::vector<DxilSignatureAllocator::PackElement*> elements;
|
||||
elements.reserve(packElements.size());
|
||||
for (auto &SE : packElements){
|
||||
elements.push_back(&SE);
|
||||
}
|
||||
switch (packing) {
|
||||
case DXIL::PackingStrategy::PrefixStable:
|
||||
rowsUsed = alloc.PackPrefixStable(elements, 0, 32);
|
||||
break;
|
||||
case DXIL::PackingStrategy::Optimized:
|
||||
rowsUsed = alloc.PackOptimized(elements, 0, 32);
|
||||
break;
|
||||
default:
|
||||
DXASSERT(false, "otherwise, invalid packing strategy supplied");
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case DXIL::PackingKind::Target:
|
||||
// for SV_Target, assign rows according to semantic index, the rest are unassigned (-1)
|
||||
// Note: Overlapping semantic indices should be checked elsewhere
|
||||
for (auto &SE : packElements) {
|
||||
if (SE.GetKind() != DXIL::SemanticKind::Target)
|
||||
continue;
|
||||
unsigned row = SE.Get()->GetSemanticStartIndex();
|
||||
SE.SetLocation(row, 0);
|
||||
DXASSERT(SE.GetRows() == 1, "otherwise, SV_Target output not broken into separate rows earlier");
|
||||
row += SE.GetRows();
|
||||
if (rowsUsed < row)
|
||||
rowsUsed = row;
|
||||
}
|
||||
break;
|
||||
|
||||
case DXIL::PackingKind::Invalid:
|
||||
default:
|
||||
DXASSERT(false, "unexpected PackingKind.");
|
||||
}
|
||||
|
||||
return rowsUsed;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//
|
||||
// EntrySingnature methods.
|
||||
|
@ -236,9 +128,4 @@ DxilEntrySignature::DxilEntrySignature(const DxilEntrySignature &src)
|
|||
|
||||
} // namespace hlsl
|
||||
|
||||
#include <algorithm>
|
||||
#include "dxc/HLSL/DxilSignatureAllocator.inl"
|
||||
#include "dxc/HLSL/DxilSigPoint.inl"
|
||||
#include "dxc/HLSL/DxilPipelineStateValidation.h"
|
||||
#include <functional>
|
||||
#include "dxc/HLSL/ViewIDPipelineValidation.inl"
|
||||
#include "dxc/DXIL/DxilSigPoint.inl"
|
|
@ -10,11 +10,11 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/Support/Global.h"
|
||||
#include "dxc/HLSL/DxilSignatureElement.h"
|
||||
#include "dxc/HLSL/DxilSemantic.h"
|
||||
#include "dxc/HLSL/DxilSigPoint.h"
|
||||
#include "dxc/HLSL/DxilShaderModel.h"
|
||||
#include "dxc/HLSL/DxilContainer.h"
|
||||
#include "dxc/DXIL/DxilSignatureElement.h"
|
||||
#include "dxc/DXIL/DxilSemantic.h"
|
||||
#include "dxc/DXIL/DxilSigPoint.h"
|
||||
#include "dxc/DXIL/DxilShaderModel.h"
|
||||
#include "dxc/DXIL/DxilContainer.h"
|
||||
#include <memory>
|
||||
|
||||
using std::string;
|
|
@ -7,8 +7,8 @@
|
|||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/HLSL/DxilTypeSystem.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilTypeSystem.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/Support/Global.h"
|
||||
#include "dxc/Support/WinFunctions.h"
|
||||
|
|
@ -11,9 +11,9 @@
|
|||
|
||||
|
||||
#include "llvm/IR/GlobalVariable.h"
|
||||
#include "dxc/HLSL/DxilTypeSystem.h"
|
||||
#include "dxc/HLSL/DxilUtil.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilTypeSystem.h"
|
||||
#include "dxc/DXIL/DxilUtil.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "llvm/Bitcode/ReaderWriter.h"
|
||||
#include "llvm/IR/DiagnosticInfo.h"
|
||||
#include "llvm/IR/DiagnosticPrinter.h"
|
|
@ -0,0 +1,16 @@
|
|||
; Copyright (C) Microsoft Corporation. All rights reserved.
|
||||
; This file is distributed under the University of Illinois Open Source License. See LICENSE.TXT for details.
|
||||
;
|
||||
; This is an LLVMBuild description file for the components in this subdirectory.
|
||||
;
|
||||
; For more information on the LLVMBuild system, please see:
|
||||
;
|
||||
; http://llvm.org/docs/LLVMBuild.html
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[component_0]
|
||||
type = Library
|
||||
name = DXIL
|
||||
parent = Libraries
|
||||
required_libraries = BitReader Core DxcSupport IPA Support
|
|
@ -17,7 +17,7 @@
|
|||
#include "dxc/Support/HLSLOptions.h"
|
||||
#include "dxc/Support/Unicode.h"
|
||||
#include "dxc/Support/dxcapi.use.h"
|
||||
#include "dxc/HLSL/DxilShaderModel.h"
|
||||
#include "dxc/DXIL/DxilShaderModel.h"
|
||||
|
||||
using namespace llvm::opt;
|
||||
using namespace dxc;
|
||||
|
|
|
@ -8,11 +8,11 @@
|
|||
#include "dxc/dxcdxrfallbackcompiler.h"
|
||||
#include "dxc/Support/dxcapi.use.h"
|
||||
#include "dxc/Support/dxcapi.impl.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/HLSL/DxilLinker.h"
|
||||
#include "dxc/HLSL/DxilFunctionProps.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/HLSL/DxilInstructions.h"
|
||||
#include "dxc/DXIL/DxilFunctionProps.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilInstructions.h"
|
||||
|
||||
#include "llvm/Analysis/CallGraph.h"
|
||||
#include "llvm/IR/InstIterator.h"
|
||||
|
|
|
@ -5,10 +5,7 @@ add_llvm_library(LLVMHLSL
|
|||
ComputeViewIdStateBuilder.cpp
|
||||
ControlDependence.cpp
|
||||
DxilAddPixelHitInstrumentation.cpp
|
||||
DxilCBuffer.cpp
|
||||
DxilCompType.cpp
|
||||
DxilCondenseResources.cpp
|
||||
DxilContainer.cpp
|
||||
DxilContainerAssembler.cpp
|
||||
DxilContainerReflection.cpp
|
||||
DxilConvergent.cpp
|
||||
|
@ -17,32 +14,20 @@ add_llvm_library(LLVMHLSL
|
|||
DxilExpandTrigIntrinsics.cpp
|
||||
DxilForceEarlyZ.cpp
|
||||
DxilGenerationPass.cpp
|
||||
DxilInterpolationMode.cpp
|
||||
DxilLegalizeSampleOffsetPass.cpp
|
||||
DxilLinker.cpp
|
||||
DxilMetadataHelper.cpp
|
||||
DxilModule.cpp
|
||||
DxilOperations.cpp
|
||||
DxilOutputColorBecomesConstant.cpp
|
||||
DxilPreparePasses.cpp
|
||||
DxilRemoveDiscards.cpp
|
||||
DxilReduceMSAAToSingleSample.cpp
|
||||
DxilPackSignatureElement.cpp
|
||||
DxilPatchShaderRecordBindings.cpp
|
||||
DxilPreserveAllOutputs.cpp
|
||||
DxilResource.cpp
|
||||
DxilResourceBase.cpp
|
||||
DxilRootSignature.cpp
|
||||
DxilSampler.cpp
|
||||
DxilSemantic.cpp
|
||||
DxilShaderFlags.cpp
|
||||
DxilShaderAccessTracking.cpp
|
||||
DxilShaderModel.cpp
|
||||
DxilSignature.cpp
|
||||
DxilSignatureElement.cpp
|
||||
DxilSignatureValidation.cpp
|
||||
DxilTargetLowering.cpp
|
||||
DxilTargetTransformInfo.cpp
|
||||
DxilTypeSystem.cpp
|
||||
DxilUtil.cpp
|
||||
DxilExportMap.cpp
|
||||
DxilValidation.cpp
|
||||
DxcOptimizer.cpp
|
||||
|
|
|
@ -9,9 +9,9 @@
|
|||
|
||||
#include "dxc/HLSL/ComputeViewIdState.h"
|
||||
#include "dxc/Support/Global.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/HLSL/DxilInstructions.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilInstructions.h"
|
||||
|
||||
#include "llvm/IR/LLVMContext.h"
|
||||
#include "llvm/IR/Module.h"
|
||||
|
|
|
@ -9,9 +9,9 @@
|
|||
|
||||
#include "dxc/HLSL/ComputeViewIdState.h"
|
||||
#include "dxc/Support/Global.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/HLSL/DxilInstructions.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilInstructions.h"
|
||||
|
||||
#include "llvm/IR/LLVMContext.h"
|
||||
#include "llvm/IR/Module.h"
|
||||
|
|
|
@ -13,15 +13,15 @@
|
|||
#include "dxc/Support/Global.h"
|
||||
#include "dxc/Support/Unicode.h"
|
||||
#include "dxc/Support/microcom.h"
|
||||
#include "dxc/HLSL/DxilContainer.h"
|
||||
#include "dxc/DXIL/DxilContainer.h"
|
||||
#include "dxc/Support/FileIOHelper.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/HLSL/DxilPIXPasses.h"
|
||||
#include "dxc/HLSL/ReducibilityAnalysis.h"
|
||||
#include "dxc/HLSL/HLMatrixLowerPass.h"
|
||||
#include "dxc/HLSL/DxilGenerationPass.h"
|
||||
#include "dxc/HLSL/ComputeViewIdState.h"
|
||||
#include "dxc/HLSL/DxilUtil.h"
|
||||
#include "dxc/DXIL/DxilUtil.h"
|
||||
#include "dxc/Support/dxcapi.impl.h"
|
||||
|
||||
#include "llvm/Pass.h"
|
||||
|
|
|
@ -11,11 +11,11 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/HLSL/DxilGenerationPass.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/HLSL/DxilInstructions.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilInstructions.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/HLSL/DxilPIXPasses.h"
|
||||
#include "dxc/HLSL/DxilUtil.h"
|
||||
#include "dxc/DXIL/DxilUtil.h"
|
||||
|
||||
#include "llvm/IR/PassManager.h"
|
||||
#include "llvm/Transforms/Utils/Local.h"
|
||||
|
|
|
@ -10,15 +10,15 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/HLSL/DxilGenerationPass.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/HLSL/DxilSignatureElement.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilSignatureElement.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/Support/Global.h"
|
||||
#include "dxc/HLSL/DxilTypeSystem.h"
|
||||
#include "dxc/HLSL/DxilInstructions.h"
|
||||
#include "dxc/DXIL/DxilTypeSystem.h"
|
||||
#include "dxc/DXIL/DxilInstructions.h"
|
||||
#include "dxc/HLSL/DxilSpanAllocator.h"
|
||||
#include "dxc/HLSL/HLMatrixLowerHelper.h"
|
||||
#include "dxc/HLSL/DxilUtil.h"
|
||||
#include "dxc/DXIL/DxilUtil.h"
|
||||
#include "dxc/HLSL/HLModule.h"
|
||||
|
||||
#include "llvm/IR/Instructions.h"
|
||||
|
|
|
@ -15,13 +15,13 @@
|
|||
#include "llvm/IR/DebugInfo.h"
|
||||
#include "llvm/Bitcode/ReaderWriter.h"
|
||||
#include "llvm/Support/MD5.h"
|
||||
#include "dxc/HLSL/DxilContainer.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/HLSL/DxilShaderModel.h"
|
||||
#include "dxc/DXIL/DxilContainer.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilShaderModel.h"
|
||||
#include "dxc/HLSL/DxilRootSignature.h"
|
||||
#include "dxc/HLSL/DxilUtil.h"
|
||||
#include "dxc/HLSL/DxilFunctionProps.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilUtil.h"
|
||||
#include "dxc/DXIL/DxilFunctionProps.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/Support/Global.h"
|
||||
#include "dxc/Support/Unicode.h"
|
||||
#include "dxc/Support/WinIncludes.h"
|
||||
|
|
|
@ -12,18 +12,18 @@
|
|||
#include "llvm/Bitcode/ReaderWriter.h"
|
||||
#include "llvm/IR/LLVMContext.h"
|
||||
#include "llvm/IR/InstIterator.h"
|
||||
#include "dxc/HLSL/DxilContainer.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/HLSL/DxilShaderModel.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/HLSL/DxilInstructions.h"
|
||||
#include "dxc/DXIL/DxilContainer.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilShaderModel.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilInstructions.h"
|
||||
#include "dxc/Support/Global.h"
|
||||
#include "dxc/Support/Unicode.h"
|
||||
#include "dxc/Support/WinIncludes.h"
|
||||
#include "dxc/Support/microcom.h"
|
||||
#include "dxc/Support/FileIOHelper.h"
|
||||
#include "dxc/Support/dxcapi.impl.h"
|
||||
#include "dxc/HLSL/DxilFunctionProps.h"
|
||||
#include "dxc/DXIL/DxilFunctionProps.h"
|
||||
|
||||
#include <unordered_set>
|
||||
#include "llvm/ADT/SetVector.h"
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
#include "llvm/Support/GenericDomTree.h"
|
||||
#include "llvm/Support/raw_os_ostream.h"
|
||||
|
||||
#include "dxc/HLSL/DxilConstants.h"
|
||||
#include "dxc/DXIL/DxilConstants.h"
|
||||
#include "dxc/HLSL/DxilGenerationPass.h"
|
||||
#include "dxc/HLSL/HLOperations.h"
|
||||
#include "dxc/HLSL/HLModule.h"
|
||||
|
|
|
@ -10,10 +10,10 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/HLSL/DxilGenerationPass.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/HLSL/DxilPIXPasses.h"
|
||||
#include "dxc/HLSL/DxilUtil.h"
|
||||
#include "dxc/DXIL/DxilUtil.h"
|
||||
|
||||
#include "llvm/IR/Module.h"
|
||||
#include "llvm/IR/Constants.h"
|
||||
|
|
|
@ -10,12 +10,12 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/HLSL/DxilGenerationPass.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/HLSL/DxilSignatureElement.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/HLSL/DxilUtil.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilSignatureElement.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilUtil.h"
|
||||
#include "dxc/Support/Global.h"
|
||||
#include "dxc/HLSL/DxilInstructions.h"
|
||||
#include "dxc/DXIL/DxilInstructions.h"
|
||||
|
||||
#include "llvm/IR/Module.h"
|
||||
#include "llvm/Pass.h"
|
||||
|
|
|
@ -41,11 +41,11 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/HLSL/DxilGenerationPass.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/HLSL/DxilSignatureElement.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilSignatureElement.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/Support/Global.h"
|
||||
#include "dxc/HLSL/DxilInstructions.h"
|
||||
#include "dxc/DXIL/DxilInstructions.h"
|
||||
|
||||
#include "llvm/IR/Module.h"
|
||||
#include "llvm/Pass.h"
|
||||
|
|
|
@ -10,9 +10,9 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/Support/Global.h"
|
||||
#include "dxc/HLSL/DxilUtil.h"
|
||||
#include "dxc/DXIL/DxilUtil.h"
|
||||
#include "dxc/HLSL/DxilExportMap.h"
|
||||
#include "dxc/HLSL/DxilTypeSystem.h"
|
||||
#include "dxc/DXIL/DxilTypeSystem.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
#include "llvm/ADT/StringRef.h"
|
||||
#include "llvm/ADT/StringSet.h"
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/HLSL/DxilGenerationPass.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/HLSL/DxilPIXPasses.h"
|
||||
#include "llvm/IR/Module.h"
|
||||
|
||||
|
|
|
@ -10,20 +10,20 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/HLSL/DxilGenerationPass.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/HLSL/HLModule.h"
|
||||
#include "dxc/HLSL/HLOperations.h"
|
||||
#include "dxc/HLSL/DxilInstructions.h"
|
||||
#include "dxc/DXIL/DxilInstructions.h"
|
||||
#include "dxc/HLSL/HLMatrixLowerHelper.h"
|
||||
#include "dxc/HlslIntrinsicOp.h"
|
||||
#include "dxc/Support/Global.h"
|
||||
#include "dxc/HLSL/DxilTypeSystem.h"
|
||||
#include "dxc/DXIL/DxilTypeSystem.h"
|
||||
#include "dxc/HLSL/HLOperationLower.h"
|
||||
#include "HLSignatureLower.h"
|
||||
#include "dxc/HLSL/DxilUtil.h"
|
||||
#include "dxc/DXIL/DxilUtil.h"
|
||||
#include "dxc/Support/exception.h"
|
||||
#include "DxilEntryProps.h"
|
||||
#include "dxc/DXIL/DxilEntryProps.h"
|
||||
|
||||
#include "llvm/IR/GetElementPtrTypeIterator.h"
|
||||
#include "llvm/IR/IRBuilder.h"
|
||||
|
|
|
@ -10,8 +10,8 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/HLSL/DxilGenerationPass.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
|
||||
#include "llvm/Analysis/InstructionSimplify.h"
|
||||
#include "llvm/Analysis/LoopInfo.h"
|
||||
|
|
|
@ -8,14 +8,14 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/HLSL/DxilLinker.h"
|
||||
#include "dxc/HLSL/DxilCBuffer.h"
|
||||
#include "dxc/HLSL/DxilFunctionProps.h"
|
||||
#include "DxilEntryProps.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/HLSL/DxilResource.h"
|
||||
#include "dxc/HLSL/DxilSampler.h"
|
||||
#include "dxc/HLSL/DxilUtil.h"
|
||||
#include "dxc/DXIL/DxilCBuffer.h"
|
||||
#include "dxc/DXIL/DxilFunctionProps.h"
|
||||
#include "dxc/DXIL/DxilEntryProps.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilResource.h"
|
||||
#include "dxc/DXIL/DxilSampler.h"
|
||||
#include "dxc/DXIL/DxilUtil.h"
|
||||
#include "dxc/Support/Global.h"
|
||||
#include "llvm/ADT/StringSet.h"
|
||||
#include "llvm/ADT/DenseSet.h"
|
||||
|
@ -29,7 +29,7 @@
|
|||
#include <memory>
|
||||
#include <vector>
|
||||
|
||||
#include "dxc/HLSL/DxilContainer.h"
|
||||
#include "dxc/DXIL/DxilContainer.h"
|
||||
#include "llvm/IR/DiagnosticPrinter.h"
|
||||
#include "llvm/IR/LLVMContext.h"
|
||||
#include "llvm/IR/DebugInfo.h"
|
||||
|
|
|
@ -11,8 +11,8 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/HLSL/DxilGenerationPass.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/HLSL/DxilPIXPasses.h"
|
||||
#include "dxc/HLSL/DxilSpanAllocator.h"
|
||||
|
||||
|
|
|
@ -0,0 +1,127 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// DxilSignatureElement.h //
|
||||
// Copyright (C) Microsoft Corporation. All rights reserved. //
|
||||
// This file is distributed under the University of Illinois Open Source //
|
||||
// License. See LICENSE.TXT for details. //
|
||||
// //
|
||||
// Class to pack HLSL signature element. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
#include "dxc/Support/Global.h"
|
||||
#include "dxc/DXIL/DxilSignature.h"
|
||||
#include "dxc/HLSL/DxilSignatureAllocator.h"
|
||||
#include "dxc/DXIL/DxilSigPoint.h"
|
||||
#include "dxc/HLSL/DxilPackSignatureElement.h"
|
||||
|
||||
using namespace hlsl;
|
||||
using namespace llvm;
|
||||
|
||||
namespace hlsl {
|
||||
unsigned PackDxilSignature(DxilSignature &sig, DXIL::PackingStrategy packing) {
|
||||
unsigned rowsUsed = 0;
|
||||
bool bUseMinPrecision = sig.UseMinPrecision();
|
||||
// Transfer to elements derived from DxilSignatureAllocator::PackElement
|
||||
std::vector<DxilPackElement> packElements;
|
||||
for (auto &SE : sig.GetElements()) {
|
||||
if (DxilSignature::ShouldBeAllocated(SE.get()->GetInterpretation()))
|
||||
packElements.emplace_back(SE.get(), bUseMinPrecision);
|
||||
}
|
||||
|
||||
DXIL::SigPointKind Kind = sig.GetSigPointKind();
|
||||
if (Kind == DXIL::SigPointKind::GSOut) {
|
||||
// Special case due to support for multiple streams
|
||||
DxilSignatureAllocator alloc[4] = {{32, bUseMinPrecision},
|
||||
{32, bUseMinPrecision},
|
||||
{32, bUseMinPrecision},
|
||||
{32, bUseMinPrecision}};
|
||||
std::vector<DxilSignatureAllocator::PackElement*> elements[4];
|
||||
for (auto &SE : packElements) {
|
||||
elements[SE.Get()->GetOutputStream()].push_back(&SE);
|
||||
}
|
||||
for (unsigned i = 0; i < 4; ++i) {
|
||||
if (!elements[i].empty()) {
|
||||
unsigned streamRowsUsed = 0;
|
||||
switch (packing) {
|
||||
case DXIL::PackingStrategy::PrefixStable:
|
||||
streamRowsUsed = alloc[i].PackPrefixStable(elements[i], 0, 32);
|
||||
break;
|
||||
case DXIL::PackingStrategy::Optimized:
|
||||
streamRowsUsed = alloc[i].PackOptimized(elements[i], 0, 32);
|
||||
break;
|
||||
default:
|
||||
DXASSERT(false, "otherwise, invalid packing strategy supplied");
|
||||
}
|
||||
if (streamRowsUsed > rowsUsed)
|
||||
rowsUsed = streamRowsUsed;
|
||||
}
|
||||
}
|
||||
// rowsUsed isn't really meaningful in this case.
|
||||
return rowsUsed;
|
||||
}
|
||||
|
||||
const SigPoint *SP = SigPoint::GetSigPoint(Kind);
|
||||
DXIL::PackingKind PK = SP->GetPackingKind();
|
||||
|
||||
switch (PK) {
|
||||
case DXIL::PackingKind::None:
|
||||
// no packing.
|
||||
break;
|
||||
|
||||
case DXIL::PackingKind::InputAssembler:
|
||||
// incrementally assign each element that belongs in the signature to the start of the next free row
|
||||
for (auto &SE : packElements) {
|
||||
SE.SetLocation(rowsUsed, 0);
|
||||
rowsUsed += SE.GetRows();
|
||||
}
|
||||
break;
|
||||
|
||||
case DXIL::PackingKind::Vertex:
|
||||
case DXIL::PackingKind::PatchConstant: {
|
||||
DxilSignatureAllocator alloc(32, bUseMinPrecision);
|
||||
std::vector<DxilSignatureAllocator::PackElement*> elements;
|
||||
elements.reserve(packElements.size());
|
||||
for (auto &SE : packElements){
|
||||
elements.push_back(&SE);
|
||||
}
|
||||
switch (packing) {
|
||||
case DXIL::PackingStrategy::PrefixStable:
|
||||
rowsUsed = alloc.PackPrefixStable(elements, 0, 32);
|
||||
break;
|
||||
case DXIL::PackingStrategy::Optimized:
|
||||
rowsUsed = alloc.PackOptimized(elements, 0, 32);
|
||||
break;
|
||||
default:
|
||||
DXASSERT(false, "otherwise, invalid packing strategy supplied");
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case DXIL::PackingKind::Target:
|
||||
// for SV_Target, assign rows according to semantic index, the rest are unassigned (-1)
|
||||
// Note: Overlapping semantic indices should be checked elsewhere
|
||||
for (auto &SE : packElements) {
|
||||
if (SE.GetKind() != DXIL::SemanticKind::Target)
|
||||
continue;
|
||||
unsigned row = SE.Get()->GetSemanticStartIndex();
|
||||
SE.SetLocation(row, 0);
|
||||
DXASSERT(SE.GetRows() == 1, "otherwise, SV_Target output not broken into separate rows earlier");
|
||||
row += SE.GetRows();
|
||||
if (rowsUsed < row)
|
||||
rowsUsed = row;
|
||||
}
|
||||
break;
|
||||
|
||||
case DXIL::PackingKind::Invalid:
|
||||
default:
|
||||
DXASSERT(false, "unexpected PackingKind.");
|
||||
}
|
||||
|
||||
return rowsUsed;
|
||||
}
|
||||
}
|
||||
|
||||
#include <algorithm>
|
||||
#include "dxc/HLSL/DxilSignatureAllocator.inl"
|
|
@ -13,19 +13,19 @@
|
|||
|
||||
#include "dxc/HLSL/DxilGenerationPass.h"
|
||||
#include "dxc/HLSL/DxilFallbackLayerPass.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/HLSL/DxilSignatureElement.h"
|
||||
#include "dxc/HLSL/DxilFunctionProps.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilSignatureElement.h"
|
||||
#include "dxc/DXIL/DxilFunctionProps.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/Support/Global.h"
|
||||
|
||||
#include "dxc/Support/Unicode.h"
|
||||
#include "dxc/HLSL/DxilTypeSystem.h"
|
||||
#include "dxc/HLSL/DxilConstants.h"
|
||||
#include "dxc/HLSL/DxilInstructions.h"
|
||||
#include "dxc/DXIL/DxilTypeSystem.h"
|
||||
#include "dxc/DXIL/DxilConstants.h"
|
||||
#include "dxc/DXIL/DxilInstructions.h"
|
||||
#include "dxc/HLSL/DxilSpanAllocator.h"
|
||||
#include "dxc/HLSL/DxilRootSignature.h"
|
||||
#include "dxc/HLSL/DxilUtil.h"
|
||||
#include "dxc/DXIL/DxilUtil.h"
|
||||
#include "llvm/Transforms/Utils/Cloning.h"
|
||||
|
||||
#include "llvm/IR/Instructions.h"
|
||||
|
|
|
@ -10,13 +10,13 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/HLSL/DxilGenerationPass.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/HLSL/HLOperations.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/Support/Global.h"
|
||||
#include "dxc/HLSL/DxilTypeSystem.h"
|
||||
#include "dxc/HLSL/DxilUtil.h"
|
||||
#include "dxc/HLSL/DxilFunctionProps.h"
|
||||
#include "dxc/DXIL/DxilTypeSystem.h"
|
||||
#include "dxc/DXIL/DxilUtil.h"
|
||||
#include "dxc/DXIL/DxilFunctionProps.h"
|
||||
#include "llvm/IR/GetElementPtrTypeIterator.h"
|
||||
#include "llvm/IR/IRBuilder.h"
|
||||
#include "llvm/IR/Instructions.h"
|
||||
|
|
|
@ -10,11 +10,11 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/HLSL/DxilGenerationPass.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/HLSL/DxilSignatureElement.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilSignatureElement.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/Support/Global.h"
|
||||
#include "dxc/HLSL/DxilInstructions.h"
|
||||
#include "dxc/DXIL/DxilInstructions.h"
|
||||
|
||||
#include "llvm/IR/Module.h"
|
||||
#include "llvm/IR/InstIterator.h"
|
||||
|
|
|
@ -10,9 +10,9 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/HLSL/DxilGenerationPass.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/HLSL/DxilInstructions.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilInstructions.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/HLSL/DxilPIXPasses.h"
|
||||
|
||||
#include "llvm/IR/Instructions.h"
|
||||
|
|
|
@ -10,8 +10,8 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/HLSL/DxilGenerationPass.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/HLSL/DxilPIXPasses.h"
|
||||
|
||||
#include "llvm/IR/Instructions.h"
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/HLSL/DxilConstants.h"
|
||||
#include "dxc/DXIL/DxilConstants.h"
|
||||
#include "dxc/HLSL/DxilRootSignature.h"
|
||||
#include "dxc/HLSL/DxilPipelineStateValidation.h"
|
||||
#include "dxc/Support/Global.h"
|
||||
|
|
|
@ -11,9 +11,9 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/HLSL/DxilGenerationPass.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/HLSL/DxilInstructions.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilInstructions.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/HLSL/DxilPIXPasses.h"
|
||||
#include "dxc/HLSL/DxilSpanAllocator.h"
|
||||
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// DxilSignatureElement.h //
|
||||
// Copyright (C) Microsoft Corporation. All rights reserved. //
|
||||
// This file is distributed under the University of Illinois Open Source //
|
||||
// License. See LICENSE.TXT for details. //
|
||||
// //
|
||||
// Validate HLSL signature element packing. //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/Support/Global.h"
|
||||
#include "dxc/DXIL/DxilSignature.h"
|
||||
#include "dxc/DXIL/DxilSigPoint.h"
|
||||
#include "dxc/HLSL/DxilSignatureAllocator.h"
|
||||
|
||||
using namespace hlsl;
|
||||
using namespace llvm;
|
||||
|
||||
#include "dxc/HLSL/DxilPipelineStateValidation.h"
|
||||
#include <functional>
|
||||
#include "dxc/HLSL/ViewIDPipelineValidation.inl"
|
|
@ -14,8 +14,8 @@
|
|||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "DxilTargetTransformInfo.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "llvm/CodeGen/BasicTTIImpl.h"
|
||||
|
||||
using namespace llvm;
|
||||
|
|
|
@ -11,18 +11,18 @@
|
|||
|
||||
#include "dxc/HLSL/DxilValidation.h"
|
||||
#include "dxc/HLSL/DxilGenerationPass.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/HLSL/DxilShaderModel.h"
|
||||
#include "dxc/HLSL/DxilContainer.h"
|
||||
#include "dxc/HLSL/DxilFunctionProps.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilShaderModel.h"
|
||||
#include "dxc/DXIL/DxilContainer.h"
|
||||
#include "dxc/DXIL/DxilFunctionProps.h"
|
||||
#include "dxc/Support/Global.h"
|
||||
#include "dxc/HLSL/DxilUtil.h"
|
||||
#include "dxc/HLSL/DxilInstructions.h"
|
||||
#include "dxc/DXIL/DxilUtil.h"
|
||||
#include "dxc/DXIL/DxilInstructions.h"
|
||||
#include "dxc/HLSL/ReducibilityAnalysis.h"
|
||||
#include "dxc/Support/WinIncludes.h"
|
||||
#include "dxc/Support/FileIOHelper.h"
|
||||
#include "DxilEntryProps.h"
|
||||
#include "dxc/DXIL/DxilEntryProps.h"
|
||||
|
||||
#include "llvm/ADT/ArrayRef.h"
|
||||
#include "llvm/Analysis/CallGraph.h"
|
||||
|
@ -45,6 +45,7 @@
|
|||
#include "llvm/Analysis/PostDominators.h"
|
||||
#include "dxc/HLSL/DxilSpanAllocator.h"
|
||||
#include "dxc/HLSL/DxilSignatureAllocator.h"
|
||||
#include "dxc/HLSL/DxilPackSignatureElement.h"
|
||||
#include "dxc/HLSL/DxilRootSignature.h"
|
||||
#include <algorithm>
|
||||
#include <deque>
|
||||
|
|
|
@ -13,12 +13,12 @@
|
|||
#include "dxc/HLSL/HLMatrixLowerPass.h"
|
||||
#include "dxc/HLSL/HLOperations.h"
|
||||
#include "dxc/HLSL/HLModule.h"
|
||||
#include "dxc/HLSL/DxilUtil.h"
|
||||
#include "dxc/DXIL/DxilUtil.h"
|
||||
#include "dxc/HlslIntrinsicOp.h"
|
||||
#include "dxc/Support/Global.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/HLSL/DxilTypeSystem.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilTypeSystem.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
|
||||
#include "llvm/IR/IRBuilder.h"
|
||||
#include "llvm/IR/Module.h"
|
||||
|
|
|
@ -9,11 +9,11 @@
|
|||
// //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/HLSL/DxilShaderModel.h"
|
||||
#include "dxc/HLSL/DxilCBuffer.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilShaderModel.h"
|
||||
#include "dxc/DXIL/DxilCBuffer.h"
|
||||
#include "dxc/HLSL/HLModule.h"
|
||||
#include "dxc/HLSL/DxilTypeSystem.h"
|
||||
#include "dxc/DXIL/DxilTypeSystem.h"
|
||||
#include "dxc/HLSL/DxilRootSignature.h"
|
||||
#include "dxc/Support/WinAdapter.h"
|
||||
|
||||
|
|
|
@ -13,11 +13,11 @@
|
|||
#include <cmath>
|
||||
#include <unordered_set>
|
||||
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/HLSL/HLMatrixLowerHelper.h"
|
||||
#include "dxc/HLSL/HLModule.h"
|
||||
#include "dxc/HLSL/DxilUtil.h"
|
||||
#include "dxc/DXIL/DxilUtil.h"
|
||||
#include "dxc/HLSL/HLOperationLower.h"
|
||||
#include "dxc/HLSL/HLOperationLowerExtension.h"
|
||||
#include "dxc/HLSL/HLOperations.h"
|
||||
|
|
|
@ -9,8 +9,8 @@
|
|||
|
||||
#include "dxc/HLSL/HLOperationLowerExtension.h"
|
||||
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/HLSL/HLMatrixLowerHelper.h"
|
||||
#include "dxc/HLSL/HLModule.h"
|
||||
#include "dxc/HLSL/HLOperationLower.h"
|
||||
|
|
|
@ -10,16 +10,17 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "HLSignatureLower.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/HLSL/DxilSignatureElement.h"
|
||||
#include "dxc/HLSL/DxilSigPoint.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilSignatureElement.h"
|
||||
#include "dxc/DXIL/DxilSigPoint.h"
|
||||
#include "dxc/Support/Global.h"
|
||||
#include "dxc/HLSL/DxilTypeSystem.h"
|
||||
#include "dxc/HLSL/DxilSemantic.h"
|
||||
#include "dxc/DXIL/DxilTypeSystem.h"
|
||||
#include "dxc/DXIL/DxilSemantic.h"
|
||||
#include "dxc/HLSL/HLModule.h"
|
||||
#include "dxc/HLSL/HLMatrixLowerHelper.h"
|
||||
#include "dxc/HlslIntrinsicOp.h"
|
||||
#include "dxc/HLSL/DxilUtil.h"
|
||||
#include "dxc/DXIL/DxilUtil.h"
|
||||
#include "dxc/HLSL/DxilPackSignatureElement.h"
|
||||
|
||||
#include "llvm/IR/IRBuilder.h"
|
||||
#include "llvm/IR/DebugInfo.h"
|
||||
|
@ -453,13 +454,13 @@ void HLSignatureLower::AllocateDxilInputOutputs() {
|
|||
if (packing == DXIL::PackingStrategy::Default)
|
||||
packing = pSM->GetDefaultPackingStrategy();
|
||||
|
||||
EntrySig.InputSignature.PackElements(packing);
|
||||
hlsl::PackDxilSignature(EntrySig.InputSignature, packing);
|
||||
if (!EntrySig.InputSignature.IsFullyAllocated()) {
|
||||
HLM.GetCtx().emitError(
|
||||
"Failed to allocate all input signature elements in available space.");
|
||||
}
|
||||
|
||||
EntrySig.OutputSignature.PackElements(packing);
|
||||
hlsl::PackDxilSignature(EntrySig.OutputSignature, packing);
|
||||
if (!EntrySig.OutputSignature.IsFullyAllocated()) {
|
||||
HLM.GetCtx().emitError(
|
||||
"Failed to allocate all output signature elements in available space.");
|
||||
|
@ -467,7 +468,7 @@ void HLSignatureLower::AllocateDxilInputOutputs() {
|
|||
|
||||
if (props.shaderKind == DXIL::ShaderKind::Hull ||
|
||||
props.shaderKind == DXIL::ShaderKind::Domain) {
|
||||
EntrySig.PatchConstantSignature.PackElements(packing);
|
||||
hlsl::PackDxilSignature(EntrySig.PatchConstantSignature, packing);
|
||||
if (!EntrySig.PatchConstantSignature.IsFullyAllocated()) {
|
||||
HLM.GetCtx().emitError("Failed to allocate all patch constant signature "
|
||||
"elements in available space.");
|
||||
|
|
|
@ -12,14 +12,14 @@
|
|||
|
||||
#include "dxc/HLSL/DxilValidation.h"
|
||||
#include "dxc/HLSL/DxilGenerationPass.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/HLSL/DxilShaderModel.h"
|
||||
#include "dxc/HLSL/DxilContainer.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilShaderModel.h"
|
||||
#include "dxc/DXIL/DxilContainer.h"
|
||||
#include "dxc/Support/Global.h"
|
||||
#include "dxc/HLSL/HLOperations.h"
|
||||
#include "dxc/HLSL/HLModule.h"
|
||||
#include "dxc/HLSL/DxilInstructions.h"
|
||||
#include "dxc/DXIL/DxilInstructions.h"
|
||||
|
||||
#include "llvm/ADT/ArrayRef.h"
|
||||
#include "llvm/IR/LLVMContext.h"
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
#include "llvm/IR/Metadata.h"
|
||||
#include "llvm/IR/Module.h"
|
||||
#include "dxc/HLSL/HLModule.h" // HLSL Change
|
||||
#include "dxc/HLSL/DxilModule.h" // HLSL Change
|
||||
#include "dxc/DXIL/DxilModule.h" // HLSL Change
|
||||
#include "llvm/Support/ManagedStatic.h"
|
||||
#include "llvm/Support/RWMutex.h"
|
||||
#include "llvm/Support/StringPool.h"
|
||||
|
|
|
@ -38,9 +38,10 @@ subdirectories =
|
|||
Target
|
||||
Transforms
|
||||
HLSL
|
||||
DXIL
|
||||
DxrFallback
|
||||
|
||||
; HLSL Change: remove LibDriver, LineEditor, add HLSL, add DxrtFallback
|
||||
; HLSL Change: remove LibDriver, LineEditor, add HLSL, add DxrtFallback, add DXIL
|
||||
|
||||
[component_0]
|
||||
type = Group
|
||||
|
|
|
@ -26,9 +26,9 @@
|
|||
#include "llvm/Pass.h"
|
||||
#include <unordered_map>
|
||||
#include "dxc/HLSL/HLModule.h" // HLSL Change
|
||||
#include "dxc/HLSL/DxilModule.h" // HLSL Change
|
||||
#include "dxc/HLSL/DxilOperations.h" // HLSL Change
|
||||
#include "dxc/HLSL/DxilInstructions.h" // HLSL Change
|
||||
#include "dxc/DXIL/DxilModule.h" // HLSL Change
|
||||
#include "dxc/DXIL/DxilOperations.h" // HLSL Change
|
||||
#include "dxc/DXIL/DxilInstructions.h" // HLSL Change
|
||||
using namespace llvm;
|
||||
|
||||
#define DEBUG_TYPE "globaldce"
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
#include "llvm/IR/MDBuilder.h"
|
||||
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
|
||||
#include "llvm/Transforms/Utils/Local.h"
|
||||
#include "dxc/HLSL/DxilOperations.h" // HLSL Change - avoid unpack for dxil types.
|
||||
#include "dxc/DXIL/DxilOperations.h" // HLSL Change - avoid unpack for dxil types.
|
||||
using namespace llvm;
|
||||
|
||||
#define DEBUG_TYPE "instcombine"
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
#include "llvm/Transforms/Utils/Local.h"
|
||||
#include "llvm/Transforms/Utils/SSAUpdater.h"
|
||||
#include <vector>
|
||||
#include "dxc/HLSL/DxilConstants.h" // HLSL Change
|
||||
#include "dxc/DXIL/DxilConstants.h" // HLSL Change
|
||||
using namespace llvm;
|
||||
using namespace PatternMatch;
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@
|
|||
#include "llvm/Transforms/Utils/Local.h"
|
||||
#include "llvm/Transforms/Utils/PromoteMemToReg.h"
|
||||
#include "llvm/Transforms/Utils/SSAUpdater.h"
|
||||
#include "dxc/HLSL/DxilUtil.h" // HLSL Change - not sroa resource type.
|
||||
#include "dxc/DXIL/DxilUtil.h" // HLSL Change - not sroa resource type.
|
||||
|
||||
#if __cplusplus >= 201103L && !defined(NDEBUG)
|
||||
// We only use this for a debug check in C++11
|
||||
|
|
|
@ -48,14 +48,14 @@
|
|||
#include "llvm/Transforms/Utils/SSAUpdater.h"
|
||||
#include "llvm/Transforms/Utils/Local.h"
|
||||
#include "dxc/HLSL/HLOperations.h"
|
||||
#include "dxc/HLSL/DxilConstants.h"
|
||||
#include "dxc/DXIL/DxilConstants.h"
|
||||
#include "dxc/HLSL/HLModule.h"
|
||||
#include "dxc/HLSL/DxilUtil.h"
|
||||
#include "dxc/HLSL/DxilModule.h"
|
||||
#include "dxc/DXIL/DxilUtil.h"
|
||||
#include "dxc/DXIL/DxilModule.h"
|
||||
#include "dxc/HlslIntrinsicOp.h"
|
||||
#include "dxc/HLSL/DxilTypeSystem.h"
|
||||
#include "dxc/DXIL/DxilTypeSystem.h"
|
||||
#include "dxc/HLSL/HLMatrixLowerHelper.h"
|
||||
#include "dxc/HLSL/DxilOperations.h"
|
||||
#include "dxc/DXIL/DxilOperations.h"
|
||||
#include <deque>
|
||||
#include <unordered_map>
|
||||
#include <unordered_set>
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
#include "llvm/Support/MathExtras.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
|
||||
#include "dxc/HLSL/DxilMetadataHelper.h" // HLSL Change - combine dxil metadata.
|
||||
#include "dxc/DXIL/DxilMetadataHelper.h" // HLSL Change - combine dxil metadata.
|
||||
using namespace llvm;
|
||||
|
||||
#define DEBUG_TYPE "local"
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
#include "clang/AST/Type.h" // needs QualType
|
||||
#include "clang/Basic/SourceLocation.h"
|
||||
#include "clang/Basic/Specifiers.h"
|
||||
#include "dxc/HLSL/DxilConstants.h"
|
||||
#include "dxc/DXIL/DxilConstants.h"
|
||||
#include "dxc/Support/WinAdapter.h"
|
||||
#include "llvm/Support/Casting.h"
|
||||
|
||||
|
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче