diff options
author | Francisco Jerez <currojerez@riseup.net> | 2016-09-17 00:33:06 -0700 |
---|---|---|
committer | Francisco Jerez <currojerez@riseup.net> | 2016-11-07 14:07:05 -0800 |
commit | 36e225d034bdc183c0001b469cda111c4328b4ad (patch) | |
tree | e34ca675afe3a34a123e5e54a21ed67d613a3dca | |
parent | 31b8c1c43bbf511a3a1101b543e63497095d73fc (diff) |
shader_runner: Add multisample framebuffer binding command.
"fb ms <format> <width> <height> <samples>" binds a fresh multisample
framebuffer object with the given format and dimensions.
-rw-r--r-- | tests/shaders/shader_runner.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/shaders/shader_runner.c b/tests/shaders/shader_runner.c index b387a77d7..d17e34640 100644 --- a/tests/shaders/shader_runner.c +++ b/tests/shaders/shader_runner.c @@ -3080,6 +3080,36 @@ piglit_display(void) w = get_texture_binding(tex)->width; h = get_texture_binding(tex)->height; + } else if (parse_str(rest, "ms ", &rest)) { + GLuint rb; + GLenum format; + int samples; + + REQUIRE(parse_enum_gl(rest, &format, &rest) && + parse_int(rest, &w, &rest) && + parse_int(rest, &h, &rest) && + parse_int(rest, &samples, &rest), + "Framebuffer binding command not " + "understood at: %s\n", rest); + + glGenFramebuffers(1, &fbo); + glBindFramebuffer(target, fbo); + + glGenRenderbuffers(1, &rb); + glBindRenderbuffer(GL_RENDERBUFFER, rb); + + glRenderbufferStorageMultisample(GL_RENDERBUFFER, samples, + format, w, h); + + glFramebufferRenderbuffer(target, + GL_COLOR_ATTACHMENT0, + GL_RENDERBUFFER, rb); + + if (!piglit_check_gl_error(GL_NO_ERROR)) { + fprintf(stderr, "glFramebufferRenderbuffer error\n"); + piglit_report_result(PIGLIT_FAIL); + } + } else { fprintf(stderr, "Unknown fb bind subcommand " "\"%s\"\n", rest); |