1/*-------------------------------------------------------------------------
2 * drawElements Quality Program OpenGL ES 2.0 Module
3 * -------------------------------------------------
4 *
5 * Copyright 2014 The Android Open Source Project
6 *
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 *      http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 *
19 *//*!
20 * \file
21 * \brief Memory object stress test
22 *//*--------------------------------------------------------------------*/
23
24#include "es2sMemoryTests.hpp"
25
26#include "glsMemoryStressCase.hpp"
27#include "deRandom.hpp"
28#include "tcuTestLog.hpp"
29
30#include <vector>
31#include <iostream>
32
33using std::vector;
34using tcu::TestLog;
35
36using namespace deqp::gls;
37
38namespace deqp
39{
40namespace gles2
41{
42namespace Stress
43{
44
45MemoryTests::MemoryTests (Context& testCtx)
46	: TestCaseGroup(testCtx, "memory", "Memory stress tests")
47{
48}
49
50MemoryTests::~MemoryTests(void)
51{
52}
53
54void MemoryTests::init (void)
55{
56	const int MiB = 1024*1024;
57
58	// Basic tests
59	tcu::TestCaseGroup* basicGroup = new TestCaseGroup(m_context, "basic", "Basic allocation stress tests.");
60
61	// Buffers
62	basicGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 1*MiB, 1*MiB, false, false, false, false,	"buffer_1mb_no_write_no_use",	"1MiB buffer allocations, no data writes, no use"));
63	basicGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 1*MiB, 1*MiB, true,  false, false, false,	"buffer_1mb_write_no_use",		"1MiB buffer allocations, data writes, no use"));
64	basicGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 1*MiB, 1*MiB, false, true,  false, false,	"buffer_1mb_no_write_use",		"1MiB buffer allocations, no data writes, data used"));
65	basicGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 1*MiB, 1*MiB, true,  true,  false, false,	"buffer_1mb_write_use",			"1MiB buffer allocations, data writes, data used"));
66
67	basicGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 8*MiB, 8*MiB, false, false, false, false,	"buffer_8mb_no_write_no_use",	"8MiB buffer allocations, no data writes, no use"));
68	basicGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 8*MiB, 8*MiB, true,  false, false, false,	"buffer_8mb_write_no_use",		"8MiB buffer allocations, data writes, no use"));
69	basicGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 8*MiB, 8*MiB, false, true,  false, false,	"buffer_8mb_no_write_use",		"8MiB buffer allocations, no data writes, data used"));
70	basicGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 8*MiB, 8*MiB, true,  true,  false, false,	"buffer_8mb_write_use",			"8MiB buffer allocations, data writes, data used"));
71
72	basicGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 32*MiB, 32*MiB, false, false, false, false,	"buffer_32mb_no_write_no_use",	"32MiB buffer allocations, no data writes, no use"));
73	basicGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 32*MiB, 32*MiB, true,  false, false, false,	"buffer_32mb_write_no_use",		"32MiB buffer allocations, data writes, no use"));
74	basicGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 32*MiB, 32*MiB, false, true,  false, false,	"buffer_32mb_no_write_use",		"32MiB buffer allocations, no data writes, data used"));
75	basicGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 32*MiB, 32*MiB, true, true,  false, false,	"buffer_32mb_write_use",		"32MiB buffer allocations, data writes, data used"));
76
77	// Textures
78	basicGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE, 512, 512, 0, 0, false, false, false, false,	"texture_512x512_rgba_no_write_no_use",	"512x512 RGBA texture allocations, no data writes, no use"));
79	basicGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE, 512, 512, 0, 0, true,  false, false, false,	"texture_512x512_rgba_write_no_use",	"512x512 RGBA texture allocations, data writes, no use"));
80	basicGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE, 512, 512, 0, 0, false, true,  false, false,	"texture_512x512_rgba_no_write_use",	"512x512 RGBA texture allocations, no data writes, data used"));
81	basicGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE, 512, 512, 0, 0, true, true,  false, false,	"texture_512x512_rgba_write_use",		"512x512 RGBA texture allocations, data writes, data used"));
82
83	// Random tests
84	tcu::TestCaseGroup*	randomGroup = new TestCaseGroup(m_context, "random", "Random allocation stress tests.");
85
86	// Buffers
87	randomGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 64, 1*MiB, false, false, false, false,	"buffer_small_no_write_no_use",		"Random small buffer allocations, no data writes, no use"));
88	randomGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 64, 1*MiB, true,  false, false, false,	"buffer_small_write_no_use",		"Random small allocations, data writes, no use"));
89	randomGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 64, 1*MiB, false, true,  false, false,	"buffer_small_no_write_use",		"Random small allocations, no data writes, data used"));
90	randomGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 64, 1*MiB, true,  true,  false, false,	"buffer_small_write_use",			"Random small allocations, data writes, data used"));
91
92	randomGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 2*MiB, 32*MiB, false, false, false, false,	"buffer_large_no_write_no_use",		"Random large buffer allocations, no data writes, no use"));
93	randomGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 2*MiB, 32*MiB, true,  false, false, false,	"buffer_large_write_no_use",		"Random large buffer allocations, data writes, no use"));
94	randomGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 2*MiB, 32*MiB, false, true,  false, false,	"buffer_large_no_write_use",		"Random large buffer allocations, no data writes, data used"));
95	randomGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 2*MiB, 32*MiB, true,  true,  false, false,	"buffer_large_write_use",			"Random large buffer allocations, data writes, data used"));
96
97	// Textures
98	randomGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE, 8, 256, 0, 0, false, false, false, false,	"texture_small_rgba_no_write_no_use",	"Small RGBA texture allocations, no data writes, no use"));
99	randomGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE, 8, 256, 0, 0, true,  false, false, false,	"texture_small_rgba_write_no_use",		"Small RGBA texture allocations, data writes, no use"));
100	randomGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE, 8, 256, 0, 0, false, true,  false, false,	"texture_small_rgba_no_write_use",		"Small RGBA texture allocations, no data writes, data used"));
101	randomGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE, 8, 256, 0, 0, true,  true,  false, false,	"texture_small_rgba_write_use",			"Small RGBA texture allocations, data writes, data used"));
102
103	randomGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE, 512, 1024, 0, 0, false, false, false, false,	"texture_large_rgba_no_write_no_use",	"Large RGBA texture allocations, no data writes, no use"));
104	randomGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE, 512, 1024, 0, 0, true,  false, false, false,	"texture_large_rgba_write_no_use",		"Large RGBA texture allocations, data writes, no use"));
105	randomGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE, 512, 1024, 0, 0, false, true,  false, false,	"texture_large_rgba_no_write_use",		"Large RGBA texture allocations, no data writes, data used"));
106	randomGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE, 512, 1024, 0, 0, true,  true,  false, false,	"texture_large_rgba_write_use",			"Large RGBA texture allocations, data writes, data used"));
107
108	randomGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE|MEMOBJECTTYPE_BUFFER, 8, 256, 64, 1*MiB, false, false, false, false,	"mixed_small_rgba_no_write_no_use",		"Small RGBA mixed allocations, no data writes, no use"));
109	randomGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE|MEMOBJECTTYPE_BUFFER, 8, 256, 64, 1*MiB, true,  false, false, false,	"mixed_small_rgba_write_no_use",		"Small RGBA mixed allocations, data writes, no use"));
110	randomGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE|MEMOBJECTTYPE_BUFFER, 8, 256, 64, 1*MiB, false, true,  false, false,	"mixed_small_rgba_no_write_use",		"Small RGBA mixed allocations, no data writes, data used"));
111	randomGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE|MEMOBJECTTYPE_BUFFER, 8, 256, 64, 1*MiB, true,  true,  false, false,	"mixed_small_rgba_write_use",			"Small RGBA mixed allocations, data writes, data used"));
112
113	randomGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE|MEMOBJECTTYPE_BUFFER, 512, 1024, 2*MiB, 32*MiB, false, false, false, false,	"mixed_large_rgba_no_write_no_use",		"Large RGBA mixed allocations, no data writes, no use"));
114	randomGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE|MEMOBJECTTYPE_BUFFER, 512, 1024, 2*MiB, 32*MiB, true,  false, false, false,	"mixed_large_rgba_write_no_use",		"Large RGBA mixed allocations, data writes, no use"));
115	randomGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE|MEMOBJECTTYPE_BUFFER, 512, 1024, 2*MiB, 32*MiB, false, true,  false, false,	"mixed_large_rgba_no_write_use",		"Large RGBA mixed allocations, no data writes, data used"));
116	randomGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE|MEMOBJECTTYPE_BUFFER, 512, 1024, 2*MiB, 32*MiB, true,  true,  false, false,	"mixed_large_rgba_write_use",			"Large RGBA mixed allocations, data writes, data used"));
117
118	addChild(basicGroup);
119	addChild(randomGroup);
120
121	// Basic tests with clear
122	tcu::TestCaseGroup* basicClearGroup	= new TestCaseGroup(m_context, "basic_clear", "Basic allocation stress tests with glClear after OOM.");
123
124	// Buffers
125	basicClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 1*MiB, 1*MiB, false, false, false, true,	"buffer_1mb_no_write_no_use",	"1MiB buffer allocations, no data writes, no use"));
126	basicClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 1*MiB, 1*MiB, true,  false, false, true,	"buffer_1mb_write_no_use",		"1MiB buffer allocations, data writes, no use"));
127	basicClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 1*MiB, 1*MiB, false, true,  false, true,	"buffer_1mb_no_write_use",		"1MiB buffer allocations, no data writes, data used"));
128	basicClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 1*MiB, 1*MiB, true,  true,  false, true,	"buffer_1mb_write_use",			"1MiB buffer allocations, data writes, data used"));
129
130	basicClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 8*MiB, 8*MiB, false, false, false, true,	"buffer_8mb_no_write_no_use",	"8MiB buffer allocations, no data writes, no use"));
131	basicClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 8*MiB, 8*MiB, true,  false, false, true,	"buffer_8mb_write_no_use",		"8MiB buffer allocations, data writes, no use"));
132	basicClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 8*MiB, 8*MiB, false, true,  false, true,	"buffer_8mb_no_write_use",		"8MiB buffer allocations, no data writes, data used"));
133	basicClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 8*MiB, 8*MiB, true,  true,  false, true,	"buffer_8mb_write_use",			"8MiB buffer allocations, data writes, data used"));
134
135	basicClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 32*MiB, 32*MiB, false, false, false, true,	"buffer_32mb_no_write_no_use",	"32MiB buffer allocations, no data writes, no use"));
136	basicClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 32*MiB, 32*MiB, true,  false, false, true,	"buffer_32mb_write_no_use",		"32MiB buffer allocations, data writes, no use"));
137	basicClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 32*MiB, 32*MiB, false, true,  false, true,	"buffer_32mb_no_write_use",		"32MiB buffer allocations, no data writes, data used"));
138	basicClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 32*MiB, 32*MiB, true, true,  false, true,		"buffer_32mb_write_use",		"32MiB buffer allocations, data writes, data used"));
139
140	// Textures
141	basicClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE, 512, 512, 0, 0, false, false, false, true,	"texture_512x512_rgba_no_write_no_use",	"512x512 RGBA texture allocations, no data writes, no use"));
142	basicClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE, 512, 512, 0, 0, true,  false, false, true,	"texture_512x512_rgba_write_no_use",	"512x512 RGBA texture allocations, data writes, no use"));
143	basicClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE, 512, 512, 0, 0, false, true,  false, true,	"texture_512x512_rgba_no_write_use",	"512x512 RGBA texture allocations, no data writes, data used"));
144	basicClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE, 512, 512, 0, 0, true, true,  false, true,	"texture_512x512_rgba_write_use",		"512x512 RGBA texture allocations, data writes, data used"));
145
146	// Random tests
147	tcu::TestCaseGroup*	randomClearGroup = new TestCaseGroup(m_context, "random_clear", "Random allocation stress tests with glClear after OOM.");
148
149	// Buffers
150	randomClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 64, 1*MiB, false, false, false, true,	"buffer_small_no_write_no_use",		"Random small buffer allocations, no data writes, no use"));
151	randomClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 64, 1*MiB, true,  false, false, true,	"buffer_small_write_no_use",		"Random small allocations, data writes, no use"));
152	randomClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 64, 1*MiB, false, true,  false, true,	"buffer_small_no_write_use",		"Random small allocations, no data writes, data used"));
153	randomClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 64, 1*MiB, true,  true,  false, true,	"buffer_small_write_use",			"Random small allocations, data writes, data used"));
154
155	randomClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 2*MiB, 32*MiB, false, false, false, true,	"buffer_large_no_write_no_use",		"Random large buffer allocations, no data writes, no use"));
156	randomClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 2*MiB, 32*MiB, true,  false, false, true,	"buffer_large_write_no_use",		"Random large buffer allocations, data writes, no use"));
157	randomClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 2*MiB, 32*MiB, false, true,  false, true,	"buffer_large_no_write_use",		"Random large buffer allocations, no data writes, data used"));
158	randomClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_BUFFER, 0, 0, 2*MiB, 32*MiB, true,  true,  false, true,	"buffer_large_write_use",			"Random large buffer allocations, data writes, data used"));
159
160	// Textures
161	randomClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE, 8, 256, 0, 0, false, false, false, true,	"texture_small_rgba_no_write_no_use",	"Small RGBA texture allocations, no data writes, no use"));
162	randomClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE, 8, 256, 0, 0, true,  false, false, true,	"texture_small_rgba_write_no_use",		"Small RGBA texture allocations, data writes, no use"));
163	randomClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE, 8, 256, 0, 0, false, true,  false, true,	"texture_small_rgba_no_write_use",		"Small RGBA texture allocations, no data writes, data used"));
164	randomClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE, 8, 256, 0, 0, true,  true,  false, true,	"texture_small_rgba_write_use",			"Small RGBA texture allocations, data writes, data used"));
165
166	randomClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE, 512, 1024, 0, 0, false, false, false, true,	"texture_large_rgba_no_write_no_use",	"Large RGBA texture allocations, no data writes, no use"));
167	randomClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE, 512, 1024, 0, 0, true,  false, false, true,	"texture_large_rgba_write_no_use",		"Large RGBA texture allocations, data writes, no use"));
168	randomClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE, 512, 1024, 0, 0, false, true,  false, true,	"texture_large_rgba_no_write_use",		"Large RGBA texture allocations, no data writes, data used"));
169	randomClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE, 512, 1024, 0, 0, true,  true,  false, true,	"texture_large_rgba_write_use",			"Large RGBA texture allocations, data writes, data used"));
170
171	randomClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE|MEMOBJECTTYPE_BUFFER, 8, 256, 64, 1*MiB, false, false, false, true,	"mixed_small_rgba_no_write_no_use",		"Small RGBA mixed allocations, no data writes, no use"));
172	randomClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE|MEMOBJECTTYPE_BUFFER, 8, 256, 64, 1*MiB, true,  false, false, true,	"mixed_small_rgba_write_no_use",		"Small RGBA mixed allocations, data writes, no use"));
173	randomClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE|MEMOBJECTTYPE_BUFFER, 8, 256, 64, 1*MiB, false, true,  false, true,	"mixed_small_rgba_no_write_use",		"Small RGBA mixed allocations, no data writes, data used"));
174	randomClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE|MEMOBJECTTYPE_BUFFER, 8, 256, 64, 1*MiB, true,  true,  false, true,	"mixed_small_rgba_write_use",			"Small RGBA mixed allocations, data writes, data used"));
175
176	randomClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE|MEMOBJECTTYPE_BUFFER, 512, 1024, 2*MiB, 32*MiB, false, false, false, true,	"mixed_large_rgba_no_write_no_use",		"Large RGBA mixed allocations, no data writes, no use"));
177	randomClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE|MEMOBJECTTYPE_BUFFER, 512, 1024, 2*MiB, 32*MiB, true,  false, false, true,	"mixed_large_rgba_write_no_use",		"Large RGBA mixed allocations, data writes, no use"));
178	randomClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE|MEMOBJECTTYPE_BUFFER, 512, 1024, 2*MiB, 32*MiB, false, true,  false, true,	"mixed_large_rgba_no_write_use",		"Large RGBA mixed allocations, no data writes, data used"));
179	randomClearGroup->addChild(new MemoryStressCase(m_context.getTestContext(), m_context.getRenderContext(), MEMOBJECTTYPE_TEXTURE|MEMOBJECTTYPE_BUFFER, 512, 1024, 2*MiB, 32*MiB, true,  true,  false, true,	"mixed_large_rgba_write_use",			"Large RGBA mixed allocations, data writes, data used"));
180
181	addChild(basicClearGroup);
182	addChild(randomClearGroup);
183}
184
185} // Stress
186} // gles2
187} // deqp
188