Signed-off-by: Topi Pohjolainen <topi.pohjolai...@intel.com>
---
 .../draw-buffers-common.cpp                        | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/tests/spec/ext_framebuffer_multisample/draw-buffers-common.cpp 
b/tests/spec/ext_framebuffer_multisample/draw-buffers-common.cpp
index 8f0088c97..694931b6d 100644
--- a/tests/spec/ext_framebuffer_multisample/draw-buffers-common.cpp
+++ b/tests/spec/ext_framebuffer_multisample/draw-buffers-common.cpp
@@ -921,23 +921,29 @@ ms_fbo_and_draw_buffers_setup(int samples,
         */
        FboConfig resolve_config(GL_RGBA, 0, pattern_width,
                                 num_draw_buffers * pattern_height);
-       resolve_fbo.setup(resolve_config);
 
-       /* Create resolve_int_fbo to store downsampled integer draw buffer */
+       /* Create resolve_int_fbo to store downsampled integer draw buffer.
+        * It should be noted that integer formatted tests also write float
+        * formatted attachments and therefore the default GL_RGBA resolve
+        * framebuffer is needed in addition to the integer based.
+        */
        if (color_buffer_zero_format == GL_RGBA8I) {
-               resolve_config.color_internalformat = GL_RGBA8I;
                /* Assuming single integer buffer */
-               resolve_config.height = pattern_height;
-               resolve_int_fbo.setup(resolve_config);
+               resolve_int_fbo.setup(FboConfig(
+                                       color_buffer_zero_format, 0,
+                                       pattern_width, pattern_height));
                is_buffer_zero_integer_format = true;
-       }
-       else if (color_buffer_zero_format != GL_RGBA &&
-                color_buffer_zero_format != GL_NONE) {
+       } else if (color_buffer_zero_format == GL_RGBA) {
+               resolve_config.color_internalformat =
+                       color_buffer_zero_format;
+       } else if (color_buffer_zero_format != GL_NONE) {
                printf("Draw buffer zero format is not"
                       " supported by test functions.\n");
                piglit_report_result(PIGLIT_FAIL);
        }
 
+       resolve_fbo.setup(resolve_config);
+
         if (!piglit_check_gl_error(GL_NO_ERROR)) {
                printf("Error setting up frame buffer objects\n");
                piglit_report_result(PIGLIT_FAIL);
-- 
2.11.0

_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to