[spirv] Fix target env error message. (#3346)

This commit is contained in:
Ehsan 2021-01-21 10:22:11 -06:00 коммит произвёл GitHub
Родитель 9dca645a99
Коммит bcf56f2670
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
3 изменённых файлов: 32 добавлений и 1 удалений

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

@ -97,7 +97,7 @@ bool FeatureManager::requestTargetEnv(spv_target_env requestedEnv,
SourceLocation srcLoc) { SourceLocation srcLoc) {
if (targetEnv < requestedEnv) { if (targetEnv < requestedEnv) {
emitError("%0 is required for %1 but not permitted to use", srcLoc) emitError("%0 is required for %1 but not permitted to use", srcLoc)
<< (requestedEnv == SPV_ENV_VULKAN_1_2 ? "Vulkan 1.2" : "Vulkan 1.1") << (requestedEnv > SPV_ENV_VULKAN_1_1 ? "Vulkan 1.2" : "Vulkan 1.1")
<< target; << target;
emitNote("please specify your target environment via command line option " emitNote("please specify your target environment via command line option "
"-fspv-target-env=", "-fspv-target-env=",

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

@ -0,0 +1,27 @@
// Run: %dxc -T lib_6_3
// CHECK: error: Vulkan 1.2 is required for Raytracing but not permitted to use
struct Payload {
float4 color;
};
struct CallData {
float4 data;
};
struct Attribute {
float2 bary;
};
RaytracingAccelerationStructure rs;
[shader("closesthit")]
void main(inout Payload MyPayload, in Attribute MyAttr) {
Payload myPayload = { float4(0.0f,0.0f,0.0f,0.0f) };
CallData myCallData = { float4(0.0f,0.0f,0.0f,0.0f) };
RayDesc rayDesc;
rayDesc.Origin = float3(0.0f, 0.0f, 0.0f);
rayDesc.Direction = float3(0.0f, 0.0f, -1.0f);
rayDesc.TMin = 0.0f;
rayDesc.TMax = 1000.0f;
TraceRay(rs, 0x0, 0xff, 0, 1, 0, rayDesc, myPayload);
CallShader(0, myCallData);
}

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

@ -2269,6 +2269,10 @@ TEST_F(FileTest, RayTracingTerminate) {
runFileTest("raytracing.khr.terminate.hlsl"); runFileTest("raytracing.khr.terminate.hlsl");
} }
TEST_F(FileTest, RayTracingTargetEnvErro) {
runFileTest("raytracing.target-env-error.hlsl", Expect::Failure);
}
// For decoration uniqueness // For decoration uniqueness
TEST_F(FileTest, DecorationUnique) { runFileTest("decoration.unique.hlsl"); } TEST_F(FileTest, DecorationUnique) { runFileTest("decoration.unique.hlsl"); }