Fix validation failures of test cases regarding GL_EXT_spirv_intrinsics

1. The test cases of OpReadClockKHR is invalid. The return type is
   unsigned integer rather than signed integer.
2. When SPIR-V decorate or SPIR-V type is specified, we should avoid
   auto location mapping because the semantics are totally decided by
   SPIR-V tokens.
This commit is contained in:
Rex Xu 2021-11-24 17:37:52 +08:00
parent 083bdc838a
commit 6c1db7fd6c
7 changed files with 48 additions and 56 deletions

View file

@ -4,10 +4,10 @@
#extension GL_ARB_gpu_shader_int64: enable
spirv_instruction (extensions = ["SPV_KHR_shader_clock"], capabilities = [5055], id = 5056)
uvec2 clockRealtime2x32EXT(void);
uvec2 clockRealtime2x32EXT(int);
spirv_instruction (extensions = ["SPV_KHR_shader_clock"], capabilities = [5055], id = 5056)
int64_t clockRealtimeEXT(void);
uint64_t clockRealtimeEXT(int);
spirv_instruction (extensions = ["SPV_AMD_shader_trinary_minmax"], set = "SPV_AMD_shader_trinary_minmax", id = 1)
vec2 min3(vec2 x, vec2 y, vec2 z);
@ -15,12 +15,12 @@ vec2 min3(vec2 x, vec2 y, vec2 z);
layout(location = 0) in vec3 vec3In;
layout(location = 0) out uvec2 uvec2Out;
layout(location = 1) out int64_t i64Out;
layout(location = 1) out uint64_t u64Out;
layout(location = 2) out vec2 vec2Out;
void main()
{
uvec2Out = clockRealtime2x32EXT();
i64Out = clockRealtimeEXT();
uvec2Out = clockRealtime2x32EXT(1);
u64Out = clockRealtimeEXT(1);
vec2Out = min3(vec3In.xy, vec3In.yz, vec3In.zx);
}
}