20 using VS = SpecConstantVertexShader;
21 using FS = SpecConstantFragmentShader;
22 auto context = GetContext();
25 ASSERT_TRUE(desc.has_value());
26 auto pipeline = context->GetPipelineLibrary()->GetPipeline(desc).Get();
27 ASSERT_TRUE(pipeline && pipeline->IsValid());
33 ASSERT_FALSE(desc->IsEqual(new_desc.value()));
35 context->GetPipelineLibrary()->GetPipeline(new_desc).Get();
36 ASSERT_TRUE(new_pipeline && new_pipeline->IsValid());
40 ASSERT_FALSE(pipeline_gles.GetProgramHandle().IsDead());
41 ASSERT_FALSE(new_pipeline_gles.GetProgramHandle().IsDead());
42 ASSERT_EQ(pipeline_gles.GetProgramHandle().GetName().value(),
43 new_pipeline_gles.GetProgramHandle().GetName().value());
47 using VS = SpecConstantVertexShader;
48 using FS = SpecConstantFragmentShader;
49 auto context = GetContext();
52 ASSERT_TRUE(desc.has_value());
53 desc->SetSpecializationConstants({2.0f});
54 auto pipeline = context->GetPipelineLibrary()->GetPipeline(desc).Get();
55 ASSERT_TRUE(pipeline && pipeline->IsValid());
58 new_desc->SetSpecializationConstants({4.0f});
60 context->GetPipelineLibrary()->GetPipeline(new_desc).Get();
61 ASSERT_TRUE(new_pipeline && new_pipeline->IsValid());
65 ASSERT_FALSE(pipeline_gles.GetProgramHandle().IsDead());
66 ASSERT_FALSE(new_pipeline_gles.GetProgramHandle().IsDead());
67 ASSERT_FALSE(pipeline_gles.GetProgramHandle().GetName().value() ==
68 new_pipeline_gles.GetProgramHandle().GetName().value());
72 using VS = SpecConstantVertexShader;
73 using FS = SpecConstantFragmentShader;
74 std::shared_ptr<Context> context = GetContext();
75 std::optional<PipelineDescriptor> desc =
78 std::shared_ptr<Pipeline<PipelineDescriptor>> pipeline =
79 context->GetPipelineLibrary()->GetPipeline(desc).Get();
80 ASSERT_TRUE(pipeline && pipeline->IsValid());
82 HandleGLES handle = pipeline_gles.GetProgramHandle();
87 context->GetPipelineLibrary()->RemovePipelinesWithEntryPoint(entrypoint);
90 std::shared_ptr<Pipeline<PipelineDescriptor>> pipeline_2 =
91 context->GetPipelineLibrary()->GetPipeline(desc).Get();
92 ASSERT_TRUE(pipeline && pipeline->IsValid());
94 HandleGLES handle_2 = pipeline_gles_2.GetProgramHandle();