[Piglit] [PATCH] draw-buffers-common.cpp: don't use dynamically sized array

Anuj Phogat anuj.phogat at gmail.com
Fri Aug 3 14:54:49 PDT 2012


This patch is to fix MSVC build errors.
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=53102

Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
---
I don't have MSVC build setup to try this patch. Please let me know if this
doesn't resolve the build errors.

 .../draw-buffers-common.cpp                        |   17 +++++++++++------
 1 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/tests/spec/ext_framebuffer_multisample/draw-buffers-common.cpp b/tests/spec/ext_framebuffer_multisample/draw-buffers-common.cpp
index 2829405..466a67d 100644
--- a/tests/spec/ext_framebuffer_multisample/draw-buffers-common.cpp
+++ b/tests/spec/ext_framebuffer_multisample/draw-buffers-common.cpp
@@ -258,7 +258,7 @@ free_data_arrays(void)
 void
 float_color_to_int_color(int *dst, float *src)
 {
-	float offset = 1 - pow(2, (num_color_bits - 1));
+	float offset = 1 - (1 << (num_color_bits - 1));
 	float scale = -2.0 * offset;
 
 	for (int j = 0; j < num_rects; ++j) {
@@ -292,7 +292,9 @@ draw_pattern(bool sample_alpha_to_coverage,
 	glUniform1i(alpha_to_coverage_loc, sample_alpha_to_coverage);
 
 	unsigned indices[6] = {0, 1, 2, 0, 2, 3};
-	int integer_color[num_rects * num_components];
+	int *integer_color = (int *) malloc(num_rects *
+					    num_components *
+					    sizeof(int));
 
 	/* For integer color buffers convert the color data to integer format */
         if(is_buffer_zero_integer_format) {
@@ -325,6 +327,7 @@ draw_pattern(bool sample_alpha_to_coverage,
 	}
 	glDisable (GL_SAMPLE_ALPHA_TO_COVERAGE);
 	glDisable (GL_SAMPLE_ALPHA_TO_ONE);
+	free(integer_color);
 }
 
 void
@@ -374,14 +377,14 @@ compute_expected_color(bool sample_alpha_to_coverage,
 				 */
 				expected_color[alpha_idx] =
 					is_buffer_zero_integer_format ?
-					frag_alpha / pow(2, draw_buffer_count) :
+					frag_alpha / (1 << draw_buffer_count) :
 					frag_alpha;
 			}
 			else if (sample_alpha_to_coverage) {
 				/* Taking in account alpha values modified by
 				 * fragment shader.
 				 */
-				frag_alpha /= pow(2, draw_buffer_count);
+				frag_alpha /= (1 << draw_buffer_count);
 				if(sample_alpha_to_one) {
 					expected_color[alpha_idx] =
 					1.0 * coverage[i] +
@@ -567,7 +570,7 @@ draw_image_to_window_system_fb(int draw_buffer_count, bool rhs)
 		}
 
 		/* Convert integer color data to float color data */
-		float color_offset = 1.0 - pow(2.0, num_color_bits - 1);
+		float color_offset = 1.0 - (1 << (num_color_bits - 1));
 		float color_scale = -2.0 * color_offset;
 
 		for (unsigned i = 0; i < array_size; ++i) {
@@ -772,7 +775,8 @@ ms_fbo_and_draw_buffers_setup(int samples,
 	/* Attach additional color buffers to multisample FBO with default
 	 * non-integer format (GL_RGBA.)
 	 */
-	GLuint color_rb[num_draw_buffers - 1];
+	GLuint *color_rb = (GLuint *)malloc((num_draw_buffers - 1) *
+					    sizeof(GLuint));
 	glGenRenderbuffers(num_draw_buffers - 1, color_rb);
 
 	for(int i = 0; i < num_draw_buffers - 1; i++) {
@@ -795,4 +799,5 @@ ms_fbo_and_draw_buffers_setup(int samples,
 		piglit_report_result(PIGLIT_FAIL);
 	}
 	buffer_to_test = test_buffer;
+	free(color_rb);
 }
-- 
1.7.7.6



More information about the Piglit mailing list