Use value of GL_MAX_COLOR_TEXTURE_SAMPLES for glTextureStorage2DMultisample().
Allows sub tests to pass instead of fail with llvmpipe.
---
 .../texture-storage-multisample.c                        | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/tests/spec/arb_direct_state_access/texture-storage-multisample.c 
b/tests/spec/arb_direct_state_access/texture-storage-multisample.c
index b6fff44..615579b 100644
--- a/tests/spec/arb_direct_state_access/texture-storage-multisample.c
+++ b/tests/spec/arb_direct_state_access/texture-storage-multisample.c
@@ -263,10 +263,13 @@ check_immutable(void)
        bool pass = true;
        GLuint tex;
        GLint param;
+       GLint samples;
+
+       glGetIntegerv(GL_MAX_COLOR_TEXTURE_SAMPLES, &samples);
 
        glCreateTextures(GL_TEXTURE_2D_MULTISAMPLE, 1, &tex);
        /* specify storage for the texture, and mark it immutable-format */
-       glTextureStorage2DMultisample(tex, 4, GL_RGBA8, 64, 64, GL_TRUE);
+       glTextureStorage2DMultisample(tex, samples, GL_RGBA8, 64, 64, GL_TRUE);
        pass = piglit_check_gl_error(GL_NO_ERROR) && pass;
 
        /* should now have TEXTURE_IMMUTABLE_FORMAT */
@@ -285,7 +288,7 @@ check_immutable(void)
        }
 
        /* calling Tex*Storage* again on the same texture should fail */
-       glTextureStorage2DMultisample(tex, 4, GL_RGBA8, 32, 32, GL_TRUE);
+       glTextureStorage2DMultisample(tex, samples, GL_RGBA8, 32, 32, GL_TRUE);
        if (!piglit_check_gl_error(GL_INVALID_OPERATION)) {
                pass = false;
                printf("expected respecifying an immutable-format texture"
@@ -295,7 +298,7 @@ check_immutable(void)
        /* calling TexImage2DMultisample should fail too */
        glBindTextureUnit(0, tex);
        glTexImage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE,
-                               4, GL_RGBA8, 32, 32, GL_TRUE);
+                               samples, GL_RGBA8, 32, 32, GL_TRUE);
 
        if (!piglit_check_gl_error(GL_INVALID_OPERATION)) {
                pass = false;
@@ -387,16 +390,19 @@ trivial_but_should_work(void)
 {
        bool pass = true;
        GLuint texture;
+       GLint samples;
+
+       glGetIntegerv(GL_MAX_COLOR_TEXTURE_SAMPLES, &samples);
 
        /* 2D case */
        glCreateTextures(GL_TEXTURE_2D_MULTISAMPLE, 1, &texture);
-       glTextureStorage2DMultisample(texture, 4, GL_RGBA8, 64, 64, GL_TRUE);
+       glTextureStorage2DMultisample(texture, samples, GL_RGBA8, 64, 64, 
GL_TRUE);
        pass = piglit_check_gl_error(GL_NO_ERROR) && pass;
 
        /* 3D case */
        glDeleteTextures(1, &texture);
        glCreateTextures(GL_TEXTURE_2D_MULTISAMPLE_ARRAY, 1, &texture);
-       glTextureStorage3DMultisample(texture, 4, GL_RGBA8, 64, 64, 3,
+       glTextureStorage3DMultisample(texture, samples, GL_RGBA8, 64, 64, 3,
                                      GL_TRUE);
        pass = piglit_check_gl_error(GL_NO_ERROR) && pass;
 
-- 
1.9.1

_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to