[Piglit] [PATCH v2 2/4] shader_runner: Support optional internal format for 'texture rgbw'

Francisco Jerez currojerez at riseup.net
Tue Jun 16 03:59:12 PDT 2015


Jordan Justen <jordan.l.justen at intel.com> writes:

> The motivation for this is that (as noted by curro)
> ARB_shader_image_load_store doesn't support images with an internal
> format of GL_RGBA.
>
> See 'Table X.2' in
> https://www.opengl.org/registry/specs/ARB/shader_image_load_store.txt
>
> Therefore, in order to use image load/store in shader runner tests, we
> must override the default internal format when creating the image.
>
> We retain the default internal format of GL_RGBA when the optional
> parameter is not given.
>
> Now an internal format can optionally be added as a new parameter when
> creating the image. For example:
>
>   texture rgbw 0 (16, 16) GL_RGBA8
>
> v2:
>  * Drop 'base type' parameter
>
> Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
> ---
>  tests/shaders/shader_runner.c | 20 ++++++++++++++++----
>  1 file changed, 16 insertions(+), 4 deletions(-)
>
> diff --git a/tests/shaders/shader_runner.c b/tests/shaders/shader_runner.c
> index 41024cd..74cc9d9 100644
> --- a/tests/shaders/shader_runner.c
> +++ b/tests/shaders/shader_runner.c
> @@ -2572,11 +2572,23 @@ piglit_display(void)
>  			glShadeModel(GL_SMOOTH);
>  		} else if (string_match("shade model flat", line)) {
>  			glShadeModel(GL_FLAT);
> -		} else if (sscanf(line,
> -				  "texture rgbw %d ( %d , %d )",
> -				  &tex, &w, &h) == 3) {
> +		} else if (string_match("texture rgbw ", line)) {
> +			int num_scanned;
> +			GLenum int_fmt = GL_RGBA;
> +			num_scanned = sscanf(line, "texture rgbw %d ( %d , %d ) %31s",
> +					     &tex, &w, &h, s);

You could probably initialize this variable at the point you declare it.

> +			if (num_scanned < 3) {
> +				printf("invalid texture rgbw command!\n");

Any reason to send this to stdout instead of stderr?

With these nit-picks fixed:
Reviewed-by: Francisco Jerez <currojerez at riseup.net>

> +				piglit_report_result(PIGLIT_FAIL);
> +			}
> +
> +			if (num_scanned >= 4) {
> +				int_fmt = piglit_get_gl_enum_from_name(s);
> +			}
> +
>  			glActiveTexture(GL_TEXTURE0 + tex);
> -			piglit_rgbw_texture(GL_RGBA, w, h, GL_FALSE, GL_FALSE, GL_UNSIGNED_NORMALIZED);
> +			piglit_rgbw_texture(int_fmt, w, h, GL_FALSE, GL_FALSE,
> +					    GL_UNSIGNED_NORMALIZED);
>  			if (!piglit_is_core_profile)
>  				glEnable(GL_TEXTURE_2D);
>  		} else if (sscanf(line, "texture miptree %d", &tex) == 1) {
> -- 
> 2.1.4
>
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/piglit
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 212 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/piglit/attachments/20150616/fc8e0a8c/attachment.sig>


More information about the Piglit mailing list