MCPcopy Create free account
hub / github.com/KhronosGroup/SPIRV-Tools / GetSizedVariableCodeGenerator

Function GetSizedVariableCodeGenerator

test/val/val_memory_test.cpp:5493–5537  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5491 std::tuple<std::string, std::string, std::string, spv_target_env>>;
5492
5493CodeGenerator GetSizedVariableCodeGenerator(bool is_8bit, bool buffer_block) {
5494 CodeGenerator generator;
5495 generator.capabilities_ = "OpCapability Shader\nOpCapability Linkage\n";
5496 generator.extensions_ =
5497 "OpExtension \"SPV_KHR_16bit_storage\"\nOpExtension "
5498 "\"SPV_KHR_8bit_storage\"\n";
5499 generator.memory_model_ = "OpMemoryModel Logical GLSL450\n";
5500 if (is_8bit) {
5501 generator.before_types_ =
5502 "OpMemberDecorate %char_buffer_block 0 Offset 0\n";
5503 if (buffer_block)
5504 generator.before_types_ += "OpDecorate %char_buffer_block BufferBlock\n";
5505
5506 generator.types_ = R"(%void = OpTypeVoid
5507%char = OpTypeInt 8 0
5508%char4 = OpTypeVector %char 4
5509%char_buffer_block = OpTypeStruct %char
5510)";
5511 } else {
5512 generator.before_types_ =
5513 "OpMemberDecorate %half_buffer_block 0 Offset 0\n"
5514 "OpMemberDecorate %short_buffer_block 0 Offset 0\n";
5515 if (buffer_block) {
5516 generator.before_types_ +=
5517 "OpDecorate %half_buffer_block BufferBlock\n"
5518 "OpDecorate %short_buffer_block BufferBlock\n";
5519 }
5520
5521 generator.types_ = R"(%void = OpTypeVoid
5522%short = OpTypeInt 16 0
5523%half = OpTypeFloat 16
5524%short4 = OpTypeVector %short 4
5525%half4 = OpTypeVector %half 4
5526%mat4x4 = OpTypeMatrix %half4 4
5527%short_buffer_block = OpTypeStruct %short
5528%half_buffer_block = OpTypeStruct %half
5529)";
5530 }
5531 generator.after_types_ = R"(%void_fn = OpTypeFunction %void
5532%func = OpFunction %void None %void_fn
5533%entry = OpLabel
5534)";
5535 generator.add_at_the_end_ = "OpReturn\nOpFunctionEnd\n";
5536 return generator;
5537}
5538
5539TEST_P(ValidateSizedVariable, Capability) {
5540 const std::string storage_class = std::get<0>(GetParam());

Callers 1

TEST_PFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected