Signed-off-by: Miklós Máté <mtm...@gmail.com> --- tests/spec/ati_fragment_shader/api-alphafirst.c | 52 ++++++++++++++++++++ tests/spec/ati_fragment_shader/api-gen.c | 65 +++++++++++++++++++++++++ 2 files changed, 117 insertions(+) create mode 100644 tests/spec/ati_fragment_shader/api-alphafirst.c create mode 100644 tests/spec/ati_fragment_shader/api-gen.c
diff --git a/tests/spec/ati_fragment_shader/api-alphafirst.c b/tests/spec/ati_fragment_shader/api-alphafirst.c new file mode 100644 index 000000000..027d2864f --- /dev/null +++ b/tests/spec/ati_fragment_shader/api-alphafirst.c @@ -0,0 +1,52 @@ +/* TODO license header */ + +/** + * Tests API for GL_ATI_fragment_shader. + */ + +#include "piglit-util-gl.h" + +PIGLIT_GL_TEST_CONFIG_BEGIN + + config.supports_gl_compat_version = 10; + config.window_visual = PIGLIT_GL_VISUAL_DOUBLE | PIGLIT_GL_VISUAL_RGBA; + +PIGLIT_GL_TEST_CONFIG_END + +enum piglit_result +piglit_display(void) +{ + /* UNREACHED */ + return PIGLIT_FAIL; +} + +#define check_gl_error(err) if (!piglit_check_gl_error(err)) piglit_report_result(PIGLIT_FAIL) + +void +piglit_init(int argc, char **argv) +{ + piglit_require_extension("GL_ATI_fragment_shader"); + + /* Create a shader pass beginning with an alpha instruction */ + + glBeginFragmentShaderATI(); + check_gl_error(GL_NO_ERROR); + glAlphaFragmentOp1ATI(GL_MOV_ATI, GL_REG_0_ATI, GL_NONE, + GL_PRIMARY_COLOR_ARB, GL_NONE, GL_NONE); + check_gl_error(GL_NO_ERROR); + glEndFragmentShaderATI(); + check_gl_error(GL_NO_ERROR); + + glBeginFragmentShaderATI(); + glColorFragmentOp1ATI(GL_MOV_ATI, GL_REG_0_ATI, GL_NONE, GL_NONE, + GL_REG_1_ATI, GL_NONE, GL_NONE); + glPassTexCoordATI(GL_REG_0_ATI, GL_REG_0_ATI, GL_SWIZZLE_STR_ATI); + check_gl_error(GL_NO_ERROR); + glAlphaFragmentOp1ATI(GL_MOV_ATI, GL_REG_0_ATI, GL_NONE, + GL_PRIMARY_COLOR_ARB, GL_NONE, GL_NONE); + check_gl_error(GL_NO_ERROR); + glEndFragmentShaderATI(); + check_gl_error(GL_NO_ERROR); + + piglit_report_result(PIGLIT_PASS); +} diff --git a/tests/spec/ati_fragment_shader/api-gen.c b/tests/spec/ati_fragment_shader/api-gen.c new file mode 100644 index 000000000..e9ca9a6b2 --- /dev/null +++ b/tests/spec/ati_fragment_shader/api-gen.c @@ -0,0 +1,65 @@ +/* TODO license header */ + +/** + * Tests basic API functionality for GL_ATI_fragment_shader. + */ + +#include "piglit-util-gl.h" + +PIGLIT_GL_TEST_CONFIG_BEGIN + + config.supports_gl_compat_version = 10; + config.window_visual = PIGLIT_GL_VISUAL_DOUBLE | PIGLIT_GL_VISUAL_RGBA; + +PIGLIT_GL_TEST_CONFIG_END + +enum piglit_result +piglit_display(void) +{ + /* UNREACHED */ + return PIGLIT_FAIL; +} + +#define check_gl_error(err) if (!piglit_check_gl_error(err)) piglit_report_result(PIGLIT_FAIL) + +void +piglit_init(int argc, char **argv) +{ + unsigned id; + + piglit_require_extension("GL_ATI_fragment_shader"); + + /* Test GenFragmentShadersATI() */ + + id = glGenFragmentShadersATI(3); + check_gl_error(GL_NO_ERROR); + if (id == 0) + piglit_report_result(PIGLIT_FAIL); + + glDeleteFragmentShaderATI(id); + check_gl_error(GL_NO_ERROR); + glDeleteFragmentShaderATI(id+1); + check_gl_error(GL_NO_ERROR); + glDeleteFragmentShaderATI(id+2); + check_gl_error(GL_NO_ERROR); + + /* gen a few more, leave them hanging */ + id = glGenFragmentShadersATI(3); + check_gl_error(GL_NO_ERROR); + + /* bind allocates the name, no need for gen */ + glBindFragmentShaderATI(42); + check_gl_error(GL_NO_ERROR); + glDeleteFragmentShaderATI(42); + check_gl_error(GL_NO_ERROR); + + /* bind an other one, leave it hanging */ + glBindFragmentShaderATI(43); + check_gl_error(GL_NO_ERROR); + + /* try to delete a non-existent one */ + glDeleteFragmentShaderATI(id+8); + check_gl_error(GL_NO_ERROR); + + piglit_report_result(PIGLIT_PASS); +} -- 2.15.0.rc0 _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit