mirror of
https://github.com/KhronosGroup/SPIRV-Tools
synced 2024-11-26 05:10:05 +00:00
Test SPV_KHR_shader_draw_parameters support
In assembler, disassembler, parser.
This commit is contained in:
parent
f92e87a8f8
commit
ee6c877b53
1
CHANGES
1
CHANGES
@ -3,6 +3,7 @@ Revision history for SPIRV-Tools
|
|||||||
v2016.6-dev 2016-09-16
|
v2016.6-dev 2016-09-16
|
||||||
- Published the C++ interface for assembling, disassembling, validation, and
|
- Published the C++ interface for assembling, disassembling, validation, and
|
||||||
optimization.
|
optimization.
|
||||||
|
- Support SPV_KHR_shader_draw_parameters in assembler, disassembler, parser.
|
||||||
- Fixes issues:
|
- Fixes issues:
|
||||||
#429: Validator: Allow OpTypeForwardPointer and OpTypeStruct to reference
|
#429: Validator: Allow OpTypeForwardPointer and OpTypeStruct to reference
|
||||||
undefined IDs
|
undefined IDs
|
||||||
|
@ -90,18 +90,16 @@ TEST_F(TextToBinaryTest, ExtInstFromTwoDifferentImports) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// SPV_KHR_shader_ballot
|
|
||||||
|
|
||||||
// A test case for assembling into words in an instruction.
|
// A test case for assembling into words in an instruction.
|
||||||
struct AssemblyCase {
|
struct AssemblyCase {
|
||||||
std::string input;
|
std::string input;
|
||||||
std::vector<uint32_t> expected;
|
std::vector<uint32_t> expected;
|
||||||
};
|
};
|
||||||
|
|
||||||
using SPV_KHR_shader_ballot_Test = spvtest::TextToBinaryTestBase<
|
using ExtensionRoundTripTest = spvtest::TextToBinaryTestBase<
|
||||||
::testing::TestWithParam<std::tuple<spv_target_env, AssemblyCase>>>;
|
::testing::TestWithParam<std::tuple<spv_target_env, AssemblyCase>>>;
|
||||||
|
|
||||||
TEST_P(SPV_KHR_shader_ballot_Test, Samples) {
|
TEST_P(ExtensionRoundTripTest, Samples) {
|
||||||
const spv_target_env& env = std::get<0>(GetParam());
|
const spv_target_env& env = std::get<0>(GetParam());
|
||||||
const AssemblyCase& ac = std::get<1>(GetParam());
|
const AssemblyCase& ac = std::get<1>(GetParam());
|
||||||
|
|
||||||
@ -114,8 +112,10 @@ TEST_P(SPV_KHR_shader_ballot_Test, Samples) {
|
|||||||
Eq(ac.input));
|
Eq(ac.input));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SPV_KHR_shader_ballot
|
||||||
|
|
||||||
INSTANTIATE_TEST_CASE_P(
|
INSTANTIATE_TEST_CASE_P(
|
||||||
Assembly, SPV_KHR_shader_ballot_Test,
|
SPV_KHR_shader_ballot, ExtensionRoundTripTest,
|
||||||
// We'll get coverage over operand tables by trying the universal
|
// We'll get coverage over operand tables by trying the universal
|
||||||
// environments, and at least one specific environment.
|
// environments, and at least one specific environment.
|
||||||
Combine(Values(SPV_ENV_UNIVERSAL_1_0, SPV_ENV_UNIVERSAL_1_1,
|
Combine(Values(SPV_ENV_UNIVERSAL_1_0, SPV_ENV_UNIVERSAL_1_1,
|
||||||
@ -145,4 +145,27 @@ INSTANTIATE_TEST_CASE_P(
|
|||||||
SpvBuiltInSubgroupLtMaskKHR})},
|
SpvBuiltInSubgroupLtMaskKHR})},
|
||||||
})), );
|
})), );
|
||||||
|
|
||||||
|
// SPV_KHR_shader_draw_parameters
|
||||||
|
|
||||||
|
INSTANTIATE_TEST_CASE_P(
|
||||||
|
SPV_KHR_shader_draw_parameters, ExtensionRoundTripTest,
|
||||||
|
// We'll get coverage over operand tables by trying the universal
|
||||||
|
// environments, and at least one specific environment.
|
||||||
|
Combine(
|
||||||
|
Values(SPV_ENV_UNIVERSAL_1_0, SPV_ENV_UNIVERSAL_1_1,
|
||||||
|
SPV_ENV_VULKAN_1_0),
|
||||||
|
ValuesIn(std::vector<AssemblyCase>{
|
||||||
|
{"OpCapability DrawParameters\n",
|
||||||
|
MakeInstruction(SpvOpCapability, {SpvCapabilityDrawParameters})},
|
||||||
|
{"OpDecorate %1 BuiltIn BaseVertex\n",
|
||||||
|
MakeInstruction(SpvOpDecorate,
|
||||||
|
{1, SpvDecorationBuiltIn, SpvBuiltInBaseVertex})},
|
||||||
|
{"OpDecorate %1 BuiltIn BaseInstance\n",
|
||||||
|
MakeInstruction(SpvOpDecorate, {1, SpvDecorationBuiltIn,
|
||||||
|
SpvBuiltInBaseInstance})},
|
||||||
|
{"OpDecorate %1 BuiltIn DrawIndex\n",
|
||||||
|
MakeInstruction(SpvOpDecorate,
|
||||||
|
{1, SpvDecorationBuiltIn, SpvBuiltInDrawIndex})},
|
||||||
|
})), );
|
||||||
|
|
||||||
} // anonymous namespace
|
} // anonymous namespace
|
||||||
|
Loading…
Reference in New Issue
Block a user