Support SPV_GOOGLE_decorate_string and SPV_GOOGLE_hlsl_functionality1

This commit add assembling, disassembling, and basic validation for two
Google extensions to better support HLSL translation.
This commit is contained in:
David Neto
2018-03-05 13:34:13 -05:00
committed by Lei Zhang
parent c7f0433b9e
commit 05a293d6d5
8 changed files with 121 additions and 50 deletions
+21 -17
View File
@@ -67,23 +67,27 @@ TEST_P(CapabilityTest, TestCapabilityToString) {
INSTANTIATE_TEST_CASE_P(
AllExtensions, ExtensionTest,
ValuesIn(std::vector<std::pair<Extension, std::string>>(
{{Extension::kSPV_KHR_16bit_storage, "SPV_KHR_16bit_storage"},
{Extension::kSPV_KHR_device_group, "SPV_KHR_device_group"},
{Extension::kSPV_KHR_multiview, "SPV_KHR_multiview"},
{Extension::kSPV_KHR_shader_ballot, "SPV_KHR_shader_ballot"},
{Extension::kSPV_KHR_shader_draw_parameters,
"SPV_KHR_shader_draw_parameters"},
{Extension::kSPV_KHR_subgroup_vote, "SPV_KHR_subgroup_vote"},
{Extension::kSPV_NVX_multiview_per_view_attributes,
"SPV_NVX_multiview_per_view_attributes"},
{Extension::kSPV_NV_geometry_shader_passthrough,
"SPV_NV_geometry_shader_passthrough"},
{Extension::kSPV_NV_sample_mask_override_coverage,
"SPV_NV_sample_mask_override_coverage"},
{Extension::kSPV_NV_stereo_view_rendering,
"SPV_NV_stereo_view_rendering"},
{Extension::kSPV_NV_viewport_array2, "SPV_NV_viewport_array2"}})));
ValuesIn(std::vector<std::pair<Extension, std::string>>({
{Extension::kSPV_KHR_16bit_storage, "SPV_KHR_16bit_storage"},
{Extension::kSPV_KHR_device_group, "SPV_KHR_device_group"},
{Extension::kSPV_KHR_multiview, "SPV_KHR_multiview"},
{Extension::kSPV_KHR_shader_ballot, "SPV_KHR_shader_ballot"},
{Extension::kSPV_KHR_shader_draw_parameters,
"SPV_KHR_shader_draw_parameters"},
{Extension::kSPV_KHR_subgroup_vote, "SPV_KHR_subgroup_vote"},
{Extension::kSPV_NVX_multiview_per_view_attributes,
"SPV_NVX_multiview_per_view_attributes"},
{Extension::kSPV_NV_geometry_shader_passthrough,
"SPV_NV_geometry_shader_passthrough"},
{Extension::kSPV_NV_sample_mask_override_coverage,
"SPV_NV_sample_mask_override_coverage"},
{Extension::kSPV_NV_stereo_view_rendering,
"SPV_NV_stereo_view_rendering"},
{Extension::kSPV_NV_viewport_array2, "SPV_NV_viewport_array2"},
{Extension::kSPV_GOOGLE_decorate_string, "SPV_GOOGLE_decorate_string"},
{Extension::kSPV_GOOGLE_hlsl_functionality1,
"SPV_GOOGLE_hlsl_functionality1"},
})));
INSTANTIATE_TEST_CASE_P(UnknownExtensions, UnknownExtensionTest,
Values("", "SPV_KHR_", "SPV_KHR_device_group_ERROR",