From spec: "Possible values include any value that is legal to pass for the <format> parameter to the Tex*Image*D commands, or NONE if the resource is not supported for this operation."
Tested on NVIDIA GeForce GTX 950 - NVIDIA 352.55: fails: In some cases is returns GL_R11F_G11F_B10F or GL_RGB9_ES5, that are internalformats, not valid formats. Tested on AMD Radeon (TM) R9 380 Series: fails: It returns values different to NONE on cases where the target/internalformat are not supported (via INTERNALFORMAT_SUPPORTED). --- .../generic-pname-checks.c | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/tests/spec/arb_internalformat_query2/generic-pname-checks.c b/tests/spec/arb_internalformat_query2/generic-pname-checks.c index 6b513ae..b8ce591 100644 --- a/tests/spec/arb_internalformat_query2/generic-pname-checks.c +++ b/tests/spec/arb_internalformat_query2/generic-pname-checks.c @@ -145,6 +145,49 @@ static const GLint possible_values_image_pixel_type[] = { GL_BYTE, }; +/* From query2 spec: + * + * "TEXTURE_IMAGE_FORMAT: + * <skip> + * Possible values include any value that is legal to pass for the + * <format> parameter to the Tex*Image*D commands, or NONE if the + * resource is not supported for this operation." + * + * From 4.2 core spec: + * "TexImage3D + * <skip> + * format, type, and data specify the format of the image data, the + * type of those data, and a reference to the image data in the cur- + * rently bound pixel unpack buffer or client memory, as described in + * section 3.7.2. The format STENCIL_INDEX is not allowed." + * + * This is basically Table 3.3 (defined at section 3.7.2) minus + * STENCIL_INDEX. + */ +static GLint possible_values_texture_image_format[] = { + /* Table 3.3 minus STENCIL_INDEX */ + GL_DEPTH_COMPONENT, + GL_DEPTH_STENCIL, + GL_RED, + GL_GREEN, + GL_BLUE, + GL_RG, + GL_RGB, + GL_RGBA, + GL_BGR, + GL_BGRA, + GL_RED_INTEGER, + GL_GREEN_INTEGER, + GL_BLUE_INTEGER, + GL_RG_INTEGER, + GL_RGB_INTEGER, + GL_RGBA_INTEGER, + GL_BGR_INTEGER, + GL_BGRA_INTEGER, + /* GL_NONE from query2 TEXTURE_IMAGE_FORMAT spec */ + GL_NONE +}; + enum piglit_result piglit_display(void) { @@ -230,5 +273,10 @@ piglit_init(int argc, char **argv) possible_values_true_false, ARRAY_SIZE(possible_values_true_false)) && pass; + pname = GL_TEXTURE_IMAGE_FORMAT; + pass = check_basic(&pname, 1, possible_values_texture_image_format, + ARRAY_SIZE(possible_values_texture_image_format)) + && pass; + piglit_report_result(pass ? PIGLIT_PASS : PIGLIT_FAIL); } -- 2.1.4 _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit