[Piglit] [PATCH 2/4] piglit-fbo: Add new variables to track multiple color attachments

Anuj Phogat anuj.phogat at gmail.com
Fri May 9 12:42:23 PDT 2014


New variables added here stay unused. They'll be used by the
following patches in this series.

Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
---
 tests/util/piglit-fbo.cpp | 21 +++++++++++++++++++++
 tests/util/piglit-fbo.h   | 11 +++++++++++
 2 files changed, 32 insertions(+)

diff --git a/tests/util/piglit-fbo.cpp b/tests/util/piglit-fbo.cpp
index 906fa55..484c23f 100644
--- a/tests/util/piglit-fbo.cpp
+++ b/tests/util/piglit-fbo.cpp
@@ -33,6 +33,8 @@ using namespace piglit_util_fbo;
 
 FboConfig::FboConfig(int num_samples, int width, int height)
 	: num_samples(num_samples),
+	  num_rb_attachments(1),
+	  num_tex_attachments(0),
 	  width(width),
 	  height(height),
 	  combine_depth_stencil(true),
@@ -42,6 +44,12 @@ FboConfig::FboConfig(int num_samples, int width, int height)
 	  depth_internalformat(GL_DEPTH_COMPONENT24),
 	  stencil_internalformat(GL_STENCIL_INDEX8)
 {
+	memset(rb_attachment, 0, PIGLIT_MAX_COLOR_ATTACHMENTS * sizeof(GLuint));
+	memset(tex_attachment, 0, PIGLIT_MAX_COLOR_ATTACHMENTS * sizeof(GLuint));
+
+	/* Set default values for single renderbuffer and texture attachment. */
+	rb_attachment[0] = GL_COLOR_ATTACHMENT0;
+	tex_attachment[0] = GL_COLOR_ATTACHMENT0;
 }
 
 Fbo::Fbo()
@@ -138,6 +146,19 @@ Fbo::set_samples(int num_samples)
 void
 Fbo::setup(const FboConfig &new_config)
 {
+	GLint max_attachments;
+	GLint requested_attachments = new_config.num_rb_attachments +
+		new_config.num_tex_attachments;
+	glGetIntegerv(GL_MAX_COLOR_ATTACHMENTS, &max_attachments);
+
+	if (requested_attachments > max_attachments) {
+		printf("Number of color attachments are not supported by the"
+		       " implementation.\nattachments requested = %d,"
+		       " max attachments supported = %d\n",
+		       requested_attachments, max_attachments);
+		piglit_report_result(PIGLIT_SKIP);
+	}
+
 	if (!try_setup(new_config)) {
 		printf("Framebuffer not complete\n");
 		piglit_report_result(PIGLIT_SKIP);
diff --git a/tests/util/piglit-fbo.h b/tests/util/piglit-fbo.h
index e225149..3be4f99 100644
--- a/tests/util/piglit-fbo.h
+++ b/tests/util/piglit-fbo.h
@@ -30,6 +30,11 @@
 #include "math.h"
 
 namespace piglit_util_fbo {
+/* I think 16 is the sufficient number of color attachments which tests would
+ * want to use in near future.
+ */
+#define PIGLIT_MAX_COLOR_ATTACHMENTS 16
+
 	/**
 	 * Information needed to configure a framebuffer object for MSAA
 	 * testing.
@@ -40,6 +45,8 @@ namespace piglit_util_fbo {
 		FboConfig(int num_samples, int width, int height);
 
 		int num_samples;
+		int num_rb_attachments; /* Default value is 1 */
+		int num_tex_attachments; /* Default value is 0 */
 		int width;
 		int height;
 
@@ -57,6 +64,10 @@ namespace piglit_util_fbo {
 		 */
 		bool attach_texture;
 
+		/* Set color attachments */
+		GLuint rb_attachment[PIGLIT_MAX_COLOR_ATTACHMENTS];
+		GLuint tex_attachment[PIGLIT_MAX_COLOR_ATTACHMENTS];
+
 		/**
 		 * Useful if attach_texture is true and color buffer is
 		 * non-multisample. Specifies the format that should be used
-- 
1.8.3.1



More information about the Piglit mailing list