On 07/16/2015 07:29 AM, Jose Fonseca wrote:
On 16/07/15 00:33, Brian Paul wrote:
The GL spec doesn't explicitly say that glGetTexImage should generate
GL_INVALID_OPERATION when attempting to retrieve a non-existant texture
image, but that's what NVIDIA's driver does.

The purpose of this test is to check the format/type parameters, so let's
define a packed float texture to avoid the undefined texture situation.

Test now passes with NVIDIA.
---
  .../getteximage-invalid-format-for-packed-type.c          | 15
++++++++++++++-
  1 file changed, 14 insertions(+), 1 deletion(-)

diff --git
a/tests/spec/ext_packed_float/getteximage-invalid-format-for-packed-type.c
b/tests/spec/ext_packed_float/getteximage-invalid-format-for-packed-type.c

index c030c1c..7756fb3 100644
---
a/tests/spec/ext_packed_float/getteximage-invalid-format-for-packed-type.c

+++
b/tests/spec/ext_packed_float/getteximage-invalid-format-for-packed-type.c

@@ -80,6 +80,9 @@ PIGLIT_GL_TEST_CONFIG_BEGIN

  PIGLIT_GL_TEST_CONFIG_END

+#define TEXSIZE 4
+
+
  /* For simplicity, we are only testing the following types: */
  static const GLenum testedTypes[] = {
      GL_UNSIGNED_BYTE_3_3_2,
@@ -110,7 +113,7 @@ piglit_init(int argc, char **argv)
  enum piglit_result
  subtest(GLenum format, GLenum type)
  {
-    GLfloat pxBuffer[4];
+    GLfloat pxBuffer[TEXSIZE * TEXSIZE * sizeof(float)];

`sizeof(float)` looks wrong since the array type is already a float.
Maybe you want `4` as in 4 channels.

Yes, thanks.



      enum piglit_result result;

      glGetTexImage(GL_TEXTURE_2D, 0, format, type, pxBuffer);
@@ -140,6 +143,16 @@ piglit_display(void)
      int i, j;
      enum piglit_result result = PIGLIT_PASS;
      enum piglit_result subtest_result;
+    GLuint tex;
+    GLfloat texData[TEXSIZE][TEXSIZE][3];
+
+    memset(texData, 0, sizeof(texData));
+
+    /* Setup a packed float texture (contents not significant) */
+    glGenTextures(1, &tex);
+    glBindTexture(GL_TEXTURE_2D, tex);
+    glTexImage2D(GL_TEXTURE_2D, 0, GL_R11F_G11F_B10F_EXT,
+             TEXSIZE, TEXSIZE, 0, GL_RGB, GL_FLOAT, texData);

      for (j = 0; j < ARRAY_SIZE(testedTypes); j++) {
          for (i = 0; i < ARRAY_SIZE(formatTypes); i++) {


Otherwise looks good to me.

Reviewed-by: Jose Fonseca <[email protected]>

_______________________________________________
Piglit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to