[Piglit] [PATCH 2/2] Remove point sprite Glean test

Fabian Bieler fabianbieler at fastmail.fm
Mon Oct 23 23:36:11 UTC 2017


Replaced by new piglit arb_point_sprite-mipmap test.
---
 tests/all.py                  |   1 -
 tests/glean/CMakeLists.gl.txt |   1 -
 tests/glean/tpointsprite.cpp  | 454 ------------------------------------------
 tests/glean/tpointsprite.h    |  74 -------
 4 files changed, 530 deletions(-)
 delete mode 100644 tests/glean/tpointsprite.cpp
 delete mode 100644 tests/glean/tpointsprite.h

diff --git a/tests/all.py b/tests/all.py
index 66a05cc..67ee77d 100644
--- a/tests/all.py
+++ b/tests/all.py
@@ -300,7 +300,6 @@ with profile.test_list.group_manager(GleanTest, 'glean') as g:
     g('fbo')
     g('getString')
     g('pixelFormats')
-    g('pointSprite')
     # exactRGBA is not included intentionally, because it's too strict and
     # the equivalent functionality is covered by other tests
     g('shaderAPI')
diff --git a/tests/glean/CMakeLists.gl.txt b/tests/glean/CMakeLists.gl.txt
index 9bbf324..b082eec 100644
--- a/tests/glean/CMakeLists.gl.txt
+++ b/tests/glean/CMakeLists.gl.txt
@@ -35,7 +35,6 @@ piglit_add_executable (glean
 	tglsl1.cpp
 	tmultitest.cpp
 	tpixelformats.cpp
-	tpointsprite.cpp
 	tshaderapi.cpp
 	ttexcombine.cpp
 	ttexcombine4.cpp
diff --git a/tests/glean/tpointsprite.cpp b/tests/glean/tpointsprite.cpp
deleted file mode 100644
index 774c0cb..0000000
--- a/tests/glean/tpointsprite.cpp
+++ /dev/null
@@ -1,454 +0,0 @@
-// BEGIN_COPYRIGHT -*- glean -*-
-
-/* 
- * Copyright (C) 2007  Intel Corporation
- * Copyright (C) 1999  Allen Akin   All Rights Reserved.
- * 
- * Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use,
- * copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following
- * conditions:
- * 
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the
- * Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
- * KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
- * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
- * PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL ALLEN AKIN BE
- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
- * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * 
- */
-
-/* tpointsprite.cpp:  Test the ARB_point_sprite extension
- * Author: Nian Wu <nian.wu at intel.com>
- *
- * Test procedure:
- *   Create mipmap textures which size varies from 32x32 to 1x1, every texture 
- *   has different two colors: the upper half is one color and the lower half
- *   is another color.
- *   Draw point and polygon which mode is GL_POINT, and check that the point
- *   is rendered correctly.
- */
-
-#define GL_GLEXT_PROTOTYPES
-
-#include <stdlib.h>
-#include <cassert>
-#include <cmath>
-#include <stdio.h>
-#include "tpointsprite.h"
-
-
-namespace GLEAN {
-
-//background color
-static GLfloat   bgColor[4] = {0.0, 0.0, 0.0, 0.0};
-
-// Partition each mipmap into two halves.  The top half gets one color, and
-// the bottom half gets a different color.  Use a different pair of colors for
-// each LOD.
-//
-// For the 1x1 LOD, only lower part (second color in the table) is used.
-static GLfloat   texColor[6][2][4] = {
-          {{1.0, 0.0, 0.0, 1.0}, {0.0, 1.0, 0.0, 1.0}},  // 32x32
-          {{0.0, 0.0, 1.0, 1.0}, {1.0, 1.0, 0.0, 1.0}},  // 16x16
-          {{1.0, 0.0, 1.0, 1.0}, {0.0, 1.0, 1.0, 1.0}},  // 8x8
-          {{1.0, 1.0, 1.0, 1.0}, {1.0, 0.0, 0.0, 1.0}},  // 4x4
-          {{0.0, 1.0, 0.0, 1.0}, {0.0, 0.0, 1.0, 1.0}},  // 2x2
-          {{1.0, 1.0, 0.0, 1.0}, {1.0, 1.0, 1.0, 1.0}},  // 1x1
-};
-
-//generate mipmap
-void
-PointSpriteTest::GenMipmap()
-{
-	int       level, i, j;
-	GLint     texWidth;
-	GLfloat   *texPtr;
-	GLfloat   *upperColor, *lowColor;
-
-	for (level = 0; level < 6; level++)
-	{
-		texWidth = 1 << (6 - level - 1);
-		texImages[level] = (GLfloat *)malloc(texWidth * texWidth * 4 * sizeof(GLfloat));
-		texPtr = texImages[level];
-		upperColor = texColor[level][0];
-		lowColor = texColor[level][1];
-
-		for (i = 0; i < texWidth; i++)
-		{
-			for (j = 0; j < texWidth; j++)
-			{
-				if (i < texWidth / 2) //lower part
-				{
-					*texPtr++ = lowColor[0];
-					*texPtr++ = lowColor[1];
-					*texPtr++ = lowColor[2];
-					*texPtr++ = lowColor[3];
-				} else {  //upper part
-					*texPtr++ = upperColor[0];
-					*texPtr++ = upperColor[1];
-					*texPtr++ = upperColor[2];
-					*texPtr++ = upperColor[3];
-				}
-			}
-		}
-	}
-}
-
-//enable texture and setup mipmap
-void
-PointSpriteTest::SetupMipmap(GLuint *texID)
-{
-	glEnable(GL_TEXTURE_2D);
-
-	glGenTextures(1, texID);
-	glBindTexture(GL_TEXTURE_2D, *texID);
-
-	glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,
-				GL_NEAREST_MIPMAP_NEAREST);
-	glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER, GL_NEAREST);
-
-	glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 32, 32, 0,
-				GL_RGBA, GL_FLOAT, texImages[0]);
-	glTexImage2D(GL_TEXTURE_2D, 1, GL_RGBA, 16, 16, 0,
-				GL_RGBA, GL_FLOAT, texImages[1]);
-	glTexImage2D(GL_TEXTURE_2D, 2, GL_RGBA, 8, 8, 0,
-				GL_RGBA, GL_FLOAT, texImages[2]);
-	glTexImage2D(GL_TEXTURE_2D, 3, GL_RGBA, 4, 4, 0,
-				GL_RGBA, GL_FLOAT, texImages[3]);
-	glTexImage2D(GL_TEXTURE_2D, 4, GL_RGBA, 2, 2, 0,
-				GL_RGBA, GL_FLOAT, texImages[4]);
-	glTexImage2D(GL_TEXTURE_2D, 5, GL_RGBA, 1, 1, 0, 
-				GL_RGBA, GL_FLOAT, texImages[5]);
-
-	glTexEnvf(GL_POINT_SPRITE, GL_COORD_REPLACE, GL_TRUE);
-}
-
-void
-PointSpriteTest::CheckDefaultState(MultiTestResult &r)
-{
-	GLboolean enable;
-	GLint     coordReplace;
-	GLint     coordOrigin;
-
-	// check point sprite status, default is GL_FALSE
-	enable = glIsEnabled(GL_POINT_SPRITE);
-	if (enable != GL_FALSE)
-	{
-		env->log << name << "subcase FAIL: "
-			 << "PointSprite should be disabled by default\n";
-		r.numFailed++;
-	} else {
-		r.numPassed++;
-	}
-
-	// check coordinate replacement, default is GL_FALSE
-	glGetTexEnviv(GL_POINT_SPRITE, GL_COORD_REPLACE, &coordReplace);
-
-	if (coordReplace != GL_FALSE)
-	{
-		env->log << name << "subcase FAIL: "
-			 << "default value of COORD_REPLACE should be GL_FALSE\n";
-		r.numFailed++;
-	} else {
-		r.numPassed++;
-	}
-
-	if (have_2_0) {
-		// check coordinate origin, default is UPPER_LEFT
-		glEnable(GL_POINT_SPRITE);
-		glGetIntegerv(GL_POINT_SPRITE_COORD_ORIGIN, &coordOrigin);
-		if (coordOrigin != GL_UPPER_LEFT)
-		{
-			env->log << name << "subcase FAIL: "
-				"defult value of COORD_ORIGIN "
-				"should be GL_UPPER_LEFT\n";
-			r.numFailed++;
-		} else {
-			r.numPassed++;
-		}
-
-		glDisable(GL_POINT_SPRITE);
-	}
-}
-
-GLboolean
-PointSpriteTest::OutOfPoint(int x, int y, int pSize, int x0, int y0)
-{
-	if ((x < x0) ||
-	    (y < y0) ||
-	    (x >= x0 + pSize) ||
-	    (y >= y0 + pSize))
-		return GL_TRUE;
-	else
-		return GL_FALSE;
-}
-
-GLfloat *
-PointSpriteTest::GetTexColor(int pSize, int dir)
-{
-	int level;
-
-	// Note: we use GL_NEAREST_MIPMAP_NEAREST for  GL_TEXTURE_MIN_FILTER
-	if (pSize <= 1) level = 5;
-	else if (pSize < 3) level = 4;
-	else if (pSize < 6) level = 3;
-	else if (pSize < 12) level = 2;
-	else if (pSize < 24) level = 1;
-	else  level = 0;
-
-	return texColor[level][dir];
-}
-
-void
-PointSpriteTest::CalculateTolerance()
-{
-        GLint rBits, gBits, bBits;
-        GLint rTexBits, gTexBits, bTexBits;
-
-        // Get fb resolution
-        glGetIntegerv(GL_RED_BITS, &rBits);
-        glGetIntegerv(GL_GREEN_BITS, &gBits);
-        glGetIntegerv(GL_BLUE_BITS, &bBits);
-
-	glGetTexLevelParameteriv(GL_TEXTURE_2D, 0,
-                        GL_TEXTURE_RED_SIZE, &rTexBits);
-        glGetTexLevelParameteriv(GL_TEXTURE_2D, 0,
-                        GL_TEXTURE_GREEN_SIZE, &gTexBits);
-        glGetTexLevelParameteriv(GL_TEXTURE_2D, 0,
-                        GL_TEXTURE_BLUE_SIZE, &bTexBits);
-
-        // Find smaller of frame buffer and texture bits
-        rBits = (rBits < rTexBits) ? rBits : rTexBits;
-        gBits = (gBits < gTexBits) ? gBits : gTexBits;
-        bBits = (bBits < bTexBits) ? bBits : bTexBits;
-
-        mTolerance[0] = 3.0 / (1 << rBits);
-        mTolerance[1] = 3.0 / (1 << gBits);
-        mTolerance[2] = 3.0 / (1 << bBits);
-}
-
-//Test if two colors are colse enough to be considered the same.
-GLboolean
-PointSpriteTest::CompareColor(GLfloat *actual, GLfloat *expected)
-{
-	return (fabs(actual[0] - expected[0]) <= mTolerance[0] &&
-		fabs(actual[1] - expected[1]) <= mTolerance[1] &&
-		fabs(actual[2] - expected[2]) <= mTolerance[2] );
-}
-
-
-static bool
-FindNonBlack(const GLfloat *buf, GLint w, GLint h, GLint *x0, GLint *y0)
-{
-	GLint i, j;
-	for (i = 0; i < h; i++) {
-		for (j = 0; j < w; j++) {
-			int k = (i * w + j) * 3;
-			if (buf[k+0] != bgColor[0] ||
-				buf[k+1] != bgColor[1] ||
-				buf[k+2] != bgColor[2]) {
-				*x0 = j;
-				*y0 = i;
-				return true;
-			}
-		}
-	}
-
-	return false;
-}
-
-
-/**
- * compare pixels located at (0,0) to (WINSIZE/2, WINSIZE/2).
- * @param buf: pixels' RGB value
- * @param pSize: point size
- * @param coordOrigin: coordinate origin--UPPER_LEFT or LOWER_LEFT
- */
-GLboolean
-PointSpriteTest::ComparePixels(GLfloat *buf, int pSize, GLenum coordOrigin)
-{
-	GLfloat *lowerColor,  *upperColor, *expectedColor;
-	GLint  i, j;
-	GLint x0, y0;
-
-	lowerColor = GetTexColor(pSize, (coordOrigin == GL_UPPER_LEFT) ? 0 : 1);
-	upperColor = GetTexColor(pSize, (coordOrigin == GL_UPPER_LEFT) ? 1 : 0);
-
-	// Find first (lower-left) pixel that's not black.
-	// The pixels hit by sprite rasterization may vary from one GL to
-	// another so try to compensate for that.
-	if (!FindNonBlack(buf, WINSIZE/2, WINSIZE/2, &x0, &y0))
-	{
-		env->log << "Could not find any non-black pixels.\n";
-		return GL_FALSE;
-	}
-
-	for (i = 0; i < WINSIZE / 2; i++)
-	{
-		for (j = 0; j < WINSIZE / 2; j++)
-		{
-			if (OutOfPoint(i, j, pSize, x0, y0))
-			{ //pixel (i, j) is out of point
-			  //its color should bebackground
-				if (!CompareColor(buf, bgColor))
-				{
-					env->log << "Incorrect pixel at (" << i << ", " << j << "):\n"
-						<<"\tit should be backgound color: ("
-						<< bgColor[0] << ", " << bgColor[1] << ", " << bgColor[2]
-						<< "), actual read: (" << buf[0] << ", " << buf[1] << ", " << buf[2] << ")\n" ;
-					return GL_FALSE;
-				}
-			} else { //inside point
-				if (i - x0 < pSize/2)
-					expectedColor = lowerColor;
-				else
-					expectedColor = upperColor;
-
-				if (!CompareColor(buf, expectedColor))
-				{
-					env->log << "Incorrect pixel at (" << i << ", " << j << "):\n"
-						<<"\tit should be rendered with color: ("
-						<< expectedColor[0] << ", " << expectedColor[1] << ", " << expectedColor[2]
-						<< "), actual read: (" << buf[0] << ", " << buf[1] << ", " << buf[2] << ")\n" ;
-					return GL_FALSE;
-				} 		
-			}
-			buf += 3;
-		}
-	}
-
-	return GL_TRUE;
-}
-
-// Test default state.
-// Test point and polygon which mode is GL_POINT, and texture's coordinate
-// origin is UPPER_LEFT or LOWER_LEFT.
-// Result will indicate number of passes and failures.
-void
-PointSpriteTest::runOne(MultiTestResult &r, Window &w)
-{
-	GLfloat maxPointSize, pointSize;
-	GLint   expectedSize;
-	GLint   primType, coordOrigin;
-	GLfloat *buf;
-	GLuint  texID;
-	int i;
-
-	(void) w;
-
-	have_2_0 = (strtod((const char *) glGetString(GL_VERSION), NULL) > 2.0);
-
-	CheckDefaultState(r);
-	
-	glDrawBuffer(GL_FRONT);
-	glReadBuffer(GL_FRONT);
-
-	glClearColor(bgColor[0], bgColor[1], bgColor[2], bgColor[3]);
-
-        glViewport(0, 0, WINSIZE, WINSIZE);
-        glMatrixMode(GL_PROJECTION);
-        glLoadIdentity();
-        glOrtho(0, WINSIZE, 0, WINSIZE, -1, 1);
-        glMatrixMode(GL_MODELVIEW);
-        glLoadIdentity();
-
-	GenMipmap();
-	SetupMipmap(&texID);
-	CalculateTolerance();
-
-	buf = (GLfloat *)malloc(3 * WINSIZE * WINSIZE / 4 * sizeof(GLfloat));
-
-	// Enable point sprite mode
-	glEnable(GL_POINT_SPRITE);
-
-	glGetFloatv(GL_POINT_SIZE_MAX, &maxPointSize);
-	if (maxPointSize > WINSIZE / 2)
-		maxPointSize = WINSIZE / 2;
-
-	// Draw GL_POINTS primitives, and draw GL_POLYGON primitives with the
-	// polygon mode set to GL_POINT.
-	for (primType = 0; primType < 2; primType ++)
-	{
-		const GLint numOrigin = (have_2_0) ? 2 : 1;
-		static const GLenum origin[2] = {
-			GL_UPPER_LEFT, GL_LOWER_LEFT
-		};
-		static const char *const origin_strings[2] = {
-			"GL_UPPER_LEFT", "GL_LOWER_LEFT"
-		};
-
-		for (coordOrigin = 0; coordOrigin < numOrigin; coordOrigin++)
-		{
-			if (have_2_0) {
-				glPointParameteri(GL_POINT_SPRITE_COORD_ORIGIN,
-						  origin[coordOrigin]);
-			}
-
-			pointSize = 1.85;
-			for (; pointSize <= maxPointSize; pointSize += 2.0)
-			{
-				expectedSize = (int)(pointSize + 0.2);
-
-				glPointSize(pointSize);
-				glClear(GL_COLOR_BUFFER_BIT);
-
-				if (primType == 0)
-				{
-					glBegin(GL_POINTS);
-						glVertex2i(WINSIZE/4, WINSIZE/4);
-					glEnd();
-				} else {
-					glPolygonMode(GL_FRONT_AND_BACK, GL_POINT);
-					glBegin(GL_POLYGON);
-						glVertex2i(WINSIZE/4, WINSIZE/4);
-						glVertex2i(WINSIZE, WINSIZE / 4);
-						glVertex2i(WINSIZE, WINSIZE);
-						glVertex2i(WINSIZE / 4, WINSIZE);
-					glEnd();
-				}
-
-				glReadPixels(0, 0, WINSIZE/2, WINSIZE/2, GL_RGB, GL_FLOAT, buf);
-		
-				if (!ComparePixels(buf, expectedSize,
-						   origin[coordOrigin]))
-				{
-					env->log << "\tPrimitive type: " << (primType ? "GL_POLYGON" : "GL_POINTS") << "\n";
-					env->log << "\tCoord Origin at: " <<
-						origin_strings[coordOrigin] <<
-						"\n";
-					env->log << "\tPointSize: " << pointSize << "\n";
-					r.numFailed++;
-					r.numPassed--;
-					break;
-				}
-			}
-			r.numPassed++;
-		}
-	}
-
-	glDeleteTextures(1, &texID);
-	glDisable(GL_POINT_SPRITE);
-	free(buf);
-	for (i = 0; i < 6; i++)
-		free(texImages[i]);
-
-	r.pass = (r.numFailed == 0);
-}
-
-// The test object itself:
-PointSpriteTest pointSpriteTest("pointSprite", "window, rgb",
-			"GL_ARB_point_sprite",
-                        "Test basic point sprite functionality.\n");
-
-} // namespace GLEAN
diff --git a/tests/glean/tpointsprite.h b/tests/glean/tpointsprite.h
deleted file mode 100644
index 9901543..0000000
--- a/tests/glean/tpointsprite.h
+++ /dev/null
@@ -1,74 +0,0 @@
-// BEGIN_COPYRIGHT -*- glean -*-
-
-/* 
- * Copyright (C) 2007  Intel Coporation  All Rights Reserved.
- * 
- * Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use,
- * copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following
- * conditions:
- * 
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the
- * Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
- * KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
- * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
- * PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL ALLEN AKIN BE
- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
- * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * 
- */
-
-// tpointsprite.h:  Test basic ARB_point_sprite support.
-// Author: Nian Wu <nian.wu at intel.com>
-
-
-#ifndef __tpointsprite_h__
-#define __tpointsprite_h__
-
-#include "tmultitest.h"
-
-namespace GLEAN {
-
-#define WINSIZE 80 
-
-class PointSpriteTest: public MultiTest
-{
-    public:
-	PointSpriteTest(const char* testName, const char* filter,
-		 const char *extensions, const char* description):
-		 MultiTest(testName, filter, extensions, description),
-		 texImages(),
-		 mTolerance(),
-		 have_2_0(false) {
-	}
-
-	virtual void runOne(MultiTestResult &r, Window &w);
-
-private:
-	GLfloat *texImages[6];
-	GLfloat mTolerance[3];
-	bool have_2_0;	
-
-	void GenMipmap();
-	void SetupMipmap(GLuint *texID);
-	void CheckDefaultState(MultiTestResult &r);
-	void CalculateTolerance();
-	GLboolean OutOfPoint(int x, int y, int pSize, int x0, int y0);
-	GLfloat *GetTexColor(int pSize, int dir);
-	GLboolean CompareColor(GLfloat *actual, GLfloat *expected);
-	GLboolean ComparePixels(GLfloat *buf, int pSize, GLenum coordOrigin);
-}; // class PointSpriteTest
-
-} // namespace GLEAN
-
-#endif // __tpointsprite_h__
-
-- 
2.7.4



More information about the Piglit mailing list