diff options
author | dan sinclair <dj2@everburning.com> | 2019-02-20 15:00:04 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-20 15:00:04 -0500 |
commit | ff296ea40354da2f891b27dbd52a3d1685e31d8b (patch) | |
tree | c34158fa84317463b43f9393452d4eea819bdded /src/executor_test.cc | |
parent | f2a13b59ad5cbff97c7a672e59766291a2eddaee (diff) | |
download | amber-ff296ea40354da2f891b27dbd52a3d1685e31d8b.tar.gz |
Add -ps option to allow compiling shaders. (#303)
This CL adds a -ps option to the sample app to allow parsing the script
and creating the pipeline. This will cause the driver SPIR-V compiler to
execute. The script is not run against the engine (and the engine is
not created).
Diffstat (limited to 'src/executor_test.cc')
-rw-r--r-- | src/executor_test.cc | 87 |
1 files changed, 58 insertions, 29 deletions
diff --git a/src/executor_test.cc b/src/executor_test.cc index c81c12a..d6e91bc 100644 --- a/src/executor_test.cc +++ b/src/executor_test.cc @@ -227,7 +227,8 @@ logicOp)"; script->RequiredExtensions()); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_TRUE(r.IsSuccess()); const auto& features = ToStub(engine.get())->GetFeatures(); @@ -255,7 +256,8 @@ VK_KHR_variable_pointers)"; script->RequiredExtensions()); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_TRUE(r.IsSuccess()); const auto& features = ToStub(engine.get())->GetFeatures(); @@ -283,7 +285,8 @@ depthstencil D24_UNORM_S8_UINT)"; script->RequiredExtensions()); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_TRUE(r.IsSuccess()); const auto& features = ToStub(engine.get())->GetFeatures(); @@ -308,7 +311,8 @@ fence_timeout 12345)"; script->RequiredExtensions()); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_TRUE(r.IsSuccess()); const auto& features = ToStub(engine.get())->GetFeatures(); @@ -339,7 +343,8 @@ fence_timeout 12345)"; script->RequiredExtensions()); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_TRUE(r.IsSuccess()); const auto& features = ToStub(engine.get())->GetFeatures(); @@ -367,7 +372,8 @@ clear)"; auto script = parser.GetScript(); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_TRUE(r.IsSuccess()); EXPECT_TRUE(ToStub(engine.get())->DidClearCommand()); } @@ -385,7 +391,8 @@ clear)"; auto script = parser.GetScript(); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_FALSE(r.IsSuccess()); EXPECT_EQ("clear command failed", r.Error()); } @@ -402,7 +409,8 @@ clear color 244 123 123 13)"; auto script = parser.GetScript(); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_TRUE(r.IsSuccess()); ASSERT_TRUE(ToStub(engine.get())->DidClearColorCommand()); @@ -429,7 +437,8 @@ clear color 123 123 123 123)"; auto script = parser.GetScript(); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_FALSE(r.IsSuccess()); EXPECT_EQ("clear color command failed", r.Error()); } @@ -446,7 +455,8 @@ clear depth 24)"; auto script = parser.GetScript(); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_TRUE(r.IsSuccess()); ASSERT_TRUE(ToStub(engine.get())->DidClearDepthCommand()); } @@ -464,7 +474,8 @@ clear depth 24)"; auto script = parser.GetScript(); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_FALSE(r.IsSuccess()); EXPECT_EQ("clear depth command failed", r.Error()); } @@ -481,7 +492,8 @@ clear stencil 24)"; auto script = parser.GetScript(); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_TRUE(r.IsSuccess()); ASSERT_TRUE(ToStub(engine.get())->DidClearStencilCommand()); } @@ -499,7 +511,8 @@ clear stencil 24)"; auto script = parser.GetScript(); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_FALSE(r.IsSuccess()); EXPECT_EQ("clear stencil command failed", r.Error()); } @@ -516,7 +529,8 @@ draw rect 2 4 10 20)"; auto script = parser.GetScript(); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_TRUE(r.IsSuccess()); ASSERT_TRUE(ToStub(engine.get())->DidDrawRectCommand()); } @@ -534,7 +548,8 @@ draw rect 2 4 10 20)"; auto script = parser.GetScript(); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_FALSE(r.IsSuccess()); EXPECT_EQ("draw rect command failed", r.Error()); } @@ -551,7 +566,8 @@ draw arrays TRIANGLE_LIST 0 0)"; auto script = parser.GetScript(); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_TRUE(r.IsSuccess()); ASSERT_TRUE(ToStub(engine.get())->DidDrawArraysCommand()); } @@ -569,7 +585,8 @@ draw arrays TRIANGLE_LIST 0 0)"; auto script = parser.GetScript(); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_FALSE(r.IsSuccess()); EXPECT_EQ("draw arrays command failed", r.Error()); } @@ -586,7 +603,8 @@ compute 2 3 4)"; auto script = parser.GetScript(); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_TRUE(r.IsSuccess()); ASSERT_TRUE(ToStub(engine.get())->DidComputeCommand()); } @@ -604,7 +622,8 @@ compute 2 3 4)"; auto script = parser.GetScript(); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_FALSE(r.IsSuccess()); EXPECT_EQ("compute command failed", r.Error()); } @@ -621,7 +640,8 @@ vertex entrypoint main)"; auto script = parser.GetScript(); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_TRUE(r.IsSuccess()); ASSERT_TRUE(ToStub(engine.get())->DidEntryPointCommand()); } @@ -639,7 +659,8 @@ vertex entrypoint main)"; auto script = parser.GetScript(); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_FALSE(r.IsSuccess()); EXPECT_EQ("entrypoint command failed", r.Error()); } @@ -656,7 +677,8 @@ patch parameter vertices 10)"; auto script = parser.GetScript(); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_TRUE(r.IsSuccess()); ASSERT_TRUE(ToStub(engine.get())->DidPatchParameterVerticesCommand()); } @@ -674,7 +696,8 @@ patch parameter vertices 10)"; auto script = parser.GetScript(); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_FALSE(r.IsSuccess()); EXPECT_EQ("patch command failed", r.Error()); } @@ -691,7 +714,8 @@ probe rect rgba 2 3 40 40 0.2 0.4 0.4 0.3)"; auto script = parser.GetScript(); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_TRUE(r.IsSuccess()); // ASSERT_TRUE(ToStub(engine.get())->DidProbeCommand()); } @@ -709,7 +733,8 @@ probe rect rgba 2 3 40 40 0.2 0.4 0.4 0.3)"; auto script = parser.GetScript(); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_FALSE(r.IsSuccess()); EXPECT_EQ("probe command failed", r.Error()); } @@ -726,7 +751,8 @@ ssbo 0 24)"; auto script = parser.GetScript(); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_TRUE(r.IsSuccess()); ASSERT_TRUE(ToStub(engine.get())->DidBufferCommand()); } @@ -744,7 +770,8 @@ ssbo 0 24)"; auto script = parser.GetScript(); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_FALSE(r.IsSuccess()); EXPECT_EQ("buffer command failed", r.Error()); } @@ -761,7 +788,8 @@ probe ssbo vec3 0 2 <= 2 3 4)"; auto script = parser.GetScript(); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_TRUE(r.IsSuccess()); // ASSERT_TRUE(ToStub(engine.get())->DidProbeSSBOCommand()); } @@ -779,7 +807,8 @@ probe ssbo vec3 0 2 <= 2 3 4)"; auto script = parser.GetScript(); Executor ex; - Result r = ex.Execute(engine.get(), script.get(), ShaderMap()); + Result r = ex.Execute(engine.get(), script.get(), ShaderMap(), + ExecutionType::kExecute); ASSERT_FALSE(r.IsSuccess()); EXPECT_EQ("probe ssbo command failed", r.Error()); } |