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

Jose Fonseca jfonseca at vmware.com
Mon Aug 6 09:53:31 PDT 2012


Change looks good to me. Thanks.

Jose

----- Original Message -----
> 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
> 
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/piglit
> 


More information about the Piglit mailing list