1/*-------------------------------------------------------------------------
2 * drawElements Quality Program OpenGL ES 3.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 "es3sMemoryTests.hpp"
25
26#include "glsMemoryStressCase.hpp"
27#include "deRandom.hpp"
28#include "tcuTestLog.hpp"
29
30#include "glw.h"
31
32#include <vector>
33#include <iostream>
34
35using std::vector;
36using tcu::TestLog;
37
38using namespace deqp::gls;
39
40namespace deqp
41{
42namespace gles3
43{
44namespace Stress
45{
46
47MemoryTests::MemoryTests (Context& testCtx)
48	: TestCaseGroup(testCtx, "memory", "Memory stress tests")
49{
50}
51
52MemoryTests::~MemoryTests(void)
53{
54}
55
56void MemoryTests::init (void)
57{
58	const int MiB = 1024*1024;
59
60	// Basic tests
61	tcu::TestCaseGroup* basicGroup = new TestCaseGroup(m_context, "basic", "Basic allocation stress tests.");
62
63	// Buffers
64	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"));
65	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"));
66	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"));
67	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"));
68
69	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"));
70	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"));
71	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"));
72	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"));
73
74	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"));
75	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"));
76	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"));
77	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"));
78
79	// Textures
80	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"));
81	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"));
82	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"));
83	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"));
84
85	// Random tests
86	tcu::TestCaseGroup*	randomGroup = new TestCaseGroup(m_context, "random", "Random allocation stress tests.");
87
88	// Buffers
89	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"));
90	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"));
91	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"));
92	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"));
93
94	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"));
95	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"));
96	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"));
97	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"));
98
99	// Textures
100	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"));
101	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"));
102	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"));
103	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"));
104
105	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"));
106	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"));
107	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"));
108	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"));
109
110	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"));
111	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"));
112	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"));
113	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"));
114
115	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"));
116	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"));
117	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"));
118	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"));
119
120	addChild(basicGroup);
121	addChild(randomGroup);
122
123	// Basic tests with clear
124	tcu::TestCaseGroup* basicClearGroup	= new TestCaseGroup(m_context, "basic_clear", "Basic allocation stress tests with glClear after OOM.");
125
126	// Buffers
127	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"));
128	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"));
129	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"));
130	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"));
131
132	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"));
133	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"));
134	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"));
135	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"));
136
137	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"));
138	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"));
139	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"));
140	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"));
141
142	// Textures
143	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"));
144	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"));
145	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"));
146	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"));
147
148	// Random tests
149	tcu::TestCaseGroup*	randomClearGroup = new TestCaseGroup(m_context, "random_clear", "Random allocation stress tests with glClear after OOM.");
150
151	// Buffers
152	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"));
153	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"));
154	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"));
155	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"));
156
157	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"));
158	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"));
159	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"));
160	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"));
161
162	// Textures
163	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"));
164	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"));
165	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"));
166	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"));
167
168	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"));
169	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"));
170	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"));
171	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"));
172
173	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"));
174	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"));
175	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"));
176	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"));
177
178	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"));
179	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"));
180	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"));
181	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"));
182
183	addChild(basicClearGroup);
184	addChild(randomClearGroup);
185}
186
187} // Stress
188} // gles2
189} // deqp
190