static bool test_pname(void) { GLuint name; const static GLfloat f = 1.0; const static GLuint u = 1; const static GLint i = -5; bool pass = true; /* Setup dsa. */ glCreateTextures(GL_TEXTURE_2D, 1, &name); glBindTextureUnit(0, name); /* Since next command isn't bindless. */ glTextureParameterfv(name, GL_TEXTURE_1D, &f); pass = piglit_check_gl_error(GL_INVALID_ENUM) && pass; glTextureParameteriv(name, GL_TEXTURE_1D, &i); pass = piglit_check_gl_error(GL_INVALID_ENUM) && pass; glTextureParameterIiv(name, GL_TEXTURE_1D, &i); pass = piglit_check_gl_error(GL_INVALID_ENUM) && pass; glTextureParameterIuiv(name, GL_TEXTURE_1D, &u); pass = piglit_check_gl_error(GL_INVALID_ENUM) && pass; piglit_report_subtest_result(pass ? PIGLIT_PASS : PIGLIT_FAIL, "glTextureParameter: GL_INVALID_ENUM on " "bad pname"); return pass; }
/* * The texture parameter must be an existing texture object as returned * by glCreateTextures */ static bool test_target_name(void) { static const GLuint badname = 250; static const GLfloat fvec[2] = { 1.0, 1.0 }; static const GLint ivec[2] = { -1, 1 }; static const GLuint uvec[2] = { 1, 1 }; bool pass = true; glTextureParameteri(badname, GL_TEXTURE_MAX_LEVEL, 4); pass = piglit_check_gl_error(GL_INVALID_OPERATION) && pass; glTextureParameterf(badname, GL_TEXTURE_MAX_LEVEL, 4.0); pass = piglit_check_gl_error(GL_INVALID_OPERATION) && pass; glTextureParameterfv(badname, GL_TEXTURE_MAX_LEVEL, fvec); pass = piglit_check_gl_error(GL_INVALID_OPERATION) && pass; glTextureParameteriv(badname, GL_TEXTURE_MAX_LEVEL, ivec); pass = piglit_check_gl_error(GL_INVALID_OPERATION) && pass; glTextureParameterIiv(badname, GL_TEXTURE_MAX_LEVEL, ivec); pass = piglit_check_gl_error(GL_INVALID_OPERATION) && pass; glTextureParameterIuiv(badname, GL_TEXTURE_MAX_LEVEL, uvec); pass = piglit_check_gl_error(GL_INVALID_OPERATION) && pass; piglit_report_subtest_result(pass ? PIGLIT_PASS : PIGLIT_FAIL, "glTextureParameter: GL_INVALID_OPERATION " "on bad texture"); return pass; }
void Tex2DArray::setParamI(GLenum pname, const GLuint *param) { RN_CHECK_PARAM(glTextureParameterIuiv(id, pname, param), rn::getEnumName(pname) << " " << param); }
/* XXX: Is this actually a valid implementation? */ static bool test_multisample(void) { bool pass = true; static const GLfloat f = 1.0; static const GLint i = -1; static const GLfloat fvec[2] = { 1.0, -1.0 }; static const GLint ivec[2] = { 1, -1 }; static const GLuint uvec[2] = { 1, 4 }; GLuint name; /* GL_TEXTURE_2D_MULTISAMPLE_ARRAY */ glCreateTextures(GL_TEXTURE_2D_MULTISAMPLE_ARRAY, 1, &name); glBindTextureUnit(0, name); /* Since next command isn't bindless. */ glTextureParameteri(name, GL_TEXTURE_WRAP_R, i); pass = piglit_check_gl_error(GL_INVALID_ENUM) && pass; glTextureParameterf(name, GL_TEXTURE_WRAP_R, f); pass = piglit_check_gl_error(GL_INVALID_ENUM) && pass; glTextureParameterfv(name, GL_TEXTURE_WRAP_R, fvec); pass = piglit_check_gl_error(GL_INVALID_ENUM) && pass; glTextureParameteriv(name, GL_TEXTURE_WRAP_R, ivec); pass = piglit_check_gl_error(GL_INVALID_ENUM) && pass; glTextureParameterIiv(name, GL_TEXTURE_WRAP_R, ivec); pass = piglit_check_gl_error(GL_INVALID_ENUM) && pass; glTextureParameterIuiv(name, GL_TEXTURE_WRAP_R, uvec); pass = piglit_check_gl_error(GL_INVALID_ENUM) && pass; /* GL_TEXTURE_2D_MULTISAMPLE */ glDeleteTextures(1, &name); glCreateTextures(GL_TEXTURE_2D_MULTISAMPLE, 1, &name); glBindTextureUnit(0, name); /* Since next command isn't bindless. */ glTextureParameteri(name, GL_TEXTURE_WRAP_R, i); pass = piglit_check_gl_error(GL_INVALID_ENUM) && pass; glTextureParameterf(name, GL_TEXTURE_WRAP_R, f); pass = piglit_check_gl_error(GL_INVALID_ENUM) && pass; glTextureParameterfv(name, GL_TEXTURE_WRAP_R, fvec); pass = piglit_check_gl_error(GL_INVALID_ENUM) && pass; glTextureParameteriv(name, GL_TEXTURE_WRAP_R, ivec); pass = piglit_check_gl_error(GL_INVALID_ENUM) && pass; glTextureParameterIiv(name, GL_TEXTURE_WRAP_R, ivec); pass = piglit_check_gl_error(GL_INVALID_ENUM) && pass; glTextureParameterIuiv(name, GL_TEXTURE_WRAP_R, uvec); pass = piglit_check_gl_error(GL_INVALID_ENUM) && pass; piglit_report_subtest_result(pass ? PIGLIT_PASS : PIGLIT_FAIL, "glTextureParameter: GL_INVALID_ENUM if " "multisample+sampler state"); return pass; }