Commit e1a763d1 by Shahbaz Youssefi Committed by Commit Bot

Vulkan: Implement basic barrier perf test

There's a lot more that can go into this perf test, but it requires further work on the Vulkan back end. Bug: angleproject:2999 Change-Id: Iea62bfd09639af108674dcf0a9e7c9d36ccddcef Reviewed-on: https://chromium-review.googlesource.com/c/1437734 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org>
parent e923a63e
...@@ -18,8 +18,8 @@ import re ...@@ -18,8 +18,8 @@ import re
base_path = os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), '..')) base_path = os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), '..'))
# Might have to add lower case "release" in some configurations. # Look for a [Rr]elease build.
perftests_paths = glob.glob('out/*Release*') perftests_paths = glob.glob('out/*elease*')
metric = 'wall_time' metric = 'wall_time'
max_experiments = 10 max_experiments = 10
......
...@@ -25,6 +25,7 @@ angle_perf_tests_sources = [ ...@@ -25,6 +25,7 @@ angle_perf_tests_sources = [
"perf_tests/TextureSampling.cpp", "perf_tests/TextureSampling.cpp",
"perf_tests/TexturesPerf.cpp", "perf_tests/TexturesPerf.cpp",
"perf_tests/UniformsPerf.cpp", "perf_tests/UniformsPerf.cpp",
"perf_tests/VulkanBarriersPerf.cpp",
"perf_tests/third_party/perf/perf_test.cc", "perf_tests/third_party/perf/perf_test.cc",
"perf_tests/third_party/perf/perf_test.h", "perf_tests/third_party/perf/perf_test.h",
"test_utils/angle_test_configs.cpp", "test_utils/angle_test_configs.cpp",
......
...@@ -44,7 +44,7 @@ class PointSpritesTest : public ANGLETest ...@@ -44,7 +44,7 @@ class PointSpritesTest : public ANGLETest
float s2p(float s) { return (s + 1.0f) * 0.5f * (GLfloat)windowWidth; } float s2p(float s) { return (s + 1.0f) * 0.5f * (GLfloat)windowWidth; }
void testPointCoordAndPointSizeCompliance(priv::GLProgram program) void testPointCoordAndPointSizeCompliance(GLProgram program)
{ {
glUseProgram(program); glUseProgram(program);
......
...@@ -128,9 +128,7 @@ class GLShader : angle::NonCopyable ...@@ -128,9 +128,7 @@ class GLShader : angle::NonCopyable
GLuint mHandle; GLuint mHandle;
}; };
// Don't use GLProgram directly, use ANGLE_GL_PROGRAM. // Prefer ANGLE_GL_PROGRAM for local variables.
namespace priv
{
class GLProgram class GLProgram
{ {
public: public:
...@@ -182,40 +180,39 @@ class GLProgram ...@@ -182,40 +180,39 @@ class GLProgram
private: private:
GLuint mHandle; GLuint mHandle;
}; };
} // namespace priv
#define ANGLE_GL_EMPTY_PROGRAM(name) \ #define ANGLE_GL_EMPTY_PROGRAM(name) \
priv::GLProgram name; \ GLProgram name; \
name.makeEmpty(); \ name.makeEmpty(); \
ASSERT_TRUE(name.valid()) ASSERT_TRUE(name.valid())
#define ANGLE_GL_PROGRAM(name, vertex, fragment) \ #define ANGLE_GL_PROGRAM(name, vertex, fragment) \
priv::GLProgram name; \ GLProgram name; \
name.makeRaster(vertex, fragment); \ name.makeRaster(vertex, fragment); \
ASSERT_TRUE(name.valid()) ASSERT_TRUE(name.valid())
#define ANGLE_GL_PROGRAM_WITH_GS(name, vertex, geometry, fragment) \ #define ANGLE_GL_PROGRAM_WITH_GS(name, vertex, geometry, fragment) \
priv::GLProgram name; \ GLProgram name; \
name.makeRaster(vertex, geometry, fragment); \ name.makeRaster(vertex, geometry, fragment); \
ASSERT_TRUE(name.valid()) ASSERT_TRUE(name.valid())
#define ANGLE_GL_PROGRAM_TRANSFORM_FEEDBACK(name, vertex, fragment, tfVaryings, bufferMode) \ #define ANGLE_GL_PROGRAM_TRANSFORM_FEEDBACK(name, vertex, fragment, tfVaryings, bufferMode) \
priv::GLProgram name; \ GLProgram name; \
name.makeRasterWithTransformFeedback(vertex, fragment, tfVaryings, bufferMode); \ name.makeRasterWithTransformFeedback(vertex, fragment, tfVaryings, bufferMode); \
ASSERT_TRUE(name.valid()) ASSERT_TRUE(name.valid())
#define ANGLE_GL_COMPUTE_PROGRAM(name, compute) \ #define ANGLE_GL_COMPUTE_PROGRAM(name, compute) \
priv::GLProgram name; \ GLProgram name; \
name.makeCompute(compute); \ name.makeCompute(compute); \
ASSERT_TRUE(name.valid()) ASSERT_TRUE(name.valid())
#define ANGLE_GL_BINARY_OES_PROGRAM(name, binary, binaryFormat) \ #define ANGLE_GL_BINARY_OES_PROGRAM(name, binary, binaryFormat) \
priv::GLProgram name; \ GLProgram name; \
name.makeBinaryOES(binary, binaryFormat); \ name.makeBinaryOES(binary, binaryFormat); \
ASSERT_TRUE(name.valid()) ASSERT_TRUE(name.valid())
#define ANGLE_GL_BINARY_ES3_PROGRAM(name, binary, binaryFormat) \ #define ANGLE_GL_BINARY_ES3_PROGRAM(name, binary, binaryFormat) \
priv::GLProgram name; \ GLProgram name; \
name.makeBinaryES3(binary, binaryFormat); \ name.makeBinaryES3(binary, binaryFormat); \
ASSERT_TRUE(name.valid()) ASSERT_TRUE(name.valid())
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment