This tests that the new teximage state added in ARB_texture_multisample exists and has correct defaults for non-multisample textures:
- GL_TEXTURE_SAMPLES = 0 - GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = true V2: Don't specify window size, we don't care. Signed-off-by: Chris Forbes <chr...@ijw.co.nz> --- tests/all.tests | 1 + .../spec/arb_texture_multisample/CMakeLists.gl.txt | 1 + tests/spec/arb_texture_multisample/texstate.c | 55 ++++++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 tests/spec/arb_texture_multisample/texstate.c diff --git a/tests/all.tests b/tests/all.tests index 184b172..0d331f1 100644 --- a/tests/all.tests +++ b/tests/all.tests @@ -865,6 +865,7 @@ for sample_count in MSAA_SAMPLE_COUNTS: # fb-completeness spec['ARB_texture_multisample/fb-completeness/%d' % (sample_count,)] = \ concurrent_test('arb_texture_multisample-fb-completeness %d' % (sample_count,)) +add_concurrent_test(arb_texture_multisample, 'arb_texture_multisample-texstate') # Group AMD_shader_stencil_export spec['AMD_shader_stencil_export'] = Group() diff --git a/tests/spec/arb_texture_multisample/CMakeLists.gl.txt b/tests/spec/arb_texture_multisample/CMakeLists.gl.txt index d793256..d4cd51f 100644 --- a/tests/spec/arb_texture_multisample/CMakeLists.gl.txt +++ b/tests/spec/arb_texture_multisample/CMakeLists.gl.txt @@ -12,5 +12,6 @@ link_libraries ( piglit_add_executable (arb_texture_multisample-minmax minmax.c) piglit_add_executable (arb_texture_multisample-fb-completeness fb-completeness.c) +piglit_add_executable (arb_texture_multisample-texstate texstate.c) # vim: ft=cmake: diff --git a/tests/spec/arb_texture_multisample/texstate.c b/tests/spec/arb_texture_multisample/texstate.c new file mode 100644 index 0000000..bb51c35 --- /dev/null +++ b/tests/spec/arb_texture_multisample/texstate.c @@ -0,0 +1,55 @@ +#include "piglit-util-gl-common.h" + +PIGLIT_GL_TEST_CONFIG_BEGIN + + config.supports_gl_compat_version = 30; + config.window_visual = PIGLIT_GL_VISUAL_RGB; + +PIGLIT_GL_TEST_CONFIG_END + +enum piglit_result +piglit_display(void) +{ + return PIGLIT_FAIL; +} + +static bool +check_texlevelparameter_int(GLuint target, GLuint level, + char const *name, GLuint pname, GLint expected_value) +{ + GLint actual_value; + glGetTexLevelParameteriv(target, level, pname, &actual_value); + if (!piglit_check_gl_error(GL_NO_ERROR)) + return false; + + if (actual_value != expected_value) { + printf("Expected %s value of %d but got %d\n", + name, expected_value, actual_value); + return false; + } + + return true; +} + +void +piglit_init(int argc, char **argv) +{ + GLuint tex2d; + bool pass = true; + piglit_require_extension("GL_ARB_texture_multisample"); + + /* check that new image state required by ARB_texture_multisample + * exists, and has correct defaults. Tests against a non-multisample + * texture target, since this state exists on all images. */ + + glGenTextures(1, &tex2d); + glBindTexture(GL_TEXTURE_2D, tex2d); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 64, 64, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0); + + pass = check_texlevelparameter_int(GL_TEXTURE_2D, 0, "GL_TEXTURE_SAMPLES", + GL_TEXTURE_SAMPLES, 0) && pass; + pass = check_texlevelparameter_int(GL_TEXTURE_2D, 0, "GL_TEXTURE_FIXED_SAMPLE_LOCATIONS", + GL_TEXTURE_FIXED_SAMPLE_LOCATIONS, GL_TRUE) && pass; + + piglit_report_result(pass ? PIGLIT_PASS : PIGLIT_FAIL); +} -- 1.8.1.4 _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit