aboutsummaryrefslogtreecommitdiff
path: root/src/executor_test.cc
diff options
context:
space:
mode:
authordan sinclair <dj2@everburning.com>2019-02-20 15:00:04 -0500
committerGitHub <noreply@github.com>2019-02-20 15:00:04 -0500
commitff296ea40354da2f891b27dbd52a3d1685e31d8b (patch)
treec34158fa84317463b43f9393452d4eea819bdded /src/executor_test.cc
parentf2a13b59ad5cbff97c7a672e59766291a2eddaee (diff)
downloadamber-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.cc87
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());
}