fb tex 2d now takes a variable number of texture indices that are bound sequentially as texture attachments of the framebuffer object. --- tests/shaders/shader_runner.c | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-)
diff --git a/tests/shaders/shader_runner.c b/tests/shaders/shader_runner.c index c315676..7151fd2 100644 --- a/tests/shaders/shader_runner.c +++ b/tests/shaders/shader_runner.c @@ -2968,23 +2968,32 @@ piglit_display(void) GLuint fbo = 0; if (parse_str(rest, "tex 2d ", &rest)) { + GLenum attachments[32]; + unsigned num_attachments = 0; + glGenFramebuffers(1, &fbo); glBindFramebuffer(target, fbo); - REQUIRE(parse_int(rest, &tex, &rest), - "Framebuffer binding command not " - "understood at: %s\n", rest); - - glFramebufferTexture2D( - target, GL_COLOR_ATTACHMENT0, - GL_TEXTURE_2D, - get_texture_binding(tex)->obj, 0); - if (!piglit_check_gl_error(GL_NO_ERROR)) { - fprintf(stderr, - "glFramebufferTexture2D error\n"); - piglit_report_result(PIGLIT_FAIL); + while (parse_int(rest, &tex, &rest)) { + attachments[num_attachments] = + GL_COLOR_ATTACHMENT0 + num_attachments; + glFramebufferTexture2D( + target, attachments[num_attachments], + GL_TEXTURE_2D, + get_texture_binding(tex)->obj, 0); + + if (!piglit_check_gl_error(GL_NO_ERROR)) { + fprintf(stderr, + "glFramebufferTexture2D error\n"); + piglit_report_result(PIGLIT_FAIL); + } + + num_attachments++; } + if (target != GL_READ_FRAMEBUFFER) + glDrawBuffers(num_attachments, attachments); + w = get_texture_binding(tex)->width; h = get_texture_binding(tex)->height; -- 2.9.0 _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit