MCPcopy Create free account
hub / github.com/VirtualGL/virtualgl / nativeWrite

Function nativeWrite

util/fbxtest.cpp:142–274  ·  view source on GitHub ↗

Platform-specific write test

Source from the content-addressed store, hash-verified

140
141// Platform-specific write test
142void nativeWrite(bool useShm)
143{
144 fbx_struct fb; int i = 0; double drawTime;
145 Timer timer, timer2;
146
147 memset(&fb, 0, sizeof(fb));
148
149 try
150 {
151 TRY_FBX(fbx_init(&fb, wh, 0, 0, useShm ? 1 : 0));
152 if(useShm && !fb.shm) THROW("MIT-SHM not available");
153 fprintf(stderr, "Native Pixel Format: %s\n", fb.pf->name);
154 if(fb.width != drawableWidth || fb.height != drawableHeight)
155 {
156 fprintf(stderr, "WARNING: Requested size = %d x %d Actual size = %d x %d\n",
157 drawableWidth, drawableHeight, fb.width, fb.height);
158 }
159
160 clearFB();
161 if(useShm)
162 fprintf(stderr, "FBX bottom-up write [SHM]: ");
163 else
164 fprintf(stderr, "FBX bottom-up write: ");
165 i = 0; drawTime = 0; timer2.start();
166 do
167 {
168 #ifndef _WIN32
169 if(checkDB)
170 {
171 memset(fb.bits, 255, fb.pitch * fb.height);
172 TRY_FBX(fbx_awrite(&fb, 0, 0, 0, 0, 0, 0));
173 }
174 #endif
175 initBuf(0, 0, fb.width, fb.pitch, fb.height, fb.pf,
176 (unsigned char *)fb.bits, i);
177 timer.start();
178 TRY_FBX(fbx_flip(&fb, 0, 0, 0, 0));
179 TRY_FBX(fbx_write(&fb, 0, 0, 0, 0, 0, 0));
180 drawTime += timer.elapsed();
181 i++;
182 } while(timer2.elapsed() < benchTime);
183 fprintf(stderr, "%f Mpixels/sec",
184 (double)i * (double)(fb.width * fb.height) / (1000000. * drawTime));
185 memset(fb.bits, 0, fb.pitch * fb.height);
186 TRY_FBX(fbx_read(&fb, 0, 0));
187 if(!cmpBuf(0, 0, fb.width, fb.pitch, fb.height, fb.pf,
188 (unsigned char *)fb.bits, i - 1, true))
189 {
190 fprintf(stderr, " (ERROR CHECK FAILED)\n");
191 retCode = -1;
192 }
193 else fprintf(stderr, " (no errors)\n");
194
195 clearFB();
196 if(useShm)
197 fprintf(stderr, "FBX 1/4 top-down write [SHM]: ");
198 else
199 fprintf(stderr, "FBX 1/4 top-down write: ");

Callers 1

displayFunction · 0.85

Calls 11

fbx_awriteFunction · 0.85
fbx_flipFunction · 0.85
fbx_writeFunction · 0.85
fbx_readFunction · 0.85
fbx_termFunction · 0.85
elapsedMethod · 0.80
whatMethod · 0.80
clearFBFunction · 0.70
initBufFunction · 0.70
cmpBufFunction · 0.70
startMethod · 0.45

Tested by

no test coverage detected