Map CompType::Kind::I1 to DxilProgramSigCompType::UIn32 (#1992)

Fix bool mapping to unknown component type in shader signature that can cause PSO signature validation error.

Fixes #1993.
This commit is contained in:
Tex Riddell 2019-03-03 13:08:56 -08:00 коммит произвёл GitHub
Родитель c6cd8c8b55
Коммит f60c283e2c
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 10 добавлений и 1 удалений

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

@ -101,6 +101,7 @@ static DxilProgramSigSemantic KindToSystemValue(Semantic::Kind kind, DXIL::Tesse
static DxilProgramSigCompType CompTypeToSigCompType(hlsl::CompType value) {
switch (value.GetKind()) {
case CompType::Kind::I32: return DxilProgramSigCompType::SInt32;
case CompType::Kind::I1: __fallthrough;
case CompType::Kind::U32: return DxilProgramSigCompType::UInt32;
case CompType::Kind::F32: return DxilProgramSigCompType::Float32;
case CompType::Kind::I16: return DxilProgramSigCompType::SInt16;
@ -110,7 +111,6 @@ static DxilProgramSigCompType CompTypeToSigCompType(hlsl::CompType value) {
case CompType::Kind::F16: return DxilProgramSigCompType::Float16;
case CompType::Kind::F64: return DxilProgramSigCompType::Float64;
case CompType::Kind::Invalid: __fallthrough;
case CompType::Kind::I1: __fallthrough;
default:
return DxilProgramSigCompType::Unknown;
}

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

@ -0,0 +1,9 @@
// RUN: %dxc -E main -T ps_6_0 %s | FileCheck %s
// make sure bool maps to uint in signature
// CHECK: ; BOOL 0 x 0 NONE uint
float4 main(bool b : BOOL) : SV_Target
{
return b ? 1.0 : 0.0;
}