% FPSCRYTEK
% Fraps used to record framerate during gameplay on Crysis (Crytek Engine)
% First plot is gameplay performance of single 8800gtx card configuration,
% Second plot is Dual Card SLI configuration
load fps.mat
load fps_sli.mat
fps_rates= unique(fps);
n= length(fps_rates);
frames= length(fps);
y= hist(fps, n);
tot_frames= length(fps);
Min= num2str(min(fps));
Avg= num2str(mean(fps));
Max= num2str(max(fps));
percent= 100*y/tot_frames;
% Use if there is less than 100 frame rate samples
% to get a more populous chart, use low-pass interpolation
% p= interp(y,2);
% pts= linspace(0,max(fps),2*n);
% h1= find(p<=0);
% p(h1)=0;
% subplot(2,1,2)
% bar(pts,100*p/tot_frames)
% axis tight
subplot(2,1,1)
bar(fps_rates,percent)
axis tight
title('Crysis FPS distribution during Gameplay')
ylabel('% percent')
xlabel('frames per second')
med= num2str(median(fps));
legend(['median frame rate: ', med,' fps'])
F= fft(fps);
k= length(F)
avg= mean(abs(F));
h0= find(abs(F)<=sqrt(pi)*avg); %simple filter takes out 'noisy' fps readings
G= F;
G(h0)= 0;
fps_filter= real(ifft(G));
compression= 100*length(h0)/k
subplot(2,1,2)
plot( (1:k)/60, fps_filter, 'LineWidth',2)
axis tight
title('Crysis Framerate During Gameplay')
ylabel('fps')
xlabel('time mins')
legend(['min: ',Min,' fps'],['avg: ',Avg,' fps'],['max: ',Max,' fps'])
fps_rates_sli= unique(fps_sli);
n= length(fps_rates_sli);
frames= length(fps_sli);
y= hist(fps_sli, n);
tot_frames= length(fps_sli);
Min= num2str(min(fps_sli));
Avg= num2str(mean(fps_sli));
Max= num2str(max(fps_sli));
percent= 100*y/tot_frames;
% Use if there is less than 100 frame rate samples
% to get a more populous chart, use low-pass interpolation
% p= interp(y,2);
% pts= linspace(0,max(fps),2*n);
% h1= find(p<=0);
% p(h1)=0;
% subplot(2,1,2)
% bar(pts,100*p/tot_frames)
% axis tight
figure(2)
subplot(2,1,1)
bar(fps_rates_sli,percent)
axis tight
title('Crysis FPS distribution during Gameplay')
ylabel('% percent')
xlabel('frames per second')
med= num2str(median(fps_sli));
legend(['median frame rate: ', med,' fps'])
F= fft(fps_sli);
k= length(F)
avg= mean(abs(F));
h0= find(abs(F)<=sqrt(pi)*avg); %simple filter takes out 'noisy' fps readings
G= F;
G(h0)= 0;
fps_filter= real(ifft(G));
compression= 100*length(h0)/k
subplot(2,1,2)
plot( (1:k)/60, fps_filter, 'LineWidth',2)
axis tight
title('Crysis Framerate During Gameplay')
ylabel('fps')
xlabel('time mins')
legend(['min: ',Min,' fps'],['avg: ',Avg,' fps'],['max: ',Max,' fps'])