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

Reply via email to