spvType = builder.makeFloatType(64);
break;
case glslang::EbtFloat16:
-#if AMD_EXTENSIONS
- if (builder.getSpvVersion() < glslang::EShTargetSpv_1_3)
- builder.addExtension(spv::E_SPV_AMD_gpu_shader_half_float);
-#endif
spvType = builder.makeFloatType(16);
break;
case glslang::EbtBool:
spvType = builder.makeUintType(8);
break;
case glslang::EbtInt16:
-#ifdef AMD_EXTENSIONS
- if (builder.getSpvVersion() < glslang::EShTargetSpv_1_3)
- builder.addExtension(spv::E_SPV_AMD_gpu_shader_int16);
-#endif
spvType = builder.makeIntType(16);
break;
case glslang::EbtUint16:
-#ifdef AMD_EXTENSIONS
- if (builder.getSpvVersion() < glslang::EShTargetSpv_1_3)
- builder.addExtension(spv::E_SPV_AMD_gpu_shader_int16);
-#endif
spvType = builder.makeUintType(16);
break;
case glslang::EbtInt:
case OpSConvert:
case OpUConvert:
break;
+ case OpExtInst:
+ switch (inst.getImmediateOperand(1)) {
+#if AMD_EXTENSIONS
+ case GLSLstd450Frexp:
+ case GLSLstd450FrexpStruct:
+ if (getSpvVersion() < glslang::EShTargetSpv_1_3 && containsType(typeId, OpTypeInt, 16))
+ addExtension(spv::E_SPV_AMD_gpu_shader_int16);
+ break;
+ case GLSLstd450InterpolateAtCentroid:
+ case GLSLstd450InterpolateAtSample:
+ case GLSLstd450InterpolateAtOffset:
+ if (getSpvVersion() < glslang::EShTargetSpv_1_3 && containsType(typeId, OpTypeFloat, 16))
+ addExtension(spv::E_SPV_AMD_gpu_shader_half_float);
+ break;
+#endif
+ default:
+ break;
+ }
+ break;
default:
if (basicTypeOp == OpTypeFloat && width == 16)
addCapability(CapabilityFloat16);
Capability Shader
Capability StorageUniformBufferBlock16
Capability StorageUniform16
- Extension "SPV_AMD_gpu_shader_int16"
Extension "SPV_KHR_16bit_storage"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
Capability Shader
Capability StorageUniformBufferBlock16
Capability StorageUniform16
- Extension "SPV_AMD_gpu_shader_int16"
Extension "SPV_KHR_16bit_storage"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
Capability Shader
Capability StorageUniformBufferBlock16
Capability StorageUniform16
- Extension "SPV_AMD_gpu_shader_half_float"
Extension "SPV_KHR_16bit_storage"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
Capability StorageInputOutput16
Capability Float16ImageAMD
Capability ImageGatherBiasLodAMD
- Extension "SPV_AMD_gpu_shader_half_float"
Extension "SPV_AMD_gpu_shader_half_float_fetch"
Extension "SPV_AMD_texture_gather_bias_lod"
Extension "SPV_KHR_16bit_storage"
Capability Int16
Capability StorageUniform16
Capability StorageInputOutput16
- Extension "SPV_AMD_gpu_shader_half_float"
Extension "SPV_AMD_gpu_shader_int16"
Extension "SPV_KHR_16bit_storage"
1: ExtInstImport "GLSL.std.450"
Capability Int16
Capability Int8
Capability StorageUniform16
- Extension "SPV_AMD_gpu_shader_half_float"
- Extension "SPV_AMD_gpu_shader_int16"
Extension "SPV_KHR_16bit_storage"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
Capability Groups
Capability Int16
Capability StorageUniformBufferBlock16
- Extension "SPV_AMD_gpu_shader_half_float"
- Extension "SPV_AMD_gpu_shader_int16"
Extension "SPV_AMD_shader_ballot"
Extension "SPV_KHR_16bit_storage"
1: ExtInstImport "GLSL.std.450"