13c827367444ee418f129b2c238299f49d3264554Jarkko Poyry/*------------------------------------------------------------------------- 23c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * drawElements Quality Program OpenGL ES 3.0 Module 33c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * ------------------------------------------------- 43c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * 53c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * Copyright 2014 The Android Open Source Project 63c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * 73c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * Licensed under the Apache License, Version 2.0 (the "License"); 83c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * you may not use this file except in compliance with the License. 93c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * You may obtain a copy of the License at 103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * 113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * http://www.apache.org/licenses/LICENSE-2.0 123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * 133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * Unless required by applicable law or agreed to in writing, software 143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * distributed under the License is distributed on an "AS IS" BASIS, 153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * See the License for the specific language governing permissions and 173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * limitations under the License. 183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * 193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *//*! 203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * \file 213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * \brief Internal Format Query tests. 223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *//*--------------------------------------------------------------------*/ 233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es3fInternalFormatQueryTests.hpp" 253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "glsStateQueryUtil.hpp" 263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es3fApiCase.hpp" 273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "gluRenderContext.hpp" 283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "glwEnums.hpp" 293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "glwFunctions.hpp" 303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "deMath.h" 313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 323c827367444ee418f129b2c238299f49d3264554Jarkko Poyryusing namespace glw; // GLint and other GL types 333c827367444ee418f129b2c238299f49d3264554Jarkko Poyryusing deqp::gls::StateQueryUtil::StateQueryMemoryWriteGuard; 343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 353c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace deqp 363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 373c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace gles3 383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 393c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace Functional 403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 413c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace 423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 443c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass SamplesCase : public ApiCase 453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 463c827367444ee418f129b2c238299f49d3264554Jarkko Poyrypublic: 473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry SamplesCase(Context& context, const char* name, const char* description, GLenum internalFormat, bool isIntegerInternalFormat) 483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry : ApiCase (context, name, description) 493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry , m_internalFormat (internalFormat) 503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry , m_isIntegerInternalFormat (isIntegerInternalFormat) 513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void test (void) 553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry using tcu::TestLog; 573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry StateQueryMemoryWriteGuard<GLint> sampleCounts; 593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry glGetInternalformativ(GL_RENDERBUFFER, m_internalFormat, GL_NUM_SAMPLE_COUNTS, 1, &sampleCounts); 603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expectError(GL_NO_ERROR); 613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry if (!sampleCounts.verifyValidity(m_testCtx)) 633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry return; 643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry m_testCtx.getLog() << TestLog::Message << "// sample counts is " << sampleCounts << TestLog::EndMessage; 663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry if (sampleCounts == 0) 683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry return; 693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry std::vector<GLint> samples; 713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry samples.resize(sampleCounts, -1); 723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry glGetInternalformativ(GL_RENDERBUFFER, m_internalFormat, GL_SAMPLES, sampleCounts, &samples[0]); 733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expectError(GL_NO_ERROR); 743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry GLint prevSampleCount = 0; 763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry GLint sampleCount = 0; 773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry for (size_t ndx = 0; ndx < samples.size(); ++ndx, prevSampleCount = sampleCount) 783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry sampleCount = samples[ndx]; 803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry // sample count must be > 0 823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry if (sampleCount <= 0) 833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry m_testCtx.getLog() << TestLog::Message << "// ERROR: Expected sample count to be at least one; got " << sampleCount << TestLog::EndMessage; 853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry if (m_testCtx.getTestResult() == QP_TEST_RESULT_PASS) 863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry m_testCtx.setTestResult(QP_TEST_RESULT_FAIL, "got invalid value"); 873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry // samples must be ordered descending 903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry if (ndx != 0 && !(sampleCount < prevSampleCount)) 913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry m_testCtx.getLog() << TestLog::Message 933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry << "// ERROR: Expected sample count to be ordered in descending order;" 943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry << "got " << prevSampleCount << " at index " << (ndx - 1) << ", and " << sampleCount << " at index " << ndx << TestLog::EndMessage; 953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry if (m_testCtx.getTestResult() == QP_TEST_RESULT_PASS) 963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry m_testCtx.setTestResult(QP_TEST_RESULT_FAIL, "got invalid order"); 973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1006548214158a4646849b06b5a3768a6d0a04e7246Jarkko Pöyry if (!m_isIntegerInternalFormat) 1013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 1026548214158a4646849b06b5a3768a6d0a04e7246Jarkko Pöyry // the maximum value in SAMPLES is guaranteed to be at least the value of MAX_SAMPLES 1036548214158a4646849b06b5a3768a6d0a04e7246Jarkko Pöyry StateQueryMemoryWriteGuard<GLint> maxSamples; 1046548214158a4646849b06b5a3768a6d0a04e7246Jarkko Pöyry glGetIntegerv(GL_MAX_SAMPLES, &maxSamples); 1056548214158a4646849b06b5a3768a6d0a04e7246Jarkko Pöyry expectError(GL_NO_ERROR); 1066548214158a4646849b06b5a3768a6d0a04e7246Jarkko Pöyry 1076548214158a4646849b06b5a3768a6d0a04e7246Jarkko Pöyry if (maxSamples.verifyValidity(m_testCtx)) 1083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 1096548214158a4646849b06b5a3768a6d0a04e7246Jarkko Pöyry const GLint maximumFormatSampleCount = samples[0]; 1106548214158a4646849b06b5a3768a6d0a04e7246Jarkko Pöyry if (!(maximumFormatSampleCount >= maxSamples)) 1116548214158a4646849b06b5a3768a6d0a04e7246Jarkko Pöyry { 1126548214158a4646849b06b5a3768a6d0a04e7246Jarkko Pöyry m_testCtx.getLog() << TestLog::Message << "// ERROR: Expected maximum value in SAMPLES (" << maximumFormatSampleCount << ") to be at least the value of MAX_SAMPLES (" << maxSamples << ")" << TestLog::EndMessage; 1136548214158a4646849b06b5a3768a6d0a04e7246Jarkko Pöyry if (m_testCtx.getTestResult() == QP_TEST_RESULT_PASS) 1146548214158a4646849b06b5a3768a6d0a04e7246Jarkko Pöyry m_testCtx.setTestResult(QP_TEST_RESULT_FAIL, "got invalid maximum sample count"); 1156548214158a4646849b06b5a3768a6d0a04e7246Jarkko Pöyry } 1166548214158a4646849b06b5a3768a6d0a04e7246Jarkko Pöyry } 1173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 1183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 1193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1203c827367444ee418f129b2c238299f49d3264554Jarkko Poyryprivate: 1216548214158a4646849b06b5a3768a6d0a04e7246Jarkko Pöyry const GLenum m_internalFormat; 1226548214158a4646849b06b5a3768a6d0a04e7246Jarkko Pöyry const bool m_isIntegerInternalFormat; 1233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}; 1243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1253c827367444ee418f129b2c238299f49d3264554Jarkko Poyryclass SamplesBufferSizeCase : public ApiCase 1263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 1273c827367444ee418f129b2c238299f49d3264554Jarkko Poyrypublic: 1283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry SamplesBufferSizeCase(Context& context, const char* name, const char* description, GLenum internalFormat) 1293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry : ApiCase (context, name, description) 1303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry , m_internalFormat (internalFormat) 1313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 1323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 1333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void test (void) 1353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 1363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry using tcu::TestLog; 1373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry StateQueryMemoryWriteGuard<GLint> sampleCounts; 1393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry glGetInternalformativ(GL_RENDERBUFFER, m_internalFormat, GL_NUM_SAMPLE_COUNTS, 1, &sampleCounts); 1403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expectError(GL_NO_ERROR); 1413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry if (!sampleCounts.verifyValidity(m_testCtx)) 1433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry return; 1443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry // test with bufSize = 0 1463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry GLint queryTargetValue = -1; 1473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry glGetInternalformativ(GL_RENDERBUFFER, m_internalFormat, GL_NUM_SAMPLE_COUNTS, 0, &queryTargetValue); 1483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expectError(GL_NO_ERROR); 1493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry if (queryTargetValue != -1) 1513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 1523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry m_testCtx.getLog() << TestLog::Message << "// ERROR: Expected output variable not to be written to." << TestLog::EndMessage; 1533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry if (m_testCtx.getTestResult() == QP_TEST_RESULT_PASS) 1543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry m_testCtx.setTestResult(QP_TEST_RESULT_FAIL, "got invalid write"); 1553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 1563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 1573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1583c827367444ee418f129b2c238299f49d3264554Jarkko Poyryprivate: 1593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry GLenum m_internalFormat; 1603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}; 1613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} // anonymous 1633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1653c827367444ee418f129b2c238299f49d3264554Jarkko PoyryInternalFormatQueryTests::InternalFormatQueryTests (Context& context) 1663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry : TestCaseGroup(context, "internal_format", "Internal Format Query tests.") 1673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 1683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} 1693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1703c827367444ee418f129b2c238299f49d3264554Jarkko Poyryvoid InternalFormatQueryTests::init (void) 1713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 1723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const struct InternalFormat 1733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 1743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const char* name; 1753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry GLenum format; 1763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry bool isIntegerFormat; 1773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } internalFormats[] = 1783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 1793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry // color renderable and unsized 1803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry // \note These unsized formats seem to allowed by the spec, but they are not useful in any way. (You can't create a renderbuffer with such internalFormat) 1813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "rgba", GL_RGBA, false }, 1823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "rgb", GL_RGB, false }, 1833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry // color renderable 1853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "r8", GL_R8, false }, 1863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "rg8", GL_RG8, false }, 1873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "rgb8", GL_RGB8, false }, 1883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "rgb565", GL_RGB565, false }, 1893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "rgba4", GL_RGBA4, false }, 1903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "rgb5_a1", GL_RGB5_A1, false }, 1913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "rgba8", GL_RGBA8, false }, 1923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "rgb10_a2", GL_RGB10_A2, false }, 1933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "rgb10_a2ui", GL_RGB10_A2UI, true }, 1943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "srgb8_alpha8", GL_SRGB8_ALPHA8, false }, 1953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "r8i", GL_R8I, true }, 1963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "r8ui", GL_R8UI, true }, 1973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "r16i", GL_R16I, true }, 1983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "r16ui", GL_R16UI, true }, 1993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "r32i", GL_R32I, true }, 2003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "r32ui", GL_R32UI, true }, 2013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "rg8i", GL_RG8I, true }, 2023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "rg8ui", GL_RG8UI, true }, 2033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "rg16i", GL_RG16I, true }, 2043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "rg16ui", GL_RG16UI, true }, 2053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "rg32i", GL_RG32I, true }, 2063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "rg32ui", GL_RG32UI, true }, 2073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "rgba8i", GL_RGBA8I, true }, 2083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "rgba8ui", GL_RGBA8UI, true }, 2093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "rgba16i", GL_RGBA16I, true }, 2103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "rgba16ui", GL_RGBA16UI, true }, 2113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "rgba32i", GL_RGBA32I, true }, 2123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "rgba32ui", GL_RGBA32UI, true }, 2133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry // depth renderable 2153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "depth_component16", GL_DEPTH_COMPONENT16, false }, 2163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "depth_component24", GL_DEPTH_COMPONENT24, false }, 2173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "depth_component32f", GL_DEPTH_COMPONENT32F, false }, 2183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "depth24_stencil8", GL_DEPTH24_STENCIL8, false }, 2193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "depth32f_stencil8", GL_DEPTH32F_STENCIL8, false }, 2203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry // stencil renderable 2223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { "stencil_index8", GL_STENCIL_INDEX8, false } 2233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry // DEPTH24_STENCIL8, duplicate 2243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry // DEPTH32F_STENCIL8 duplicate 2253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry }; 2263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry for (int ndx = 0; ndx < DE_LENGTH_OF_ARRAY(internalFormats); ++ndx) 2283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 2293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const InternalFormat internalFormat = internalFormats[ndx]; 2303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry addChild(new SamplesCase(m_context, (std::string(internalFormat.name) + "_samples").c_str(), "SAMPLES and NUM_SAMPLE_COUNTS", internalFormat.format, internalFormat.isIntegerFormat)); 2323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 2333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry addChild(new SamplesBufferSizeCase(m_context, "rgba8_samples_buffer", "SAMPLES bufSize parameter", GL_RGBA8)); 2353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} 2363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} // Functional 2383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} // gles3 2393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} // deqp 240