Move DxilModule into DXIL directory. (#1599)

* Move DxilModule into DXIL directory.
This commit is contained in:
Xiang Li 2018-10-16 00:28:35 -07:00 коммит произвёл GitHub
Родитель 9ffa90c1e8
Коммит 4df08af7c0
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
153 изменённых файлов: 611 добавлений и 503 удалений

Просмотреть файл

@ -11,15 +11,14 @@
#pragma once #pragma once
#include "dxc/HLSL/DxilConstants.h" #include "dxc/DXIL/DxilConstants.h"
#include "dxc/HLSL/DxilShaderModel.h" #include "dxc/DXIL/DxilShaderModel.h"
#include "dxc/HLSL/DxilCompType.h" #include "dxc/DXIL/DxilCompType.h"
#include "dxc/HLSL/DxilInterpolationMode.h" #include "dxc/DXIL/DxilInterpolationMode.h"
#include "dxc/HLSL/DxilSemantic.h" #include "dxc/DXIL/DxilSemantic.h"
#include "dxc/HLSL/DxilSignatureElement.h" #include "dxc/DXIL/DxilSignatureElement.h"
#include "dxc/HLSL/DxilCBuffer.h" #include "dxc/DXIL/DxilCBuffer.h"
#include "dxc/HLSL/DxilResource.h" #include "dxc/DXIL/DxilResource.h"
#include "dxc/HLSL/DxilSampler.h" #include "dxc/DXIL/DxilSampler.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/HLSL/DxilRootSignature.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/HLSL/DxilModule.h"

Просмотреть файл

@ -11,7 +11,7 @@
#pragma once #pragma once
#include "dxc/HLSL/DxilResourceBase.h" #include "dxc/DXIL/DxilResourceBase.h"
namespace hlsl { namespace hlsl {

Просмотреть файл

Просмотреть файл

Просмотреть файл

@ -17,7 +17,7 @@
#include <stdint.h> #include <stdint.h>
#include <iterator> #include <iterator>
#include <functional> #include <functional>
#include "dxc/HLSL/DxilConstants.h" #include "dxc/DXIL/DxilConstants.h"
#include "dxc/Support/WinAdapter.h" #include "dxc/Support/WinAdapter.h"
struct IDxcContainerReflection; struct IDxcContainerReflection;

Просмотреть файл

@ -10,8 +10,8 @@
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#pragma once #pragma once
#include "dxc/HLSL/DxilSignature.h" #include "dxc/DXIL/DxilSignature.h"
#include "dxc/HLSL/DxilFunctionProps.h" #include "dxc/DXIL/DxilFunctionProps.h"
namespace hlsl { namespace hlsl {

Просмотреть файл

@ -11,7 +11,7 @@
#pragma once #pragma once
#include "dxc/HLSL/DxilConstants.h" #include "dxc/DXIL/DxilConstants.h"
namespace llvm { namespace llvm {
class Function; class Function;

Просмотреть файл

@ -11,7 +11,7 @@
#pragma once #pragma once
#include "dxc/HLSL/DxilConstants.h" #include "dxc/DXIL/DxilConstants.h"
#include <memory> #include <memory>
#include <string> #include <string>
#include <vector> #include <vector>

Просмотреть файл

@ -11,14 +11,14 @@
#pragma once #pragma once
#include "dxc/HLSL/DxilMetadataHelper.h" #include "dxc/DXIL/DxilMetadataHelper.h"
#include "dxc/HLSL/DxilCBuffer.h" #include "dxc/DXIL/DxilCBuffer.h"
#include "dxc/HLSL/DxilResource.h" #include "dxc/DXIL/DxilResource.h"
#include "dxc/HLSL/DxilSampler.h" #include "dxc/DXIL/DxilSampler.h"
#include "dxc/HLSL/DxilShaderFlags.h" #include "dxc/DXIL/DxilShaderFlags.h"
#include "dxc/HLSL/DxilSignature.h" #include "dxc/DXIL/DxilSignature.h"
#include "dxc/HLSL/DxilConstants.h" #include "dxc/DXIL/DxilConstants.h"
#include "dxc/HLSL/DxilTypeSystem.h" #include "dxc/DXIL/DxilTypeSystem.h"
#include "dxc/HLSL/ComputeViewIdState.h" #include "dxc/HLSL/ComputeViewIdState.h"
#include <memory> #include <memory>

Просмотреть файл

Просмотреть файл

@ -12,8 +12,8 @@
#pragma once #pragma once
#include "DxilConstants.h" #include "DxilConstants.h"
#include "dxc/HLSL/DxilResourceBase.h" #include "dxc/DXIL/DxilResourceBase.h"
#include "dxc/HLSL/DxilCompType.h" #include "dxc/DXIL/DxilCompType.h"
namespace hlsl { namespace hlsl {

Просмотреть файл

@ -11,7 +11,7 @@
#pragma once #pragma once
#include "dxc/HLSL/DxilResourceBase.h" #include "dxc/DXIL/DxilResourceBase.h"
namespace hlsl { namespace hlsl {

Просмотреть файл

Просмотреть файл

Просмотреть файл

@ -11,7 +11,7 @@
#pragma once #pragma once
#include "dxc/HLSL/DxilConstants.h" #include "dxc/DXIL/DxilConstants.h"
#include <string> #include <string>

Просмотреть файл

Просмотреть файл

Просмотреть файл

@ -11,7 +11,7 @@
#pragma once #pragma once
#include "dxc/HLSL/DxilSignatureElement.h" #include "dxc/DXIL/DxilSignatureElement.h"
#include <memory> #include <memory>
#include <string> #include <string>
#include <vector> #include <vector>
@ -40,9 +40,6 @@ public:
const DxilSignatureElement &GetElement(unsigned idx) const; const DxilSignatureElement &GetElement(unsigned idx) const;
const std::vector<std::unique_ptr<DxilSignatureElement> > &GetElements() 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 // Returns true if all signature elements that should be allocated are allocated
bool IsFullyAllocated() const; bool IsFullyAllocated() const;
@ -51,6 +48,10 @@ public:
bool UseMinPrecision() const { return m_UseMinPrecision; } bool UseMinPrecision() const { return m_UseMinPrecision; }
DXIL::SigPointKind GetSigPointKind() const { return m_sigPointKind; }
static bool ShouldBeAllocated(DXIL::SemanticInterpretationKind);
private: private:
DXIL::SigPointKind m_sigPointKind; DXIL::SigPointKind m_sigPointKind;
std::vector<std::unique_ptr<DxilSignatureElement> > m_Elements; std::vector<std::unique_ptr<DxilSignatureElement> > m_Elements;

Просмотреть файл

@ -12,10 +12,9 @@
#pragma once #pragma once
#include "llvm/ADT/StringRef.h" #include "llvm/ADT/StringRef.h"
#include "dxc/HLSL/DxilSemantic.h" #include "dxc/DXIL/DxilSemantic.h"
#include "dxc/HLSL/DxilInterpolationMode.h" #include "dxc/DXIL/DxilInterpolationMode.h"
#include "dxc/HLSL/DxilCompType.h" #include "dxc/DXIL/DxilCompType.h"
#include "dxc/HLSL/DxilSignatureAllocator.h"
#include <string> #include <string>
#include <vector> #include <vector>
#include <limits.h> #include <limits.h>
@ -108,44 +107,4 @@ protected:
unsigned m_DynIdxCompMask; 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 } // namespace hlsl

Просмотреть файл

@ -12,8 +12,8 @@
#pragma once #pragma once
#include "llvm/ADT/StringRef.h" #include "llvm/ADT/StringRef.h"
#include "llvm/ADT/MapVector.h" #include "llvm/ADT/MapVector.h"
#include "dxc/HLSL/DxilCompType.h" #include "dxc/DXIL/DxilCompType.h"
#include "dxc/HLSL/DxilInterpolationMode.h" #include "dxc/DXIL/DxilInterpolationMode.h"
#include <memory> #include <memory>
#include <string> #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 #pragma once
#include "DxilConstants.h" #include "dxc/DXIL/DxilConstants.h"
namespace hlsl { namespace hlsl {
namespace RDAT { namespace RDAT {

Просмотреть файл

@ -11,7 +11,7 @@
#pragma once #pragma once
#include "dxc/HLSL/DxilConstants.h" #include "dxc/DXIL/DxilConstants.h"
#include <vector> #include <vector>
namespace hlsl { namespace hlsl {

Просмотреть файл

@ -13,7 +13,7 @@
#include <memory> #include <memory>
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"
#include "dxc/HLSL/DxilConstants.h" #include "dxc/DXIL/DxilConstants.h"
#include "dxc/Support/WinAdapter.h" #include "dxc/Support/WinAdapter.h"
namespace llvm { namespace llvm {

Просмотреть файл

@ -12,14 +12,14 @@
#pragma once #pragma once
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"
#include "dxc/HLSL/DxilMetadataHelper.h" #include "dxc/DXIL/DxilMetadataHelper.h"
#include "dxc/HLSL/DxilConstants.h" #include "dxc/DXIL/DxilConstants.h"
#include "dxc/HLSL/HLResource.h" #include "dxc/HLSL/HLResource.h"
#include "dxc/HLSL/HLOperations.h" #include "dxc/HLSL/HLOperations.h"
#include "dxc/HLSL/DxilSampler.h" #include "dxc/DXIL/DxilSampler.h"
#include "dxc/HLSL/DxilShaderModel.h" #include "dxc/DXIL/DxilShaderModel.h"
#include "dxc/HLSL/DxilSignature.h" #include "dxc/DXIL/DxilSignature.h"
#include "dxc/HLSL/DxilFunctionProps.h" #include "dxc/DXIL/DxilFunctionProps.h"
#include <memory> #include <memory>
#include <string> #include <string>
#include <vector> #include <vector>

Просмотреть файл

@ -11,7 +11,7 @@
#pragma once #pragma once
#include "dxc/HLSL/DxilResource.h" #include "dxc/DXIL/DxilResource.h"
namespace hlsl { namespace hlsl {

Просмотреть файл

@ -10,7 +10,7 @@
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#pragma once #pragma once
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include <vector> #include <vector>
#include <string> #include <string>

Просмотреть файл

@ -35,7 +35,7 @@
#include <algorithm> #include <algorithm>
#include <functional> #include <functional>
#include "dxc/HLSL/DXIL.h" #include "dxc/DXIL/DXIL.h"
using namespace llvm; using namespace llvm;
using namespace hlsl; using namespace hlsl;

Просмотреть файл

@ -21,8 +21,8 @@
#include "llvm/IR/Module.h" #include "llvm/IR/Module.h"
#include "llvm/IR/IRBuilder.h" #include "llvm/IR/IRBuilder.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "llvm/Analysis/DxilConstantFolding.h" #include "llvm/Analysis/DxilConstantFolding.h"
#include "llvm/Analysis/DxilSimplify.h" #include "llvm/Analysis/DxilSimplify.h"

Просмотреть файл

@ -34,7 +34,7 @@
#include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/raw_ostream.h" #include "llvm/Support/raw_ostream.h"
#include <deque> #include <deque>
#include "dxc/HLSL/DxilOperations.h" // HLSL Change #include "dxc/DXIL/DxilOperations.h" // HLSL Change
using namespace llvm; using namespace llvm;
namespace { namespace {

Просмотреть файл

@ -22,4 +22,5 @@ add_subdirectory(ProfileData)
# add_subdirectory(LibDriver) # HLSL Change # add_subdirectory(LibDriver) # HLSL Change
add_subdirectory(DxcSupport) # HLSL Change add_subdirectory(DxcSupport) # HLSL Change
add_subdirectory(HLSL) # HLSL Change add_subdirectory(HLSL) # HLSL Change
add_subdirectory(DXIL) # HLSL Change
add_subdirectory(DxrFallback) # HLSL Change add_subdirectory(DxrFallback) # HLSL Change

26
lib/DXIL/CMakeLists.txt Normal file
Просмотреть файл

@ -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" #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 "dxc/Support/Global.h"
#include "llvm/IR/LLVMContext.h" #include "llvm/IR/LLVMContext.h"

Просмотреть файл

@ -9,7 +9,7 @@
// // // //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include "dxc/HLSL/DxilContainer.h" #include "dxc/DXIL/DxilContainer.h"
#include <algorithm> #include <algorithm>
namespace hlsl { namespace hlsl {

Просмотреть файл

@ -7,7 +7,7 @@
// // // //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include "dxc/HLSL/DxilInterpolationMode.h" #include "dxc/DXIL/DxilInterpolationMode.h"
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"

Просмотреть файл

@ -8,18 +8,18 @@
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"
#include "dxc/HLSL/DxilMetadataHelper.h" #include "dxc/DXIL/DxilMetadataHelper.h"
#include "dxc/HLSL/DxilShaderModel.h" #include "dxc/DXIL/DxilShaderModel.h"
#include "dxc/HLSL/DxilCBuffer.h" #include "dxc/DXIL/DxilCBuffer.h"
#include "dxc/HLSL/DxilResource.h" #include "dxc/DXIL/DxilResource.h"
#include "dxc/HLSL/DxilSampler.h" #include "dxc/DXIL/DxilSampler.h"
#include "dxc/HLSL/DxilSignatureElement.h" #include "dxc/DXIL/DxilSignatureElement.h"
#include "dxc/HLSL/DxilSignature.h" #include "dxc/DXIL/DxilSignature.h"
#include "dxc/HLSL/DxilTypeSystem.h" #include "dxc/DXIL/DxilTypeSystem.h"
#include "dxc/HLSL/DxilRootSignature.h" #include "dxc/HLSL/DxilRootSignature.h"
#include "dxc/HLSL/ComputeViewIdState.h" #include "dxc/HLSL/ComputeViewIdState.h"
#include "dxc/HLSL/DxilFunctionProps.h" #include "dxc/DXIL/DxilFunctionProps.h"
#include "dxc/HLSL/DxilShaderFlags.h" #include "dxc/DXIL/DxilShaderFlags.h"
#include "llvm/IR/Constants.h" #include "llvm/IR/Constants.h"
#include "llvm/IR/Function.h" #include "llvm/IR/Function.h"

Просмотреть файл

@ -8,15 +8,15 @@
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/HLSL/DxilShaderModel.h" #include "dxc/DXIL/DxilShaderModel.h"
#include "dxc/HLSL/DxilSignatureElement.h" #include "dxc/DXIL/DxilSignatureElement.h"
#include "dxc/HLSL/DxilContainer.h" #include "dxc/DXIL/DxilContainer.h"
#include "dxc/HLSL/DxilRootSignature.h" #include "dxc/HLSL/DxilRootSignature.h"
#include "dxc/HLSL/DxilFunctionProps.h" #include "dxc/DXIL/DxilFunctionProps.h"
#include "dxc/Support/WinAdapter.h" #include "dxc/Support/WinAdapter.h"
#include "DxilEntryProps.h" #include "dxc/DXIL/DxilEntryProps.h"
#include "llvm/IR/Constants.h" #include "llvm/IR/Constants.h"
#include "llvm/IR/Function.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/Support/Global.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/ArrayRef.h"
#include "llvm/IR/LLVMContext.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/Support/Global.h"
#include "dxc/HLSL/DxilResourceBase.h" #include "dxc/DXIL/DxilResourceBase.h"
#include "llvm/IR/Constant.h" #include "llvm/IR/Constant.h"
#include "llvm/IR/DerivedTypes.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" #include "dxc/Support/Global.h"

Просмотреть файл

@ -7,7 +7,7 @@
// // // //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include "dxc/HLSL/DxilSampler.h" #include "dxc/DXIL/DxilSampler.h"
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"

Просмотреть файл

@ -7,10 +7,10 @@
// // // //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include "dxc/HLSL/DxilSigPoint.h" #include "dxc/DXIL/DxilSigPoint.h"
#include "dxc/HLSL/DxilSemantic.h" #include "dxc/DXIL/DxilSemantic.h"
#include "dxc/HLSL/DxilSignature.h" #include "dxc/DXIL/DxilSignature.h"
#include "dxc/HLSL/DxilShaderModel.h" #include "dxc/DXIL/DxilShaderModel.h"
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"
#include <string> #include <string>

Просмотреть файл

@ -7,11 +7,11 @@
// // // //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include "dxc/HLSL/DxilContainer.h" #include "dxc/DXIL/DxilContainer.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/HLSL/DxilShaderFlags.h" #include "dxc/DXIL/DxilShaderFlags.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/HLSL/DxilResource.h" #include "dxc/DXIL/DxilResource.h"
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"
#include "llvm/IR/LLVMContext.h" #include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Instructions.h" #include "llvm/IR/Instructions.h"

Просмотреть файл

@ -9,8 +9,8 @@
#include <limits.h> #include <limits.h>
#include "dxc/HLSL/DxilShaderModel.h" #include "dxc/DXIL/DxilShaderModel.h"
#include "dxc/HLSL/DxilSemantic.h" #include "dxc/DXIL/DxilSemantic.h"
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"

Просмотреть файл

@ -8,9 +8,8 @@
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"
#include "dxc/HLSL/DxilSignature.h" #include "dxc/DXIL/DxilSignature.h"
#include "dxc/HLSL/DxilSignatureAllocator.h" #include "dxc/DXIL/DxilSigPoint.h"
#include "dxc/HLSL/DxilSigPoint.h"
#include "llvm/ADT/STLExtras.h" #include "llvm/ADT/STLExtras.h"
using std::vector; using std::vector;
@ -87,11 +86,8 @@ const std::vector<std::unique_ptr<DxilSignatureElement> > &DxilSignature::GetEle
return m_Elements; return m_Elements;
} }
namespace { bool DxilSignature::ShouldBeAllocated(DXIL::SemanticInterpretationKind Kind) {
switch (Kind) {
static bool ShouldBeAllocated(const DxilSignatureElement *SE) {
DXIL::SemanticInterpretationKind I = SE->GetInterpretation();
switch (I) {
case DXIL::SemanticInterpretationKind::NA: case DXIL::SemanticInterpretationKind::NA:
case DXIL::SemanticInterpretationKind::NotInSig: case DXIL::SemanticInterpretationKind::NotInSig:
case DXIL::SemanticInterpretationKind::NotPacked: case DXIL::SemanticInterpretationKind::NotPacked:
@ -103,12 +99,9 @@ static bool ShouldBeAllocated(const DxilSignatureElement *SE) {
return true; return true;
} }
} // anonymous namespace
bool DxilSignature::IsFullyAllocated() const { bool DxilSignature::IsFullyAllocated() const {
for (auto &SE : m_Elements) { for (auto &SE : m_Elements) {
if (!ShouldBeAllocated(SE.get())) if (!ShouldBeAllocated(SE.get()->GetInterpretation()))
continue; continue;
if (!SE->IsAllocated()) if (!SE->IsAllocated())
return false; return false;
@ -125,107 +118,6 @@ unsigned DxilSignature::NumVectorsUsed(unsigned streamIndex) const {
return NumVectors; 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. // EntrySingnature methods.
@ -236,9 +128,4 @@ DxilEntrySignature::DxilEntrySignature(const DxilEntrySignature &src)
} // namespace hlsl } // namespace hlsl
#include <algorithm> #include "dxc/DXIL/DxilSigPoint.inl"
#include "dxc/HLSL/DxilSignatureAllocator.inl"
#include "dxc/HLSL/DxilSigPoint.inl"
#include "dxc/HLSL/DxilPipelineStateValidation.h"
#include <functional>
#include "dxc/HLSL/ViewIDPipelineValidation.inl"

Просмотреть файл

@ -10,11 +10,11 @@
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"
#include "dxc/HLSL/DxilSignatureElement.h" #include "dxc/DXIL/DxilSignatureElement.h"
#include "dxc/HLSL/DxilSemantic.h" #include "dxc/DXIL/DxilSemantic.h"
#include "dxc/HLSL/DxilSigPoint.h" #include "dxc/DXIL/DxilSigPoint.h"
#include "dxc/HLSL/DxilShaderModel.h" #include "dxc/DXIL/DxilShaderModel.h"
#include "dxc/HLSL/DxilContainer.h" #include "dxc/DXIL/DxilContainer.h"
#include <memory> #include <memory>
using std::string; using std::string;

Просмотреть файл

@ -7,8 +7,8 @@
// // // //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include "dxc/HLSL/DxilTypeSystem.h" #include "dxc/DXIL/DxilTypeSystem.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"
#include "dxc/Support/WinFunctions.h" #include "dxc/Support/WinFunctions.h"

Просмотреть файл

@ -11,9 +11,9 @@
#include "llvm/IR/GlobalVariable.h" #include "llvm/IR/GlobalVariable.h"
#include "dxc/HLSL/DxilTypeSystem.h" #include "dxc/DXIL/DxilTypeSystem.h"
#include "dxc/HLSL/DxilUtil.h" #include "dxc/DXIL/DxilUtil.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "llvm/Bitcode/ReaderWriter.h" #include "llvm/Bitcode/ReaderWriter.h"
#include "llvm/IR/DiagnosticInfo.h" #include "llvm/IR/DiagnosticInfo.h"
#include "llvm/IR/DiagnosticPrinter.h" #include "llvm/IR/DiagnosticPrinter.h"

16
lib/DXIL/LLVMBuild.txt Normal file
Просмотреть файл

@ -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/HLSLOptions.h"
#include "dxc/Support/Unicode.h" #include "dxc/Support/Unicode.h"
#include "dxc/Support/dxcapi.use.h" #include "dxc/Support/dxcapi.use.h"
#include "dxc/HLSL/DxilShaderModel.h" #include "dxc/DXIL/DxilShaderModel.h"
using namespace llvm::opt; using namespace llvm::opt;
using namespace dxc; using namespace dxc;

Просмотреть файл

@ -8,11 +8,11 @@
#include "dxc/dxcdxrfallbackcompiler.h" #include "dxc/dxcdxrfallbackcompiler.h"
#include "dxc/Support/dxcapi.use.h" #include "dxc/Support/dxcapi.use.h"
#include "dxc/Support/dxcapi.impl.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/DxilLinker.h"
#include "dxc/HLSL/DxilFunctionProps.h" #include "dxc/DXIL/DxilFunctionProps.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/HLSL/DxilInstructions.h" #include "dxc/DXIL/DxilInstructions.h"
#include "llvm/Analysis/CallGraph.h" #include "llvm/Analysis/CallGraph.h"
#include "llvm/IR/InstIterator.h" #include "llvm/IR/InstIterator.h"

Просмотреть файл

@ -5,10 +5,7 @@ add_llvm_library(LLVMHLSL
ComputeViewIdStateBuilder.cpp ComputeViewIdStateBuilder.cpp
ControlDependence.cpp ControlDependence.cpp
DxilAddPixelHitInstrumentation.cpp DxilAddPixelHitInstrumentation.cpp
DxilCBuffer.cpp
DxilCompType.cpp
DxilCondenseResources.cpp DxilCondenseResources.cpp
DxilContainer.cpp
DxilContainerAssembler.cpp DxilContainerAssembler.cpp
DxilContainerReflection.cpp DxilContainerReflection.cpp
DxilConvergent.cpp DxilConvergent.cpp
@ -17,32 +14,20 @@ add_llvm_library(LLVMHLSL
DxilExpandTrigIntrinsics.cpp DxilExpandTrigIntrinsics.cpp
DxilForceEarlyZ.cpp DxilForceEarlyZ.cpp
DxilGenerationPass.cpp DxilGenerationPass.cpp
DxilInterpolationMode.cpp
DxilLegalizeSampleOffsetPass.cpp DxilLegalizeSampleOffsetPass.cpp
DxilLinker.cpp DxilLinker.cpp
DxilMetadataHelper.cpp
DxilModule.cpp
DxilOperations.cpp
DxilOutputColorBecomesConstant.cpp DxilOutputColorBecomesConstant.cpp
DxilPreparePasses.cpp DxilPreparePasses.cpp
DxilRemoveDiscards.cpp DxilRemoveDiscards.cpp
DxilReduceMSAAToSingleSample.cpp DxilReduceMSAAToSingleSample.cpp
DxilPackSignatureElement.cpp
DxilPatchShaderRecordBindings.cpp DxilPatchShaderRecordBindings.cpp
DxilPreserveAllOutputs.cpp DxilPreserveAllOutputs.cpp
DxilResource.cpp
DxilResourceBase.cpp
DxilRootSignature.cpp DxilRootSignature.cpp
DxilSampler.cpp
DxilSemantic.cpp
DxilShaderFlags.cpp
DxilShaderAccessTracking.cpp DxilShaderAccessTracking.cpp
DxilShaderModel.cpp DxilSignatureValidation.cpp
DxilSignature.cpp
DxilSignatureElement.cpp
DxilTargetLowering.cpp DxilTargetLowering.cpp
DxilTargetTransformInfo.cpp DxilTargetTransformInfo.cpp
DxilTypeSystem.cpp
DxilUtil.cpp
DxilExportMap.cpp DxilExportMap.cpp
DxilValidation.cpp DxilValidation.cpp
DxcOptimizer.cpp DxcOptimizer.cpp

Просмотреть файл

@ -9,9 +9,9 @@
#include "dxc/HLSL/ComputeViewIdState.h" #include "dxc/HLSL/ComputeViewIdState.h"
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/HLSL/DxilInstructions.h" #include "dxc/DXIL/DxilInstructions.h"
#include "llvm/IR/LLVMContext.h" #include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Module.h" #include "llvm/IR/Module.h"

Просмотреть файл

@ -9,9 +9,9 @@
#include "dxc/HLSL/ComputeViewIdState.h" #include "dxc/HLSL/ComputeViewIdState.h"
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/HLSL/DxilInstructions.h" #include "dxc/DXIL/DxilInstructions.h"
#include "llvm/IR/LLVMContext.h" #include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Module.h" #include "llvm/IR/Module.h"

Просмотреть файл

@ -13,15 +13,15 @@
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"
#include "dxc/Support/Unicode.h" #include "dxc/Support/Unicode.h"
#include "dxc/Support/microcom.h" #include "dxc/Support/microcom.h"
#include "dxc/HLSL/DxilContainer.h" #include "dxc/DXIL/DxilContainer.h"
#include "dxc/Support/FileIOHelper.h" #include "dxc/Support/FileIOHelper.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/HLSL/DxilPIXPasses.h" #include "dxc/HLSL/DxilPIXPasses.h"
#include "dxc/HLSL/ReducibilityAnalysis.h" #include "dxc/HLSL/ReducibilityAnalysis.h"
#include "dxc/HLSL/HLMatrixLowerPass.h" #include "dxc/HLSL/HLMatrixLowerPass.h"
#include "dxc/HLSL/DxilGenerationPass.h" #include "dxc/HLSL/DxilGenerationPass.h"
#include "dxc/HLSL/ComputeViewIdState.h" #include "dxc/HLSL/ComputeViewIdState.h"
#include "dxc/HLSL/DxilUtil.h" #include "dxc/DXIL/DxilUtil.h"
#include "dxc/Support/dxcapi.impl.h" #include "dxc/Support/dxcapi.impl.h"
#include "llvm/Pass.h" #include "llvm/Pass.h"

Просмотреть файл

@ -11,11 +11,11 @@
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include "dxc/HLSL/DxilGenerationPass.h" #include "dxc/HLSL/DxilGenerationPass.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/HLSL/DxilInstructions.h" #include "dxc/DXIL/DxilInstructions.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/HLSL/DxilPIXPasses.h" #include "dxc/HLSL/DxilPIXPasses.h"
#include "dxc/HLSL/DxilUtil.h" #include "dxc/DXIL/DxilUtil.h"
#include "llvm/IR/PassManager.h" #include "llvm/IR/PassManager.h"
#include "llvm/Transforms/Utils/Local.h" #include "llvm/Transforms/Utils/Local.h"

Просмотреть файл

@ -10,15 +10,15 @@
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include "dxc/HLSL/DxilGenerationPass.h" #include "dxc/HLSL/DxilGenerationPass.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/HLSL/DxilSignatureElement.h" #include "dxc/DXIL/DxilSignatureElement.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"
#include "dxc/HLSL/DxilTypeSystem.h" #include "dxc/DXIL/DxilTypeSystem.h"
#include "dxc/HLSL/DxilInstructions.h" #include "dxc/DXIL/DxilInstructions.h"
#include "dxc/HLSL/DxilSpanAllocator.h" #include "dxc/HLSL/DxilSpanAllocator.h"
#include "dxc/HLSL/HLMatrixLowerHelper.h" #include "dxc/HLSL/HLMatrixLowerHelper.h"
#include "dxc/HLSL/DxilUtil.h" #include "dxc/DXIL/DxilUtil.h"
#include "dxc/HLSL/HLModule.h" #include "dxc/HLSL/HLModule.h"
#include "llvm/IR/Instructions.h" #include "llvm/IR/Instructions.h"

Просмотреть файл

@ -15,13 +15,13 @@
#include "llvm/IR/DebugInfo.h" #include "llvm/IR/DebugInfo.h"
#include "llvm/Bitcode/ReaderWriter.h" #include "llvm/Bitcode/ReaderWriter.h"
#include "llvm/Support/MD5.h" #include "llvm/Support/MD5.h"
#include "dxc/HLSL/DxilContainer.h" #include "dxc/DXIL/DxilContainer.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/HLSL/DxilShaderModel.h" #include "dxc/DXIL/DxilShaderModel.h"
#include "dxc/HLSL/DxilRootSignature.h" #include "dxc/HLSL/DxilRootSignature.h"
#include "dxc/HLSL/DxilUtil.h" #include "dxc/DXIL/DxilUtil.h"
#include "dxc/HLSL/DxilFunctionProps.h" #include "dxc/DXIL/DxilFunctionProps.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"
#include "dxc/Support/Unicode.h" #include "dxc/Support/Unicode.h"
#include "dxc/Support/WinIncludes.h" #include "dxc/Support/WinIncludes.h"

Просмотреть файл

@ -12,18 +12,18 @@
#include "llvm/Bitcode/ReaderWriter.h" #include "llvm/Bitcode/ReaderWriter.h"
#include "llvm/IR/LLVMContext.h" #include "llvm/IR/LLVMContext.h"
#include "llvm/IR/InstIterator.h" #include "llvm/IR/InstIterator.h"
#include "dxc/HLSL/DxilContainer.h" #include "dxc/DXIL/DxilContainer.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/HLSL/DxilShaderModel.h" #include "dxc/DXIL/DxilShaderModel.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/HLSL/DxilInstructions.h" #include "dxc/DXIL/DxilInstructions.h"
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"
#include "dxc/Support/Unicode.h" #include "dxc/Support/Unicode.h"
#include "dxc/Support/WinIncludes.h" #include "dxc/Support/WinIncludes.h"
#include "dxc/Support/microcom.h" #include "dxc/Support/microcom.h"
#include "dxc/Support/FileIOHelper.h" #include "dxc/Support/FileIOHelper.h"
#include "dxc/Support/dxcapi.impl.h" #include "dxc/Support/dxcapi.impl.h"
#include "dxc/HLSL/DxilFunctionProps.h" #include "dxc/DXIL/DxilFunctionProps.h"
#include <unordered_set> #include <unordered_set>
#include "llvm/ADT/SetVector.h" #include "llvm/ADT/SetVector.h"

Просмотреть файл

@ -18,7 +18,7 @@
#include "llvm/Support/GenericDomTree.h" #include "llvm/Support/GenericDomTree.h"
#include "llvm/Support/raw_os_ostream.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/DxilGenerationPass.h"
#include "dxc/HLSL/HLOperations.h" #include "dxc/HLSL/HLOperations.h"
#include "dxc/HLSL/HLModule.h" #include "dxc/HLSL/HLModule.h"

Просмотреть файл

@ -10,10 +10,10 @@
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include "dxc/HLSL/DxilGenerationPass.h" #include "dxc/HLSL/DxilGenerationPass.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/HLSL/DxilPIXPasses.h" #include "dxc/HLSL/DxilPIXPasses.h"
#include "dxc/HLSL/DxilUtil.h" #include "dxc/DXIL/DxilUtil.h"
#include "llvm/IR/Module.h" #include "llvm/IR/Module.h"
#include "llvm/IR/Constants.h" #include "llvm/IR/Constants.h"

Просмотреть файл

@ -10,12 +10,12 @@
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include "dxc/HLSL/DxilGenerationPass.h" #include "dxc/HLSL/DxilGenerationPass.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/HLSL/DxilSignatureElement.h" #include "dxc/DXIL/DxilSignatureElement.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/HLSL/DxilUtil.h" #include "dxc/DXIL/DxilUtil.h"
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"
#include "dxc/HLSL/DxilInstructions.h" #include "dxc/DXIL/DxilInstructions.h"
#include "llvm/IR/Module.h" #include "llvm/IR/Module.h"
#include "llvm/Pass.h" #include "llvm/Pass.h"

Просмотреть файл

@ -41,11 +41,11 @@
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include "dxc/HLSL/DxilGenerationPass.h" #include "dxc/HLSL/DxilGenerationPass.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/HLSL/DxilSignatureElement.h" #include "dxc/DXIL/DxilSignatureElement.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"
#include "dxc/HLSL/DxilInstructions.h" #include "dxc/DXIL/DxilInstructions.h"
#include "llvm/IR/Module.h" #include "llvm/IR/Module.h"
#include "llvm/Pass.h" #include "llvm/Pass.h"

Просмотреть файл

@ -10,9 +10,9 @@
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"
#include "dxc/HLSL/DxilUtil.h" #include "dxc/DXIL/DxilUtil.h"
#include "dxc/HLSL/DxilExportMap.h" #include "dxc/HLSL/DxilExportMap.h"
#include "dxc/HLSL/DxilTypeSystem.h" #include "dxc/DXIL/DxilTypeSystem.h"
#include "llvm/Support/raw_ostream.h" #include "llvm/Support/raw_ostream.h"
#include "llvm/ADT/StringRef.h" #include "llvm/ADT/StringRef.h"
#include "llvm/ADT/StringSet.h" #include "llvm/ADT/StringSet.h"

Просмотреть файл

@ -10,7 +10,7 @@
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include "dxc/HLSL/DxilGenerationPass.h" #include "dxc/HLSL/DxilGenerationPass.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/HLSL/DxilPIXPasses.h" #include "dxc/HLSL/DxilPIXPasses.h"
#include "llvm/IR/Module.h" #include "llvm/IR/Module.h"

Просмотреть файл

@ -10,20 +10,20 @@
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include "dxc/HLSL/DxilGenerationPass.h" #include "dxc/HLSL/DxilGenerationPass.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/HLSL/HLModule.h" #include "dxc/HLSL/HLModule.h"
#include "dxc/HLSL/HLOperations.h" #include "dxc/HLSL/HLOperations.h"
#include "dxc/HLSL/DxilInstructions.h" #include "dxc/DXIL/DxilInstructions.h"
#include "dxc/HLSL/HLMatrixLowerHelper.h" #include "dxc/HLSL/HLMatrixLowerHelper.h"
#include "dxc/HlslIntrinsicOp.h" #include "dxc/HlslIntrinsicOp.h"
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"
#include "dxc/HLSL/DxilTypeSystem.h" #include "dxc/DXIL/DxilTypeSystem.h"
#include "dxc/HLSL/HLOperationLower.h" #include "dxc/HLSL/HLOperationLower.h"
#include "HLSignatureLower.h" #include "HLSignatureLower.h"
#include "dxc/HLSL/DxilUtil.h" #include "dxc/DXIL/DxilUtil.h"
#include "dxc/Support/exception.h" #include "dxc/Support/exception.h"
#include "DxilEntryProps.h" #include "dxc/DXIL/DxilEntryProps.h"
#include "llvm/IR/GetElementPtrTypeIterator.h" #include "llvm/IR/GetElementPtrTypeIterator.h"
#include "llvm/IR/IRBuilder.h" #include "llvm/IR/IRBuilder.h"

Просмотреть файл

@ -10,8 +10,8 @@
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include "dxc/HLSL/DxilGenerationPass.h" #include "dxc/HLSL/DxilGenerationPass.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "llvm/Analysis/InstructionSimplify.h" #include "llvm/Analysis/InstructionSimplify.h"
#include "llvm/Analysis/LoopInfo.h" #include "llvm/Analysis/LoopInfo.h"

Просмотреть файл

@ -8,14 +8,14 @@
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include "dxc/HLSL/DxilLinker.h" #include "dxc/HLSL/DxilLinker.h"
#include "dxc/HLSL/DxilCBuffer.h" #include "dxc/DXIL/DxilCBuffer.h"
#include "dxc/HLSL/DxilFunctionProps.h" #include "dxc/DXIL/DxilFunctionProps.h"
#include "DxilEntryProps.h" #include "dxc/DXIL/DxilEntryProps.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/HLSL/DxilResource.h" #include "dxc/DXIL/DxilResource.h"
#include "dxc/HLSL/DxilSampler.h" #include "dxc/DXIL/DxilSampler.h"
#include "dxc/HLSL/DxilUtil.h" #include "dxc/DXIL/DxilUtil.h"
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"
#include "llvm/ADT/StringSet.h" #include "llvm/ADT/StringSet.h"
#include "llvm/ADT/DenseSet.h" #include "llvm/ADT/DenseSet.h"
@ -29,7 +29,7 @@
#include <memory> #include <memory>
#include <vector> #include <vector>
#include "dxc/HLSL/DxilContainer.h" #include "dxc/DXIL/DxilContainer.h"
#include "llvm/IR/DiagnosticPrinter.h" #include "llvm/IR/DiagnosticPrinter.h"
#include "llvm/IR/LLVMContext.h" #include "llvm/IR/LLVMContext.h"
#include "llvm/IR/DebugInfo.h" #include "llvm/IR/DebugInfo.h"

Просмотреть файл

@ -11,8 +11,8 @@
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include "dxc/HLSL/DxilGenerationPass.h" #include "dxc/HLSL/DxilGenerationPass.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/HLSL/DxilPIXPasses.h" #include "dxc/HLSL/DxilPIXPasses.h"
#include "dxc/HLSL/DxilSpanAllocator.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/DxilGenerationPass.h"
#include "dxc/HLSL/DxilFallbackLayerPass.h" #include "dxc/HLSL/DxilFallbackLayerPass.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/HLSL/DxilSignatureElement.h" #include "dxc/DXIL/DxilSignatureElement.h"
#include "dxc/HLSL/DxilFunctionProps.h" #include "dxc/DXIL/DxilFunctionProps.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"
#include "dxc/Support/Unicode.h" #include "dxc/Support/Unicode.h"
#include "dxc/HLSL/DxilTypeSystem.h" #include "dxc/DXIL/DxilTypeSystem.h"
#include "dxc/HLSL/DxilConstants.h" #include "dxc/DXIL/DxilConstants.h"
#include "dxc/HLSL/DxilInstructions.h" #include "dxc/DXIL/DxilInstructions.h"
#include "dxc/HLSL/DxilSpanAllocator.h" #include "dxc/HLSL/DxilSpanAllocator.h"
#include "dxc/HLSL/DxilRootSignature.h" #include "dxc/HLSL/DxilRootSignature.h"
#include "dxc/HLSL/DxilUtil.h" #include "dxc/DXIL/DxilUtil.h"
#include "llvm/Transforms/Utils/Cloning.h" #include "llvm/Transforms/Utils/Cloning.h"
#include "llvm/IR/Instructions.h" #include "llvm/IR/Instructions.h"

Просмотреть файл

@ -10,13 +10,13 @@
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include "dxc/HLSL/DxilGenerationPass.h" #include "dxc/HLSL/DxilGenerationPass.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/HLSL/HLOperations.h" #include "dxc/HLSL/HLOperations.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"
#include "dxc/HLSL/DxilTypeSystem.h" #include "dxc/DXIL/DxilTypeSystem.h"
#include "dxc/HLSL/DxilUtil.h" #include "dxc/DXIL/DxilUtil.h"
#include "dxc/HLSL/DxilFunctionProps.h" #include "dxc/DXIL/DxilFunctionProps.h"
#include "llvm/IR/GetElementPtrTypeIterator.h" #include "llvm/IR/GetElementPtrTypeIterator.h"
#include "llvm/IR/IRBuilder.h" #include "llvm/IR/IRBuilder.h"
#include "llvm/IR/Instructions.h" #include "llvm/IR/Instructions.h"

Просмотреть файл

@ -10,11 +10,11 @@
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include "dxc/HLSL/DxilGenerationPass.h" #include "dxc/HLSL/DxilGenerationPass.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/HLSL/DxilSignatureElement.h" #include "dxc/DXIL/DxilSignatureElement.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"
#include "dxc/HLSL/DxilInstructions.h" #include "dxc/DXIL/DxilInstructions.h"
#include "llvm/IR/Module.h" #include "llvm/IR/Module.h"
#include "llvm/IR/InstIterator.h" #include "llvm/IR/InstIterator.h"

Просмотреть файл

@ -10,9 +10,9 @@
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include "dxc/HLSL/DxilGenerationPass.h" #include "dxc/HLSL/DxilGenerationPass.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/HLSL/DxilInstructions.h" #include "dxc/DXIL/DxilInstructions.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/HLSL/DxilPIXPasses.h" #include "dxc/HLSL/DxilPIXPasses.h"
#include "llvm/IR/Instructions.h" #include "llvm/IR/Instructions.h"

Просмотреть файл

@ -10,8 +10,8 @@
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include "dxc/HLSL/DxilGenerationPass.h" #include "dxc/HLSL/DxilGenerationPass.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/HLSL/DxilPIXPasses.h" #include "dxc/HLSL/DxilPIXPasses.h"
#include "llvm/IR/Instructions.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/DxilRootSignature.h"
#include "dxc/HLSL/DxilPipelineStateValidation.h" #include "dxc/HLSL/DxilPipelineStateValidation.h"
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"

Просмотреть файл

@ -11,9 +11,9 @@
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include "dxc/HLSL/DxilGenerationPass.h" #include "dxc/HLSL/DxilGenerationPass.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/HLSL/DxilInstructions.h" #include "dxc/DXIL/DxilInstructions.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/HLSL/DxilPIXPasses.h" #include "dxc/HLSL/DxilPIXPasses.h"
#include "dxc/HLSL/DxilSpanAllocator.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 "DxilTargetTransformInfo.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "llvm/CodeGen/BasicTTIImpl.h" #include "llvm/CodeGen/BasicTTIImpl.h"
using namespace llvm; using namespace llvm;

Просмотреть файл

@ -11,18 +11,18 @@
#include "dxc/HLSL/DxilValidation.h" #include "dxc/HLSL/DxilValidation.h"
#include "dxc/HLSL/DxilGenerationPass.h" #include "dxc/HLSL/DxilGenerationPass.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/HLSL/DxilShaderModel.h" #include "dxc/DXIL/DxilShaderModel.h"
#include "dxc/HLSL/DxilContainer.h" #include "dxc/DXIL/DxilContainer.h"
#include "dxc/HLSL/DxilFunctionProps.h" #include "dxc/DXIL/DxilFunctionProps.h"
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"
#include "dxc/HLSL/DxilUtil.h" #include "dxc/DXIL/DxilUtil.h"
#include "dxc/HLSL/DxilInstructions.h" #include "dxc/DXIL/DxilInstructions.h"
#include "dxc/HLSL/ReducibilityAnalysis.h" #include "dxc/HLSL/ReducibilityAnalysis.h"
#include "dxc/Support/WinIncludes.h" #include "dxc/Support/WinIncludes.h"
#include "dxc/Support/FileIOHelper.h" #include "dxc/Support/FileIOHelper.h"
#include "DxilEntryProps.h" #include "dxc/DXIL/DxilEntryProps.h"
#include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/ArrayRef.h"
#include "llvm/Analysis/CallGraph.h" #include "llvm/Analysis/CallGraph.h"
@ -45,6 +45,7 @@
#include "llvm/Analysis/PostDominators.h" #include "llvm/Analysis/PostDominators.h"
#include "dxc/HLSL/DxilSpanAllocator.h" #include "dxc/HLSL/DxilSpanAllocator.h"
#include "dxc/HLSL/DxilSignatureAllocator.h" #include "dxc/HLSL/DxilSignatureAllocator.h"
#include "dxc/HLSL/DxilPackSignatureElement.h"
#include "dxc/HLSL/DxilRootSignature.h" #include "dxc/HLSL/DxilRootSignature.h"
#include <algorithm> #include <algorithm>
#include <deque> #include <deque>

Просмотреть файл

@ -13,12 +13,12 @@
#include "dxc/HLSL/HLMatrixLowerPass.h" #include "dxc/HLSL/HLMatrixLowerPass.h"
#include "dxc/HLSL/HLOperations.h" #include "dxc/HLSL/HLOperations.h"
#include "dxc/HLSL/HLModule.h" #include "dxc/HLSL/HLModule.h"
#include "dxc/HLSL/DxilUtil.h" #include "dxc/DXIL/DxilUtil.h"
#include "dxc/HlslIntrinsicOp.h" #include "dxc/HlslIntrinsicOp.h"
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/HLSL/DxilTypeSystem.h" #include "dxc/DXIL/DxilTypeSystem.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "llvm/IR/IRBuilder.h" #include "llvm/IR/IRBuilder.h"
#include "llvm/IR/Module.h" #include "llvm/IR/Module.h"

Просмотреть файл

@ -9,11 +9,11 @@
// // // //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/HLSL/DxilShaderModel.h" #include "dxc/DXIL/DxilShaderModel.h"
#include "dxc/HLSL/DxilCBuffer.h" #include "dxc/DXIL/DxilCBuffer.h"
#include "dxc/HLSL/HLModule.h" #include "dxc/HLSL/HLModule.h"
#include "dxc/HLSL/DxilTypeSystem.h" #include "dxc/DXIL/DxilTypeSystem.h"
#include "dxc/HLSL/DxilRootSignature.h" #include "dxc/HLSL/DxilRootSignature.h"
#include "dxc/Support/WinAdapter.h" #include "dxc/Support/WinAdapter.h"

Просмотреть файл

@ -13,11 +13,11 @@
#include <cmath> #include <cmath>
#include <unordered_set> #include <unordered_set>
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/HLSL/HLMatrixLowerHelper.h" #include "dxc/HLSL/HLMatrixLowerHelper.h"
#include "dxc/HLSL/HLModule.h" #include "dxc/HLSL/HLModule.h"
#include "dxc/HLSL/DxilUtil.h" #include "dxc/DXIL/DxilUtil.h"
#include "dxc/HLSL/HLOperationLower.h" #include "dxc/HLSL/HLOperationLower.h"
#include "dxc/HLSL/HLOperationLowerExtension.h" #include "dxc/HLSL/HLOperationLowerExtension.h"
#include "dxc/HLSL/HLOperations.h" #include "dxc/HLSL/HLOperations.h"

Просмотреть файл

@ -9,8 +9,8 @@
#include "dxc/HLSL/HLOperationLowerExtension.h" #include "dxc/HLSL/HLOperationLowerExtension.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/HLSL/HLMatrixLowerHelper.h" #include "dxc/HLSL/HLMatrixLowerHelper.h"
#include "dxc/HLSL/HLModule.h" #include "dxc/HLSL/HLModule.h"
#include "dxc/HLSL/HLOperationLower.h" #include "dxc/HLSL/HLOperationLower.h"

Просмотреть файл

@ -10,16 +10,17 @@
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#include "HLSignatureLower.h" #include "HLSignatureLower.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/HLSL/DxilSignatureElement.h" #include "dxc/DXIL/DxilSignatureElement.h"
#include "dxc/HLSL/DxilSigPoint.h" #include "dxc/DXIL/DxilSigPoint.h"
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"
#include "dxc/HLSL/DxilTypeSystem.h" #include "dxc/DXIL/DxilTypeSystem.h"
#include "dxc/HLSL/DxilSemantic.h" #include "dxc/DXIL/DxilSemantic.h"
#include "dxc/HLSL/HLModule.h" #include "dxc/HLSL/HLModule.h"
#include "dxc/HLSL/HLMatrixLowerHelper.h" #include "dxc/HLSL/HLMatrixLowerHelper.h"
#include "dxc/HlslIntrinsicOp.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/IRBuilder.h"
#include "llvm/IR/DebugInfo.h" #include "llvm/IR/DebugInfo.h"
@ -453,13 +454,13 @@ void HLSignatureLower::AllocateDxilInputOutputs() {
if (packing == DXIL::PackingStrategy::Default) if (packing == DXIL::PackingStrategy::Default)
packing = pSM->GetDefaultPackingStrategy(); packing = pSM->GetDefaultPackingStrategy();
EntrySig.InputSignature.PackElements(packing); hlsl::PackDxilSignature(EntrySig.InputSignature, packing);
if (!EntrySig.InputSignature.IsFullyAllocated()) { if (!EntrySig.InputSignature.IsFullyAllocated()) {
HLM.GetCtx().emitError( HLM.GetCtx().emitError(
"Failed to allocate all input signature elements in available space."); "Failed to allocate all input signature elements in available space.");
} }
EntrySig.OutputSignature.PackElements(packing); hlsl::PackDxilSignature(EntrySig.OutputSignature, packing);
if (!EntrySig.OutputSignature.IsFullyAllocated()) { if (!EntrySig.OutputSignature.IsFullyAllocated()) {
HLM.GetCtx().emitError( HLM.GetCtx().emitError(
"Failed to allocate all output signature elements in available space."); "Failed to allocate all output signature elements in available space.");
@ -467,7 +468,7 @@ void HLSignatureLower::AllocateDxilInputOutputs() {
if (props.shaderKind == DXIL::ShaderKind::Hull || if (props.shaderKind == DXIL::ShaderKind::Hull ||
props.shaderKind == DXIL::ShaderKind::Domain) { props.shaderKind == DXIL::ShaderKind::Domain) {
EntrySig.PatchConstantSignature.PackElements(packing); hlsl::PackDxilSignature(EntrySig.PatchConstantSignature, packing);
if (!EntrySig.PatchConstantSignature.IsFullyAllocated()) { if (!EntrySig.PatchConstantSignature.IsFullyAllocated()) {
HLM.GetCtx().emitError("Failed to allocate all patch constant signature " HLM.GetCtx().emitError("Failed to allocate all patch constant signature "
"elements in available space."); "elements in available space.");

Просмотреть файл

@ -12,14 +12,14 @@
#include "dxc/HLSL/DxilValidation.h" #include "dxc/HLSL/DxilValidation.h"
#include "dxc/HLSL/DxilGenerationPass.h" #include "dxc/HLSL/DxilGenerationPass.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/HLSL/DxilShaderModel.h" #include "dxc/DXIL/DxilShaderModel.h"
#include "dxc/HLSL/DxilContainer.h" #include "dxc/DXIL/DxilContainer.h"
#include "dxc/Support/Global.h" #include "dxc/Support/Global.h"
#include "dxc/HLSL/HLOperations.h" #include "dxc/HLSL/HLOperations.h"
#include "dxc/HLSL/HLModule.h" #include "dxc/HLSL/HLModule.h"
#include "dxc/HLSL/DxilInstructions.h" #include "dxc/DXIL/DxilInstructions.h"
#include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/ArrayRef.h"
#include "llvm/IR/LLVMContext.h" #include "llvm/IR/LLVMContext.h"

Просмотреть файл

@ -28,7 +28,7 @@
#include "llvm/IR/Metadata.h" #include "llvm/IR/Metadata.h"
#include "llvm/IR/Module.h" #include "llvm/IR/Module.h"
#include "dxc/HLSL/HLModule.h" // HLSL Change #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/ManagedStatic.h"
#include "llvm/Support/RWMutex.h" #include "llvm/Support/RWMutex.h"
#include "llvm/Support/StringPool.h" #include "llvm/Support/StringPool.h"

Просмотреть файл

@ -38,9 +38,10 @@ subdirectories =
Target Target
Transforms Transforms
HLSL HLSL
DXIL
DxrFallback DxrFallback
; HLSL Change: remove LibDriver, LineEditor, add HLSL, add DxrtFallback ; HLSL Change: remove LibDriver, LineEditor, add HLSL, add DxrtFallback, add DXIL
[component_0] [component_0]
type = Group type = Group

Просмотреть файл

@ -26,9 +26,9 @@
#include "llvm/Pass.h" #include "llvm/Pass.h"
#include <unordered_map> #include <unordered_map>
#include "dxc/HLSL/HLModule.h" // HLSL Change #include "dxc/HLSL/HLModule.h" // HLSL Change
#include "dxc/HLSL/DxilModule.h" // HLSL Change #include "dxc/DXIL/DxilModule.h" // HLSL Change
#include "dxc/HLSL/DxilOperations.h" // HLSL Change #include "dxc/DXIL/DxilOperations.h" // HLSL Change
#include "dxc/HLSL/DxilInstructions.h" // HLSL Change #include "dxc/DXIL/DxilInstructions.h" // HLSL Change
using namespace llvm; using namespace llvm;
#define DEBUG_TYPE "globaldce" #define DEBUG_TYPE "globaldce"

Просмотреть файл

@ -20,7 +20,7 @@
#include "llvm/IR/MDBuilder.h" #include "llvm/IR/MDBuilder.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h" #include "llvm/Transforms/Utils/BasicBlockUtils.h"
#include "llvm/Transforms/Utils/Local.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; using namespace llvm;
#define DEBUG_TYPE "instcombine" #define DEBUG_TYPE "instcombine"

Просмотреть файл

@ -51,7 +51,7 @@
#include "llvm/Transforms/Utils/Local.h" #include "llvm/Transforms/Utils/Local.h"
#include "llvm/Transforms/Utils/SSAUpdater.h" #include "llvm/Transforms/Utils/SSAUpdater.h"
#include <vector> #include <vector>
#include "dxc/HLSL/DxilConstants.h" // HLSL Change #include "dxc/DXIL/DxilConstants.h" // HLSL Change
using namespace llvm; using namespace llvm;
using namespace PatternMatch; using namespace PatternMatch;

Просмотреть файл

@ -56,7 +56,7 @@
#include "llvm/Transforms/Utils/Local.h" #include "llvm/Transforms/Utils/Local.h"
#include "llvm/Transforms/Utils/PromoteMemToReg.h" #include "llvm/Transforms/Utils/PromoteMemToReg.h"
#include "llvm/Transforms/Utils/SSAUpdater.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) #if __cplusplus >= 201103L && !defined(NDEBUG)
// We only use this for a debug check in C++11 // 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/SSAUpdater.h"
#include "llvm/Transforms/Utils/Local.h" #include "llvm/Transforms/Utils/Local.h"
#include "dxc/HLSL/HLOperations.h" #include "dxc/HLSL/HLOperations.h"
#include "dxc/HLSL/DxilConstants.h" #include "dxc/DXIL/DxilConstants.h"
#include "dxc/HLSL/HLModule.h" #include "dxc/HLSL/HLModule.h"
#include "dxc/HLSL/DxilUtil.h" #include "dxc/DXIL/DxilUtil.h"
#include "dxc/HLSL/DxilModule.h" #include "dxc/DXIL/DxilModule.h"
#include "dxc/HlslIntrinsicOp.h" #include "dxc/HlslIntrinsicOp.h"
#include "dxc/HLSL/DxilTypeSystem.h" #include "dxc/DXIL/DxilTypeSystem.h"
#include "dxc/HLSL/HLMatrixLowerHelper.h" #include "dxc/HLSL/HLMatrixLowerHelper.h"
#include "dxc/HLSL/DxilOperations.h" #include "dxc/DXIL/DxilOperations.h"
#include <deque> #include <deque>
#include <unordered_map> #include <unordered_map>
#include <unordered_set> #include <unordered_set>

Просмотреть файл

@ -45,7 +45,7 @@
#include "llvm/Support/MathExtras.h" #include "llvm/Support/MathExtras.h"
#include "llvm/Support/raw_ostream.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; using namespace llvm;
#define DEBUG_TYPE "local" #define DEBUG_TYPE "local"

Просмотреть файл

@ -19,7 +19,7 @@
#include "clang/AST/Type.h" // needs QualType #include "clang/AST/Type.h" // needs QualType
#include "clang/Basic/SourceLocation.h" #include "clang/Basic/SourceLocation.h"
#include "clang/Basic/Specifiers.h" #include "clang/Basic/Specifiers.h"
#include "dxc/HLSL/DxilConstants.h" #include "dxc/DXIL/DxilConstants.h"
#include "dxc/Support/WinAdapter.h" #include "dxc/Support/WinAdapter.h"
#include "llvm/Support/Casting.h" #include "llvm/Support/Casting.h"

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше