Merge remote-tracking branch 'ms/master' into dxil-1-5
This commit is contained in:
Коммит
04fb1d6468
|
@ -1 +1 @@
|
|||
Subproject commit 2434b89345a50c018c84f42a310b0fad4f3fd94f
|
||||
Subproject commit 4b0985f29277a81f5ce88feb0502cc44d6d5e7c3
|
|
@ -1 +1 @@
|
|||
Subproject commit d90aae9a5a6cb05b9d7eb45555d9ae107fbe7464
|
||||
Subproject commit e935dac9ef8a01fdb6d0a4b7898563e6f62d1081
|
|
@ -48,26 +48,34 @@ void DxcCleanupThreadMalloc() throw();
|
|||
// Used by APIs entry points to set up per-thread/invocation allocator.
|
||||
// Setting the IMalloc on the thread increases the reference count,
|
||||
// clearing it decreases it.
|
||||
void DxcSetThreadMallocToDefault() throw();
|
||||
void DxcClearThreadMalloc() throw();
|
||||
void DxcSetThreadMalloc(IMalloc *pMalloc) throw();
|
||||
void DxcSetThreadMallocOrDefault(IMalloc *pMalloc) throw();
|
||||
|
||||
// Swapping does not AddRef or Release new or prior. The pattern is to keep both alive,
|
||||
// either in TLS, or on the stack to restore later. The returned value is the effective
|
||||
// IMalloc also available in TLS.
|
||||
IMalloc *DxcSwapThreadMalloc(IMalloc *pMalloc, IMalloc **ppPrior) throw();
|
||||
IMalloc *DxcSwapThreadMallocOrDefault(IMalloc *pMalloc, IMalloc **ppPrior) throw();
|
||||
|
||||
// Used to retrieve the current invocation's allocator or perform an alloc/free/realloc.
|
||||
IMalloc *DxcGetThreadMallocNoRef() throw();
|
||||
|
||||
struct DxcThreadMalloc {
|
||||
DxcThreadMalloc(IMalloc *pMallocOrNull) throw() {
|
||||
p = DxcSwapThreadMallocOrDefault(pMallocOrNull, &pPrior);
|
||||
}
|
||||
~DxcThreadMalloc() {
|
||||
DxcSwapThreadMalloc(pPrior, nullptr);
|
||||
}
|
||||
#if defined(LLVM_ON_UNIX)
|
||||
#define DXC_HIDDEN_LINKAGE __attribute__(( visibility("hidden") ))
|
||||
#else // LLVM_ON_UNIX
|
||||
#define DXC_HIDDEN_LINKAGE
|
||||
#endif // LLVM_ON_UNIX
|
||||
|
||||
class DxcThreadMalloc {
|
||||
public:
|
||||
explicit DXC_HIDDEN_LINKAGE DxcThreadMalloc(IMalloc *pMallocOrNull) throw();
|
||||
DXC_HIDDEN_LINKAGE ~DxcThreadMalloc();
|
||||
|
||||
IMalloc *GetInstalledAllocator() const { return p; }
|
||||
|
||||
private:
|
||||
// Copy constructor and assignment are dangerous and should always be
|
||||
// deleted...
|
||||
DxcThreadMalloc(const DxcThreadMalloc &) = delete;
|
||||
DxcThreadMalloc &operator =(const DxcThreadMalloc &) = delete;
|
||||
// Move constructor and assignment should be OK to be added if needed.
|
||||
DxcThreadMalloc(DxcThreadMalloc &&) = delete;
|
||||
DxcThreadMalloc &operator =(DxcThreadMalloc &&) = delete;
|
||||
|
||||
IMalloc *p;
|
||||
IMalloc *pPrior;
|
||||
};
|
||||
|
|
|
@ -66,16 +66,15 @@ void DxcClearThreadMalloc() throw() {
|
|||
g_ThreadMallocTls->erase();
|
||||
pMalloc->Release();
|
||||
}
|
||||
void DxcSetThreadMalloc(IMalloc *pMalloc) throw() {
|
||||
|
||||
void DxcSetThreadMallocToDefault() throw() {
|
||||
DXASSERT(g_ThreadMallocTls != nullptr, "else prior to DxcInitThreadMalloc or after DxcCleanupThreadMalloc");
|
||||
DXASSERT(DxcGetThreadMallocNoRef() == nullptr, "else nested allocation invoked");
|
||||
g_ThreadMallocTls->set(pMalloc);
|
||||
pMalloc->AddRef();
|
||||
g_ThreadMallocTls->set(g_pDefaultMalloc);
|
||||
g_pDefaultMalloc->AddRef();
|
||||
}
|
||||
void DxcSetThreadMallocOrDefault(IMalloc *pMalloc) throw() {
|
||||
DxcSetThreadMalloc(pMalloc ? pMalloc : g_pDefaultMalloc);
|
||||
}
|
||||
IMalloc *DxcSwapThreadMalloc(IMalloc *pMalloc, IMalloc **ppPrior) throw() {
|
||||
|
||||
static IMalloc *DxcSwapThreadMalloc(IMalloc *pMalloc, IMalloc **ppPrior) throw() {
|
||||
DXASSERT(g_ThreadMallocTls != nullptr, "else prior to DxcInitThreadMalloc or after DxcCleanupThreadMalloc");
|
||||
IMalloc *pPrior = DxcGetThreadMallocNoRef();
|
||||
if (ppPrior) {
|
||||
|
@ -84,8 +83,13 @@ IMalloc *DxcSwapThreadMalloc(IMalloc *pMalloc, IMalloc **ppPrior) throw() {
|
|||
g_ThreadMallocTls->set(pMalloc);
|
||||
return pMalloc;
|
||||
}
|
||||
IMalloc *DxcSwapThreadMallocOrDefault(IMalloc *pMallocOrNull, IMalloc **ppPrior) throw() {
|
||||
return DxcSwapThreadMalloc(pMallocOrNull ? pMallocOrNull : g_pDefaultMalloc, ppPrior);
|
||||
|
||||
DXC_HIDDEN_LINKAGE DxcThreadMalloc::DxcThreadMalloc(IMalloc *pMallocOrNull) throw() {
|
||||
p = DxcSwapThreadMalloc(pMallocOrNull ? pMallocOrNull : g_pDefaultMalloc, &pPrior);
|
||||
}
|
||||
|
||||
DXC_HIDDEN_LINKAGE DxcThreadMalloc::~DxcThreadMalloc() {
|
||||
DxcSwapThreadMalloc(pPrior, nullptr);
|
||||
}
|
||||
|
||||
#ifndef _WIN32
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
// Make sure the same decoration is not applied twice.
|
||||
//
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_FragCoord HlslSemanticGOOGLE "SV_POSITION"
|
||||
// CHECK-NOT: OpDecorateStringGOOGLE %gl_FragCoord HlslSemanticGOOGLE "SV_POSITION"
|
||||
// CHECK: OpDecorateString %gl_FragCoord UserSemantic "SV_POSITION"
|
||||
// CHECK-NOT: OpDecorateString %gl_FragCoord UserSemantic "SV_POSITION"
|
||||
|
||||
float4 main(float4 pix_pos : SV_POSITION, float4 pix_pos2: SV_POSITION): SV_Target {
|
||||
return 0;
|
||||
|
|
|
@ -69,38 +69,38 @@ struct DsOut {
|
|||
// CHECK: OpEntryPoint TessellationEvaluation %main "main" %gl_ClipDistance %gl_CullDistance %gl_ClipDistance_0 %gl_CullDistance_0 %gl_Position %in_var_TEXCOORD %in_var_BAR %gl_PointSize %gl_TessCoord %gl_TessLevelOuter %gl_TessLevelInner %in_var_FOO %gl_Position_0 %out_var_FOO %out_var_BAR %gl_PointSize_0
|
||||
|
||||
// CHECK: OpDecorate %gl_ClipDistance BuiltIn ClipDistance
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_ClipDistance HlslSemanticGOOGLE "SV_ClipDistance"
|
||||
// CHECK: OpDecorateString %gl_ClipDistance UserSemantic "SV_ClipDistance"
|
||||
// CHECK: OpDecorate %gl_CullDistance BuiltIn CullDistance
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_CullDistance HlslSemanticGOOGLE "SV_CullDistance"
|
||||
// CHECK: OpDecorateString %gl_CullDistance UserSemantic "SV_CullDistance"
|
||||
// CHECK: OpDecorate %gl_ClipDistance_0 BuiltIn ClipDistance
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_ClipDistance_0 HlslSemanticGOOGLE "SV_ClipDistance"
|
||||
// CHECK: OpDecorateString %gl_ClipDistance_0 UserSemantic "SV_ClipDistance"
|
||||
// CHECK: OpDecorate %gl_CullDistance_0 BuiltIn CullDistance
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_CullDistance_0 HlslSemanticGOOGLE "SV_CullDistance"
|
||||
// CHECK: OpDecorateString %gl_CullDistance_0 UserSemantic "SV_CullDistance"
|
||||
|
||||
// CHECK: OpDecorate %gl_Position BuiltIn Position
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_Position HlslSemanticGOOGLE "SV_Position"
|
||||
// CHECK: OpDecorateStringGOOGLE %in_var_TEXCOORD HlslSemanticGOOGLE "TEXCOORD"
|
||||
// CHECK: OpDecorateStringGOOGLE %in_var_BAR HlslSemanticGOOGLE "BAR"
|
||||
// CHECK: OpDecorateString %gl_Position UserSemantic "SV_Position"
|
||||
// CHECK: OpDecorateString %in_var_TEXCOORD UserSemantic "TEXCOORD"
|
||||
// CHECK: OpDecorateString %in_var_BAR UserSemantic "BAR"
|
||||
// CHECK: OpDecorate %gl_PointSize BuiltIn PointSize
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_PointSize HlslSemanticGOOGLE "PSIZE"
|
||||
// CHECK: OpDecorateString %gl_PointSize UserSemantic "PSIZE"
|
||||
// CHECK: OpDecorate %gl_TessCoord BuiltIn TessCoord
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_TessCoord HlslSemanticGOOGLE "SV_DomainLocation"
|
||||
// CHECK: OpDecorateString %gl_TessCoord UserSemantic "SV_DomainLocation"
|
||||
// CHECK: OpDecorate %gl_TessCoord Patch
|
||||
// CHECK: OpDecorate %gl_TessLevelOuter BuiltIn TessLevelOuter
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_TessLevelOuter HlslSemanticGOOGLE "SV_TessFactor"
|
||||
// CHECK: OpDecorateString %gl_TessLevelOuter UserSemantic "SV_TessFactor"
|
||||
// CHECK: OpDecorate %gl_TessLevelOuter Patch
|
||||
// CHECK: OpDecorate %gl_TessLevelInner BuiltIn TessLevelInner
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_TessLevelInner HlslSemanticGOOGLE "SV_InsideTessFactor"
|
||||
// CHECK: OpDecorateString %gl_TessLevelInner UserSemantic "SV_InsideTessFactor"
|
||||
// CHECK: OpDecorate %gl_TessLevelInner Patch
|
||||
// CHECK: OpDecorateStringGOOGLE %in_var_FOO HlslSemanticGOOGLE "FOO"
|
||||
// CHECK: OpDecorateString %in_var_FOO UserSemantic "FOO"
|
||||
// CHECK: OpDecorate %in_var_FOO Patch
|
||||
|
||||
// CHECK: OpDecorate %gl_Position_0 BuiltIn Position
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_Position_0 HlslSemanticGOOGLE "SV_Position"
|
||||
// CHECK: OpDecorateStringGOOGLE %out_var_FOO HlslSemanticGOOGLE "FOO"
|
||||
// CHECK: OpDecorateStringGOOGLE %out_var_BAR HlslSemanticGOOGLE "BAR"
|
||||
// CHECK: OpDecorateString %gl_Position_0 UserSemantic "SV_Position"
|
||||
// CHECK: OpDecorateString %out_var_FOO UserSemantic "FOO"
|
||||
// CHECK: OpDecorateString %out_var_BAR UserSemantic "BAR"
|
||||
// CHECK: OpDecorate %gl_PointSize_0 BuiltIn PointSize
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_PointSize_0 HlslSemanticGOOGLE "PSIZE"
|
||||
// CHECK: OpDecorateString %gl_PointSize_0 UserSemantic "PSIZE"
|
||||
// CHECK: OpDecorate %in_var_BAR Location 0
|
||||
// CHECK: OpDecorate %in_var_FOO Location 1
|
||||
// CHECK: OpDecorate %in_var_TEXCOORD Location 2
|
||||
|
|
|
@ -40,25 +40,25 @@ struct GsPerVertexOut {
|
|||
// CHECK: OpEntryPoint Geometry %main "main" %gl_ClipDistance %gl_ClipDistance_0 %gl_CullDistance %in_var_BAR %gl_Position %in_var_FOO %gl_PointSize %gl_Position_0 %out_var_FOO %gl_PointSize_0 %out_var_BAR
|
||||
|
||||
// CHECK: OpDecorate %gl_ClipDistance BuiltIn ClipDistance
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_ClipDistance HlslSemanticGOOGLE "SV_ClipDistance"
|
||||
// CHECK: OpDecorateString %gl_ClipDistance UserSemantic "SV_ClipDistance"
|
||||
// CHECK: OpDecorate %gl_ClipDistance_0 BuiltIn ClipDistance
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_ClipDistance_0 HlslSemanticGOOGLE "SV_ClipDistance"
|
||||
// CHECK: OpDecorateString %gl_ClipDistance_0 UserSemantic "SV_ClipDistance"
|
||||
// CHECK: OpDecorate %gl_CullDistance BuiltIn CullDistance
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_CullDistance HlslSemanticGOOGLE "SV_CullDistance"
|
||||
// CHECK: OpDecorateStringGOOGLE %in_var_BAR HlslSemanticGOOGLE "BAR"
|
||||
// CHECK: OpDecorateString %gl_CullDistance UserSemantic "SV_CullDistance"
|
||||
// CHECK: OpDecorateString %in_var_BAR UserSemantic "BAR"
|
||||
|
||||
// CHECK: OpDecorate %gl_Position BuiltIn Position
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_Position HlslSemanticGOOGLE "SV_Position"
|
||||
// CHECK: OpDecorateStringGOOGLE %in_var_FOO HlslSemanticGOOGLE "FOO"
|
||||
// CHECK: OpDecorateString %gl_Position UserSemantic "SV_Position"
|
||||
// CHECK: OpDecorateString %in_var_FOO UserSemantic "FOO"
|
||||
// CHECK: OpDecorate %gl_PointSize BuiltIn PointSize
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_PointSize HlslSemanticGOOGLE "PSIZE"
|
||||
// CHECK: OpDecorateString %gl_PointSize UserSemantic "PSIZE"
|
||||
|
||||
// CHECK: OpDecorate %gl_Position_0 BuiltIn Position
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_Position_0 HlslSemanticGOOGLE "SV_Position"
|
||||
// CHECK: OpDecorateStringGOOGLE %out_var_FOO HlslSemanticGOOGLE "FOO"
|
||||
// CHECK: OpDecorateString %gl_Position_0 UserSemantic "SV_Position"
|
||||
// CHECK: OpDecorateString %out_var_FOO UserSemantic "FOO"
|
||||
// CHECK: OpDecorate %gl_PointSize_0 BuiltIn PointSize
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_PointSize_0 HlslSemanticGOOGLE "PSIZE"
|
||||
// CHECK: OpDecorateStringGOOGLE %out_var_BAR HlslSemanticGOOGLE "BAR"
|
||||
// CHECK: OpDecorateString %gl_PointSize_0 UserSemantic "PSIZE"
|
||||
// CHECK: OpDecorateString %out_var_BAR UserSemantic "BAR"
|
||||
|
||||
// CHECK: OpDecorate %in_var_BAR Location 0
|
||||
// CHECK: OpDecorate %in_var_FOO Location 1
|
||||
|
|
|
@ -69,39 +69,39 @@ struct HsPcfOut
|
|||
// CHECK: OpEntryPoint TessellationControl %main "main" %gl_ClipDistance %gl_CullDistance %gl_ClipDistance_0 %gl_CullDistance_0 %gl_Position %in_var_BAZ %gl_PointSize %gl_InvocationID %gl_PrimitiveID %gl_Position_0 %out_var_FOO %gl_PointSize_0 %out_var_BAR %gl_TessLevelOuter %gl_TessLevelInner %out_var_TEXCOORD %out_var_WEIGHT
|
||||
|
||||
// CHECK: OpDecorate %gl_ClipDistance BuiltIn ClipDistance
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_ClipDistance HlslSemanticGOOGLE "SV_ClipDistance"
|
||||
// CHECK: OpDecorateString %gl_ClipDistance UserSemantic "SV_ClipDistance"
|
||||
// CHECK: OpDecorate %gl_CullDistance BuiltIn CullDistance
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_CullDistance HlslSemanticGOOGLE "SV_CullDistance"
|
||||
// CHECK: OpDecorateString %gl_CullDistance UserSemantic "SV_CullDistance"
|
||||
// CHECK: OpDecorate %gl_ClipDistance_0 BuiltIn ClipDistance
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_ClipDistance_0 HlslSemanticGOOGLE "SV_ClipDistance"
|
||||
// CHECK: OpDecorateString %gl_ClipDistance_0 UserSemantic "SV_ClipDistance"
|
||||
// CHECK: OpDecorate %gl_CullDistance_0 BuiltIn CullDistance
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_CullDistance_0 HlslSemanticGOOGLE "SV_CullDistance"
|
||||
// CHECK: OpDecorateString %gl_CullDistance_0 UserSemantic "SV_CullDistance"
|
||||
|
||||
// CHECK: OpDecorate %gl_Position BuiltIn Position
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_Position HlslSemanticGOOGLE "SV_Position"
|
||||
// CHECK: OpDecorateStringGOOGLE %in_var_BAZ HlslSemanticGOOGLE "BAZ"
|
||||
// CHECK: OpDecorateString %gl_Position UserSemantic "SV_Position"
|
||||
// CHECK: OpDecorateString %in_var_BAZ UserSemantic "BAZ"
|
||||
// CHECK: OpDecorate %gl_PointSize BuiltIn PointSize
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_PointSize HlslSemanticGOOGLE "PSIZE"
|
||||
// CHECK: OpDecorateString %gl_PointSize UserSemantic "PSIZE"
|
||||
// CHECK: OpDecorate %gl_InvocationID BuiltIn InvocationId
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_InvocationID HlslSemanticGOOGLE "SV_OutputControlPointID"
|
||||
// CHECK: OpDecorateString %gl_InvocationID UserSemantic "SV_OutputControlPointID"
|
||||
// CHECK: OpDecorate %gl_PrimitiveID BuiltIn PrimitiveId
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_PrimitiveID HlslSemanticGOOGLE "SV_PrimitiveID"
|
||||
// CHECK: OpDecorateString %gl_PrimitiveID UserSemantic "SV_PrimitiveID"
|
||||
|
||||
// CHECK: OpDecorate %gl_Position_0 BuiltIn Position
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_Position_0 HlslSemanticGOOGLE "SV_Position"
|
||||
// CHECK: OpDecorateStringGOOGLE %out_var_FOO HlslSemanticGOOGLE "FOO"
|
||||
// CHECK: OpDecorateString %gl_Position_0 UserSemantic "SV_Position"
|
||||
// CHECK: OpDecorateString %out_var_FOO UserSemantic "FOO"
|
||||
// CHECK: OpDecorate %gl_PointSize_0 BuiltIn PointSize
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_PointSize_0 HlslSemanticGOOGLE "PSIZE"
|
||||
// CHECK: OpDecorateStringGOOGLE %out_var_BAR HlslSemanticGOOGLE "BAR"
|
||||
// CHECK: OpDecorateString %gl_PointSize_0 UserSemantic "PSIZE"
|
||||
// CHECK: OpDecorateString %out_var_BAR UserSemantic "BAR"
|
||||
// CHECK: OpDecorate %gl_TessLevelOuter BuiltIn TessLevelOuter
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_TessLevelOuter HlslSemanticGOOGLE "SV_TessFactor"
|
||||
// CHECK: OpDecorateString %gl_TessLevelOuter UserSemantic "SV_TessFactor"
|
||||
// CHECK: OpDecorate %gl_TessLevelOuter Patch
|
||||
// CHECK: OpDecorate %gl_TessLevelInner BuiltIn TessLevelInner
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_TessLevelInner HlslSemanticGOOGLE "SV_InsideTessFactor"
|
||||
// CHECK: OpDecorateString %gl_TessLevelInner UserSemantic "SV_InsideTessFactor"
|
||||
// CHECK: OpDecorate %gl_TessLevelInner Patch
|
||||
// CHECK: OpDecorateStringGOOGLE %out_var_TEXCOORD HlslSemanticGOOGLE "TEXCOORD"
|
||||
// CHECK: OpDecorateString %out_var_TEXCOORD UserSemantic "TEXCOORD"
|
||||
// CHECK: OpDecorate %out_var_TEXCOORD Patch
|
||||
// CHECK: OpDecorateStringGOOGLE %out_var_WEIGHT HlslSemanticGOOGLE "WEIGHT"
|
||||
// CHECK: OpDecorateString %out_var_WEIGHT UserSemantic "WEIGHT"
|
||||
// CHECK: OpDecorate %out_var_WEIGHT Patch
|
||||
// CHECK: OpDecorate %in_var_BAZ Location 0
|
||||
// CHECK: OpDecorate %out_var_BAR Location 0
|
||||
|
|
|
@ -19,14 +19,14 @@ struct PsIn {
|
|||
// CHECK: OpEntryPoint Fragment %main "main" %gl_ClipDistance %gl_CullDistance %gl_FragCoord %in_var_FOO %in_var_BAR %out_var_SV_Target
|
||||
|
||||
// CHECK: OpDecorate %gl_ClipDistance BuiltIn ClipDistance
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_ClipDistance HlslSemanticGOOGLE "SV_ClipDistance"
|
||||
// CHECK: OpDecorateString %gl_ClipDistance UserSemantic "SV_ClipDistance"
|
||||
// CHECK: OpDecorate %gl_CullDistance BuiltIn CullDistance
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_CullDistance HlslSemanticGOOGLE "SV_CullDistance"
|
||||
// CHECK: OpDecorateString %gl_CullDistance UserSemantic "SV_CullDistance"
|
||||
// CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_FragCoord HlslSemanticGOOGLE "SV_Position"
|
||||
// CHECK: OpDecorateStringGOOGLE %in_var_FOO HlslSemanticGOOGLE "FOO"
|
||||
// CHECK: OpDecorateStringGOOGLE %in_var_BAR HlslSemanticGOOGLE "BAR"
|
||||
// CHECK: OpDecorateStringGOOGLE %out_var_SV_Target HlslSemanticGOOGLE "SV_Target"
|
||||
// CHECK: OpDecorateString %gl_FragCoord UserSemantic "SV_Position"
|
||||
// CHECK: OpDecorateString %in_var_FOO UserSemantic "FOO"
|
||||
// CHECK: OpDecorateString %in_var_BAR UserSemantic "BAR"
|
||||
// CHECK: OpDecorateString %out_var_SV_Target UserSemantic "SV_Target"
|
||||
// CHECK: OpDecorate %in_var_FOO Location 0
|
||||
// CHECK: OpDecorate %in_var_BAR Location 1
|
||||
// CHECK: OpDecorate %out_var_SV_Target Location 0
|
||||
|
|
|
@ -8,24 +8,24 @@
|
|||
// CHECK: OpEntryPoint Vertex %main "main" %gl_ClipDistance %gl_CullDistance %gl_ClipDistance_0 %gl_CullDistance_0 %in_var_TEXCOORD %in_var_SV_Position %in_var_SV_ClipDistance %in_var_SV_CullDistance0 %gl_PointSize %out_var_COLOR %gl_Position %out_var_TEXCOORD
|
||||
|
||||
// CHECK: OpDecorate %gl_ClipDistance BuiltIn ClipDistance
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_ClipDistance HlslSemanticGOOGLE "SV_ClipDistance"
|
||||
// CHECK: OpDecorateString %gl_ClipDistance UserSemantic "SV_ClipDistance"
|
||||
// CHECK: OpDecorate %gl_CullDistance BuiltIn CullDistance
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_CullDistance HlslSemanticGOOGLE "SV_CullDistance0"
|
||||
// CHECK: OpDecorateString %gl_CullDistance UserSemantic "SV_CullDistance0"
|
||||
// CHECK: OpDecorate %gl_ClipDistance_0 BuiltIn ClipDistance
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_ClipDistance_0 HlslSemanticGOOGLE "SV_ClipDistance"
|
||||
// CHECK: OpDecorateString %gl_ClipDistance_0 UserSemantic "SV_ClipDistance"
|
||||
// CHECK: OpDecorate %gl_CullDistance_0 BuiltIn CullDistance
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_CullDistance_0 HlslSemanticGOOGLE "SV_CullDistance"
|
||||
// CHECK: OpDecorateString %gl_CullDistance_0 UserSemantic "SV_CullDistance"
|
||||
|
||||
// CHECK: OpDecorateStringGOOGLE %in_var_TEXCOORD HlslSemanticGOOGLE "TEXCOORD"
|
||||
// CHECK: OpDecorateStringGOOGLE %in_var_SV_Position HlslSemanticGOOGLE "SV_Position"
|
||||
// CHECK: OpDecorateStringGOOGLE %in_var_SV_ClipDistance HlslSemanticGOOGLE "SV_ClipDistance"
|
||||
// CHECK: OpDecorateStringGOOGLE %in_var_SV_CullDistance0 HlslSemanticGOOGLE "SV_CullDistance0"
|
||||
// CHECK: OpDecorateString %in_var_TEXCOORD UserSemantic "TEXCOORD"
|
||||
// CHECK: OpDecorateString %in_var_SV_Position UserSemantic "SV_Position"
|
||||
// CHECK: OpDecorateString %in_var_SV_ClipDistance UserSemantic "SV_ClipDistance"
|
||||
// CHECK: OpDecorateString %in_var_SV_CullDistance0 UserSemantic "SV_CullDistance0"
|
||||
// CHECK: OpDecorate %gl_PointSize BuiltIn PointSize
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_PointSize HlslSemanticGOOGLE "PSize"
|
||||
// CHECK: OpDecorateStringGOOGLE %out_var_COLOR HlslSemanticGOOGLE "COLOR"
|
||||
// CHECK: OpDecorateString %gl_PointSize UserSemantic "PSize"
|
||||
// CHECK: OpDecorateString %out_var_COLOR UserSemantic "COLOR"
|
||||
// CHECK: OpDecorate %gl_Position BuiltIn Position
|
||||
// CHECK: OpDecorateStringGOOGLE %gl_Position HlslSemanticGOOGLE "SV_Position"
|
||||
// CHECK: OpDecorateStringGOOGLE %out_var_TEXCOORD HlslSemanticGOOGLE "TEXCOORD"
|
||||
// CHECK: OpDecorateString %gl_Position UserSemantic "SV_Position"
|
||||
// CHECK: OpDecorateString %out_var_TEXCOORD UserSemantic "TEXCOORD"
|
||||
|
||||
// CHECK: OpDecorate %in_var_TEXCOORD Location 0
|
||||
// CHECK: OpDecorate %in_var_SV_Position Location 1
|
||||
|
|
|
@ -13,8 +13,8 @@
|
|||
|
||||
// CHECK: OpName %counter_var_buffer2 "counter.var.buffer2"
|
||||
|
||||
// CHECK: OpDecorateId %buffer1 HlslCounterBufferGOOGLE %counter_var_buffer1
|
||||
// CHECK: OpDecorateId %buffer2 HlslCounterBufferGOOGLE %counter_var_buffer2
|
||||
// CHECK: OpDecorateId %buffer1 CounterBuffer %counter_var_buffer1
|
||||
// CHECK: OpDecorateId %buffer2 CounterBuffer %counter_var_buffer2
|
||||
|
||||
// CHECK: %type_AppendStructuredBuffer_v4float = OpTypeStruct %_runtimearr_v4float
|
||||
// CHECK: %_ptr_Uniform_type_AppendStructuredBuffer_v4float = OpTypePointer Uniform %type_AppendStructuredBuffer_v4float
|
||||
|
|
|
@ -13,8 +13,8 @@
|
|||
|
||||
// CHECK: OpName %counter_var_buffer2 "counter.var.buffer2"
|
||||
|
||||
// CHECK: OpDecorateId %buffer1 HlslCounterBufferGOOGLE %counter_var_buffer1
|
||||
// CHECK: OpDecorateId %buffer2 HlslCounterBufferGOOGLE %counter_var_buffer2
|
||||
// CHECK: OpDecorateId %buffer1 CounterBuffer %counter_var_buffer1
|
||||
// CHECK: OpDecorateId %buffer2 CounterBuffer %counter_var_buffer2
|
||||
|
||||
// CHECK: %type_ConsumeStructuredBuffer_v4float = OpTypeStruct %_runtimearr_v4float
|
||||
// CHECK: %_ptr_Uniform_type_ConsumeStructuredBuffer_v4float = OpTypePointer Uniform %type_ConsumeStructuredBuffer_v4float
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
// CHECK: OpName %type_RWStructuredBuffer_S "type.RWStructuredBuffer.S"
|
||||
// CHECK: OpName %type_RWStructuredBuffer_T "type.RWStructuredBuffer.T"
|
||||
|
||||
// CHECK: OpDecorateId %mySBuffer3 HlslCounterBufferGOOGLE %counter_var_mySBuffer3
|
||||
// CHECK: OpDecorateId %mySBuffer4 HlslCounterBufferGOOGLE %counter_var_mySBuffer4
|
||||
// CHECK: OpDecorateId %mySBuffer3 CounterBuffer %counter_var_mySBuffer3
|
||||
// CHECK: OpDecorateId %mySBuffer4 CounterBuffer %counter_var_mySBuffer4
|
||||
|
||||
// CHECK: %S = OpTypeStruct %float %v3float %mat2v3float
|
||||
// CHECK: %_runtimearr_S = OpTypeRuntimeArray %S
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
// Run: %dxc -T ps_6_2 -E main -enable-16bit-types
|
||||
|
||||
// CHECK: OpCapability StorageUniform16
|
||||
// CHECK: OpCapability UniformAndStorageBuffer16BitAccess
|
||||
// CHECK: OpCapability Int16
|
||||
// CHECK: OpCapability Float16
|
||||
|
||||
// CHECK: OpExtension "SPV_KHR_16bit_storage"
|
||||
|
||||
|
|
|
@ -1095,7 +1095,7 @@ int dxc::main(int argc, const char **argv_) {
|
|||
const char *pStage = "Operation";
|
||||
int retVal = 0;
|
||||
if (FAILED(DxcInitThreadMalloc())) return 1;
|
||||
DxcSetThreadMallocOrDefault(nullptr);
|
||||
DxcSetThreadMallocToDefault();
|
||||
try {
|
||||
pStage = "Argument processing";
|
||||
if (initHlslOptTable()) throw std::bad_alloc();
|
||||
|
|
|
@ -51,7 +51,7 @@ static HRESULT InitMaybeFail() throw() {
|
|||
HRESULT hr;
|
||||
bool fsSetup = false, memSetup = false;
|
||||
IFC(DxcInitThreadMalloc());
|
||||
DxcSetThreadMallocOrDefault(nullptr);
|
||||
DxcSetThreadMallocToDefault();
|
||||
memSetup = true;
|
||||
if (::llvm::sys::fs::SetupPerThreadFileSystem()) {
|
||||
hr = E_FAIL;
|
||||
|
@ -86,7 +86,7 @@ HRESULT __attribute__ ((constructor)) DllMain() {
|
|||
}
|
||||
|
||||
void __attribute__ ((destructor)) DllShutdown() {
|
||||
DxcSetThreadMallocOrDefault(nullptr);
|
||||
DxcSetThreadMallocToDefault();
|
||||
::hlsl::options::cleanupHlslOptTable();
|
||||
::llvm::sys::fs::CleanupPerThreadFileSystem();
|
||||
::llvm::llvm_shutdown();
|
||||
|
@ -105,7 +105,7 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD Reason, LPVOID reserved) {
|
|||
result = SUCCEEDED(hr) ? TRUE : FALSE;
|
||||
} else if (Reason == DLL_PROCESS_DETACH) {
|
||||
DxcEtw_DXCompilerShutdown_Start();
|
||||
DxcSetThreadMallocOrDefault(nullptr);
|
||||
DxcSetThreadMallocToDefault();
|
||||
::hlsl::options::cleanupHlslOptTable();
|
||||
::llvm::sys::fs::CleanupPerThreadFileSystem();
|
||||
::llvm::llvm_shutdown();
|
||||
|
|
|
@ -101,7 +101,7 @@ HRESULT STDMETHODCALLTYPE DxcAssembler::AssembleToContainer(
|
|||
parseIR(memBuf->getMemBufferRef(), Err, Context);
|
||||
|
||||
CComPtr<AbstractMemoryStream> pOutputStream;
|
||||
IFT(CreateMemoryStream(TM.p, &pOutputStream));
|
||||
IFT(CreateMemoryStream(TM.GetInstalledAllocator(), &pOutputStream));
|
||||
raw_stream_ostream outStream(pOutputStream.p);
|
||||
|
||||
// Check for success.
|
||||
|
@ -148,7 +148,7 @@ HRESULT STDMETHODCALLTYPE DxcAssembler::AssembleToContainer(
|
|||
flags |= SerializeDxilFlags::DebugNameDependOnSource;
|
||||
}
|
||||
dxcutil::AssembleToContainer(std::move(M), pResultBlob,
|
||||
TM.p, flags,
|
||||
TM.GetInstalledAllocator(), flags,
|
||||
pOutputStream);
|
||||
|
||||
IFT(DxcOperationResult::CreateFromResultErrorStatus(pResultBlob, nullptr, S_OK, ppResult));
|
||||
|
|
|
@ -124,7 +124,7 @@ int __cdecl main(int argc, _In_reads_z_(argc) char **argv) {
|
|||
return 1;
|
||||
llvm::sys::fs::AutoCleanupPerThreadFileSystem auto_cleanup_fs;
|
||||
if (FAILED(DxcInitThreadMalloc())) return 1;
|
||||
DxcSetThreadMallocOrDefault(nullptr);
|
||||
DxcSetThreadMallocToDefault();
|
||||
try {
|
||||
llvm::sys::fs::MSFileSystem *msfPtr;
|
||||
IFT(CreateMSFileSystemForDisk(&msfPtr));
|
||||
|
|
|
@ -45,7 +45,7 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD Reason, LPVOID) {
|
|||
DisableThreadLibraryCalls(hinstDLL);
|
||||
|
||||
DxcInitThreadMalloc();
|
||||
DxcSetThreadMallocOrDefault(nullptr);
|
||||
DxcSetThreadMallocToDefault();
|
||||
|
||||
if (hlsl::options::initHlslOptTable()) {
|
||||
DxcClearThreadMalloc();
|
||||
|
@ -55,7 +55,7 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD Reason, LPVOID) {
|
|||
return TRUE;
|
||||
}
|
||||
} else if (Reason == DLL_PROCESS_DETACH) {
|
||||
DxcSetThreadMallocOrDefault(nullptr);
|
||||
DxcSetThreadMallocToDefault();
|
||||
libshare::LibCacheManager::ReleaseLibCacheManager();
|
||||
::hlsl::options::cleanupHlslOptTable();
|
||||
DxcClearThreadMalloc();
|
||||
|
|
|
@ -44,7 +44,7 @@ static HRESULT InitMaybeFail() throw() {
|
|||
HRESULT hr;
|
||||
bool fsSetup = false, memSetup = false;
|
||||
IFC(DxcInitThreadMalloc());
|
||||
DxcSetThreadMallocOrDefault(nullptr);
|
||||
DxcSetThreadMallocToDefault();
|
||||
memSetup = true;
|
||||
if (::llvm::sys::fs::SetupPerThreadFileSystem()) {
|
||||
hr = E_FAIL;
|
||||
|
@ -84,7 +84,7 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD Reason, LPVOID reserved) {
|
|||
result = SUCCEEDED(hr) ? TRUE : FALSE;
|
||||
} else if (Reason == DLL_PROCESS_DETACH) {
|
||||
DxcEtw_DXCompilerShutdown_Start();
|
||||
DxcSetThreadMallocOrDefault(nullptr);
|
||||
DxcSetThreadMallocToDefault();
|
||||
::hlsl::options::cleanupHlslOptTable();
|
||||
::llvm::sys::fs::CleanupPerThreadFileSystem();
|
||||
::llvm::llvm_shutdown();
|
||||
|
|
|
@ -251,7 +251,7 @@ HRESULT STDMETHODCALLTYPE DxcDxrFallbackCompiler::RenameAndLink(
|
|||
|
||||
// Create a diagnostic printer
|
||||
CComPtr<AbstractMemoryStream> pDiagStream;
|
||||
IFT(CreateMemoryStream(TM.p, &pDiagStream));
|
||||
IFT(CreateMemoryStream(TM.GetInstalledAllocator(), &pDiagStream));
|
||||
raw_stream_ostream DiagStream(pDiagStream);
|
||||
DiagnosticPrinterRawOStream DiagPrinter(DiagStream);
|
||||
PrintDiagnosticContext DiagContext(DiagPrinter);
|
||||
|
@ -318,14 +318,14 @@ HRESULT STDMETHODCALLTYPE DxcDxrFallbackCompiler::RenameAndLink(
|
|||
if (M)
|
||||
{
|
||||
CComPtr<AbstractMemoryStream> pOutputStream;
|
||||
IFT(CreateMemoryStream(TM.p, &pOutputStream));
|
||||
IFT(CreateMemoryStream(TM.GetInstalledAllocator(), &pOutputStream));
|
||||
raw_stream_ostream outStream(pOutputStream.p);
|
||||
WriteBitcodeToFile(M.get(), outStream);
|
||||
outStream.flush();
|
||||
|
||||
// Validation.
|
||||
dxcutil::AssembleToContainer(
|
||||
std::move(M), pResultBlob, TM.p, SerializeDxilFlags::None,
|
||||
std::move(M), pResultBlob, TM.GetInstalledAllocator(), SerializeDxilFlags::None,
|
||||
pOutputStream
|
||||
#if !DISABLE_GET_CUSTOM_DIAG_ID
|
||||
, Diag
|
||||
|
@ -371,7 +371,7 @@ HRESULT STDMETHODCALLTYPE DxcDxrFallbackCompiler::PatchShaderBindingTables(
|
|||
|
||||
// Create a diagnostic printer
|
||||
CComPtr<AbstractMemoryStream> pDiagStream;
|
||||
IFT(CreateMemoryStream(TM.p, &pDiagStream));
|
||||
IFT(CreateMemoryStream(TM.GetInstalledAllocator(), &pDiagStream));
|
||||
raw_stream_ostream DiagStream(pDiagStream);
|
||||
DiagnosticPrinterRawOStream DiagPrinter(DiagStream);
|
||||
PrintDiagnosticContext DiagContext(DiagPrinter);
|
||||
|
@ -404,14 +404,14 @@ HRESULT STDMETHODCALLTYPE DxcDxrFallbackCompiler::PatchShaderBindingTables(
|
|||
if (M)
|
||||
{
|
||||
CComPtr<AbstractMemoryStream> pOutputStream;
|
||||
IFT(CreateMemoryStream(TM.p, &pOutputStream));
|
||||
IFT(CreateMemoryStream(TM.GetInstalledAllocator(), &pOutputStream));
|
||||
raw_stream_ostream outStream(pOutputStream.p);
|
||||
WriteBitcodeToFile(M.get(), outStream);
|
||||
outStream.flush();
|
||||
dxcutil::AssembleToContainer(
|
||||
std::move(M),
|
||||
pResultBlob,
|
||||
TM.p,
|
||||
TM.GetInstalledAllocator(),
|
||||
SerializeDxilFlags::None,
|
||||
pOutputStream);
|
||||
}
|
||||
|
@ -459,7 +459,7 @@ HRESULT STDMETHODCALLTYPE DxcDxrFallbackCompiler::Link(
|
|||
|
||||
// Create a diagnostic printer
|
||||
CComPtr<AbstractMemoryStream> pDiagStream;
|
||||
IFT(CreateMemoryStream(TM.p, &pDiagStream));
|
||||
IFT(CreateMemoryStream(TM.GetInstalledAllocator(), &pDiagStream));
|
||||
raw_stream_ostream DiagStream(pDiagStream);
|
||||
DiagnosticPrinterRawOStream DiagPrinter(DiagStream);
|
||||
PrintDiagnosticContext DiagContext(DiagPrinter);
|
||||
|
@ -558,14 +558,14 @@ HRESULT STDMETHODCALLTYPE DxcDxrFallbackCompiler::Link(
|
|||
if (M)
|
||||
{
|
||||
CComPtr<AbstractMemoryStream> pOutputStream;
|
||||
IFT(CreateMemoryStream(TM.p, &pOutputStream));
|
||||
IFT(CreateMemoryStream(TM.GetInstalledAllocator(), &pOutputStream));
|
||||
raw_stream_ostream outStream(pOutputStream.p);
|
||||
WriteBitcodeToFile(M.get(), outStream);
|
||||
outStream.flush();
|
||||
|
||||
// Validation.
|
||||
HRESULT valHR = dxcutil::ValidateAndAssembleToContainer(
|
||||
std::move(M), pResultBlob, TM.p, SerializeDxilFlags::None,
|
||||
std::move(M), pResultBlob, TM.GetInstalledAllocator(), SerializeDxilFlags::None,
|
||||
pOutputStream,
|
||||
/*bDebugInfo*/ false
|
||||
#if !DISABLE_GET_CUSTOM_DIAG_ID
|
||||
|
@ -625,7 +625,7 @@ HRESULT STDMETHODCALLTYPE DxcDxrFallbackCompiler::Compile(
|
|||
|
||||
// Create a diagnostic printer
|
||||
CComPtr<AbstractMemoryStream> pDiagStream;
|
||||
IFT(CreateMemoryStream(TM.p, &pDiagStream));
|
||||
IFT(CreateMemoryStream(TM.GetInstalledAllocator(), &pDiagStream));
|
||||
raw_stream_ostream DiagStream(pDiagStream);
|
||||
DiagnosticPrinterRawOStream DiagPrinter(DiagStream);
|
||||
PrintDiagnosticContext DiagContext(DiagPrinter);
|
||||
|
@ -719,14 +719,14 @@ HRESULT STDMETHODCALLTYPE DxcDxrFallbackCompiler::Compile(
|
|||
if (M)
|
||||
{
|
||||
CComPtr<AbstractMemoryStream> pOutputStream;
|
||||
IFT(CreateMemoryStream(TM.p, &pOutputStream));
|
||||
IFT(CreateMemoryStream(TM.GetInstalledAllocator(), &pOutputStream));
|
||||
raw_stream_ostream outStream(pOutputStream.p);
|
||||
WriteBitcodeToFile(M.get(), outStream);
|
||||
outStream.flush();
|
||||
dxcutil::AssembleToContainer(
|
||||
std::move(M),
|
||||
pResultBlob,
|
||||
TM.p,
|
||||
TM.GetInstalledAllocator(),
|
||||
SerializeDxilFlags::None,
|
||||
pOutputStream);
|
||||
}
|
||||
|
|
|
@ -31,7 +31,7 @@ bool TestModuleSetup() {
|
|||
return false;
|
||||
if (FAILED(DxcInitThreadMalloc()))
|
||||
return false;
|
||||
DxcSetThreadMallocOrDefault(nullptr);
|
||||
DxcSetThreadMallocToDefault();
|
||||
|
||||
if (hlsl::options::initHlslOptTable()) {
|
||||
return false;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import urllib
|
||||
import urllib.request
|
||||
import os
|
||||
import ssl
|
||||
import zipfile
|
||||
|
@ -13,7 +13,7 @@ if not os.path.isdir(taef_dir):
|
|||
|
||||
try:
|
||||
ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
|
||||
response = urllib.urlopen(url, context=ctx)
|
||||
response = urllib.request.urlopen(url, context=ctx)
|
||||
f = open(zipfile_name, 'wb')
|
||||
f.write(response.read())
|
||||
f.close()
|
||||
|
|
Загрузка…
Ссылка в новой задаче