aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench
diff options
context:
space:
mode:
Diffstat (limited to 'bench')
-rw-r--r--bench/GLBench.cpp29
-rw-r--r--bench/GLBench.h4
-rw-r--r--bench/GLInstancedArraysBench.cpp4
-rw-r--r--bench/GLVec4ScalarBench.cpp4
-rw-r--r--bench/GLVertexAttributesBench.cpp6
5 files changed, 18 insertions, 29 deletions
diff --git a/bench/GLBench.cpp b/bench/GLBench.cpp
index b6975508cf..8cf41c2056 100644
--- a/bench/GLBench.cpp
+++ b/bench/GLBench.cpp
@@ -11,10 +11,7 @@
#include "GrGpu.h"
#include "GrTest.h"
#include "gl/GrGLContext.h"
-#include "gl/builders/GrGLShaderStringBuilder.h"
-#include "SkSLCompiler.h"
#include <stdio.h>
-#include <string>
const GrGLContext* GLBench::getGLContext(SkCanvas* canvas) {
// This bench exclusively tests GL calls directly
@@ -64,26 +61,13 @@ void GLBench::onDraw(int loops, SkCanvas* canvas) {
canvas->getGrContext()->resetContext();
}
-GrGLuint GLBench::CompileShader(const GrGLContext* context, const char* sksl, GrGLenum type) {
- const GrGLInterface* gl = context->interface();
- std::string glsl;
- bool result = context->compiler()->toGLSL(type == GR_GL_VERTEX_SHADER
- ? SkSL::Program::kVertex_Kind
- : SkSL::Program::kFragment_Kind,
- std::string(sksl),
- GrGLSkSLCapsForContext(*context),
- &glsl);
- if (!result) {
- SkDebugf("SkSL compilation failed:\n%s\n%s\n", sksl,
- context->compiler()->errorText().c_str());
- }
+GrGLuint GLBench::CompileShader(const GrGLInterface* gl, const char* shaderSrc, GrGLenum type) {
GrGLuint shader;
// Create the shader object
GR_GL_CALL_RET(gl, shader, CreateShader(type));
// Load the shader source
- const char* glslPtr = glsl.c_str();
- GR_GL_CALL(gl, ShaderSource(shader, 1, (const char**) &glslPtr, nullptr));
+ GR_GL_CALL(gl, ShaderSource(shader, 1, &shaderSrc, nullptr));
// Compile the shader
GR_GL_CALL(gl, CompileShader(shader));
@@ -100,11 +84,10 @@ GrGLuint GLBench::CompileShader(const GrGLContext* context, const char* sksl, Gr
return shader;
}
-GrGLuint GLBench::CreateProgram(const GrGLContext* context, const char* vshader,
- const char* fshader) {
- const GrGLInterface* gl = context->interface();
- GrGLuint vertexShader = CompileShader(context, vshader, GR_GL_VERTEX_SHADER);
- GrGLuint fragmentShader = CompileShader(context, fshader, GR_GL_FRAGMENT_SHADER);
+GrGLuint GLBench::CreateProgram(const GrGLInterface* gl, const char* vshader, const char* fshader) {
+
+ GrGLuint vertexShader = CompileShader(gl, vshader, GR_GL_VERTEX_SHADER);
+ GrGLuint fragmentShader = CompileShader(gl, fshader, GR_GL_FRAGMENT_SHADER);
GrGLuint shaderProgram;
GR_GL_CALL_RET(gl, shaderProgram, CreateProgram());
diff --git a/bench/GLBench.h b/bench/GLBench.h
index a358894cb4..9033b12e55 100644
--- a/bench/GLBench.h
+++ b/bench/GLBench.h
@@ -35,8 +35,8 @@ protected:
virtual void teardown(const GrGLInterface*)=0;
void onDraw(int loops, SkCanvas*) override;
virtual void glDraw(int loops, const GrGLContext*)=0;
- static GrGLuint CompileShader(const GrGLContext*, const char* shaderSrc, GrGLenum type);
- static GrGLuint CreateProgram(const GrGLContext*, const char* vshader, const char* fshader);
+ static GrGLuint CompileShader(const GrGLInterface*, const char* shaderSrc, GrGLenum type);
+ static GrGLuint CreateProgram(const GrGLInterface*, const char* vshader, const char* fshader);
static GrGLuint SetupFramebuffer(const GrGLInterface*, int screenWidth, int screenHeight);
static void DumpImage(const GrGLInterface* gl, uint32_t screenWidth, uint32_t screenHeight,
const char* filename);
diff --git a/bench/GLInstancedArraysBench.cpp b/bench/GLInstancedArraysBench.cpp
index e98ab72587..d89c087605 100644
--- a/bench/GLInstancedArraysBench.cpp
+++ b/bench/GLInstancedArraysBench.cpp
@@ -130,6 +130,8 @@ GrGLuint GLCpuPosInstancedArraysBench::setupShader(const GrGLContext* ctx) {
"o_color = a_color;\n"
"}\n");
+ const GrGLInterface* gl = ctx->interface();
+
// setup fragment shader
GrGLSLShaderVar oFragColor("o_FragColor", kVec4f_GrSLType, GrShaderVar::kOut_TypeModifier);
SkString fshaderTxt(version);
@@ -153,7 +155,7 @@ GrGLuint GLCpuPosInstancedArraysBench::setupShader(const GrGLContext* ctx) {
"%s = vec4(o_color, 1.0);\n"
"}\n", fsOutName);
- return CreateProgram(ctx, vshaderTxt.c_str(), fshaderTxt.c_str());
+ return CreateProgram(gl, vshaderTxt.c_str(), fshaderTxt.c_str());
}
template<typename Func>
diff --git a/bench/GLVec4ScalarBench.cpp b/bench/GLVec4ScalarBench.cpp
index 373ae6b7bc..e3837a7225 100644
--- a/bench/GLVec4ScalarBench.cpp
+++ b/bench/GLVec4ScalarBench.cpp
@@ -124,6 +124,8 @@ GrGLuint GLVec4ScalarBench::setupShader(const GrGLContext* ctx) {
" o_color = a_color;\n"
"}\n");
+ const GrGLInterface* gl = ctx->interface();
+
// set up fragment shader; this fragment shader will have fNumStages coverage stages plus an
// XP stage at the end. Each coverage stage computes the pixel's distance from some hard-
// coded center and compare that to some hard-coded circle radius to compute a coverage.
@@ -184,7 +186,7 @@ GrGLuint GLVec4ScalarBench::setupShader(const GrGLContext* ctx) {
"}\n",
fsOutName);
- return CreateProgram(ctx, vshaderTxt.c_str(), fshaderTxt.c_str());
+ return CreateProgram(gl, vshaderTxt.c_str(), fshaderTxt.c_str());
}
template<typename Func>
diff --git a/bench/GLVertexAttributesBench.cpp b/bench/GLVertexAttributesBench.cpp
index f579a3ea39..040ca18300 100644
--- a/bench/GLVertexAttributesBench.cpp
+++ b/bench/GLVertexAttributesBench.cpp
@@ -114,6 +114,8 @@ GrGLuint GLVertexAttributesBench::setupShader(const GrGLContext* ctx, uint32_t a
vshaderTxt.append("}\n");
+ const GrGLInterface* gl = ctx->interface();
+
// setup fragment shader
GrGLSLShaderVar oFragColor("o_FragColor", kVec4f_GrSLType, GrShaderVar::kOut_TypeModifier);
SkString fshaderTxt(version);
@@ -125,7 +127,7 @@ GrGLuint GLVertexAttributesBench::setupShader(const GrGLContext* ctx, uint32_t a
fshaderTxt.append(";\n");
fsOutName = oFragColor.c_str();
} else {
- fsOutName = "sk_FragColor";
+ fsOutName = "gl_FragColor";
}
for (uint32_t i = 0; i < maxAttribs; i++) {
@@ -147,7 +149,7 @@ GrGLuint GLVertexAttributesBench::setupShader(const GrGLContext* ctx, uint32_t a
fshaderTxt.append(";\n"
"}\n");
- return CreateProgram(ctx, vshaderTxt.c_str(), fshaderTxt.c_str());
+ return CreateProgram(gl, vshaderTxt.c_str(), fshaderTxt.c_str());
}
///////////////////////////////////////////////////////////////////////////////////////////////////